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
}