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 { 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>; /** * Get more media items when reached the last item in grid while scrolling * @param lastLoadedIndex */ abstract getMoreMediaItems(lastLoadedIndex: number): Promise>; /** * Return the information for selected media item in grid * @param mediaItem */ abstract getMediaInfo(mediaItem: ImageItem | VideoItem): Promise; /** * 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; protected gridViewSlots: GridViewMediaProviderComponentSlots; 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; private isAppendingMoreItems; constructor(); protected selectGridItem(mediaItem: ImageItem | VideoItem): void; protected setAllItems(mediaItems: Array): 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 hasUnrenderedItems; private renderRetryGetImageInfoDialog; private renderGridViewItemSelection; private closeRetryGetImageInfoDialog; protected renderLoadMoreButton(onClickButton: (e: Event) => Promise): VueTsxSupport.JSX.Element; protected renderGridViewProvider(): VueTsxSupport.JSX.Element; }