@dxos/plugin-explorer 0.8.4-main.f9ba587 → 0.8.4-main.fd6878d
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-WYPM7YXU.mjs → ExplorerContainer-5QHLD2B2.mjs} +3 -3
- package/dist/lib/browser/{ExplorerContainer-WYPM7YXU.mjs.map → ExplorerContainer-5QHLD2B2.mjs.map} +2 -2
- 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-EF4BFHTI.mjs → chunk-CZZ3DDR7.mjs} +1 -1
- package/dist/lib/browser/{chunk-EF4BFHTI.mjs.map → chunk-CZZ3DDR7.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-ZZX52LNU.mjs → chunk-L4U4MPSZ.mjs} +4 -1
- package/dist/lib/browser/{chunk-ZZX52LNU.mjs.map → chunk-L4U4MPSZ.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-4UVJNXCE.mjs → chunk-LGK64HLU.mjs} +4 -244
- package/dist/lib/browser/{chunk-4UVJNXCE.mjs.map → chunk-LGK64HLU.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +10 -8
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-XH2UO2FM.mjs → intent-resolver-7MVEYNX7.mjs} +3 -3
- package/dist/lib/browser/{intent-resolver-XH2UO2FM.mjs.map → intent-resolver-7MVEYNX7.mjs.map} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-5ENPAK3V.mjs → react-surface-FABRDFTF.mjs} +4 -4
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node-esm/{ExplorerContainer-S5GL733T.mjs → ExplorerContainer-AMYAVLO4.mjs} +3 -3
- package/dist/lib/node-esm/{ExplorerContainer-S5GL733T.mjs.map → ExplorerContainer-AMYAVLO4.mjs.map} +2 -2
- 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-VKCOKQRG.mjs → chunk-4GWDNZ4Z.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-VKCOKQRG.mjs.map → chunk-4GWDNZ4Z.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-6M6W7DKH.mjs → chunk-MCOXQ3ML.mjs} +4 -1
- package/dist/lib/node-esm/{chunk-6M6W7DKH.mjs.map → chunk-MCOXQ3ML.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-HCV3J2HM.mjs → chunk-W4ZNCGOD.mjs} +4 -244
- package/dist/lib/node-esm/{chunk-HCV3J2HM.mjs.map → chunk-W4ZNCGOD.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +10 -8
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-AGBBNA67.mjs → intent-resolver-NL3SR2XF.mjs} +3 -3
- package/dist/lib/node-esm/{intent-resolver-AGBBNA67.mjs.map → intent-resolver-NL3SR2XF.mjs.map} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-4MDNPYQ6.mjs → react-surface-EYCZUAAI.mjs} +4 -4
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/capabilities/intent-resolver.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.map +1 -1
- 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.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 +1 -1
- package/dist/types/src/components/Graph/testing.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/translations.d.ts +2 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +31 -28
- package/src/ExplorerPlugin.tsx +2 -2
- package/src/capabilities/intent-resolver.ts +1 -1
- package/src/components/Chart/Chart.stories.tsx +2 -1
- package/src/components/Chart/Chart.tsx +1 -1
- package/src/components/ExplorerContainer.tsx +2 -1
- package/src/components/Globe/Globe.stories.tsx +3 -2
- package/src/components/Globe/Globe.tsx +1 -1
- package/src/components/Graph/D3ForceGraph.stories.tsx +4 -3
- package/src/components/Graph/D3ForceGraph.tsx +1 -1
- package/src/components/Graph/ForceGraph.stories.tsx +4 -3
- package/src/components/Graph/ForceGraph.tsx +2 -2
- package/src/components/Graph/testing.ts +2 -2
- package/src/components/Tree/Tree.stories.tsx +1 -1
- package/src/components/Tree/Tree.tsx +1 -1
- package/src/components/Tree/types/tree.test.ts +4 -3
- package/src/hooks/useGraphModel.ts +5 -4
- package/src/translations.ts +2 -0
- package/src/types/types.ts +2 -1
- package/dist/lib/browser/chunk-OAOY7SHY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PPBUWC7F.mjs.map +0 -7
- /package/dist/lib/browser/{react-surface-5ENPAK3V.mjs.map → react-surface-FABRDFTF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-surface-4MDNPYQ6.mjs.map → react-surface-EYCZUAAI.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-explorer",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.fd6878d",
|
|
4
4
|
"description": "Braneframe data visualization plugin",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -10,16 +10,19 @@
|
|
|
10
10
|
"type": "module",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
+
"source": "./src/index.ts",
|
|
13
14
|
"types": "./dist/types/src/index.d.ts",
|
|
14
15
|
"browser": "./dist/lib/browser/index.mjs",
|
|
15
16
|
"node": "./dist/lib/node-esm/index.mjs"
|
|
16
17
|
},
|
|
17
18
|
"./meta": {
|
|
19
|
+
"source": "./src/meta.ts",
|
|
18
20
|
"types": "./dist/types/src/meta.d.ts",
|
|
19
21
|
"browser": "./dist/lib/browser/meta.mjs",
|
|
20
22
|
"node": "./dist/lib/node-esm/meta.mjs"
|
|
21
23
|
},
|
|
22
24
|
"./types": {
|
|
25
|
+
"source": "./src/types/index.ts",
|
|
23
26
|
"types": "./dist/types/src/types/index.d.ts",
|
|
24
27
|
"browser": "./dist/lib/browser/types/index.mjs",
|
|
25
28
|
"node": "./dist/lib/node-esm/types/index.mjs"
|
|
@@ -46,31 +49,31 @@
|
|
|
46
49
|
"@preact-signals/safe-react": "^0.9.0",
|
|
47
50
|
"@preact/signals-core": "^1.9.0",
|
|
48
51
|
"d3": "^7.9.0",
|
|
49
|
-
"effect": "3.
|
|
52
|
+
"effect": "3.17.7",
|
|
50
53
|
"force-graph": "^1.49.4",
|
|
51
54
|
"lodash.defaultsdeep": "^4.6.1",
|
|
52
55
|
"react-resize-detector": "^11.0.1",
|
|
53
56
|
"three": "^0.178.0",
|
|
54
57
|
"topojson-client": "^3.1.0",
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/
|
|
57
|
-
"@dxos/client": "0.8.4-main.
|
|
58
|
-
"@dxos/echo": "0.8.4-main.
|
|
59
|
-
"@dxos/
|
|
60
|
-
"@dxos/
|
|
61
|
-
"@dxos/
|
|
62
|
-
"@dxos/
|
|
63
|
-
"@dxos/
|
|
64
|
-
"@dxos/plugin-graph": "0.8.4-main.
|
|
65
|
-
"@dxos/plugin-
|
|
66
|
-
"@dxos/
|
|
67
|
-
"@dxos/plugin-space": "0.8.4-main.
|
|
68
|
-
"@dxos/
|
|
69
|
-
"@dxos/react-ui-attention": "0.8.4-main.
|
|
70
|
-
"@dxos/react-ui-graph": "0.8.4-main.
|
|
71
|
-
"@dxos/react-ui-stack": "0.8.4-main.
|
|
72
|
-
"@dxos/
|
|
73
|
-
"@dxos/
|
|
58
|
+
"@dxos/async": "0.8.4-main.fd6878d",
|
|
59
|
+
"@dxos/echo": "0.8.4-main.fd6878d",
|
|
60
|
+
"@dxos/client": "0.8.4-main.fd6878d",
|
|
61
|
+
"@dxos/echo-schema": "0.8.4-main.fd6878d",
|
|
62
|
+
"@dxos/graph": "0.8.4-main.fd6878d",
|
|
63
|
+
"@dxos/live-object": "0.8.4-main.fd6878d",
|
|
64
|
+
"@dxos/app-framework": "0.8.4-main.fd6878d",
|
|
65
|
+
"@dxos/log": "0.8.4-main.fd6878d",
|
|
66
|
+
"@dxos/plugin-client": "0.8.4-main.fd6878d",
|
|
67
|
+
"@dxos/plugin-graph": "0.8.4-main.fd6878d",
|
|
68
|
+
"@dxos/plugin-search": "0.8.4-main.fd6878d",
|
|
69
|
+
"@dxos/react-client": "0.8.4-main.fd6878d",
|
|
70
|
+
"@dxos/plugin-space": "0.8.4-main.fd6878d",
|
|
71
|
+
"@dxos/invariant": "0.8.4-main.fd6878d",
|
|
72
|
+
"@dxos/react-ui-attention": "0.8.4-main.fd6878d",
|
|
73
|
+
"@dxos/react-ui-graph": "0.8.4-main.fd6878d",
|
|
74
|
+
"@dxos/react-ui-stack": "0.8.4-main.fd6878d",
|
|
75
|
+
"@dxos/util": "0.8.4-main.fd6878d",
|
|
76
|
+
"@dxos/schema": "0.8.4-main.fd6878d"
|
|
74
77
|
},
|
|
75
78
|
"devDependencies": {
|
|
76
79
|
"@types/d3": "^7.4.3",
|
|
@@ -83,18 +86,18 @@
|
|
|
83
86
|
"react": "~18.2.0",
|
|
84
87
|
"react-dom": "~18.2.0",
|
|
85
88
|
"vite": "5.4.7",
|
|
86
|
-
"@dxos/
|
|
87
|
-
"@dxos/
|
|
88
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
89
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
90
|
-
"@dxos/storybook-utils": "0.8.4-main.
|
|
89
|
+
"@dxos/random": "0.8.4-main.fd6878d",
|
|
90
|
+
"@dxos/echo-generator": "0.8.4-main.fd6878d",
|
|
91
|
+
"@dxos/react-ui": "0.8.4-main.fd6878d",
|
|
92
|
+
"@dxos/react-ui-theme": "0.8.4-main.fd6878d",
|
|
93
|
+
"@dxos/storybook-utils": "0.8.4-main.fd6878d"
|
|
91
94
|
},
|
|
92
95
|
"peerDependencies": {
|
|
93
96
|
"effect": "^3.13.3",
|
|
94
97
|
"react": "~18.2.0",
|
|
95
98
|
"react-dom": "~18.2.0",
|
|
96
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
97
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
99
|
+
"@dxos/react-ui": "0.8.4-main.fd6878d",
|
|
100
|
+
"@dxos/react-ui-theme": "0.8.4-main.fd6878d"
|
|
98
101
|
},
|
|
99
102
|
"publishConfig": {
|
|
100
103
|
"access": "public"
|
package/src/ExplorerPlugin.tsx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Capabilities, contributes, createIntent, defineModule, definePlugin
|
|
5
|
+
import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';
|
|
6
6
|
import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
|
|
7
7
|
import { SpaceCapabilities } from '@dxos/plugin-space';
|
|
8
8
|
import { defineObjectForm } from '@dxos/plugin-space/types';
|
|
@@ -10,7 +10,7 @@ import { defineObjectForm } from '@dxos/plugin-space/types';
|
|
|
10
10
|
import { IntentResolver, ReactSurface } from './capabilities';
|
|
11
11
|
import { meta } from './meta';
|
|
12
12
|
import { translations } from './translations';
|
|
13
|
-
import {
|
|
13
|
+
import { ExplorerAction, ViewType } from './types';
|
|
14
14
|
|
|
15
15
|
export const ExplorerPlugin = () =>
|
|
16
16
|
definePlugin(meta, [
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Capabilities, contributes, createResolver } from '@dxos/app-framework';
|
|
6
6
|
import { Obj } from '@dxos/echo';
|
|
7
7
|
|
|
8
8
|
import { ExplorerAction, ViewType } from '../types';
|
|
@@ -10,9 +10,10 @@ import React from 'react';
|
|
|
10
10
|
import { ClientRepeater } from '@dxos/react-client/testing';
|
|
11
11
|
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
12
12
|
|
|
13
|
-
import { Chart } from './Chart';
|
|
14
13
|
import CitiesData from '../../../data/cities.js';
|
|
15
14
|
|
|
15
|
+
import { Chart } from './Chart';
|
|
16
|
+
|
|
16
17
|
// TODO(burdon): Generate data with geo lat/lng.
|
|
17
18
|
// TODO(burdon): How to provide geo service via agent?
|
|
18
19
|
|
|
@@ -7,7 +7,7 @@ import { type DotOptions } from '@observablehq/plot';
|
|
|
7
7
|
import React, { useEffect } from 'react';
|
|
8
8
|
import { useResizeDetector } from 'react-resize-detector';
|
|
9
9
|
|
|
10
|
-
import { type Accessor,
|
|
10
|
+
import { type Accessor, type Point, createAdapter } from '../plot';
|
|
11
11
|
|
|
12
12
|
const defaultOptions: DotOptions = {
|
|
13
13
|
r: 4,
|
|
@@ -8,10 +8,11 @@ import { useGlobalSearch } from '@dxos/plugin-search';
|
|
|
8
8
|
import { getSpace } from '@dxos/react-client/echo';
|
|
9
9
|
import { StackItem } from '@dxos/react-ui-stack';
|
|
10
10
|
|
|
11
|
-
import { D3ForceGraph } from './Graph';
|
|
12
11
|
import { useGraphModel } from '../hooks';
|
|
13
12
|
import { type ViewType } from '../types';
|
|
14
13
|
|
|
14
|
+
import { D3ForceGraph } from './Graph';
|
|
15
|
+
|
|
15
16
|
type ExplorerContainerProps = {
|
|
16
17
|
role: string;
|
|
17
18
|
view: ViewType;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { dot, geo, graticule, plot, sphere } from '@observablehq/plot';
|
|
8
8
|
import { type Meta } from '@storybook/react-vite';
|
|
9
9
|
import { geoCircle } from 'd3';
|
|
10
10
|
import React, { useEffect } from 'react';
|
|
@@ -14,10 +14,11 @@ import { feature } from 'topojson-client';
|
|
|
14
14
|
import { ClientRepeater } from '@dxos/react-client/testing';
|
|
15
15
|
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
16
16
|
|
|
17
|
-
import { Globe } from './Globe';
|
|
18
17
|
import CitiesData from '../../../data/cities.js';
|
|
19
18
|
import CountriesData from '../../../data/countries-110m.js';
|
|
20
19
|
|
|
20
|
+
import { Globe } from './Globe';
|
|
21
|
+
|
|
21
22
|
// TODO(burdon): Generate data with geo lat/lng.
|
|
22
23
|
// TODO(burdon): How to provide geo service via agent?
|
|
23
24
|
|
|
@@ -9,7 +9,7 @@ import { useResizeDetector } from 'react-resize-detector';
|
|
|
9
9
|
import * as topojson from 'topojson-client';
|
|
10
10
|
|
|
11
11
|
import CountriesData from '../../../data/countries-110m.js';
|
|
12
|
-
import { type Accessor,
|
|
12
|
+
import { type Accessor, type GeoLocation, createAdapter } from '../plot';
|
|
13
13
|
|
|
14
14
|
const defaultOptions: DotOptions = {
|
|
15
15
|
r: 4,
|
|
@@ -14,13 +14,14 @@ import { type Space } from '@dxos/react-client/echo';
|
|
|
14
14
|
import { withClientProvider } from '@dxos/react-client/testing';
|
|
15
15
|
import { DataType } from '@dxos/schema';
|
|
16
16
|
import { type ValueGenerator } from '@dxos/schema/testing';
|
|
17
|
-
import { withLayout, withTheme
|
|
17
|
+
import { render, withLayout, withTheme } from '@dxos/storybook-utils';
|
|
18
18
|
|
|
19
|
-
import { D3ForceGraph } from './D3ForceGraph';
|
|
20
|
-
import { generate } from './testing';
|
|
21
19
|
import { useGraphModel } from '../../hooks';
|
|
22
20
|
import { ViewType } from '../../types';
|
|
23
21
|
|
|
22
|
+
import { D3ForceGraph } from './D3ForceGraph';
|
|
23
|
+
import { generate } from './testing';
|
|
24
|
+
|
|
24
25
|
const generator = faker as any as ValueGenerator;
|
|
25
26
|
|
|
26
27
|
faker.seed(1);
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
type SVGContext,
|
|
17
17
|
} from '@dxos/react-ui-graph';
|
|
18
18
|
import { getHashColor } from '@dxos/react-ui-theme';
|
|
19
|
-
import { type
|
|
19
|
+
import { type SpaceGraphEdge, type SpaceGraphModel, type SpaceGraphNode } from '@dxos/schema';
|
|
20
20
|
|
|
21
21
|
import '@dxos/react-ui-graph/styles/graph.css';
|
|
22
22
|
|
|
@@ -14,13 +14,14 @@ import { type Space } from '@dxos/react-client/echo';
|
|
|
14
14
|
import { withClientProvider } from '@dxos/react-client/testing';
|
|
15
15
|
import { DataType } from '@dxos/schema';
|
|
16
16
|
import { type ValueGenerator } from '@dxos/schema/testing';
|
|
17
|
-
import { withLayout, withTheme
|
|
17
|
+
import { render, withLayout, withTheme } from '@dxos/storybook-utils';
|
|
18
18
|
|
|
19
|
-
import { ForceGraph } from './ForceGraph';
|
|
20
|
-
import { generate } from './testing';
|
|
21
19
|
import { useGraphModel } from '../../hooks';
|
|
22
20
|
import { ViewType } from '../../types';
|
|
23
21
|
|
|
22
|
+
import { ForceGraph } from './ForceGraph';
|
|
23
|
+
import { generate } from './testing';
|
|
24
|
+
|
|
24
25
|
const generator = faker as any as ValueGenerator;
|
|
25
26
|
|
|
26
27
|
faker.seed(1);
|
|
@@ -7,7 +7,7 @@ import NativeForceGraph from 'force-graph';
|
|
|
7
7
|
import React, { type FC, useEffect, useRef, useState } from 'react';
|
|
8
8
|
import { useResizeDetector } from 'react-resize-detector';
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { type SearchResult, filterObjectsSync } from '@dxos/plugin-search';
|
|
11
11
|
import { type SpaceGraphModel } from '@dxos/schema';
|
|
12
12
|
|
|
13
13
|
import { GraphAdapter } from './adapter';
|
|
@@ -39,7 +39,7 @@ export const ForceGraph: FC<ForceGraphProps> = ({ model, match }) => {
|
|
|
39
39
|
forceGraph.current = new NativeForceGraph(rootRef.current)
|
|
40
40
|
// https://github.com/vasturiano/force-graph?tab=readme-ov-file#node-styling
|
|
41
41
|
.nodeRelSize(6)
|
|
42
|
-
.nodeLabel((node: any) => (node.type === 'schema' ? node.data.typename : node.data.label ?? node.id))
|
|
42
|
+
.nodeLabel((node: any) => (node.type === 'schema' ? node.data.typename : (node.data.label ?? node.id)))
|
|
43
43
|
.nodeAutoColorBy((node: any) => (node.type === 'schema' ? 'schema' : node.data.typename))
|
|
44
44
|
|
|
45
45
|
// https://github.com/vasturiano/force-graph?tab=readme-ov-file#link-styling
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Space } from '@dxos/client/echo';
|
|
6
|
-
import { Query, Relation
|
|
6
|
+
import { type Obj, Query, Relation } from '@dxos/echo';
|
|
7
7
|
import { DataType } from '@dxos/schema';
|
|
8
|
-
import {
|
|
8
|
+
import { type TypeSpec, type ValueGenerator, createObjectFactory } from '@dxos/schema/testing';
|
|
9
9
|
import { range } from '@dxos/util';
|
|
10
10
|
|
|
11
11
|
const getObject = (objects: Obj.Any[]) => objects[Math.floor(Math.random() * objects.length)];
|
|
@@ -13,7 +13,7 @@ import { type ClientRepeatedComponentProps, ClientRepeater } from '@dxos/react-c
|
|
|
13
13
|
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
14
14
|
|
|
15
15
|
import { Tree, type TreeComponentProps } from './Tree';
|
|
16
|
-
import {
|
|
16
|
+
import { Tree as TreeModel, TreeType } from './types';
|
|
17
17
|
|
|
18
18
|
// TODO(burdon): Storybook for Graph/Tree/Plot (generics); incl. GraphModel.
|
|
19
19
|
// TODO(burdon): Type for all Explorer components (Space, Object, Query, etc.) incl.
|
|
@@ -10,7 +10,7 @@ import { SVG, type SVGContext } from '@dxos/react-ui-graph';
|
|
|
10
10
|
import { SpaceGraphModel } from '@dxos/schema';
|
|
11
11
|
|
|
12
12
|
import { HierarchicalEdgeBundling, RadialTree, TidyTree } from './layout';
|
|
13
|
-
import {
|
|
13
|
+
import { type TreeNode, mapGraphToTreeData } from './types';
|
|
14
14
|
|
|
15
15
|
// TODO(burdon): Create dge bundling graph using d3.hierarchy.
|
|
16
16
|
// https://observablehq.com/@d3/hierarchical-edge-bundling?intent=fork
|
|
@@ -8,9 +8,10 @@ import { Obj, Ref } from '@dxos/echo';
|
|
|
8
8
|
import { faker } from '@dxos/random';
|
|
9
9
|
import { DataType } from '@dxos/schema';
|
|
10
10
|
|
|
11
|
-
import { type Tree } from './tree';
|
|
12
11
|
import { createTree } from '../testing';
|
|
13
12
|
|
|
13
|
+
import { type Tree } from './tree';
|
|
14
|
+
|
|
14
15
|
faker.seed(0);
|
|
15
16
|
|
|
16
17
|
const print = (tree: Tree) => {
|
|
@@ -123,8 +124,8 @@ describe('tree', () => {
|
|
|
123
124
|
});
|
|
124
125
|
|
|
125
126
|
test('task', ({ expect }) => {
|
|
126
|
-
const task = Obj.make(DataType.Task, {
|
|
127
|
-
expect(task.
|
|
127
|
+
const task = Obj.make(DataType.Task, { title: 'Test task.' });
|
|
128
|
+
expect(task.title).to.eq('Test task.');
|
|
128
129
|
|
|
129
130
|
const tree = createTree();
|
|
130
131
|
const node = tree.addNode(tree.root);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { useEffect, useState } from 'react';
|
|
6
6
|
|
|
7
|
-
import { type Filter, type Space } from '@dxos/client/echo';
|
|
7
|
+
import { type Filter, type Queue, type Space } from '@dxos/client/echo';
|
|
8
8
|
import { SpaceGraphModel, type SpaceGraphModelOptions } from '@dxos/schema';
|
|
9
9
|
|
|
10
10
|
// TODO(burdon): Factor out.
|
|
@@ -12,6 +12,7 @@ export const useGraphModel = (
|
|
|
12
12
|
space: Space | undefined,
|
|
13
13
|
filter?: Filter.Any | undefined,
|
|
14
14
|
options?: SpaceGraphModelOptions,
|
|
15
|
+
queue?: Queue,
|
|
15
16
|
): SpaceGraphModel | undefined => {
|
|
16
17
|
const [model, setModel] = useState<SpaceGraphModel | undefined>(undefined);
|
|
17
18
|
useEffect(() => {
|
|
@@ -22,14 +23,14 @@ export const useGraphModel = (
|
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
// TODO(burdon): Does this need to be a dependency?
|
|
25
|
-
if (!model) {
|
|
26
|
+
if (!model || model.queue !== queue) {
|
|
26
27
|
const model = new SpaceGraphModel().setFilter(filter).setOptions(options);
|
|
27
|
-
void model.open(space);
|
|
28
|
+
void model.open(space, queue);
|
|
28
29
|
setModel(model);
|
|
29
30
|
} else {
|
|
30
31
|
model.setFilter(filter).setOptions(options);
|
|
31
32
|
}
|
|
32
|
-
}, [space, filter, options]);
|
|
33
|
+
}, [space, filter, options, queue]);
|
|
33
34
|
|
|
34
35
|
return model;
|
|
35
36
|
};
|
package/src/translations.ts
CHANGED
|
@@ -16,6 +16,8 @@ export const translations = [
|
|
|
16
16
|
'typename label_one': 'Explorer',
|
|
17
17
|
'typename label_other': 'Explorers',
|
|
18
18
|
'object name placeholder': 'New explorer',
|
|
19
|
+
'rename object label': 'Rename explorer',
|
|
20
|
+
'delete object label': 'Delete explorer',
|
|
19
21
|
},
|
|
20
22
|
[meta.id]: {
|
|
21
23
|
'plugin name': 'Explorer',
|
package/src/types/types.ts
CHANGED
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
import { Schema } from 'effect';
|
|
6
6
|
|
|
7
|
-
import { ViewType } from './schema';
|
|
8
7
|
import { EXPLORER_PLUGIN } from '../meta';
|
|
9
8
|
|
|
9
|
+
import { ViewType } from './schema';
|
|
10
|
+
|
|
10
11
|
export namespace ExplorerAction {
|
|
11
12
|
const EXPLORER_ACTION = `${EXPLORER_PLUGIN}/action`;
|
|
12
13
|
|
|
@@ -1,7 +0,0 @@
|
|
|
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 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): 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) {\n const model = new SpaceGraphModel().setFilter(filter).setOptions(options);\n void model.open(space);\n setModel(model);\n } else {\n model.setFilter(filter).setOptions(options);\n }\n }, [space, filter, options]);\n\n return model;\n};\n"],
|
|
5
|
-
"mappings": ";AAIA,SAASA,WAAWC,gBAAgB;AAGpC,SAASC,uBAAoD;AAGtD,IAAMC,gBAAgB,CAC3BC,OACAC,QACAC,YAAAA;AAEA,QAAM,CAACC,OAAOC,QAAAA,IAAYC,SAAsCC,MAAAA;AAChEC,YAAU,MAAA;AACR,QAAI,CAACP,OAAO;AACV,WAAKG,OAAOK,MAAAA;AACZJ,eAASE,MAAAA;AACT;IACF;AAGA,QAAI,CAACH,OAAO;AACV,YAAMA,SAAQ,IAAIM,gBAAAA,EAAkBC,UAAUT,MAAAA,EAAQU,WAAWT,OAAAA;AACjE,WAAKC,OAAMS,KAAKZ,KAAAA;AAChBI,eAASD,MAAAA;IACX,OAAO;AACLA,YAAMO,UAAUT,MAAAA,EAAQU,WAAWT,OAAAA;IACrC;EACF,GAAG;IAACF;IAAOC;IAAQC;GAAQ;AAE3B,SAAOC;AACT;",
|
|
6
|
-
"names": ["useEffect", "useState", "SpaceGraphModel", "useGraphModel", "space", "filter", "options", "model", "setModel", "useState", "undefined", "useEffect", "close", "SpaceGraphModel", "setFilter", "setOptions", "open"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
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 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): 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) {\n const model = new SpaceGraphModel().setFilter(filter).setOptions(options);\n void model.open(space);\n setModel(model);\n } else {\n model.setFilter(filter).setOptions(options);\n }\n }, [space, filter, options]);\n\n return model;\n};\n"],
|
|
5
|
-
"mappings": ";;;AAIA,SAASA,WAAWC,gBAAgB;AAGpC,SAASC,uBAAoD;AAGtD,IAAMC,gBAAgB,CAC3BC,OACAC,QACAC,YAAAA;AAEA,QAAM,CAACC,OAAOC,QAAAA,IAAYC,SAAsCC,MAAAA;AAChEC,YAAU,MAAA;AACR,QAAI,CAACP,OAAO;AACV,WAAKG,OAAOK,MAAAA;AACZJ,eAASE,MAAAA;AACT;IACF;AAGA,QAAI,CAACH,OAAO;AACV,YAAMA,SAAQ,IAAIM,gBAAAA,EAAkBC,UAAUT,MAAAA,EAAQU,WAAWT,OAAAA;AACjE,WAAKC,OAAMS,KAAKZ,KAAAA;AAChBI,eAASD,MAAAA;IACX,OAAO;AACLA,YAAMO,UAAUT,MAAAA,EAAQU,WAAWT,OAAAA;IACrC;EACF,GAAG;IAACF;IAAOC;IAAQC;GAAQ;AAE3B,SAAOC;AACT;",
|
|
6
|
-
"names": ["useEffect", "useState", "SpaceGraphModel", "useGraphModel", "space", "filter", "options", "model", "setModel", "useState", "undefined", "useEffect", "close", "SpaceGraphModel", "setFilter", "setOptions", "open"]
|
|
7
|
-
}
|
|
File without changes
|
/package/dist/lib/node-esm/{react-surface-4MDNPYQ6.mjs.map → react-surface-EYCZUAAI.mjs.map}
RENAMED
|
File without changes
|