244 lines
5.3 KiB
TypeScript
244 lines
5.3 KiB
TypeScript
/**
|
|
* @file TypeScript typings for ImageVault
|
|
*
|
|
* The types in this file are based on the source maps of the downloaded
|
|
* distribution at https://clientscript.imagevault.se/Installation/ImageVaultInsertMedia
|
|
*
|
|
* They have been clean up and amended to.
|
|
*/
|
|
|
|
declare global {
|
|
interface Window {
|
|
ImageVault: {
|
|
InsertMediaWindow: typeof InsertMediaWindow
|
|
}
|
|
iframeRef: HTMLElement | null
|
|
}
|
|
}
|
|
|
|
export declare class InsertMediaWindow {
|
|
constructor(config: Config, windowOptions: string)
|
|
openImageVault: () => void
|
|
containerWindow: Window | null
|
|
}
|
|
|
|
export interface IInsertSuccessCallback {
|
|
(message: InsertSuccessMessageEvent): void
|
|
}
|
|
|
|
/**
|
|
* Message returned from the Success Callback method
|
|
*/
|
|
export interface InsertSuccessMessageEvent extends MessageEvent {
|
|
/**
|
|
* The response from the ImageVault insert operation
|
|
*/
|
|
data: string
|
|
/**
|
|
* The response from the ImageVault insert operation
|
|
*/
|
|
response: InsertResponse
|
|
}
|
|
|
|
export type MetaData = {
|
|
DefinitionType?: number
|
|
Description: string | null
|
|
LanguageId: null
|
|
MetadataDefinitionId: number
|
|
Name: string
|
|
Value: string
|
|
}
|
|
|
|
export type ImageVaultAsset = {
|
|
id: number
|
|
title: string
|
|
url: string
|
|
dimensions: {
|
|
width: number
|
|
height: number
|
|
aspectRatio: number
|
|
}
|
|
meta: { alt: string | undefined; caption: string | undefined }
|
|
}
|
|
|
|
/**
|
|
* The response from ImageVault when inserting an asset
|
|
*/
|
|
export declare class InsertResponse {
|
|
/**
|
|
* The media item id of the asset
|
|
*/
|
|
Id: number
|
|
/**
|
|
* The id of the vault where the asset resides
|
|
*/
|
|
VaultId: number
|
|
/**
|
|
* The name of the asset
|
|
*/
|
|
Name: string
|
|
/**
|
|
* The conversion selected by the user. Is an array but will only contain one object
|
|
*/
|
|
MediaConversions: MediaConversion[]
|
|
/**
|
|
* Date when the asset was added to ImageVault
|
|
*/
|
|
DateAdded: string
|
|
/**
|
|
* Name of the user that added the asset to ImageVault
|
|
*/
|
|
AddedBy: string
|
|
|
|
Metadata?: MetaData[] | undefined
|
|
}
|
|
|
|
/**
|
|
* Defines a media asset, original or conversion
|
|
*/
|
|
export declare class MediaConversion {
|
|
/**
|
|
* The url to the conversion
|
|
*/
|
|
Url: string
|
|
/**
|
|
* Name of the conversion
|
|
*/
|
|
Name: string
|
|
/**
|
|
* Html representing the conversion
|
|
*/
|
|
Html: string
|
|
/**
|
|
* Content type of the conversion
|
|
*/
|
|
ContentType: string
|
|
/**
|
|
* Width, in pixels, of the conversion
|
|
*/
|
|
Width: number
|
|
/**
|
|
* Height, in pixels, of the conversion
|
|
*/
|
|
Height: number
|
|
/**
|
|
* Aspect ratio of the conversion
|
|
*/
|
|
AspectRatio: number
|
|
/**
|
|
* Width of the selected/requested format
|
|
*/
|
|
FormatWidth: number
|
|
/**
|
|
* Height of the selected/requested format
|
|
*/
|
|
FormatHeight: number
|
|
/**
|
|
* Aspect ratio of the selected/requested format
|
|
*/
|
|
FormatAspectRatio: number
|
|
/**
|
|
* Name of the media format
|
|
*/
|
|
MediaFormatName: string
|
|
/**
|
|
* Id of the selected media format
|
|
*/
|
|
MediaFormatId: number
|
|
}
|
|
/**
|
|
* Defines where an ImageVault asset is used when requesting it
|
|
*/
|
|
export declare class PublishDetails {
|
|
/**
|
|
* The textual description on where an asset is used
|
|
*/
|
|
text: string
|
|
/**
|
|
* The url to where the asset is used
|
|
*/
|
|
url: string
|
|
/**
|
|
* An optional id for grouping usage
|
|
*/
|
|
groupId?: string
|
|
}
|
|
|
|
/**
|
|
* Defines the configuration needed to invoke the insert function
|
|
*/
|
|
export declare class Config {
|
|
/**
|
|
* The url to the ImageVault ui that should be used
|
|
*/
|
|
imageVaultUiUrl: string
|
|
/**
|
|
* [Optional] Origin where the insert function is launched from. Is normally calculated and does not need to be supplied.
|
|
*/
|
|
origin?: string
|
|
/**
|
|
* The language that the ImageVault ui should be displayed in
|
|
*/
|
|
uiLang: string
|
|
/**
|
|
* [Optional] The language for the default content in ImageVault
|
|
*/
|
|
pageLang?: string
|
|
/**
|
|
* The publishingSource where the image should be used. Normally the url for the site.
|
|
*/
|
|
publishingSource: string
|
|
/**
|
|
* If it should be possible to select multiple assets from ImageVault. Default is false.
|
|
*/
|
|
insertMultiple: boolean
|
|
/**
|
|
* The url base that the media assets should use. Supply the url to a cdn.
|
|
*/
|
|
mediaUrlBase: string
|
|
/**
|
|
* The ids of the formats that the selection should result in.
|
|
*/
|
|
formatId: string
|
|
/**
|
|
* [Optional] The comma-separated id-list of additional metadata definitions that the selection should result in.
|
|
*/
|
|
additionalMetadataIds?: string
|
|
/**
|
|
* The publishDetails to use. If supplied, published urls are returned.
|
|
*/
|
|
publishDetails?: PublishDetails
|
|
/**
|
|
* Function that is invoked when the user insert items from ImageVault
|
|
*/
|
|
success: IInsertSuccessCallback
|
|
/**
|
|
* This function is called when the Insert window should be closed
|
|
*/
|
|
close: (result: unknown) => void
|
|
/**
|
|
* [Optional] This function is called whenever an error is encountered
|
|
*/
|
|
error?: (result: unknown, errorMessage: string) => void
|
|
/**
|
|
* [Optional] Listen on this method for debug messages
|
|
*/
|
|
debug?: (result: unknown) => void
|
|
|
|
/**
|
|
* [Optional] Set media url to edit existing media
|
|
*/
|
|
mediaUrl?: string
|
|
/**
|
|
* [Optional] Set media id to show specific media
|
|
*/
|
|
mediaId?: number
|
|
|
|
/**
|
|
* [Optional]
|
|
* @0 (Default) Insert with format or choose format from dropdown in ImageVault UI
|
|
* @1 Same as 0 (default) except that you can edit media in editor before insert
|
|
*/
|
|
insertMode?: number
|
|
}
|