@omnia/fx
Version:
Provide Omnia Fx typings and tooling for clientside Omnia development.
68 lines (67 loc) • 3.38 kB
TypeScript
import { IWebComponentInstance } from "../../../";
import { MediaItem, ImageItem, VideoItem, ImageInformation, MediaPickerEnums, VideoInformation, MediaPickerImageTransformationResult, MediaPickerVideo } from "../../../models";
import "./GridViewMediaProviderComponent.css";
import { MultiSelectMediaProviderComponentBase } from "./MultiSelectMediaProviderComponentBase";
export interface GridViewMediaProviderComponentProps {
}
export interface GridViewMediaProviderComponentSlots<MediaItemType extends MediaItem> {
mediaSelectionTop?: () => JSX.Element;
mediaSelectionBottom?: () => JSX.Element;
mediaGridItemHover?: (item: MediaItemType) => JSX.Element;
mediaGridItemOverlay?: (item: MediaItemType) => JSX.Element;
customSlot?: () => JSX.Element;
}
export declare abstract class GridViewMediaProviderComponent extends MultiSelectMediaProviderComponentBase implements IWebComponentInstance, GridViewMediaProviderComponentProps {
/**
* Get media items by search keyword
* @param searchKeyword
*/
abstract getMediaItems(searchKeyword: string): Promise<Array<ImageItem | VideoItem>>;
/**
* Get more media items when reached the last item in grid while scrolling
* @param lastLoadedIndex
*/
abstract getMoreMediaItems(lastLoadedIndex: number): Promise<Array<ImageItem | VideoItem>>;
/**
* Return the information for selected media item in grid
* @param mediaItem
*/
abstract getMediaInfo(mediaItem: ImageItem | VideoItem): Promise<ImageInformation | VideoInformation>;
/**
* Manipulate the image result if needed before it is saved. Initiate the video result after video item is selected.
* @param resultToBeSaved
*/
abstract beforeSaved(resultToBeSaved: MediaPickerImageTransformationResult | VideoInformation): Promise<MediaPickerImageTransformationResult | MediaPickerVideo>;
protected gridViewSlots: GridViewMediaProviderComponentSlots<MediaItem>;
private allResults;
private mediaGridItems;
protected displayPageSize: number;
protected enableLoadMoreButton: boolean;
protected searchStatus: MediaPickerEnums.MediaSearchStatus;
protected enableNoResultText: boolean;
private isShowRetryGetSelectedImageInfoDialog;
private gridComponentKey;
private imageItemToRetryDownload;
private isRetryingGetSelectedImageInfo;
private isUpdatingInfiniteScroll;
private noMoreResult;
private gridViewStyles;
private isLoadingMore;
constructor();
protected selectGridItem(mediaItem: ImageItem | VideoItem): void;
protected setAllItems(mediaItems: Array<ImageItem | VideoItem>): void;
protected setEmptyResultHandler(): void;
protected setSearchStatus(status: MediaPickerEnums.MediaSearchStatus): void;
private retryToGetSelectedImageInfo;
private handleSelectedMediaItem;
onImageTransformResultChanged(transformationResult: MediaPickerImageTransformationResult): void;
private getMediaItemChunks;
private onGridViewSearch;
private appendGridItems;
private onGridViewScroll;
private renderRetryGetImageInfoDialog;
private renderGridViewItemSelection;
private closeRetryGetImageInfoDialog;
protected renderLoadMoreButton(onClickButton: (e: Event) => Promise<void>): VueTsxSupport.JSX.Element;
protected renderGridViewProvider(): VueTsxSupport.JSX.Element;
}