Element
Constructs and updates custom elements and controls
interface ElementBrowserMediaArgs
extends WithVisibility {
assetId: string
element?: BrowserMediaElement
signalSelect?: string
sizeHeight: number
sizeWidth: number
undraggable?: boolean
visibility: boolean
}
type ElementBrowserMediaFunction = (args: ElementBrowserMediaArgs) => Promise<DataOrError<BrowserMediaElement>>
interface ElementEndpointOptions {
request?: string | EndpointRequest | StringRecord
}
interface ElementIconArgs {
cover?: boolean
dimensions: Size | Rect
element?: Element
media: Media
resource: Resource
}
type ElementIconFunction = (args: WithId) => Promise<DataOrError<Element>>
interface ElementIconOptions
extends ElementEndpointOptions {
prefix?: string
record?: StringRecord
request?: string | EndpointRequest | StringRecord
}
interface ElementIconResponse {
imageElement?: HTMLImageElement
imgUrl?: string
string?: string
svgElement?: SvgElement
svgString?: string
}
type ElementImageIconFunction = (args: ElementIconArgs) => Promise<DataOrError<SvgItem>>
type ElementMasherSvgFunction = (args: ElementSvgArgs) => Promise<DataOrError<SvgElement>>
interface ElementMediaIconArgs {
border: number
cover?: boolean
element?: Element
media: Media
size: Size
}
/**
* Retrieves an icon for a client media
* instance.
*/
type ElementMediaIconFunction = (args: ElementMediaIconArgs) => Promise<DataOrError<SvgElement>>
interface ElementPhraseArgs
extends WithId {
id: string
values?: ValueRecord
}
type ElementPhraseFunction = (args: ElementPhraseArgs) => Promise<DataOrError<string>>
interface ElementPhraseOptions
extends ElementEndpointOptions {
record?: StringRecord
request?: string | EndpointRequest | StringRecord
}
interface ElementPlugin
extends Plugable {
browserMedia: ElementBrowserMediaFunction
control: ElementControlFunction
groups: ElementGroupsFunction
icon: ElementIconFunction
imageIcon: ElementImageIconFunction
install: function
masherSvg: ElementMasherSvgFunction
mediaIcon: ElementMediaIconFunction
phrase: ElementPhraseFunction
timelineClip: ElementTimelineClipFunction
timelineFrame: ElementTimelineFrameFunction
timelineIcon: ElementTimelineIconFunction
timelinePreview: ElementTimelinePreviewFunction
timelineTrack: ElementTimelineTrackFunction
}
interface ElementPluginOptions {
groups?: Strings
icon: ElementIconOptions
icons?: string
patch?: SvgElement
phrase: ElementPhraseOptions
phrases?: string
supportsSvgLoad?: boolean
}
interface ElementSvgArgs {
element?: SvgElement
}
type ElementTuple = ArrayOf2<string, DataOrError<Element>>
/** @implements ElementPlugin */
class ClientElementPlugin {
browserMedia: ElementBrowserMediaFunction
control: ElementControlFunction
groups: ElementGroupsFunction
icon: ElementIconFunction
imageIcon: ElementImageIconFunction
install: function
masherSvg: ElementMasherSvgFunction
mediaIcon: ElementMediaIconFunction
phrase: ElementPhraseFunction
timelineClip: ElementTimelineClipFunction
timelineFrame: ElementTimelineFrameFunction
timelineIcon: ElementTimelineIconFunction
timelinePreview: ElementTimelinePreviewFunction
timelineTrack: ElementTimelineTrackFunction
}
/** @implements ElementPlugin */
class ElementPluginClass {
browserMedia: ElementBrowserMediaFunction
control: ElementControlFunction
groups: ElementGroupsFunction
icon: ElementIconFunction
imageIcon: ElementImageIconFunction
install: function
masherSvg: ElementMasherSvgFunction
mediaIcon: ElementMediaIconFunction
mediaMasher: MediaMasher
phrase: ElementPhraseFunction
timelineClip: ElementTimelineClipFunction
timelineFrame: ElementTimelineFrameFunction
timelineIcon: ElementTimelineIconFunction
timelinePreview: ElementTimelinePreviewFunction
timelineTrack: ElementTimelineTrackFunction
}