@omnia/fx
Version:
Provide Omnia Fx typings and tooling for clientside Omnia development.
83 lines (82 loc) • 4.22 kB
TypeScript
import { IWebComponentInstance, OmniaContext } from "../../../";
import { MediaPickerImageSettings, MediaPickerEnums, ImageInformation, MediaPickerVideo, MediaPickerStorageProviderContext, GuidValue, MediaPickerMedia, MediaPickerImageTransformationResult, Future } from "../../../models";
import { OmniaUxLocalization } from "../../UxModels";
import { MediaPickerProviderComponentProps } from "../../mediapicker";
import { VueComponentBase } from "../../VueComponentBase";
import { SettingsService, WebImageService, MediaPickerService } from "../../../services";
import { MediaProviderBaseLocalization } from "./loc/localize";
import { MediaPickerStore, MultilingualStore } from "../../../stores";
export interface MediaProviderComponentBaseSlots {
bottom?: () => JSX.Element | Array<JSX.Element>;
}
export declare abstract class MediaProviderComponentBase extends VueComponentBase implements IWebComponentInstance, MediaPickerProviderComponentProps {
providerContext: MediaPickerStorageProviderContext;
providerId: GuidValue;
saved: (result: MediaPickerMedia) => void;
closed?: () => void;
imageSettings?: MediaPickerImageSettings;
preSelectedMedia?: MediaPickerVideo;
selectableMediaTypes?: Array<MediaPickerEnums.OmniaMediaTypes>;
setSearchKeyword: (value: string) => void;
onChanged: (state: any) => void;
enableMediaCaption?: boolean;
uxLoc: OmniaUxLocalization;
mediaProviderBaseLoc: MediaProviderBaseLocalization.locInterface;
/** Define method to get data based on search keyword. Null is to hide the search box in media picker. */
onSearch: (searchKeyword: string) => Promise<void>;
protected providerSlots: MediaProviderComponentBaseSlots;
protected onScroll: (payLoad: UIEvent) => void;
protected settingsService: SettingsService<any>;
protected webImageService: WebImageService;
protected omniaContext: OmniaContext;
protected mediaPickerService: MediaPickerService;
protected mediaPickerStore: MediaPickerStore;
protected multilingualStore: MultilingualStore;
private limitedSizeScalingSettings;
private imageTransformComponentInput;
protected imageProviderResult: MediaPickerImageTransformationResult;
private keepOriginalSizeOptionValue;
private selectedScalingOption;
private selectedImageScaling;
private isRetryingScalingImage;
private isShowLoading;
private isShowLoadingOverlay;
private isShowRetryImageScalingDialog;
private isFileTypeIsNotSupportedDialog;
private isShowImageScalingDialog;
private selectedImageResolvablePromise;
private isSaved;
private selectedMediaInformation;
constructor();
protected save(resultToBeSaved: MediaPickerImageTransformationResult | MediaPickerVideo): void;
protected transformImage(imageInfo: ImageInformation): Future<MediaPickerImageTransformationResult>;
protected toggleLoadingUI(show: boolean, loadingStyle?: MediaPickerEnums.LoadingStyle): void;
private setImageTransformInput;
private getImageScalingSettingsKey;
protected onImageTransformResultChanged(transformationResult: MediaPickerImageTransformationResult): void;
private ensureRemoveBase64Format;
private addNewImage;
private initLimitedSizeScalingSettings;
private checkIfFileSizeExceededLimitation;
private handleValidatedImage;
private handleImageScaling;
private retryToScaleImage;
private processLimitedImageFileSize;
private onImageScalingOptionSelected;
private handleSelectedScalingOptionFromDialog;
private resizeImage;
private closeImageScalingDialog;
private renderImageTransformationBottomButtons;
private resolveSavingImagePromise;
private closeRetryImageScalingDialog;
private closeFileTypeIsNotSupportedDialog;
private onProviderContentScroll;
private renderLoading;
private renderCloseButton;
private renderFileTypeIsNotSupportedDialog;
private renderRetryImageScalingDialog;
private renderImageTransformComponent;
private renderImageScalingDialogDialog;
private renderImageScalingDialogs;
protected renderBase(getProviderSlotsFunc: () => Array<JSX.Element> | JSX.Element): VueTsxSupport.JSX.Element;
}