@dxos/plugin-explorer 0.8.4-main.67995b8 → 0.8.4-main.70d3990
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-NOLLVUTE.mjs +50 -0
- package/dist/lib/browser/ExplorerContainer-NOLLVUTE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-OAOY7SHY.mjs → chunk-2MKBRIUT.mjs} +6 -5
- package/dist/lib/browser/chunk-2MKBRIUT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-J2BBZOSF.mjs → chunk-6BVXZQPP.mjs} +9 -8
- package/dist/lib/browser/chunk-6BVXZQPP.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PVFZFKQ6.mjs → chunk-ARBGXQFH.mjs} +6 -246
- package/dist/lib/browser/{chunk-PVFZFKQ6.mjs.map → chunk-ARBGXQFH.mjs.map} +3 -3
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/browser/chunk-P6FFFVPM.mjs +100 -0
- package/dist/lib/browser/chunk-P6FFFVPM.mjs.map +7 -0
- package/dist/lib/browser/chunk-UBHZGWZQ.mjs +24 -0
- package/dist/lib/browser/chunk-UBHZGWZQ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +29 -29
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/intent-resolver-EWB3H5KH.mjs +35 -0
- package/dist/lib/browser/intent-resolver-EWB3H5KH.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/meta.mjs +2 -3
- package/dist/lib/browser/react-surface-BY2DYCTH.mjs +34 -0
- package/dist/lib/browser/react-surface-BY2DYCTH.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +7 -6
- package/dist/lib/node-esm/ExplorerContainer-N3S5KSUX.mjs +51 -0
- package/dist/lib/node-esm/ExplorerContainer-N3S5KSUX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PPBUWC7F.mjs → chunk-3ODK27PU.mjs} +6 -5
- package/dist/lib/node-esm/chunk-3ODK27PU.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-4BY2XZET.mjs +101 -0
- package/dist/lib/node-esm/chunk-4BY2XZET.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-4VMSNXYL.mjs → chunk-CRSVAZNA.mjs} +9 -8
- package/dist/lib/node-esm/chunk-CRSVAZNA.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-S5A2EUSJ.mjs → chunk-NPIP4VEH.mjs} +6 -246
- package/dist/lib/node-esm/{chunk-S5A2EUSJ.mjs.map → chunk-NPIP4VEH.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-PIAXA43R.mjs → chunk-UXZM5VJB.mjs} +8 -5
- package/dist/lib/node-esm/chunk-UXZM5VJB.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +29 -29
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/intent-resolver-SH6PW7VF.mjs +36 -0
- package/dist/lib/node-esm/intent-resolver-SH6PW7VF.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/meta.mjs +2 -3
- package/dist/lib/node-esm/react-surface-7AAV7GBG.mjs +35 -0
- package/dist/lib/node-esm/react-surface-7AAV7GBG.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +7 -6
- package/dist/types/src/ExplorerPlugin.d.ts +1 -1
- package/dist/types/src/ExplorerPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +2 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/Chart/Chart.d.ts.map +1 -1
- package/dist/types/src/components/Chart/Chart.stories.d.ts +8 -4
- package/dist/types/src/components/Chart/Chart.stories.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/Globe/Globe.d.ts.map +1 -1
- package/dist/types/src/components/Globe/Globe.stories.d.ts +8 -4
- package/dist/types/src/components/Globe/Globe.stories.d.ts.map +1 -1
- package/dist/types/src/components/Graph/D3ForceGraph.d.ts +2 -2
- package/dist/types/src/components/Graph/D3ForceGraph.d.ts.map +1 -1
- package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts +13 -4
- package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts.map +1 -1
- package/dist/types/src/components/Graph/ForceGraph.stories.d.ts +13 -4
- package/dist/types/src/components/Graph/ForceGraph.stories.d.ts.map +1 -1
- package/dist/types/src/components/Graph/testing.d.ts +1 -1
- package/dist/types/src/components/Graph/testing.d.ts.map +1 -1
- package/dist/types/src/components/Tree/Tree.stories.d.ts +13 -16
- package/dist/types/src/components/Tree/Tree.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tree/types/tree.d.ts +7 -7
- package/dist/types/src/components/Tree/types/tree.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/hooks/useGraphModel.d.ts +2 -2
- package/dist/types/src/hooks/useGraphModel.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +25 -5
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/ExplorerAction.d.ts +23 -0
- package/dist/types/src/types/ExplorerAction.d.ts.map +1 -0
- package/dist/types/src/types/Graph.d.ts +32 -0
- package/dist/types/src/types/Graph.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +2 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +44 -42
- package/src/ExplorerPlugin.tsx +41 -50
- package/src/capabilities/intent-resolver.ts +12 -8
- package/src/capabilities/react-surface.tsx +8 -5
- package/src/components/Chart/Chart.stories.tsx +9 -7
- package/src/components/Chart/Chart.tsx +1 -1
- package/src/components/ExplorerContainer.tsx +24 -6
- package/src/components/Globe/Globe.stories.tsx +14 -12
- package/src/components/Globe/Globe.tsx +1 -1
- package/src/components/Graph/D3ForceGraph.stories.tsx +36 -20
- package/src/components/Graph/D3ForceGraph.tsx +5 -5
- package/src/components/Graph/ForceGraph.stories.tsx +36 -20
- package/src/components/Graph/ForceGraph.tsx +4 -4
- package/src/components/Graph/testing.ts +8 -8
- package/src/components/Tree/Tree.stories.tsx +28 -22
- package/src/components/Tree/Tree.tsx +3 -3
- package/src/components/Tree/types/tree.test.ts +4 -3
- package/src/components/Tree/types/tree.ts +1 -1
- package/src/components/index.ts +3 -3
- package/src/hooks/useGraphModel.ts +5 -4
- package/src/meta.ts +7 -4
- package/src/translations.ts +6 -2
- package/src/types/ExplorerAction.ts +37 -0
- package/src/types/Graph.ts +63 -0
- package/src/types/index.ts +2 -2
- package/dist/lib/browser/ExplorerContainer-OGHSHZD5.mjs +0 -37
- package/dist/lib/browser/ExplorerContainer-OGHSHZD5.mjs.map +0 -7
- package/dist/lib/browser/chunk-EF4BFHTI.mjs +0 -38
- package/dist/lib/browser/chunk-EF4BFHTI.mjs.map +0 -7
- package/dist/lib/browser/chunk-J2BBZOSF.mjs.map +0 -7
- package/dist/lib/browser/chunk-OAOY7SHY.mjs.map +0 -7
- package/dist/lib/browser/chunk-UL5EDJPE.mjs +0 -21
- package/dist/lib/browser/chunk-UL5EDJPE.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-XH2UO2FM.mjs +0 -24
- package/dist/lib/browser/intent-resolver-XH2UO2FM.mjs.map +0 -7
- package/dist/lib/browser/react-surface-65VQ42HX.mjs +0 -31
- package/dist/lib/browser/react-surface-65VQ42HX.mjs.map +0 -7
- package/dist/lib/node-esm/ExplorerContainer-6ON5NA2P.mjs +0 -38
- package/dist/lib/node-esm/ExplorerContainer-6ON5NA2P.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4VMSNXYL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PIAXA43R.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PPBUWC7F.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VKCOKQRG.mjs +0 -39
- package/dist/lib/node-esm/chunk-VKCOKQRG.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-AGBBNA67.mjs +0 -25
- package/dist/lib/node-esm/intent-resolver-AGBBNA67.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-IJIMYAST.mjs +0 -32
- package/dist/lib/node-esm/react-surface-IJIMYAST.mjs.map +0 -7
- package/dist/types/src/types/schema.d.ts +0 -12
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/dist/types/src/types/types.d.ts +0 -18
- package/dist/types/src/types/types.d.ts.map +0 -1
- package/src/types/schema.ts +0 -16
- package/src/types/types.ts +0 -21
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
2
|
+
ExplorerAction_exports,
|
|
3
|
+
Graph_exports
|
|
4
|
+
} from "../chunk-P6FFFVPM.mjs";
|
|
5
|
+
import "../chunk-UBHZGWZQ.mjs";
|
|
6
|
+
import "../chunk-J5LGTIGS.mjs";
|
|
6
7
|
export {
|
|
7
|
-
ExplorerAction,
|
|
8
|
-
|
|
8
|
+
ExplorerAction_exports as ExplorerAction,
|
|
9
|
+
Graph_exports as Graph
|
|
9
10
|
};
|
|
10
11
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
useGraphModel
|
|
4
|
+
} from "./chunk-3ODK27PU.mjs";
|
|
5
|
+
import {
|
|
6
|
+
D3ForceGraph
|
|
7
|
+
} from "./chunk-CRSVAZNA.mjs";
|
|
8
|
+
import "./chunk-HSLMI22Q.mjs";
|
|
9
|
+
|
|
10
|
+
// src/components/ExplorerContainer.tsx
|
|
11
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
12
|
+
import React, { useCallback, useMemo, useState } from "react";
|
|
13
|
+
import { QueryBuilder } from "@dxos/echo-query";
|
|
14
|
+
import { useGlobalSearch } from "@dxos/plugin-search";
|
|
15
|
+
import { getSpace } from "@dxos/react-client/echo";
|
|
16
|
+
import { Toolbar } from "@dxos/react-ui";
|
|
17
|
+
import { QueryEditor } from "@dxos/react-ui-components";
|
|
18
|
+
import { StackItem } from "@dxos/react-ui-stack";
|
|
19
|
+
var ExplorerContainer = ({ role, view }) => {
|
|
20
|
+
var _effect = _useSignals();
|
|
21
|
+
try {
|
|
22
|
+
const space = getSpace(view);
|
|
23
|
+
const [filter, setFilter] = useState();
|
|
24
|
+
const model = useGraphModel(space, filter);
|
|
25
|
+
const { match } = useGlobalSearch();
|
|
26
|
+
const builder = useMemo(() => new QueryBuilder(), []);
|
|
27
|
+
const handleChange = useCallback((value) => {
|
|
28
|
+
setFilter(builder.build(value).filter);
|
|
29
|
+
}, []);
|
|
30
|
+
const showToolbar = role === "article";
|
|
31
|
+
if (!space || !model) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return /* @__PURE__ */ React.createElement(StackItem.Content, {
|
|
35
|
+
toolbar: showToolbar
|
|
36
|
+
}, showToolbar && /* @__PURE__ */ React.createElement(Toolbar.Root, null, /* @__PURE__ */ React.createElement(QueryEditor, {
|
|
37
|
+
db: space.db,
|
|
38
|
+
onChange: handleChange
|
|
39
|
+
})), /* @__PURE__ */ React.createElement(D3ForceGraph, {
|
|
40
|
+
model,
|
|
41
|
+
match
|
|
42
|
+
}));
|
|
43
|
+
} finally {
|
|
44
|
+
_effect.f();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var ExplorerContainer_default = ExplorerContainer;
|
|
48
|
+
export {
|
|
49
|
+
ExplorerContainer_default as default
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=ExplorerContainer-N3S5KSUX.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ExplorerContainer.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { type Filter } from '@dxos/echo';\nimport { QueryBuilder } from '@dxos/echo-query';\nimport { useGlobalSearch } from '@dxos/plugin-search';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Toolbar } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { type View } from '@dxos/schema';\n\nimport { useGraphModel } from '../hooks';\n\nimport { D3ForceGraph } from './Graph';\n\ntype ExplorerContainerProps = {\n role: string;\n view: View.View;\n};\n\nconst ExplorerContainer = ({ role, view }: ExplorerContainerProps) => {\n const space = getSpace(view);\n const [filter, setFilter] = useState<Filter.Any>();\n const model = useGraphModel(space, filter);\n const { match } = useGlobalSearch();\n\n const builder = useMemo(() => new QueryBuilder(), []);\n const handleChange = useCallback<NonNullable<QueryEditorProps['onChange']>>((value) => {\n setFilter(builder.build(value).filter);\n }, []);\n\n const showToolbar = role === 'article';\n\n if (!space || !model) {\n return null;\n }\n\n return (\n <StackItem.Content toolbar={showToolbar}>\n {showToolbar && (\n <Toolbar.Root>\n <QueryEditor db={space.db} onChange={handleChange} />\n </Toolbar.Root>\n )}\n <D3ForceGraph model={model} match={match} />\n </StackItem.Content>\n );\n};\n\nexport default ExplorerContainer;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;AAIA,OAAOA,SAASC,aAAaC,SAASC,gBAAgB;AAGtD,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAASC,eAAe;AACxB,SAASC,mBAA0C;AACnD,SAASC,iBAAiB;AAY1B,IAAMC,oBAAoB,CAAC,EAAEC,MAAMC,KAAI,MAA0B;;;AAC/D,UAAMC,QAAQC,SAASF,IAAAA;AACvB,UAAM,CAACG,QAAQC,SAAAA,IAAaC,SAAAA;AAC5B,UAAMC,QAAQC,cAAcN,OAAOE,MAAAA;AACnC,UAAM,EAAEK,MAAK,IAAKC,gBAAAA;AAElB,UAAMC,UAAUC,QAAQ,MAAM,IAAIC,aAAAA,GAAgB,CAAA,CAAE;AACpD,UAAMC,eAAeC,YAAuD,CAACC,UAAAA;AAC3EX,gBAAUM,QAAQM,MAAMD,KAAAA,EAAOZ,MAAM;IACvC,GAAG,CAAA,CAAE;AAEL,UAAMc,cAAclB,SAAS;AAE7B,QAAI,CAACE,SAAS,CAACK,OAAO;AACpB,aAAO;IACT;AAEA,WACE,sBAAA,cAACY,UAAUC,SAAO;MAACC,SAASH;OACzBA,eACC,sBAAA,cAACI,QAAQC,MAAI,MACX,sBAAA,cAACC,aAAAA;MAAYC,IAAIvB,MAAMuB;MAAIC,UAAUZ;SAGzC,sBAAA,cAACa,cAAAA;MAAapB;MAAcE;;;;;AAGlC;AAEA,IAAA,4BAAeV;",
|
|
6
|
+
"names": ["React", "useCallback", "useMemo", "useState", "QueryBuilder", "useGlobalSearch", "getSpace", "Toolbar", "QueryEditor", "StackItem", "ExplorerContainer", "role", "view", "space", "getSpace", "filter", "setFilter", "useState", "model", "useGraphModel", "match", "useGlobalSearch", "builder", "useMemo", "QueryBuilder", "handleChange", "useCallback", "value", "build", "showToolbar", "StackItem", "Content", "toolbar", "Toolbar", "Root", "QueryEditor", "db", "onChange", "D3ForceGraph"]
|
|
7
|
+
}
|
|
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
3
3
|
// src/hooks/useGraphModel.ts
|
|
4
4
|
import { useEffect, useState } from "react";
|
|
5
5
|
import { SpaceGraphModel } from "@dxos/schema";
|
|
6
|
-
var useGraphModel = (space, filter, options) => {
|
|
6
|
+
var useGraphModel = (space, filter, options, queue) => {
|
|
7
7
|
const [model, setModel] = useState(void 0);
|
|
8
8
|
useEffect(() => {
|
|
9
9
|
if (!space) {
|
|
@@ -11,9 +11,9 @@ var useGraphModel = (space, filter, options) => {
|
|
|
11
11
|
setModel(void 0);
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
|
-
if (!model) {
|
|
14
|
+
if (!model || model.queue !== queue) {
|
|
15
15
|
const model2 = new SpaceGraphModel().setFilter(filter).setOptions(options);
|
|
16
|
-
void model2.open(space);
|
|
16
|
+
void model2.open(space, queue);
|
|
17
17
|
setModel(model2);
|
|
18
18
|
} else {
|
|
19
19
|
model.setFilter(filter).setOptions(options);
|
|
@@ -21,7 +21,8 @@ var useGraphModel = (space, filter, options) => {
|
|
|
21
21
|
}, [
|
|
22
22
|
space,
|
|
23
23
|
filter,
|
|
24
|
-
options
|
|
24
|
+
options,
|
|
25
|
+
queue
|
|
25
26
|
]);
|
|
26
27
|
return model;
|
|
27
28
|
};
|
|
@@ -29,4 +30,4 @@ var useGraphModel = (space, filter, options) => {
|
|
|
29
30
|
export {
|
|
30
31
|
useGraphModel
|
|
31
32
|
};
|
|
32
|
-
//# sourceMappingURL=chunk-
|
|
33
|
+
//# sourceMappingURL=chunk-3ODK27PU.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useGraphModel.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Filter, type Queue, type Space } from '@dxos/client/echo';\nimport { SpaceGraphModel, type SpaceGraphModelOptions } from '@dxos/schema';\n\n// TODO(burdon): Factor out.\nexport const useGraphModel = (\n space: Space | undefined,\n filter?: Filter.Any | undefined,\n options?: SpaceGraphModelOptions,\n queue?: Queue,\n): SpaceGraphModel | undefined => {\n const [model, setModel] = useState<SpaceGraphModel | undefined>(undefined);\n useEffect(() => {\n if (!space) {\n void model?.close();\n setModel(undefined);\n return;\n }\n\n // TODO(burdon): Does this need to be a dependency?\n if (!model || model.queue !== queue) {\n const model = new SpaceGraphModel().setFilter(filter).setOptions(options);\n void model.open(space, queue);\n setModel(model);\n } else {\n model.setFilter(filter).setOptions(options);\n }\n }, [space, filter, options, queue]);\n\n return model;\n};\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAASA,WAAWC,gBAAgB;AAGpC,SAASC,uBAAoD;AAGtD,IAAMC,gBAAgB,CAC3BC,OACAC,QACAC,SACAC,UAAAA;AAEA,QAAM,CAACC,OAAOC,QAAAA,IAAYC,SAAsCC,MAAAA;AAChEC,YAAU,MAAA;AACR,QAAI,CAACR,OAAO;AACV,WAAKI,OAAOK,MAAAA;AACZJ,eAASE,MAAAA;AACT;IACF;AAGA,QAAI,CAACH,SAASA,MAAMD,UAAUA,OAAO;AACnC,YAAMC,SAAQ,IAAIM,gBAAAA,EAAkBC,UAAUV,MAAAA,EAAQW,WAAWV,OAAAA;AACjE,WAAKE,OAAMS,KAAKb,OAAOG,KAAAA;AACvBE,eAASD,MAAAA;IACX,OAAO;AACLA,YAAMO,UAAUV,MAAAA,EAAQW,WAAWV,OAAAA;IACrC;EACF,GAAG;IAACF;IAAOC;IAAQC;IAASC;GAAM;AAElC,SAAOC;AACT;",
|
|
6
|
+
"names": ["useEffect", "useState", "SpaceGraphModel", "useGraphModel", "space", "filter", "options", "queue", "model", "setModel", "useState", "undefined", "useEffect", "close", "SpaceGraphModel", "setFilter", "setOptions", "open"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
meta
|
|
4
|
+
} from "./chunk-UXZM5VJB.mjs";
|
|
5
|
+
import {
|
|
6
|
+
__export
|
|
7
|
+
} from "./chunk-HSLMI22Q.mjs";
|
|
8
|
+
|
|
9
|
+
// src/types/ExplorerAction.ts
|
|
10
|
+
var ExplorerAction_exports = {};
|
|
11
|
+
__export(ExplorerAction_exports, {
|
|
12
|
+
CreateGraph: () => CreateGraph,
|
|
13
|
+
GraphProps: () => GraphProps
|
|
14
|
+
});
|
|
15
|
+
import * as Schema2 from "effect/Schema";
|
|
16
|
+
import { TypeInputOptionsAnnotation } from "@dxos/plugin-space/types";
|
|
17
|
+
import { SpaceSchema } from "@dxos/react-client/echo";
|
|
18
|
+
|
|
19
|
+
// src/types/Graph.ts
|
|
20
|
+
var Graph_exports = {};
|
|
21
|
+
__export(Graph_exports, {
|
|
22
|
+
Graph: () => Graph,
|
|
23
|
+
GraphV1: () => GraphV1,
|
|
24
|
+
make: () => make
|
|
25
|
+
});
|
|
26
|
+
import * as Schema from "effect/Schema";
|
|
27
|
+
import { Filter, Obj, Query, QueryAST, Ref, Type } from "@dxos/echo";
|
|
28
|
+
import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
|
|
29
|
+
import { View, ViewAnnotation } from "@dxos/schema";
|
|
30
|
+
var GraphSchema = Schema.Struct({
|
|
31
|
+
name: Schema.optional(Schema.String),
|
|
32
|
+
view: Type.Ref(View.View).pipe(FormInputAnnotation.set(false)),
|
|
33
|
+
query: Schema.Struct({
|
|
34
|
+
raw: Schema.optional(Schema.String),
|
|
35
|
+
ast: QueryAST.Query
|
|
36
|
+
}).pipe(Schema.mutable, FormInputAnnotation.set(false))
|
|
37
|
+
}).pipe(Type.Obj({
|
|
38
|
+
typename: "dxos.org/type/Graph",
|
|
39
|
+
version: "0.2.0"
|
|
40
|
+
}), LabelAnnotation.set([
|
|
41
|
+
"name"
|
|
42
|
+
]), ViewAnnotation.set(true));
|
|
43
|
+
var Graph = GraphSchema;
|
|
44
|
+
var make = ({ name, query = {
|
|
45
|
+
raw: "",
|
|
46
|
+
ast: Query.select(Filter.nothing()).ast
|
|
47
|
+
}, view }) => {
|
|
48
|
+
return Obj.make(Graph, {
|
|
49
|
+
name,
|
|
50
|
+
view: Ref.make(view),
|
|
51
|
+
query
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
var GraphV1 = Schema.Struct({
|
|
55
|
+
name: Schema.optional(Schema.String),
|
|
56
|
+
query: Schema.Struct({
|
|
57
|
+
raw: Schema.optional(Schema.String),
|
|
58
|
+
ast: QueryAST.Query
|
|
59
|
+
}).pipe(Schema.mutable)
|
|
60
|
+
}).pipe(Type.Obj({
|
|
61
|
+
typename: "dxos.org/type/Graph",
|
|
62
|
+
version: "0.1.0"
|
|
63
|
+
}), LabelAnnotation.set([
|
|
64
|
+
"name"
|
|
65
|
+
]));
|
|
66
|
+
|
|
67
|
+
// src/types/ExplorerAction.ts
|
|
68
|
+
var EXPLORER_ACTION = `${meta.id}/action`;
|
|
69
|
+
var GraphProps = Schema2.Struct({
|
|
70
|
+
name: Schema2.optional(Schema2.String),
|
|
71
|
+
// TODO(wittjosiah): This should be a query input instead.
|
|
72
|
+
typename: Schema2.String.pipe(Schema2.annotations({
|
|
73
|
+
title: "Select type"
|
|
74
|
+
}), TypeInputOptionsAnnotation.set({
|
|
75
|
+
location: [
|
|
76
|
+
"database",
|
|
77
|
+
"runtime"
|
|
78
|
+
],
|
|
79
|
+
kind: [
|
|
80
|
+
"user"
|
|
81
|
+
],
|
|
82
|
+
registered: [
|
|
83
|
+
"registered"
|
|
84
|
+
]
|
|
85
|
+
}), Schema2.optional)
|
|
86
|
+
});
|
|
87
|
+
var CreateGraph = class extends Schema2.TaggedClass()(`${EXPLORER_ACTION}/create-graph`, {
|
|
88
|
+
input: Schema2.Struct({
|
|
89
|
+
space: SpaceSchema
|
|
90
|
+
}).pipe(Schema2.extend(GraphProps)),
|
|
91
|
+
output: Schema2.Struct({
|
|
92
|
+
object: Graph
|
|
93
|
+
})
|
|
94
|
+
}) {
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export {
|
|
98
|
+
Graph_exports,
|
|
99
|
+
ExplorerAction_exports
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=chunk-4BY2XZET.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 { TypeInputOptionsAnnotation } from '@dxos/plugin-space/types';\nimport { SpaceSchema } from '@dxos/react-client/echo';\n\nimport { meta } from '../meta';\n\nimport * as Graph from './Graph';\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.pipe(\n Schema.annotations({ title: 'Select type' }),\n TypeInputOptionsAnnotation.set({\n location: ['database', 'runtime'],\n kind: ['user'],\n registered: ['registered'],\n }),\n Schema.optional,\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: Graph.Graph,\n }),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Filter, Obj, Query, QueryAST, Ref, Type } from '@dxos/echo';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { View, ViewAnnotation } from '@dxos/schema';\n\nconst GraphSchema = Schema.Struct({\n name: Schema.optional(Schema.String),\n\n view: Type.Ref(View.View).pipe(FormInputAnnotation.set(false)),\n\n query: Schema.Struct({\n raw: Schema.optional(Schema.String),\n ast: QueryAST.Query,\n }).pipe(Schema.mutable, FormInputAnnotation.set(false)),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Graph',\n version: '0.2.0',\n }),\n LabelAnnotation.set(['name']),\n ViewAnnotation.set(true),\n);\nexport interface Graph extends Schema.Schema.Type<typeof GraphSchema> {}\nexport interface GraphEncoded extends Schema.Schema.Encoded<typeof GraphSchema> {}\nexport const Graph: Schema.Schema<Graph, GraphEncoded> = GraphSchema;\n\ntype MakeProps = Omit<Partial<Obj.MakeProps<typeof Graph>>, 'view'> & {\n view: View.View;\n};\n\n/**\n * Make a graph as a view of a data set.\n */\nexport const make = ({\n name,\n query = { raw: '', ast: Query.select(Filter.nothing()).ast },\n view,\n}: MakeProps): Graph => {\n return Obj.make(Graph, { name, view: Ref.make(view), query });\n};\n\n//\n// V1\n//\n\nexport const GraphV1 = 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);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAAA;;;;;AAIA,YAAYA,aAAY;AAExB,SAASC,kCAAkC;AAC3C,SAASC,mBAAmB;;;ACP5B;;;;;;AAIA,YAAYC,YAAY;AAExB,SAASC,QAAQC,KAAKC,OAAOC,UAAUC,KAAKC,YAAY;AACxD,SAASC,qBAAqBC,uBAAuB;AACrD,SAASC,MAAMC,sBAAsB;AAErC,IAAMC,cAAqBC,cAAO;EAChCC,MAAaC,gBAAgBC,aAAM;EAEnCC,MAAMC,KAAKC,IAAIC,KAAKA,IAAI,EAAEC,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;EAEvDC,OAAcX,cAAO;IACnBY,KAAYV,gBAAgBC,aAAM;IAClCU,KAAKC,SAASC;EAChB,CAAA,EAAGP,KAAYQ,gBAASP,oBAAoBC,IAAI,KAAA,CAAA;AAClD,CAAA,EAAGF,KACDH,KAAKY,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBV,IAAI;EAAC;CAAO,GAC5BW,eAAeX,IAAI,IAAA,CAAA;AAId,IAAMY,QAA4CvB;AASlD,IAAMwB,OAAO,CAAC,EACnBtB,MACAU,QAAQ;EAAEC,KAAK;EAAIC,KAAKE,MAAMS,OAAOC,OAAOC,QAAO,CAAA,EAAIb;AAAI,GAC3DT,KAAI,MACM;AACV,SAAOa,IAAIM,KAAKD,OAAO;IAAErB;IAAMG,MAAME,IAAIiB,KAAKnB,IAAAA;IAAOO;EAAM,CAAA;AAC7D;AAMO,IAAMgB,UAAiB3B,cAAO;EACnCC,MAAaC,gBAAgBC,aAAM;EACnCQ,OAAcX,cAAO;IACnBY,KAAYV,gBAAgBC,aAAM;IAClCU,KAAKC,SAASC;EAChB,CAAA,EAAGP,KAAYQ,cAAO;AACxB,CAAA,EAAGR,KACDH,KAAKY,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBV,IAAI;EAAC;CAAO,CAAA;;;ADhD9B,IAAMkB,kBAAkB,GAAGC,KAAKC,EAAE;AAE3B,IAAMC,aAAoBC,eAAO;EACtCC,MAAaC,iBAAgBC,cAAM;;EAEnCC,UAAiBD,eAAOE,KACfC,oBAAY;IAAEC,OAAO;EAAc,CAAA,GAC1CC,2BAA2BC,IAAI;IAC7BC,UAAU;MAAC;MAAY;;IACvBC,MAAM;MAAC;;IACPC,YAAY;MAAC;;EACf,CAAA,GACOV,gBAAQ;AAEnB,CAAA;AAEO,IAAMW,cAAN,cAAiCC,oBAAW,EAAgB,GAAGlB,eAAAA,iBAAgC;EACpGmB,OAAcf,eAAO;IACnBgB,OAAOC;EACT,CAAA,EAAGZ,KAAYa,eAAOnB,UAAAA,CAAAA;EACtBoB,QAAenB,eAAO;IACpBoB,QAAcC;EAChB,CAAA;AACF,CAAA,EAAA;AAAI;",
|
|
6
|
+
"names": ["Schema", "TypeInputOptionsAnnotation", "SpaceSchema", "Schema", "Filter", "Obj", "Query", "QueryAST", "Ref", "Type", "FormInputAnnotation", "LabelAnnotation", "View", "ViewAnnotation", "GraphSchema", "Struct", "name", "optional", "String", "view", "Type", "Ref", "View", "pipe", "FormInputAnnotation", "set", "query", "raw", "ast", "QueryAST", "Query", "mutable", "Obj", "typename", "version", "LabelAnnotation", "ViewAnnotation", "Graph", "make", "select", "Filter", "nothing", "GraphV1", "EXPLORER_ACTION", "meta", "id", "GraphProps", "Struct", "name", "optional", "String", "typename", "pipe", "annotations", "title", "TypeInputOptionsAnnotation", "set", "location", "kind", "registered", "CreateGraph", "TaggedClass", "input", "space", "SpaceSchema", "extend", "output", "object", "Graph"]
|
|
7
|
+
}
|
|
@@ -6,7 +6,7 @@ import React, { useCallback, useEffect, useMemo, useRef } from "react";
|
|
|
6
6
|
import { Obj } from "@dxos/echo";
|
|
7
7
|
import { SelectionModel } from "@dxos/graph";
|
|
8
8
|
import { GraphForceProjector, SVG } from "@dxos/react-ui-graph";
|
|
9
|
-
import {
|
|
9
|
+
import { getHashStyles } from "@dxos/react-ui-theme";
|
|
10
10
|
import "@dxos/react-ui-graph/styles/graph.css";
|
|
11
11
|
var D3ForceGraph = ({ classNames, model, selection: _selection, grid, ...props }) => {
|
|
12
12
|
var _effect = _useSignals();
|
|
@@ -71,7 +71,7 @@ var D3ForceGraph = ({ classNames, model, selection: _selection, grid, ...props }
|
|
|
71
71
|
const obj = node.data?.data.object;
|
|
72
72
|
return {
|
|
73
73
|
data: {
|
|
74
|
-
color:
|
|
74
|
+
color: getHashStyles(obj && Obj.getTypename(obj))?.hue
|
|
75
75
|
},
|
|
76
76
|
classes: {
|
|
77
77
|
"dx-selected": selection.contains(node.id)
|
|
@@ -96,10 +96,11 @@ import { filterObjectsSync } from "@dxos/plugin-search";
|
|
|
96
96
|
|
|
97
97
|
// src/components/Graph/adapter.ts
|
|
98
98
|
var GraphAdapter = class {
|
|
99
|
+
graph;
|
|
100
|
+
_nodes = [];
|
|
101
|
+
_links = [];
|
|
99
102
|
constructor(graph) {
|
|
100
103
|
this.graph = graph;
|
|
101
|
-
this._nodes = [];
|
|
102
|
-
this._links = [];
|
|
103
104
|
this._nodes = graph.nodes.map((node) => ({
|
|
104
105
|
id: node.id,
|
|
105
106
|
type: node.type,
|
|
@@ -128,8 +129,8 @@ var ForceGraph = ({ model, match }) => {
|
|
|
128
129
|
refreshRate: 200
|
|
129
130
|
});
|
|
130
131
|
const rootRef = useRef2(null);
|
|
131
|
-
const forceGraph = useRef2();
|
|
132
|
-
const filteredRef = useRef2();
|
|
132
|
+
const forceGraph = useRef2(null);
|
|
133
|
+
const filteredRef = useRef2([]);
|
|
133
134
|
filteredRef.current = filterObjectsSync(model?.objects ?? [], match);
|
|
134
135
|
const [data, setData] = useState();
|
|
135
136
|
useEffect2(() => {
|
|
@@ -148,7 +149,7 @@ var ForceGraph = ({ model, match }) => {
|
|
|
148
149
|
nodes: [],
|
|
149
150
|
links: []
|
|
150
151
|
});
|
|
151
|
-
forceGraph.current =
|
|
152
|
+
forceGraph.current = null;
|
|
152
153
|
};
|
|
153
154
|
}, []);
|
|
154
155
|
useEffect2(() => {
|
|
@@ -186,4 +187,4 @@ export {
|
|
|
186
187
|
D3ForceGraph,
|
|
187
188
|
ForceGraph
|
|
188
189
|
};
|
|
189
|
-
//# sourceMappingURL=chunk-
|
|
190
|
+
//# sourceMappingURL=chunk-CRSVAZNA.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/Graph/D3ForceGraph.tsx", "../../../src/components/Graph/ForceGraph.tsx", "../../../src/components/Graph/adapter.ts"],
|
|
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": "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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
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __export = (target, all) => {
|
|
4
|
+
for (var name in all)
|
|
5
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
__export
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=chunk-HSLMI22Q.mjs.map
|
|
@@ -10975,10 +10975,9 @@ var TidyTree = (s, data, options) => {
|
|
|
10975
10975
|
var TidyTree_default = TidyTree;
|
|
10976
10976
|
|
|
10977
10977
|
// src/components/Tree/types/tree.ts
|
|
10978
|
-
import
|
|
10978
|
+
import * as Schema from "effect/Schema";
|
|
10979
10979
|
import { Key, Obj, Type } from "@dxos/echo";
|
|
10980
10980
|
import { invariant } from "@dxos/invariant";
|
|
10981
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-explorer/src/components/Tree/types/tree.ts";
|
|
10982
10981
|
var TreeNodeType = Schema.Struct({
|
|
10983
10982
|
id: Key.ObjectId,
|
|
10984
10983
|
children: Schema.mutable(Schema.Array(Key.ObjectId)),
|
|
@@ -10998,245 +10997,6 @@ var TreeType = Schema.Struct({
|
|
|
10998
10997
|
typename: "dxos.org/type/Tree",
|
|
10999
10998
|
version: "0.1.0"
|
|
11000
10999
|
}));
|
|
11001
|
-
var Tree = class _Tree {
|
|
11002
|
-
static {
|
|
11003
|
-
this.create = () => {
|
|
11004
|
-
const id = Key.ObjectId.random();
|
|
11005
|
-
return Obj.make(TreeType, {
|
|
11006
|
-
root: id,
|
|
11007
|
-
nodes: {
|
|
11008
|
-
[id]: {
|
|
11009
|
-
id,
|
|
11010
|
-
children: [],
|
|
11011
|
-
data: {
|
|
11012
|
-
text: ""
|
|
11013
|
-
}
|
|
11014
|
-
}
|
|
11015
|
-
}
|
|
11016
|
-
});
|
|
11017
|
-
};
|
|
11018
|
-
}
|
|
11019
|
-
constructor(tree3) {
|
|
11020
|
-
this._tree = tree3 ?? _Tree.create();
|
|
11021
|
-
}
|
|
11022
|
-
get tree() {
|
|
11023
|
-
return this._tree;
|
|
11024
|
-
}
|
|
11025
|
-
// TODO(burdon): Make reactive.
|
|
11026
|
-
get size() {
|
|
11027
|
-
return Object.keys(this._tree.nodes).length;
|
|
11028
|
-
}
|
|
11029
|
-
get root() {
|
|
11030
|
-
return this.getNode(this._tree.root);
|
|
11031
|
-
}
|
|
11032
|
-
//
|
|
11033
|
-
// Traversal
|
|
11034
|
-
//
|
|
11035
|
-
/**
|
|
11036
|
-
* Recursively traverse the tree until the callback returns a value.
|
|
11037
|
-
*/
|
|
11038
|
-
tranverse(callback, root = this._tree.root, depth = 0) {
|
|
11039
|
-
const node = this._tree.nodes[root];
|
|
11040
|
-
const result = callback(node, depth);
|
|
11041
|
-
if (result !== void 0) {
|
|
11042
|
-
return result;
|
|
11043
|
-
}
|
|
11044
|
-
for (const childId of node.children) {
|
|
11045
|
-
const result2 = this.tranverse(callback, childId, depth + 1);
|
|
11046
|
-
if (result2 !== void 0) {
|
|
11047
|
-
return result2;
|
|
11048
|
-
}
|
|
11049
|
-
}
|
|
11050
|
-
}
|
|
11051
|
-
getNode(id) {
|
|
11052
|
-
const node = this._tree.nodes[id];
|
|
11053
|
-
invariant(node, void 0, {
|
|
11054
|
-
F: __dxlog_file,
|
|
11055
|
-
L: 98,
|
|
11056
|
-
S: this,
|
|
11057
|
-
A: [
|
|
11058
|
-
"node",
|
|
11059
|
-
""
|
|
11060
|
-
]
|
|
11061
|
-
});
|
|
11062
|
-
return node;
|
|
11063
|
-
}
|
|
11064
|
-
/**
|
|
11065
|
-
* Get the children of a node.
|
|
11066
|
-
*/
|
|
11067
|
-
getChildNodes(node) {
|
|
11068
|
-
return node.children.map((id) => this.getNode(id));
|
|
11069
|
-
}
|
|
11070
|
-
/**
|
|
11071
|
-
* Get the parent of a node.
|
|
11072
|
-
*/
|
|
11073
|
-
getParent(node) {
|
|
11074
|
-
const parent = this.tranverse((n) => {
|
|
11075
|
-
if (n.children.includes(node.id)) {
|
|
11076
|
-
return n;
|
|
11077
|
-
}
|
|
11078
|
-
});
|
|
11079
|
-
return parent ?? null;
|
|
11080
|
-
}
|
|
11081
|
-
/**
|
|
11082
|
-
* Get the next node in the tree.
|
|
11083
|
-
*/
|
|
11084
|
-
getNext(node, hierarchical = true) {
|
|
11085
|
-
if (hierarchical && node.children.length) {
|
|
11086
|
-
return this.getChildNodes(node)[0];
|
|
11087
|
-
} else {
|
|
11088
|
-
const parent = this.getParent(node);
|
|
11089
|
-
if (parent) {
|
|
11090
|
-
const idx = this.getChildNodes(parent).findIndex(({ id }) => id === node.id);
|
|
11091
|
-
if (idx < parent.children.length - 1) {
|
|
11092
|
-
return this.getNode(parent.children[idx + 1]);
|
|
11093
|
-
} else {
|
|
11094
|
-
return this.getNext(parent, false);
|
|
11095
|
-
}
|
|
11096
|
-
}
|
|
11097
|
-
}
|
|
11098
|
-
}
|
|
11099
|
-
/**
|
|
11100
|
-
* Get the previous node in the tree.
|
|
11101
|
-
*/
|
|
11102
|
-
getPrevious(node, hierarchical = true) {
|
|
11103
|
-
const parent = this.getParent(node);
|
|
11104
|
-
const idx = this.getChildNodes(parent).findIndex(({ id }) => id === node.id);
|
|
11105
|
-
if (idx === 0) {
|
|
11106
|
-
if (hierarchical) {
|
|
11107
|
-
return parent;
|
|
11108
|
-
}
|
|
11109
|
-
} else {
|
|
11110
|
-
const previous = this.getNode(parent.children[idx - 1]);
|
|
11111
|
-
if (hierarchical && previous.children.length) {
|
|
11112
|
-
return this.getLastDescendent(previous);
|
|
11113
|
-
}
|
|
11114
|
-
return previous;
|
|
11115
|
-
}
|
|
11116
|
-
}
|
|
11117
|
-
/**
|
|
11118
|
-
* Get the last descendent of a node.
|
|
11119
|
-
*/
|
|
11120
|
-
getLastDescendent(node) {
|
|
11121
|
-
const children = this.getChildNodes(node);
|
|
11122
|
-
const last = children.length ? children[children.length - 1] : void 0;
|
|
11123
|
-
if (last) {
|
|
11124
|
-
return this.getLastDescendent(last);
|
|
11125
|
-
}
|
|
11126
|
-
return node;
|
|
11127
|
-
}
|
|
11128
|
-
//
|
|
11129
|
-
// Mutations
|
|
11130
|
-
//
|
|
11131
|
-
/**
|
|
11132
|
-
* Clear tree.
|
|
11133
|
-
*/
|
|
11134
|
-
clear() {
|
|
11135
|
-
const root = this._tree.nodes[this._tree.root];
|
|
11136
|
-
root.children.length = 0;
|
|
11137
|
-
this._tree.nodes = {
|
|
11138
|
-
[root.id]: root
|
|
11139
|
-
};
|
|
11140
|
-
}
|
|
11141
|
-
/**
|
|
11142
|
-
* Add node.
|
|
11143
|
-
*/
|
|
11144
|
-
addNode(parent, node, index) {
|
|
11145
|
-
if (!node) {
|
|
11146
|
-
const id = Key.ObjectId.random();
|
|
11147
|
-
node = {
|
|
11148
|
-
id,
|
|
11149
|
-
children: [],
|
|
11150
|
-
data: {
|
|
11151
|
-
text: ""
|
|
11152
|
-
}
|
|
11153
|
-
};
|
|
11154
|
-
}
|
|
11155
|
-
this._tree.nodes[node.id] = node;
|
|
11156
|
-
parent.children.splice(index ?? parent.children.length, 0, node.id);
|
|
11157
|
-
return node;
|
|
11158
|
-
}
|
|
11159
|
-
/**
|
|
11160
|
-
* Delete node.
|
|
11161
|
-
*/
|
|
11162
|
-
deleteNode(parent, id) {
|
|
11163
|
-
const node = this._tree.nodes[id];
|
|
11164
|
-
if (!node) {
|
|
11165
|
-
return void 0;
|
|
11166
|
-
}
|
|
11167
|
-
delete this._tree.nodes[node.id];
|
|
11168
|
-
const idx = parent.children.findIndex((child) => child === id);
|
|
11169
|
-
if (idx !== -1) {
|
|
11170
|
-
parent.children.splice(idx, 1);
|
|
11171
|
-
}
|
|
11172
|
-
return node;
|
|
11173
|
-
}
|
|
11174
|
-
/**
|
|
11175
|
-
* Move child node.
|
|
11176
|
-
*/
|
|
11177
|
-
moveNode(node, from, to) {
|
|
11178
|
-
invariant(from >= 0 && from < node.children.length, void 0, {
|
|
11179
|
-
F: __dxlog_file,
|
|
11180
|
-
L: 228,
|
|
11181
|
-
S: this,
|
|
11182
|
-
A: [
|
|
11183
|
-
"from >= 0 && from < node.children.length",
|
|
11184
|
-
""
|
|
11185
|
-
]
|
|
11186
|
-
});
|
|
11187
|
-
invariant(to >= 0 && to < node.children.length, void 0, {
|
|
11188
|
-
F: __dxlog_file,
|
|
11189
|
-
L: 229,
|
|
11190
|
-
S: this,
|
|
11191
|
-
A: [
|
|
11192
|
-
"to >= 0 && to < node.children.length",
|
|
11193
|
-
""
|
|
11194
|
-
]
|
|
11195
|
-
});
|
|
11196
|
-
if (from === to) {
|
|
11197
|
-
return null;
|
|
11198
|
-
}
|
|
11199
|
-
const child = node.children[from];
|
|
11200
|
-
node.children.splice(from, 1);
|
|
11201
|
-
node.children.splice(to, 0, child);
|
|
11202
|
-
return this.getNode(child);
|
|
11203
|
-
}
|
|
11204
|
-
/**
|
|
11205
|
-
* Indent node.
|
|
11206
|
-
*/
|
|
11207
|
-
indentNode(node) {
|
|
11208
|
-
const parent = this.getParent(node);
|
|
11209
|
-
if (!parent) {
|
|
11210
|
-
return;
|
|
11211
|
-
}
|
|
11212
|
-
const idx = parent.children.findIndex((child) => child === node.id);
|
|
11213
|
-
if (idx < 1 || idx >= parent.children.length) {
|
|
11214
|
-
return;
|
|
11215
|
-
}
|
|
11216
|
-
const previous = this.getNode(parent.children[idx - 1]);
|
|
11217
|
-
parent.children.splice(idx, 1);
|
|
11218
|
-
previous.children.push(node.id);
|
|
11219
|
-
}
|
|
11220
|
-
/**
|
|
11221
|
-
* Unindent node.
|
|
11222
|
-
*/
|
|
11223
|
-
unindentNode(node) {
|
|
11224
|
-
const parent = this.getParent(node);
|
|
11225
|
-
if (!parent) {
|
|
11226
|
-
return;
|
|
11227
|
-
}
|
|
11228
|
-
const ancestor = this.getParent(parent);
|
|
11229
|
-
if (!ancestor) {
|
|
11230
|
-
return;
|
|
11231
|
-
}
|
|
11232
|
-
const nodeIdx = parent.children.findIndex((id) => id === node.id);
|
|
11233
|
-
const [_, ...rest] = parent.children.splice(nodeIdx, parent.children.length - nodeIdx);
|
|
11234
|
-
parent.children.splice(nodeIdx, parent.children.length - nodeIdx);
|
|
11235
|
-
const parentIdx = this.getChildNodes(ancestor).findIndex((n) => n.id === parent.id);
|
|
11236
|
-
ancestor.children.splice(parentIdx + 1, 0, node.id);
|
|
11237
|
-
node.children.push(...rest);
|
|
11238
|
-
}
|
|
11239
|
-
};
|
|
11240
11000
|
|
|
11241
11001
|
// src/components/Tree/types/types.ts
|
|
11242
11002
|
var mapGraphToTreeData = (model, maxDepth = 8) => {
|
|
@@ -11264,7 +11024,7 @@ var renderers = /* @__PURE__ */ new Map([
|
|
|
11264
11024
|
HierarchicalEdgeBundling_default
|
|
11265
11025
|
]
|
|
11266
11026
|
]);
|
|
11267
|
-
var
|
|
11027
|
+
var Tree = ({ space, selected, variant = "tidy", onNodeClick }) => {
|
|
11268
11028
|
var _effect = _useSignals3();
|
|
11269
11029
|
try {
|
|
11270
11030
|
const [model] = useAsyncState(async () => space ? new SpaceGraphModel().open(space) : void 0, [
|
|
@@ -11282,7 +11042,7 @@ var Tree2 = ({ space, selected, variant = "tidy", onNodeClick }) => {
|
|
|
11282
11042
|
]);
|
|
11283
11043
|
const context = useRef(null);
|
|
11284
11044
|
useEffect3(() => {
|
|
11285
|
-
if (context.current) {
|
|
11045
|
+
if (context.current?.size) {
|
|
11286
11046
|
const { width, height } = context.current.size;
|
|
11287
11047
|
const size = Math.min(width, height);
|
|
11288
11048
|
const radius = size * 0.4;
|
|
@@ -11319,13 +11079,13 @@ var Tree2 = ({ space, selected, variant = "tidy", onNodeClick }) => {
|
|
|
11319
11079
|
|
|
11320
11080
|
// src/components/index.ts
|
|
11321
11081
|
import { lazy } from "react";
|
|
11322
|
-
var ExplorerContainer = lazy(() => import("./ExplorerContainer-
|
|
11082
|
+
var ExplorerContainer = lazy(() => import("./ExplorerContainer-N3S5KSUX.mjs"));
|
|
11323
11083
|
|
|
11324
11084
|
export {
|
|
11325
11085
|
Chart,
|
|
11326
11086
|
Globe,
|
|
11327
11087
|
defaultTreeLayoutSlots,
|
|
11328
|
-
|
|
11088
|
+
Tree,
|
|
11329
11089
|
ExplorerContainer
|
|
11330
11090
|
};
|
|
11331
|
-
//# sourceMappingURL=chunk-
|
|
11091
|
+
//# sourceMappingURL=chunk-NPIP4VEH.mjs.map
|