UNPKG

@omnia/fx

Version:

Provide Omnia Fx typings and tooling for clientside Omnia development.

70 lines (69 loc) 3.45 kB
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; private isAppendingMoreItems; 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 hasUnrenderedItems; private renderRetryGetImageInfoDialog; private renderGridViewItemSelection; private closeRetryGetImageInfoDialog; protected renderLoadMoreButton(onClickButton: (e: Event) => Promise<void>): VueTsxSupport.JSX.Element; protected renderGridViewProvider(): VueTsxSupport.JSX.Element; }