@itwin/presentation-frontend
Version:
Frontend of iModel.js Presentation library
111 lines • 6.33 kB
TypeScript
/** @packageDocumentation
* @module Core
*/
import { IConnectivityInformationProvider } from "../ConnectivityInformationProvider.js";
import { FavoritePropertiesOrderInfo, PropertyFullName } from "./FavoritePropertiesManager.js";
/** @internal */
export declare const IMODELJS_PRESENTATION_SETTING_NAMESPACE = "imodeljs.presentation";
/** @internal */
export declare const DEPRECATED_PROPERTIES_SETTING_NAMESPACE = "Properties";
/** @internal */
export declare const FAVORITE_PROPERTIES_SETTING_NAME = "FavoriteProperties";
/** @internal */
export declare const FAVORITE_PROPERTIES_ORDER_INFO_SETTING_NAME = "FavoritePropertiesOrderInfo";
/**
* Stores user preferences for favorite properties.
* @public
*/
export interface IFavoritePropertiesStorage {
/** Load Favorite properties from user-specific settings.
* @param iTwinId ITwin Id, if the settings is specific to a iTwin, otherwise undefined.
* @param imodelId iModel Id, if the setting is specific to an iModel, otherwise undefined. The iTwinId must be specified if iModelId is specified.
*/
loadProperties(iTwinId?: string, imodelId?: string): Promise<Set<PropertyFullName> | undefined>;
/** Saves Favorite properties to user-specific settings.
* @param properties Favorite properties to save.
* @param iTwinId iTwin Id, if the settings is specific to a iTwin, otherwise undefined.
* @param iModelId iModel Id, if the setting is specific to an iModel, otherwise undefined. The iTwinId must be specified if iModelId is specified.
*/
saveProperties(properties: Set<PropertyFullName>, iTwinId?: string, imodelId?: string): Promise<void>;
/** Load array of FavoritePropertiesOrderInfo from user-specific settings.
* Setting is specific to an iModel.
* @param iTwinId iTwin Id.
* @param imodelId iModel Id.
*/
loadPropertiesOrder(iTwinId: string | undefined, imodelId: string): Promise<FavoritePropertiesOrderInfo[] | undefined>;
/** Saves FavoritePropertiesOrderInfo array to user-specific settings.
* Setting is specific to an iModel.
* @param orderInfo Array of FavoritePropertiesOrderInfo to save.
* @param iTwinId iTwin Id.
* @param imodelId iModel Id.
*/
savePropertiesOrder(orderInfos: FavoritePropertiesOrderInfo[], iTwinId: string | undefined, imodelId: string): Promise<void>;
}
/**
* Available implementations of [[IFavoritePropertiesStorage]].
* @public
*/
export declare enum DefaultFavoritePropertiesStorageTypes {
/** A no-op storage that doesn't store or return anything. Used for cases when favorite properties aren't used by the application. */
Noop = 0,
/** A storage that stores favorite properties information in a browser local storage. */
BrowserLocalStorage = 1,
/** A storage that stores favorite properties in a user preferences storage (see [[IModelApp.userPreferences]]). */
UserPreferencesStorage = 2
}
/**
* A factory method to create one of the available [[IFavoritePropertiesStorage]] implementations.
* @public
*/
export declare function createFavoritePropertiesStorage(type: DefaultFavoritePropertiesStorageTypes): IFavoritePropertiesStorage;
/**
* @internal
*/
export declare class IModelAppFavoritePropertiesStorage implements IFavoritePropertiesStorage {
private ensureIsSignedIn;
loadProperties(iTwinId?: string, imodelId?: string): Promise<Set<PropertyFullName> | undefined>;
saveProperties(properties: Set<PropertyFullName>, iTwinId?: string, imodelId?: string): Promise<void>;
loadPropertiesOrder(iTwinId: string | undefined, imodelId: string): Promise<FavoritePropertiesOrderInfo[] | undefined>;
savePropertiesOrder(orderInfos: FavoritePropertiesOrderInfo[], iTwinId: string | undefined, imodelId: string): Promise<void>;
}
/** @internal */
export interface OfflineCachingFavoritePropertiesStorageProps {
impl: IFavoritePropertiesStorage;
connectivityInfo?: IConnectivityInformationProvider;
}
/** @internal */
export declare class OfflineCachingFavoritePropertiesStorage implements IFavoritePropertiesStorage, Disposable {
private _connectivityInfo;
private _impl;
private _propertiesOfflineCache;
private _propertiesOrderOfflineCache;
constructor(props: OfflineCachingFavoritePropertiesStorageProps);
[Symbol.dispose](): void;
get impl(): IFavoritePropertiesStorage;
private onConnectivityStatusChanged;
loadProperties(iTwinId?: string, imodelId?: string): Promise<Set<string> | undefined>;
saveProperties(properties: Set<PropertyFullName>, iTwinId?: string, imodelId?: string): Promise<void>;
loadPropertiesOrder(iTwinId: string | undefined, imodelId: string): Promise<FavoritePropertiesOrderInfo[] | undefined>;
savePropertiesOrder(orderInfos: FavoritePropertiesOrderInfo[], iTwinId: string | undefined, imodelId: string): Promise<void>;
}
/** @internal */
export declare class NoopFavoritePropertiesStorage implements IFavoritePropertiesStorage {
loadProperties(_iTwinId?: string, _imodelId?: string): Promise<Set<PropertyFullName> | undefined>;
saveProperties(_properties: Set<PropertyFullName>, _iTwinId?: string, _imodelId?: string): Promise<void>;
loadPropertiesOrder(_iTwinId: string | undefined, _imodelId: string): Promise<FavoritePropertiesOrderInfo[] | undefined>;
savePropertiesOrder(_orderInfos: FavoritePropertiesOrderInfo[], _iTwinId: string | undefined, _imodelId: string): Promise<void>;
}
/** @internal */
export declare class BrowserLocalFavoritePropertiesStorage implements IFavoritePropertiesStorage {
private _localStorage;
constructor(props?: {
localStorage?: Storage;
});
createFavoritesSettingItemKey(iTwinId?: string, imodelId?: string): string;
createOrderSettingItemKey(iTwinId?: string, imodelId?: string): string;
loadProperties(iTwinId?: string, imodelId?: string): Promise<Set<PropertyFullName> | undefined>;
saveProperties(properties: Set<PropertyFullName>, iTwinId?: string, imodelId?: string): Promise<void>;
loadPropertiesOrder(iTwinId: string | undefined, imodelId: string): Promise<FavoritePropertiesOrderInfo[] | undefined>;
savePropertiesOrder(orderInfos: FavoritePropertiesOrderInfo[], iTwinId: string | undefined, imodelId: string): Promise<void>;
}
//# sourceMappingURL=FavoritePropertiesStorage.d.ts.map