AbstractThe artifact version to preview. Set by the resolver before the component renders.
Protected ReadonlyfileShared service used by both previews and full viewers to fetch file-mode download URLs.
True until resolveContentUrl has settled, one way or the other.
Owned here, not per subclass, so that every media preview has a loading state by
construction. Each preview used to carry its own copy of this flag — or, before that, no
loading branch at all, which rendered nothing while the URL resolved and made a generated
image read as "never arrived". resolveContentUrl is async even for inline content, and
for ContentMode === 'File' it is a network round trip before the media fetch even starts.
If specified, this provider will be used for communication and for all metadata purposes. By default, if not provided, the Metadata and RunView classes are used for this and the default GraphQLDataProvider is used which is connected to the same back-end MJAPI instance as the Metadata and RunView classes. If you want to have this component connect to a different MJAPI back-end, create an instance of a ProviderBase sub-class like GraphQLDataProvider/etc, and configure it as appropriate to connect to the MJAPI back-end you want to use, and then pass it in here.
StaticɵdirStaticɵfacReturns either the default Metadata provider or the one specified in the Provider property, if it was specified
Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified
Returns either the default RunView provider or the one specified in the Provider property, if it was specified
ProtectedresolveResolve a URL to bind to a media element (<img>, <video>, <audio>):
ContentMode === 'File' → fetch a pre-authenticated download URL from MJStorage.'Text') → Content is already a data:<mime>;base64,… URI; bind directly.Returns null when there is no usable content (caller should show its own empty/error state).
Clears isLoading on every exit, including a throw, so a subclass cannot leave the
indicator spinning beside an error.
Thin abstract base for inline artifact PREVIEW components.
Deliberately does NOT extend the heavy BaseArtifactViewerPluginComponent — previews are lightweight, read-only, and have no toolbar / feedback / tabs / snapshot contract. They render a compact representation of the artifact inside a conversation message card.
Content resolution (inline data-URL vs. file-storage download URL) is shared with the full viewers via the injected ArtifactFileService, so previews and viewers load bytes the same way. Subclasses call resolveContentUrl in their
ngOnInit.