version bump

This commit is contained in:
Henning Dieterichs
2024-01-04 19:18:26 +01:00
parent 21fa200446
commit 9e6dc9a5ad
13 changed files with 66 additions and 58 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "@hediet/visualization-core",
"description": "Provides infrastructure to find registered visualizations for given json data",
"version": "0.3.0",
"version": "0.3.1",
"license": "MIT",
"homepage": "https://github.com/hediet/visualization",
"repository": {

View File

@@ -64,7 +64,7 @@ export function createReactVisualization(
args: ReactVisualizationArgs,
renderReactNode: (args: ReactVisualizationRenderArgs) => React.ReactChild
) {
return new ReactVisualization(sourceVisualizer, args, (options) => {
return new ReactVisualization(sourceVisualizer, args, options => {
const deferred = new Deferred();
return {
node: (
@@ -86,7 +86,7 @@ class ComponentWithOnMount extends React.Component<{
this.props.onDidMount();
}
render() {
render(): React.ReactNode {
return this.props.child;
}
}
@@ -94,7 +94,9 @@ class ComponentWithOnMount extends React.Component<{
export function createLazyReactVisualization(
sourceVisualizer: Visualizer,
args: ReactVisualizationArgs,
renderReactNode: (args: ReactVisualizationRenderArgs) => {
renderReactNode: (
args: ReactVisualizationRenderArgs
) => {
node: React.ReactChild;
ready: Promise<void>;
}

View File

@@ -1,6 +1,6 @@
import { Visualizer, Visualization, VisualizationId } from "./Visualizer";
import { VisualizationData } from "./VisualizationData";
import { JSONValue, sUnionMany } from "@hediet/semantic-json";
import { JSONValue, Serializer, sUnionMany } from "@hediet/semantic-json";
import { ObservableMap } from "mobx";
export class VisualizationFactory {
@@ -10,13 +10,17 @@ export class VisualizationFactory {
Visualizer
>();
public getSerializer() {
public getSerializer(): Serializer<[Visualization<any>, Visualizer][]> {
return this._getSerializer(this.visualizers);
}
private _getSerializer(map: ObservableMap<string, Visualizer>) {
private _getSerializer(map: ObservableMap<string, Visualizer>): Serializer<[Visualization<any>, Visualizer][]> {
return sUnionMany(
[...map.values()].map((v) => v.serializer.asSerializer()),
[...map.values()].map((v) => v.serializer.asSerializer().refine<[Visualization, Visualizer]>({
canSerialize: (v): v is [Visualization, Visualizer] => false,
fromIntermediate: value => [value, v],
toIntermediate: () => { throw new Error("not supported"); }
})),
{ processingStrategy: "all" }
);
}
@@ -53,15 +57,15 @@ export class VisualizationFactory {
const hiddenResult = u2.deserialize(data as unknown as JSONValue);
allVisualizations.push(...(hiddenResult.value || []));
allVisualizations.sort((a, b) => b.priority - a.priority);
allVisualizations.sort(([a], [b]) => b.priority - a.priority);
let bestVisualization: Visualization | undefined = allVisualizations[0];
if (bestVisualization && bestVisualization.priority < 0) {
let bestVisualization: [Visualization, Visualizer] | undefined = allVisualizations[0];
if (bestVisualization && bestVisualization[0].priority < 0) {
bestVisualization = undefined;
}
if (preferredVisualization) {
const preferred = allVisualizations.find(
(vis) => vis.id === preferredVisualization
([vis]) => vis.id === preferredVisualization
);
if (preferred) {
bestVisualization = preferred;
@@ -69,8 +73,9 @@ export class VisualizationFactory {
}
return {
bestVisualization,
allVisualizations,
bestVisualization: bestVisualization ? bestVisualization[0] : undefined,
bestVisualizationVisualizer: bestVisualization ? bestVisualization[1] : undefined,
allVisualizations: allVisualizations.map(v => v[0]),
visualizationDataErrors: [],
};
}
@@ -78,6 +83,7 @@ export class VisualizationFactory {
export interface Visualizations {
bestVisualization: Visualization | undefined;
bestVisualizationVisualizer: Visualizer | undefined;
allVisualizations: Visualization[];
visualizationDataErrors: VisualizationDataError[];
}