@dxos/plugin-explorer 0.8.4-main.406dc2a → 0.8.4-main.548089c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{ExplorerContainer-6SHZJ6AK.mjs → ExplorerContainer-NOLLVUTE.mjs} +3 -3
- package/dist/lib/browser/{ExplorerContainer-6SHZJ6AK.mjs.map → ExplorerContainer-NOLLVUTE.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-NXGP6NTP.mjs → chunk-6BVXZQPP.mjs} +10 -25
- package/dist/lib/browser/{chunk-NXGP6NTP.mjs.map → chunk-6BVXZQPP.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-MOM5KCKC.mjs → chunk-ARBGXQFH.mjs} +4 -256
- package/dist/lib/browser/{chunk-MOM5KCKC.mjs.map → chunk-ARBGXQFH.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-BZ65T5M3.mjs → chunk-JDSUIUNR.mjs} +7 -6
- package/dist/lib/browser/chunk-JDSUIUNR.mjs.map +7 -0
- package/dist/lib/browser/{chunk-2DGFNLRO.mjs → chunk-UBHZGWZQ.mjs} +7 -2
- package/dist/lib/browser/chunk-UBHZGWZQ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +8 -7
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-K57C3LIX.mjs → intent-resolver-YS5LZC3A.mjs} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/meta.mjs +1 -1
- package/dist/lib/browser/{react-surface-OPBND5W3.mjs → react-surface-BVTCOVLK.mjs} +7 -7
- package/dist/lib/browser/react-surface-BVTCOVLK.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{ExplorerContainer-FRTDXZI5.mjs → ExplorerContainer-N3S5KSUX.mjs} +3 -3
- package/dist/lib/node-esm/{ExplorerContainer-FRTDXZI5.mjs.map → ExplorerContainer-N3S5KSUX.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-6JACZE7E.mjs → chunk-CRSVAZNA.mjs} +10 -25
- package/dist/lib/node-esm/{chunk-6JACZE7E.mjs.map → chunk-CRSVAZNA.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-ES6AOMCY.mjs → chunk-MS72BATS.mjs} +7 -6
- package/dist/lib/node-esm/chunk-MS72BATS.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ZCV4U7LT.mjs → chunk-NPIP4VEH.mjs} +4 -256
- package/dist/lib/node-esm/{chunk-ZCV4U7LT.mjs.map → chunk-NPIP4VEH.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-PX6LHR2N.mjs → chunk-UXZM5VJB.mjs} +7 -2
- package/dist/lib/node-esm/chunk-UXZM5VJB.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +8 -7
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-BLPPTTEY.mjs → intent-resolver-VCEC67WX.mjs} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/meta.mjs +1 -1
- package/dist/lib/node-esm/{react-surface-HCKQSHKJ.mjs → react-surface-4HFEX52O.mjs} +7 -7
- package/dist/lib/node-esm/react-surface-4HFEX52O.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/ExplorerPlugin.d.ts.map +1 -1
- package/dist/types/src/components/ExplorerContainer.d.ts +2 -2
- package/dist/types/src/components/ExplorerContainer.d.ts.map +1 -1
- package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts.map +1 -1
- package/dist/types/src/components/Graph/ForceGraph.stories.d.ts.map +1 -1
- package/dist/types/src/components/Graph/testing.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/types/ExplorerAction.d.ts +2 -2
- package/dist/types/src/types/ExplorerAction.d.ts.map +1 -1
- package/dist/types/src/types/Graph.d.ts +3 -3
- package/dist/types/src/types/Graph.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -29
- package/src/ExplorerPlugin.tsx +1 -0
- package/src/capabilities/react-surface.tsx +3 -3
- package/src/components/ExplorerContainer.tsx +3 -3
- package/src/components/Graph/D3ForceGraph.stories.tsx +8 -7
- package/src/components/Graph/ForceGraph.stories.tsx +8 -7
- package/src/components/Graph/testing.ts +6 -6
- package/src/components/Tree/types/tree.test.ts +2 -2
- package/src/components/index.ts +3 -3
- package/src/meta.ts +6 -1
- package/src/types/ExplorerAction.ts +3 -2
- package/src/types/Graph.ts +4 -3
- package/dist/lib/browser/chunk-2DGFNLRO.mjs.map +0 -7
- package/dist/lib/browser/chunk-BZ65T5M3.mjs.map +0 -7
- package/dist/lib/browser/react-surface-OPBND5W3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ES6AOMCY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PX6LHR2N.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-HCKQSHKJ.mjs.map +0 -7
- /package/dist/lib/browser/{intent-resolver-K57C3LIX.mjs.map → intent-resolver-YS5LZC3A.mjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-BLPPTTEY.mjs.map → intent-resolver-VCEC67WX.mjs.map} +0 -0
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/Graph/D3ForceGraph.tsx", "../../../src/components/Graph/ForceGraph.tsx", "../../../src/components/Graph/adapter.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { SelectionModel } from '@dxos/graph';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport {\n type GraphController,\n GraphForceProjector,\n type GraphLayoutNode,\n type GraphProps,\n SVG,\n type SVGContext,\n} from '@dxos/react-ui-graph';\nimport { getHashStyles } from '@dxos/react-ui-theme';\nimport { type SpaceGraphEdge, type SpaceGraphModel, type SpaceGraphNode } from '@dxos/schema';\n\nimport '@dxos/react-ui-graph/styles/graph.css';\n\nexport type D3ForceGraphProps = ThemedClassName<\n {\n model?: SpaceGraphModel;\n match?: RegExp;\n selection?: SelectionModel;\n grid?: boolean;\n } & Pick<GraphProps, 'drag'>\n>;\n\nexport const D3ForceGraph = ({ classNames, model, selection: _selection, grid, ...props }: D3ForceGraphProps) => {\n const context = useRef<SVGContext>(null);\n const projector = useMemo<GraphForceProjector | undefined>(() => {\n if (context.current) {\n return new GraphForceProjector(context.current, {\n attributes: {\n linkForce: (edge) => {\n // TODO(burdon): Check type (currently assumes Employee property).\n // Edge shouldn't contribute to force if it's not active.\n return edge.data?.object?.active !== false;\n },\n },\n forces: {\n point: {\n strength: 0.01,\n },\n },\n });\n }\n }, [context.current]);\n\n const graph = useRef<GraphController>(null);\n const selection = useMemo(() => _selection ?? new SelectionModel(), [_selection]);\n useEffect(() => graph.current?.repaint(), [selection.selected.value]);\n\n const handleSelect = useCallback<NonNullable<GraphProps['onSelect']>>(\n (node) => {\n if (selection.contains(node.id)) {\n selection.remove(node.id);\n } else {\n selection.add(node.id);\n }\n },\n [selection],\n );\n\n return (\n <SVG.Root ref={context} classNames={classNames}>\n <SVG.Markers />\n {grid && <SVG.Grid axis />}\n <SVG.Zoom extent={[1 / 2, 2]}>\n <SVG.Graph<SpaceGraphNode, SpaceGraphEdge>\n {...props}\n ref={graph}\n model={model}\n projector={projector}\n labels={{\n text: (node) => {\n return node.data?.data.label ?? node.id;\n },\n }}\n attributes={{\n node: (node: GraphLayoutNode<SpaceGraphNode>) => {\n const obj = node.data?.data.object;\n return {\n data: {\n color: getHashStyles(obj && Obj.getTypename(obj))?.hue,\n },\n classes: {\n 'dx-selected': selection.contains(node.id),\n },\n };\n },\n }}\n onSelect={handleSelect}\n />\n </SVG.Zoom>\n </SVG.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { forceLink, forceManyBody } from 'd3';\nimport NativeForceGraph from 'force-graph';\nimport React, { type FC, useEffect, useRef, useState } from 'react';\nimport { useResizeDetector } from 'react-resize-detector';\n\nimport { type SearchResult, filterObjectsSync } from '@dxos/plugin-search';\nimport { type SpaceGraphModel } from '@dxos/schema';\n\nimport { GraphAdapter } from './adapter';\n\nexport type ForceGraphProps = {\n model?: SpaceGraphModel;\n match?: RegExp;\n};\n\nexport const ForceGraph: FC<ForceGraphProps> = ({ model, match }) => {\n const { ref, width, height } = useResizeDetector({ refreshRate: 200 });\n const rootRef = useRef<HTMLDivElement>(null);\n const forceGraph = useRef<NativeForceGraph>(null);\n\n const filteredRef = useRef<SearchResult[]>([]);\n filteredRef.current = filterObjectsSync(model?.objects ?? [], match);\n\n const [data, setData] = useState<GraphAdapter>();\n useEffect(() => {\n return model?.subscribe((model) => {\n setData(new GraphAdapter(model.graph));\n });\n }, [model]);\n\n useEffect(() => {\n if (rootRef.current) {\n // https://github.com/vasturiano/force-graph\n // https://github.com/vasturiano/3d-force-graph\n forceGraph.current = new NativeForceGraph(rootRef.current)\n // https://github.com/vasturiano/force-graph?tab=readme-ov-file#node-styling\n .nodeRelSize(6)\n .nodeLabel((node: any) => (node.type === 'schema' ? node.data.typename : (node.data.label ?? node.id)))\n .nodeAutoColorBy((node: any) => (node.type === 'schema' ? 'schema' : node.data.typename))\n\n // https://github.com/vasturiano/force-graph?tab=readme-ov-file#link-styling\n .linkAutoColorBy((link: any) => link.type);\n }\n\n return () => {\n forceGraph.current?.pauseAnimation().graphData({ nodes: [], links: [] });\n forceGraph.current = null;\n };\n }, []);\n\n useEffect(() => {\n if (!data || !width || !height || !forceGraph.current) {\n return;\n }\n\n // https://github.com/vasturiano/force-graph?tab=readme-ov-file#container-layout\n forceGraph.current\n .pauseAnimation()\n .width(width)\n .height(height)\n .onEngineStop(() => {\n handleZoomToFit();\n })\n .onNodeClick((node: any) => {\n forceGraph.current?.emitParticle(node);\n })\n\n // https://github.com/vasturiano/force-graph?tab=readme-ov-file#force-engine-d3-force-configuration\n // .d3Force('center', forceCenter().strength(0.9))\n .d3Force('link', forceLink().distance(160).strength(0.5))\n .d3Force('charge', forceManyBody().strength(-30))\n\n .graphData(data)\n .warmupTicks(100)\n .cooldownTime(1_000)\n .resumeAnimation();\n }, [data, width, height, forceGraph.current]);\n\n const handleZoomToFit = () => {\n forceGraph.current?.zoomToFit(400, 40);\n };\n\n return (\n <div ref={ref} className='relative grow' onClick={handleZoomToFit}>\n <div ref={rootRef} className='absolute inset-0' />\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Graph } from '@dxos/graph';\n\nexport type GraphNode = {\n id?: string;\n};\n\nexport type GraphLink = {\n source?: string;\n target?: string;\n};\n\nexport type GraphData = {\n nodes: GraphNode[];\n links: GraphLink[];\n};\n\n/**\n * Map common graph to force-graph format.\n */\nexport class GraphAdapter implements GraphData {\n private readonly _nodes: GraphNode[] = [];\n private readonly _links: GraphLink[] = [];\n\n constructor(private readonly graph: Graph) {\n this._nodes = graph.nodes.map((node) => ({\n id: node.id,\n type: node.type,\n data: node.data,\n }));\n\n this._links = graph.edges.map((edge) => ({\n type: edge.type,\n source: edge.source,\n target: edge.target,\n data: edge.data,\n }));\n }\n\n get nodes() {\n return this._nodes;\n }\n\n get links() {\n return this._links;\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;AAIA,OAAOA,SAASC,aAAaC,WAAWC,SAASC,cAAc;AAE/D,SAASC,WAAW;AACpB,SAASC,sBAAsB;AAE/B,SAEEC,qBAGAC,WAEK;AACP,SAASC,qBAAqB;AAG9B,OAAO;AAWA,IAAMC,eAAe,CAAC,EAAEC,YAAYC,OAAOC,WAAWC,YAAYC,MAAM,GAAGC,MAAAA,MAA0B;;;AAC1G,UAAMC,UAAUC,OAAmB,IAAA;AACnC,UAAMC,YAAYC,QAAyC,MAAA;AACzD,UAAIH,QAAQI,SAAS;AACnB,eAAO,IAAIC,oBAAoBL,QAAQI,SAAS;UAC9CE,YAAY;YACVC,WAAW,CAACC,SAAAA;AAGV,qBAAOA,KAAKC,MAAMC,QAAQC,WAAW;YACvC;UACF;UACAC,QAAQ;YACNC,OAAO;cACLC,UAAU;YACZ;UACF;QACF,CAAA;MACF;IACF,GAAG;MAACd,QAAQI;KAAQ;AAEpB,UAAMW,QAAQd,OAAwB,IAAA;AACtC,UAAML,YAAYO,QAAQ,MAAMN,cAAc,IAAImB,eAAAA,GAAkB;MAACnB;KAAW;AAChFoB,cAAU,MAAMF,MAAMX,SAASc,QAAAA,GAAW;MAACtB,UAAUuB,SAASC;KAAM;AAEpE,UAAMC,eAAeC,YACnB,CAACC,SAAAA;AACC,UAAI3B,UAAU4B,SAASD,KAAKE,EAAE,GAAG;AAC/B7B,kBAAU8B,OAAOH,KAAKE,EAAE;MAC1B,OAAO;AACL7B,kBAAU+B,IAAIJ,KAAKE,EAAE;MACvB;IACF,GACA;MAAC7B;KAAU;AAGb,WACE,sBAAA,cAACgC,IAAIC,MAAI;MAACC,KAAK9B;MAASN;OACtB,sBAAA,cAACkC,IAAIG,SAAO,IAAA,GACXjC,QAAQ,sBAAA,cAAC8B,IAAII,MAAI;MAACC,MAAAA;QACnB,sBAAA,cAACL,IAAIM,MAAI;MAACC,QAAQ;QAAC,IAAI;QAAG;;OACxB,sBAAA,cAACP,IAAIQ,OAAK;MACP,GAAGrC;MACJ+B,KAAKf;MACLpB;MACAO;MACAmC,QAAQ;QACNC,MAAM,CAACf,SAAAA;AACL,iBAAOA,KAAKd,MAAMA,KAAK8B,SAAShB,KAAKE;QACvC;MACF;MACAnB,YAAY;QACViB,MAAM,CAACA,SAAAA;AACL,gBAAMiB,MAAMjB,KAAKd,MAAMA,KAAKC;AAC5B,iBAAO;YACLD,MAAM;cACJgC,OAAOC,cAAcF,OAAOG,IAAIC,YAAYJ,GAAAA,CAAAA,GAAOK;YACrD;YACAC,SAAS;cACP,eAAelD,UAAU4B,SAASD,KAAKE,EAAE;YAC3C;UACF;QACF;MACF;MACAsB,UAAU1B;;;;;AAKpB;;;;AChGA,SAAS2B,WAAWC,qBAAqB;AACzC,OAAOC,sBAAsB;AAC7B,OAAOC,UAAkBC,aAAAA,YAAWC,UAAAA,SAAQC,gBAAgB;AAC5D,SAASC,yBAAyB;AAElC,SAA4BC,yBAAyB
|
|
6
|
-
"names": ["React", "useCallback", "useEffect", "useMemo", "useRef", "Obj", "SelectionModel", "GraphForceProjector", "SVG", "getHashStyles", "D3ForceGraph", "classNames", "model", "selection", "_selection", "grid", "props", "context", "useRef", "projector", "useMemo", "current", "GraphForceProjector", "attributes", "linkForce", "edge", "data", "object", "active", "forces", "point", "strength", "graph", "SelectionModel", "useEffect", "repaint", "selected", "value", "handleSelect", "useCallback", "node", "contains", "id", "remove", "add", "SVG", "Root", "ref", "Markers", "Grid", "axis", "Zoom", "extent", "Graph", "labels", "text", "label", "obj", "color", "getHashStyles", "Obj", "getTypename", "hue", "classes", "onSelect", "forceLink", "forceManyBody", "NativeForceGraph", "React", "useEffect", "useRef", "useState", "useResizeDetector", "filterObjectsSync", "GraphAdapter", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useCallback", "useEffect", "useMemo", "useRef", "Obj", "SelectionModel", "GraphForceProjector", "SVG", "getHashStyles", "D3ForceGraph", "classNames", "model", "selection", "_selection", "grid", "props", "context", "useRef", "projector", "useMemo", "current", "GraphForceProjector", "attributes", "linkForce", "edge", "data", "object", "active", "forces", "point", "strength", "graph", "SelectionModel", "useEffect", "repaint", "selected", "value", "handleSelect", "useCallback", "node", "contains", "id", "remove", "add", "SVG", "Root", "ref", "Markers", "Grid", "axis", "Zoom", "extent", "Graph", "labels", "text", "label", "obj", "color", "getHashStyles", "Obj", "getTypename", "hue", "classes", "onSelect", "forceLink", "forceManyBody", "NativeForceGraph", "React", "useEffect", "useRef", "useState", "useResizeDetector", "filterObjectsSync", "GraphAdapter", "_nodes", "_links", "graph", "nodes", "map", "node", "id", "type", "data", "edges", "edge", "source", "target", "links", "ForceGraph", "model", "match", "ref", "width", "height", "useResizeDetector", "refreshRate", "rootRef", "useRef", "forceGraph", "filteredRef", "current", "filterObjectsSync", "objects", "data", "setData", "useState", "useEffect", "subscribe", "GraphAdapter", "graph", "NativeForceGraph", "nodeRelSize", "nodeLabel", "node", "type", "typename", "label", "id", "nodeAutoColorBy", "linkAutoColorBy", "link", "pauseAnimation", "graphData", "nodes", "links", "onEngineStop", "handleZoomToFit", "onNodeClick", "emitParticle", "d3Force", "forceLink", "distance", "strength", "forceManyBody", "warmupTicks", "cooldownTime", "resumeAnimation", "zoomToFit", "React", "div", "className", "onClick"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
meta
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-UXZM5VJB.mjs";
|
|
5
5
|
import {
|
|
6
6
|
__export
|
|
7
7
|
} from "./chunk-HSLMI22Q.mjs";
|
|
@@ -14,10 +14,11 @@ __export(ExplorerAction_exports, {
|
|
|
14
14
|
});
|
|
15
15
|
import * as Schema from "effect/Schema";
|
|
16
16
|
import { SpaceSchema } from "@dxos/react-client/echo";
|
|
17
|
-
import {
|
|
17
|
+
import { TypenameAnnotationId, View } from "@dxos/schema";
|
|
18
18
|
var EXPLORER_ACTION = `${meta.id}/action`;
|
|
19
19
|
var GraphProps = Schema.Struct({
|
|
20
20
|
name: Schema.optional(Schema.String),
|
|
21
|
+
// TODO(wittjosiah): This should be a query input instead.
|
|
21
22
|
typename: Schema.String.annotations({
|
|
22
23
|
[TypenameAnnotationId]: [
|
|
23
24
|
"used-static",
|
|
@@ -31,7 +32,7 @@ var CreateGraph = class extends Schema.TaggedClass()(`${EXPLORER_ACTION}/create-
|
|
|
31
32
|
space: SpaceSchema
|
|
32
33
|
}).pipe(Schema.extend(GraphProps)),
|
|
33
34
|
output: Schema.Struct({
|
|
34
|
-
object:
|
|
35
|
+
object: View.View
|
|
35
36
|
})
|
|
36
37
|
}) {
|
|
37
38
|
};
|
|
@@ -46,7 +47,7 @@ __export(Graph_exports, {
|
|
|
46
47
|
import * as Schema2 from "effect/Schema";
|
|
47
48
|
import { Filter, Obj, Query, QueryAST, Type } from "@dxos/echo";
|
|
48
49
|
import { LabelAnnotation, ViewAnnotation } from "@dxos/echo/internal";
|
|
49
|
-
import {
|
|
50
|
+
import { View as View2 } from "@dxos/schema";
|
|
50
51
|
var Graph = Schema2.Struct({
|
|
51
52
|
name: Schema2.optional(Schema2.String),
|
|
52
53
|
query: Schema2.Struct({
|
|
@@ -67,7 +68,7 @@ var make = (props = {
|
|
|
67
68
|
}) => Obj.make(Graph, props);
|
|
68
69
|
var makeView = async ({ presentation, ...props }) => {
|
|
69
70
|
const graph = make(presentation);
|
|
70
|
-
return
|
|
71
|
+
return View2.makeFromSpace({
|
|
71
72
|
...props,
|
|
72
73
|
presentation: graph
|
|
73
74
|
});
|
|
@@ -77,4 +78,4 @@ export {
|
|
|
77
78
|
ExplorerAction_exports,
|
|
78
79
|
Graph_exports
|
|
79
80
|
};
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-MS72BATS.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/ExplorerAction.ts", "../../../src/types/Graph.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { TypenameAnnotationId, View } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\nconst EXPLORER_ACTION = `${meta.id}/action`;\n\nexport const GraphProps = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): This should be a query input instead.\n typename: Schema.String.annotations({\n [TypenameAnnotationId]: ['used-static', 'dynamic'],\n title: 'Select graph record type',\n }),\n});\n\nexport class CreateGraph extends Schema.TaggedClass<CreateGraph>()(`${EXPLORER_ACTION}/create-graph`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }).pipe(Schema.extend(GraphProps)),\n output: Schema.Struct({\n object: View.View,\n }),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Filter, Obj, Query, QueryAST, Type } from '@dxos/echo';\nimport { LabelAnnotation, ViewAnnotation } from '@dxos/echo/internal';\nimport { View } from '@dxos/schema';\n\nexport const Graph = Schema.Struct({\n name: Schema.optional(Schema.String),\n query: Schema.Struct({\n raw: Schema.optional(Schema.String),\n ast: QueryAST.Query,\n }).pipe(Schema.mutable),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Graph',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n ViewAnnotation.set(true),\n);\n\nexport type Graph = Schema.Schema.Type<typeof Graph>;\n\n/**\n * Make a graph object.\n */\nexport const make = (\n props: Obj.MakeProps<typeof Graph> = { query: { raw: '', ast: Query.select(Filter.nothing()).ast } },\n) => Obj.make(Graph, props);\n\ntype MakeViewProps = Omit<View.MakeFromSpaceProps, 'presentation'> & {\n presentation?: Omit<Obj.MakeProps<typeof Graph>, 'name'>;\n};\n\n/**\n * Make a graph as a view of a data set.\n */\n// TODO(burdon): Move to @dxos/schema.\nexport const makeView = async ({ presentation, ...props }: MakeViewProps) => {\n const graph = make(presentation);\n return View.makeFromSpace({ ...props, presentation: graph });\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAAA;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,mBAAmB;AAC5B,SAASC,sBAAsBC,YAAY;AAI3C,IAAMC,kBAAkB,GAAGC,KAAKC,EAAE;AAE3B,IAAMC,aAAoBC,cAAO;EACtCC,MAAaC,gBAAgBC,aAAM;;EAEnCC,UAAiBD,cAAOE,YAAY;IAClC,CAACC,oBAAAA,GAAuB;MAAC;MAAe;;IACxCC,OAAO;EACT,CAAA;AACF,CAAA;AAEO,IAAMC,cAAN,cAAiCC,mBAAW,EAAgB,GAAGb,eAAAA,iBAAgC;EACpGc,OAAcV,cAAO;IACnBW,OAAOC;EACT,CAAA,EAAGC,KAAYC,cAAOf,UAAAA,CAAAA;EACtBgB,QAAef,cAAO;IACpBgB,QAAQC,KAAKA;EACf,CAAA;AACF,CAAA,EAAA;AAAI;;;AC7BJ;;;;;;AAIA,YAAYC,aAAY;AAExB,SAASC,QAAQC,KAAKC,OAAOC,UAAUC,YAAY;AACnD,SAASC,iBAAiBC,sBAAsB;AAChD,SAASC,QAAAA,aAAY;AAEd,IAAMC,QAAeC,eAAO;EACjCC,MAAaC,iBAAgBC,cAAM;EACnCC,OAAcJ,eAAO;IACnBK,KAAYH,iBAAgBC,cAAM;IAClCG,KAAKC,SAASC;EAChB,CAAA,EAAGC,KAAYC,eAAO;AACxB,CAAA,EAAGD,KACDE,KAAKC,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBC,IAAI;EAAC;CAAO,GAC5BC,eAAeD,IAAI,IAAA,CAAA;AAQd,IAAME,OAAO,CAClBC,QAAqC;EAAEf,OAAO;IAAEC,KAAK;IAAIC,KAAKE,MAAMY,OAAOC,OAAOC,QAAO,CAAA,EAAIhB;EAAI;AAAE,MAChGM,IAAIM,KAAKnB,OAAOoB,KAAAA;AAUd,IAAMI,WAAW,OAAO,EAAEC,cAAc,GAAGL,MAAAA,MAAsB;AACtE,QAAMM,QAAQP,KAAKM,YAAAA;AACnB,SAAOE,MAAKC,cAAc;IAAE,GAAGR;IAAOK,cAAcC;EAAM,CAAA;AAC5D;",
|
|
6
|
+
"names": ["Schema", "SpaceSchema", "TypenameAnnotationId", "View", "EXPLORER_ACTION", "meta", "id", "GraphProps", "Struct", "name", "optional", "String", "typename", "annotations", "TypenameAnnotationId", "title", "CreateGraph", "TaggedClass", "input", "space", "SpaceSchema", "pipe", "extend", "output", "object", "View", "Schema", "Filter", "Obj", "Query", "QueryAST", "Type", "LabelAnnotation", "ViewAnnotation", "View", "Graph", "Struct", "name", "optional", "String", "query", "raw", "ast", "QueryAST", "Query", "pipe", "mutable", "Type", "Obj", "typename", "version", "LabelAnnotation", "set", "ViewAnnotation", "make", "props", "select", "Filter", "nothing", "makeView", "presentation", "graph", "View", "makeFromSpace"]
|
|
7
|
+
}
|
|
@@ -10978,20 +10978,6 @@ var TidyTree_default = TidyTree;
|
|
|
10978
10978
|
import * as Schema from "effect/Schema";
|
|
10979
10979
|
import { Key, Obj, Type } from "@dxos/echo";
|
|
10980
10980
|
import { invariant } from "@dxos/invariant";
|
|
10981
|
-
function _define_property(obj, key, value) {
|
|
10982
|
-
if (key in obj) {
|
|
10983
|
-
Object.defineProperty(obj, key, {
|
|
10984
|
-
value,
|
|
10985
|
-
enumerable: true,
|
|
10986
|
-
configurable: true,
|
|
10987
|
-
writable: true
|
|
10988
|
-
});
|
|
10989
|
-
} else {
|
|
10990
|
-
obj[key] = value;
|
|
10991
|
-
}
|
|
10992
|
-
return obj;
|
|
10993
|
-
}
|
|
10994
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-explorer/src/components/Tree/types/tree.ts";
|
|
10995
10981
|
var TreeNodeType = Schema.Struct({
|
|
10996
10982
|
id: Key.ObjectId,
|
|
10997
10983
|
children: Schema.mutable(Schema.Array(Key.ObjectId)),
|
|
@@ -11011,244 +10997,6 @@ var TreeType = Schema.Struct({
|
|
|
11011
10997
|
typename: "dxos.org/type/Tree",
|
|
11012
10998
|
version: "0.1.0"
|
|
11013
10999
|
}));
|
|
11014
|
-
var Tree = class _Tree {
|
|
11015
|
-
get tree() {
|
|
11016
|
-
return this._tree;
|
|
11017
|
-
}
|
|
11018
|
-
// TODO(burdon): Make reactive.
|
|
11019
|
-
get size() {
|
|
11020
|
-
return Object.keys(this._tree.nodes).length;
|
|
11021
|
-
}
|
|
11022
|
-
get root() {
|
|
11023
|
-
return this.getNode(this._tree.root);
|
|
11024
|
-
}
|
|
11025
|
-
//
|
|
11026
|
-
// Traversal
|
|
11027
|
-
//
|
|
11028
|
-
/**
|
|
11029
|
-
* Recursively traverse the tree until the callback returns a value.
|
|
11030
|
-
*/
|
|
11031
|
-
tranverse(callback, root = this._tree.root, depth = 0) {
|
|
11032
|
-
const node = this._tree.nodes[root];
|
|
11033
|
-
const result = callback(node, depth);
|
|
11034
|
-
if (result !== void 0) {
|
|
11035
|
-
return result;
|
|
11036
|
-
}
|
|
11037
|
-
for (const childId of node.children) {
|
|
11038
|
-
const result2 = this.tranverse(callback, childId, depth + 1);
|
|
11039
|
-
if (result2 !== void 0) {
|
|
11040
|
-
return result2;
|
|
11041
|
-
}
|
|
11042
|
-
}
|
|
11043
|
-
}
|
|
11044
|
-
getNode(id) {
|
|
11045
|
-
const node = this._tree.nodes[id];
|
|
11046
|
-
invariant(node, void 0, {
|
|
11047
|
-
F: __dxlog_file,
|
|
11048
|
-
L: 98,
|
|
11049
|
-
S: this,
|
|
11050
|
-
A: [
|
|
11051
|
-
"node",
|
|
11052
|
-
""
|
|
11053
|
-
]
|
|
11054
|
-
});
|
|
11055
|
-
return node;
|
|
11056
|
-
}
|
|
11057
|
-
/**
|
|
11058
|
-
* Get the children of a node.
|
|
11059
|
-
*/
|
|
11060
|
-
getChildNodes(node) {
|
|
11061
|
-
return node.children.map((id) => this.getNode(id));
|
|
11062
|
-
}
|
|
11063
|
-
/**
|
|
11064
|
-
* Get the parent of a node.
|
|
11065
|
-
*/
|
|
11066
|
-
getParent(node) {
|
|
11067
|
-
const parent = this.tranverse((n) => {
|
|
11068
|
-
if (n.children.includes(node.id)) {
|
|
11069
|
-
return n;
|
|
11070
|
-
}
|
|
11071
|
-
});
|
|
11072
|
-
return parent ?? null;
|
|
11073
|
-
}
|
|
11074
|
-
/**
|
|
11075
|
-
* Get the next node in the tree.
|
|
11076
|
-
*/
|
|
11077
|
-
getNext(node, hierarchical = true) {
|
|
11078
|
-
if (hierarchical && node.children.length) {
|
|
11079
|
-
return this.getChildNodes(node)[0];
|
|
11080
|
-
} else {
|
|
11081
|
-
const parent = this.getParent(node);
|
|
11082
|
-
if (parent) {
|
|
11083
|
-
const idx = this.getChildNodes(parent).findIndex(({ id }) => id === node.id);
|
|
11084
|
-
if (idx < parent.children.length - 1) {
|
|
11085
|
-
return this.getNode(parent.children[idx + 1]);
|
|
11086
|
-
} else {
|
|
11087
|
-
return this.getNext(parent, false);
|
|
11088
|
-
}
|
|
11089
|
-
}
|
|
11090
|
-
}
|
|
11091
|
-
}
|
|
11092
|
-
/**
|
|
11093
|
-
* Get the previous node in the tree.
|
|
11094
|
-
*/
|
|
11095
|
-
getPrevious(node, hierarchical = true) {
|
|
11096
|
-
const parent = this.getParent(node);
|
|
11097
|
-
const idx = this.getChildNodes(parent).findIndex(({ id }) => id === node.id);
|
|
11098
|
-
if (idx === 0) {
|
|
11099
|
-
if (hierarchical) {
|
|
11100
|
-
return parent;
|
|
11101
|
-
}
|
|
11102
|
-
} else {
|
|
11103
|
-
const previous = this.getNode(parent.children[idx - 1]);
|
|
11104
|
-
if (hierarchical && previous.children.length) {
|
|
11105
|
-
return this.getLastDescendent(previous);
|
|
11106
|
-
}
|
|
11107
|
-
return previous;
|
|
11108
|
-
}
|
|
11109
|
-
}
|
|
11110
|
-
/**
|
|
11111
|
-
* Get the last descendent of a node.
|
|
11112
|
-
*/
|
|
11113
|
-
getLastDescendent(node) {
|
|
11114
|
-
const children = this.getChildNodes(node);
|
|
11115
|
-
const last = children.length ? children[children.length - 1] : void 0;
|
|
11116
|
-
if (last) {
|
|
11117
|
-
return this.getLastDescendent(last);
|
|
11118
|
-
}
|
|
11119
|
-
return node;
|
|
11120
|
-
}
|
|
11121
|
-
//
|
|
11122
|
-
// Mutations
|
|
11123
|
-
//
|
|
11124
|
-
/**
|
|
11125
|
-
* Clear tree.
|
|
11126
|
-
*/
|
|
11127
|
-
clear() {
|
|
11128
|
-
const root = this._tree.nodes[this._tree.root];
|
|
11129
|
-
root.children.length = 0;
|
|
11130
|
-
this._tree.nodes = {
|
|
11131
|
-
[root.id]: root
|
|
11132
|
-
};
|
|
11133
|
-
}
|
|
11134
|
-
/**
|
|
11135
|
-
* Add node.
|
|
11136
|
-
*/
|
|
11137
|
-
addNode(parent, node, index) {
|
|
11138
|
-
if (!node) {
|
|
11139
|
-
const id = Key.ObjectId.random();
|
|
11140
|
-
node = {
|
|
11141
|
-
id,
|
|
11142
|
-
children: [],
|
|
11143
|
-
data: {
|
|
11144
|
-
text: ""
|
|
11145
|
-
}
|
|
11146
|
-
};
|
|
11147
|
-
}
|
|
11148
|
-
this._tree.nodes[node.id] = node;
|
|
11149
|
-
parent.children.splice(index ?? parent.children.length, 0, node.id);
|
|
11150
|
-
return node;
|
|
11151
|
-
}
|
|
11152
|
-
/**
|
|
11153
|
-
* Delete node.
|
|
11154
|
-
*/
|
|
11155
|
-
deleteNode(parent, id) {
|
|
11156
|
-
const node = this._tree.nodes[id];
|
|
11157
|
-
if (!node) {
|
|
11158
|
-
return void 0;
|
|
11159
|
-
}
|
|
11160
|
-
delete this._tree.nodes[node.id];
|
|
11161
|
-
const idx = parent.children.findIndex((child) => child === id);
|
|
11162
|
-
if (idx !== -1) {
|
|
11163
|
-
parent.children.splice(idx, 1);
|
|
11164
|
-
}
|
|
11165
|
-
return node;
|
|
11166
|
-
}
|
|
11167
|
-
/**
|
|
11168
|
-
* Move child node.
|
|
11169
|
-
*/
|
|
11170
|
-
moveNode(node, from, to) {
|
|
11171
|
-
invariant(from >= 0 && from < node.children.length, void 0, {
|
|
11172
|
-
F: __dxlog_file,
|
|
11173
|
-
L: 228,
|
|
11174
|
-
S: this,
|
|
11175
|
-
A: [
|
|
11176
|
-
"from >= 0 && from < node.children.length",
|
|
11177
|
-
""
|
|
11178
|
-
]
|
|
11179
|
-
});
|
|
11180
|
-
invariant(to >= 0 && to < node.children.length, void 0, {
|
|
11181
|
-
F: __dxlog_file,
|
|
11182
|
-
L: 229,
|
|
11183
|
-
S: this,
|
|
11184
|
-
A: [
|
|
11185
|
-
"to >= 0 && to < node.children.length",
|
|
11186
|
-
""
|
|
11187
|
-
]
|
|
11188
|
-
});
|
|
11189
|
-
if (from === to) {
|
|
11190
|
-
return null;
|
|
11191
|
-
}
|
|
11192
|
-
const child = node.children[from];
|
|
11193
|
-
node.children.splice(from, 1);
|
|
11194
|
-
node.children.splice(to, 0, child);
|
|
11195
|
-
return this.getNode(child);
|
|
11196
|
-
}
|
|
11197
|
-
/**
|
|
11198
|
-
* Indent node.
|
|
11199
|
-
*/
|
|
11200
|
-
indentNode(node) {
|
|
11201
|
-
const parent = this.getParent(node);
|
|
11202
|
-
if (!parent) {
|
|
11203
|
-
return;
|
|
11204
|
-
}
|
|
11205
|
-
const idx = parent.children.findIndex((child) => child === node.id);
|
|
11206
|
-
if (idx < 1 || idx >= parent.children.length) {
|
|
11207
|
-
return;
|
|
11208
|
-
}
|
|
11209
|
-
const previous = this.getNode(parent.children[idx - 1]);
|
|
11210
|
-
parent.children.splice(idx, 1);
|
|
11211
|
-
previous.children.push(node.id);
|
|
11212
|
-
}
|
|
11213
|
-
/**
|
|
11214
|
-
* Unindent node.
|
|
11215
|
-
*/
|
|
11216
|
-
unindentNode(node) {
|
|
11217
|
-
const parent = this.getParent(node);
|
|
11218
|
-
if (!parent) {
|
|
11219
|
-
return;
|
|
11220
|
-
}
|
|
11221
|
-
const ancestor = this.getParent(parent);
|
|
11222
|
-
if (!ancestor) {
|
|
11223
|
-
return;
|
|
11224
|
-
}
|
|
11225
|
-
const nodeIdx = parent.children.findIndex((id) => id === node.id);
|
|
11226
|
-
const [_, ...rest] = parent.children.splice(nodeIdx, parent.children.length - nodeIdx);
|
|
11227
|
-
parent.children.splice(nodeIdx, parent.children.length - nodeIdx);
|
|
11228
|
-
const parentIdx = this.getChildNodes(ancestor).findIndex((n) => n.id === parent.id);
|
|
11229
|
-
ancestor.children.splice(parentIdx + 1, 0, node.id);
|
|
11230
|
-
node.children.push(...rest);
|
|
11231
|
-
}
|
|
11232
|
-
constructor(tree3) {
|
|
11233
|
-
_define_property(this, "_tree", void 0);
|
|
11234
|
-
this._tree = tree3 ?? _Tree.create();
|
|
11235
|
-
}
|
|
11236
|
-
};
|
|
11237
|
-
_define_property(Tree, "create", () => {
|
|
11238
|
-
const id = Key.ObjectId.random();
|
|
11239
|
-
return Obj.make(TreeType, {
|
|
11240
|
-
root: id,
|
|
11241
|
-
nodes: {
|
|
11242
|
-
[id]: {
|
|
11243
|
-
id,
|
|
11244
|
-
children: [],
|
|
11245
|
-
data: {
|
|
11246
|
-
text: ""
|
|
11247
|
-
}
|
|
11248
|
-
}
|
|
11249
|
-
}
|
|
11250
|
-
});
|
|
11251
|
-
});
|
|
11252
11000
|
|
|
11253
11001
|
// src/components/Tree/types/types.ts
|
|
11254
11002
|
var mapGraphToTreeData = (model, maxDepth = 8) => {
|
|
@@ -11276,7 +11024,7 @@ var renderers = /* @__PURE__ */ new Map([
|
|
|
11276
11024
|
HierarchicalEdgeBundling_default
|
|
11277
11025
|
]
|
|
11278
11026
|
]);
|
|
11279
|
-
var
|
|
11027
|
+
var Tree = ({ space, selected, variant = "tidy", onNodeClick }) => {
|
|
11280
11028
|
var _effect = _useSignals3();
|
|
11281
11029
|
try {
|
|
11282
11030
|
const [model] = useAsyncState(async () => space ? new SpaceGraphModel().open(space) : void 0, [
|
|
@@ -11331,13 +11079,13 @@ var Tree2 = ({ space, selected, variant = "tidy", onNodeClick }) => {
|
|
|
11331
11079
|
|
|
11332
11080
|
// src/components/index.ts
|
|
11333
11081
|
import { lazy } from "react";
|
|
11334
|
-
var ExplorerContainer = lazy(() => import("./ExplorerContainer-
|
|
11082
|
+
var ExplorerContainer = lazy(() => import("./ExplorerContainer-N3S5KSUX.mjs"));
|
|
11335
11083
|
|
|
11336
11084
|
export {
|
|
11337
11085
|
Chart,
|
|
11338
11086
|
Globe,
|
|
11339
11087
|
defaultTreeLayoutSlots,
|
|
11340
|
-
|
|
11088
|
+
Tree,
|
|
11341
11089
|
ExplorerContainer
|
|
11342
11090
|
};
|
|
11343
|
-
//# sourceMappingURL=chunk-
|
|
11091
|
+
//# sourceMappingURL=chunk-NPIP4VEH.mjs.map
|