@dxos/plugin-debug 0.6.13 → 0.6.14-main.69511f5
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/{DebugGlobal-H56M2VL4.mjs → DebugGlobal-ZTCBF3XR.mjs} +5 -5
- package/dist/lib/browser/{DebugSpace-NHPMLATA.mjs → DebugSpace-I6BNZKI2.mjs} +16 -41
- package/dist/lib/browser/DebugSpace-I6BNZKI2.mjs.map +7 -0
- package/dist/lib/browser/chunk-2HTS7SNO.mjs +17 -0
- package/dist/lib/browser/chunk-2HTS7SNO.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ED5L5YYI.mjs → chunk-H3BJHVRD.mjs} +5 -8
- package/dist/lib/browser/chunk-H3BJHVRD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-RYK3J66D.mjs → chunk-NHHLZV45.mjs} +11 -4
- package/dist/lib/browser/chunk-NHHLZV45.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +248 -144
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/meta.mjs +1 -1
- package/dist/types/src/DebugPlugin.d.ts +1 -3
- package/dist/types/src/DebugPlugin.d.ts.map +1 -1
- package/dist/types/src/components/DebugObjectPanel.d.ts +7 -0
- package/dist/types/src/components/DebugObjectPanel.d.ts.map +1 -0
- package/dist/types/src/components/DebugPanel.d.ts +3 -3
- package/dist/types/src/components/DebugPanel.d.ts.map +1 -1
- package/dist/types/src/components/DebugSpace.stories.d.ts +3 -13
- package/dist/types/src/components/DebugSpace.stories.d.ts.map +1 -1
- package/dist/types/src/components/DebugStatus.d.ts.map +1 -1
- package/dist/types/src/components/ObjectCreator.d.ts +5 -5
- package/dist/types/src/components/ObjectCreator.d.ts.map +1 -1
- package/dist/types/src/components/ObjectCreator.stories.d.ts +3 -14
- package/dist/types/src/components/ObjectCreator.stories.d.ts.map +1 -1
- package/dist/types/src/components/SurfaceDebug.d.ts +9 -0
- package/dist/types/src/components/SurfaceDebug.d.ts.map +1 -0
- package/dist/types/src/components/Wireframe.d.ts +5 -4
- package/dist/types/src/components/Wireframe.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +4 -9
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/scaffolding/generator.d.ts +1 -2
- package/dist/types/src/scaffolding/generator.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +8 -5
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +45 -47
- package/src/DebugPlugin.tsx +134 -47
- package/src/components/DebugObjectPanel.tsx +22 -0
- package/src/components/DebugPanel.tsx +4 -9
- package/src/components/DebugSettings.tsx +13 -13
- package/src/components/DebugSpace.stories.tsx +6 -3
- package/src/components/DebugStatus.tsx +20 -13
- package/src/components/ObjectCreator.stories.tsx +13 -10
- package/src/components/ObjectCreator.tsx +12 -21
- package/src/components/SurfaceDebug.tsx +55 -0
- package/src/components/Wireframe.tsx +20 -11
- package/src/components/index.ts +4 -5
- package/src/meta.ts +15 -0
- package/src/scaffolding/generator.ts +4 -15
- package/src/types.ts +10 -5
- package/dist/lib/browser/DebugSpace-NHPMLATA.mjs.map +0 -7
- package/dist/lib/browser/DevtoolsMain-RWT3FLJ6.mjs +0 -15
- package/dist/lib/browser/DevtoolsMain-RWT3FLJ6.mjs.map +0 -7
- package/dist/lib/browser/chunk-ED5L5YYI.mjs.map +0 -7
- package/dist/lib/browser/chunk-RYK3J66D.mjs.map +0 -7
- package/dist/lib/browser/chunk-WEGYHXMB.mjs +0 -21
- package/dist/lib/browser/chunk-WEGYHXMB.mjs.map +0 -7
- package/dist/types/src/components/DevtoolsMain.d.ts +0 -4
- package/dist/types/src/components/DevtoolsMain.d.ts.map +0 -1
- package/dist/types/src/types.test.d.ts +0 -2
- package/dist/types/src/types.test.d.ts.map +0 -1
- package/src/components/DevtoolsMain.tsx +0 -15
- package/src/meta.tsx +0 -19
- package/src/types.test.ts +0 -13
- /package/dist/lib/browser/{DebugGlobal-H56M2VL4.mjs.map → DebugGlobal-ZTCBF3XR.mjs.map} +0 -0
|
@@ -8,9 +8,9 @@ import React, { useEffect, useState } from 'react';
|
|
|
8
8
|
import { parseFileManagerPlugin, useResolvePlugin } from '@dxos/app-framework';
|
|
9
9
|
import { type ConfigProto, defs, SaveConfig, Storage } from '@dxos/config';
|
|
10
10
|
import { log } from '@dxos/log';
|
|
11
|
-
import { SettingsValue } from '@dxos/plugin-settings';
|
|
12
11
|
import { useClient } from '@dxos/react-client';
|
|
13
12
|
import { useTranslation, Button, Toast, Input, useFileDownload, Select } from '@dxos/react-ui';
|
|
13
|
+
import { FormInput } from '@dxos/react-ui-data';
|
|
14
14
|
import { getSize, mx } from '@dxos/react-ui-theme';
|
|
15
15
|
import { setDeep } from '@dxos/util';
|
|
16
16
|
|
|
@@ -80,25 +80,25 @@ export const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) =>
|
|
|
80
80
|
|
|
81
81
|
return (
|
|
82
82
|
<>
|
|
83
|
-
<
|
|
83
|
+
<FormInput label={t('settings show debug panel')}>
|
|
84
84
|
<Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />
|
|
85
|
-
</
|
|
86
|
-
<
|
|
85
|
+
</FormInput>
|
|
86
|
+
<FormInput label={t('settings show devtools panel')}>
|
|
87
87
|
<Input.Switch checked={settings.devtools} onCheckedChange={(checked) => (settings.devtools = !!checked)} />
|
|
88
|
-
</
|
|
89
|
-
<
|
|
88
|
+
</FormInput>
|
|
89
|
+
<FormInput label={t('settings wireframe')}>
|
|
90
90
|
<Input.Switch checked={settings.wireframe} onCheckedChange={(checked) => (settings.wireframe = !!checked)} />
|
|
91
|
-
</
|
|
92
|
-
<
|
|
91
|
+
</FormInput>
|
|
92
|
+
<FormInput label={t('settings download diagnostics')}>
|
|
93
93
|
<Button onClick={handleDownload}>
|
|
94
94
|
<DownloadSimple className={getSize(5)} />
|
|
95
95
|
</Button>
|
|
96
|
-
</
|
|
97
|
-
<
|
|
96
|
+
</FormInput>
|
|
97
|
+
<FormInput label={t('settings repair')}>
|
|
98
98
|
<Button onClick={handleRepair}>
|
|
99
99
|
<FirstAidKit className={getSize(5)} />
|
|
100
100
|
</Button>
|
|
101
|
-
</
|
|
101
|
+
</FormInput>
|
|
102
102
|
|
|
103
103
|
{/* TODO(burdon): Move to layout? */}
|
|
104
104
|
{toast && (
|
|
@@ -113,7 +113,7 @@ export const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) =>
|
|
|
113
113
|
</Toast.Root>
|
|
114
114
|
)}
|
|
115
115
|
|
|
116
|
-
<
|
|
116
|
+
<FormInput label={t('settings choose storage adaptor')}>
|
|
117
117
|
<Select.Root
|
|
118
118
|
value={
|
|
119
119
|
Object.entries(StorageAdapters).find(
|
|
@@ -144,7 +144,7 @@ export const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) =>
|
|
|
144
144
|
</Select.Content>
|
|
145
145
|
</Select.Portal>
|
|
146
146
|
</Select.Root>
|
|
147
|
-
</
|
|
147
|
+
</FormInput>
|
|
148
148
|
</>
|
|
149
149
|
);
|
|
150
150
|
};
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
+
import { type Meta } from '@storybook/react';
|
|
7
8
|
import React, { useEffect } from 'react';
|
|
8
9
|
|
|
9
10
|
import { createSpaceObjectGenerator } from '@dxos/echo-generator';
|
|
@@ -28,8 +29,10 @@ const Story = () => {
|
|
|
28
29
|
return <DebugSpace space={space} />;
|
|
29
30
|
};
|
|
30
31
|
|
|
31
|
-
export
|
|
32
|
-
|
|
32
|
+
export const Default = {};
|
|
33
|
+
|
|
34
|
+
const meta: Meta = {
|
|
35
|
+
title: 'plugins/plugin-debug/DebugSpace',
|
|
33
36
|
component: DebugSpace,
|
|
34
37
|
render: () => <ClientRepeater component={Story} createSpace />,
|
|
35
38
|
parameters: {
|
|
@@ -37,4 +40,4 @@ export default {
|
|
|
37
40
|
},
|
|
38
41
|
};
|
|
39
42
|
|
|
40
|
-
export
|
|
43
|
+
export default meta;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { ChartBar, Circle, Lightning, LightningSlash } from '@phosphor-icons/react';
|
|
6
5
|
import React, { useEffect, useRef, useState } from 'react';
|
|
7
6
|
|
|
8
7
|
import { firstIdInPart, parseGraphPlugin, parseNavigationPlugin, useResolvePlugin } from '@dxos/app-framework';
|
|
@@ -13,7 +12,8 @@ import { getActiveSpace } from '@dxos/plugin-space';
|
|
|
13
12
|
import { StatusBar } from '@dxos/plugin-status-bar';
|
|
14
13
|
import { ConnectionState } from '@dxos/protocols/proto/dxos/client/services';
|
|
15
14
|
import { useNetworkStatus } from '@dxos/react-client/mesh';
|
|
16
|
-
import {
|
|
15
|
+
import { Icon } from '@dxos/react-ui';
|
|
16
|
+
import { mx } from '@dxos/react-ui-theme';
|
|
17
17
|
|
|
18
18
|
const styles = {
|
|
19
19
|
success: 'text-sky-300 dark:text-green-700',
|
|
@@ -97,13 +97,13 @@ const ErrorIndicator = () => {
|
|
|
97
97
|
if (errorRef.current) {
|
|
98
98
|
return (
|
|
99
99
|
<StatusBar.Button title={errorRef.current.message} onClick={handleReset}>
|
|
100
|
-
<
|
|
100
|
+
<Icon icon='ph--warning-circle--duotone' size={4} classNames={styles.error} />
|
|
101
101
|
</StatusBar.Button>
|
|
102
102
|
);
|
|
103
103
|
} else {
|
|
104
104
|
return (
|
|
105
105
|
<StatusBar.Item title='No errors.'>
|
|
106
|
-
<
|
|
106
|
+
<Icon icon='ph--check--regular' size={4} />
|
|
107
107
|
</StatusBar.Item>
|
|
108
108
|
);
|
|
109
109
|
}
|
|
@@ -122,21 +122,22 @@ const SwarmIndicator = () => {
|
|
|
122
122
|
if (state === 0) {
|
|
123
123
|
return (
|
|
124
124
|
<StatusBar.Item title='Connected to swarm.'>
|
|
125
|
-
<
|
|
125
|
+
<Icon icon='ph--lightning--regular' size={4} />
|
|
126
126
|
</StatusBar.Item>
|
|
127
127
|
);
|
|
128
128
|
} else {
|
|
129
129
|
return (
|
|
130
130
|
<StatusBar.Item title='Disconnected from swarm.'>
|
|
131
|
-
<
|
|
131
|
+
<Icon icon='ph--lightning-slash--regular' size={4} classNames={styles.warning} />
|
|
132
132
|
</StatusBar.Item>
|
|
133
133
|
);
|
|
134
134
|
}
|
|
135
135
|
};
|
|
136
136
|
|
|
137
137
|
/**
|
|
138
|
-
*
|
|
138
|
+
* Data saving indicator.
|
|
139
139
|
*/
|
|
140
|
+
// TODO(burdon): Merge with SaveStatus.
|
|
140
141
|
const SavingIndicator = () => {
|
|
141
142
|
const [state, _setState] = useState(0);
|
|
142
143
|
const navigationPlugin = useResolvePlugin(parseNavigationPlugin);
|
|
@@ -167,20 +168,20 @@ const SavingIndicator = () => {
|
|
|
167
168
|
case 2:
|
|
168
169
|
return (
|
|
169
170
|
<StatusBar.Item title='Edit not saved.'>
|
|
170
|
-
<
|
|
171
|
+
<Icon icon='ph--circle--duotone' size={4} classNames={styles.warning} />
|
|
171
172
|
</StatusBar.Item>
|
|
172
173
|
);
|
|
173
174
|
case 1:
|
|
174
175
|
return (
|
|
175
176
|
<StatusBar.Item title='Saving...'>
|
|
176
|
-
<
|
|
177
|
+
<Icon icon='ph--circle--duotone' size={4} classNames={styles.success} />
|
|
177
178
|
</StatusBar.Item>
|
|
178
179
|
);
|
|
179
180
|
case 0:
|
|
180
181
|
default:
|
|
181
182
|
return (
|
|
182
183
|
<StatusBar.Item title='Modified indicator.'>
|
|
183
|
-
<
|
|
184
|
+
<Icon icon='ph--circle--duotone' size={4} />
|
|
184
185
|
</StatusBar.Item>
|
|
185
186
|
);
|
|
186
187
|
}
|
|
@@ -193,10 +194,16 @@ const PerformanceIndicator = () => {
|
|
|
193
194
|
return (
|
|
194
195
|
<>
|
|
195
196
|
<StatusBar.Button onClick={() => setVisible((visible) => !visible)} title='Performance panels'>
|
|
196
|
-
<
|
|
197
|
+
<Icon icon='ph--chart-bar--regular' size={4} />
|
|
197
198
|
</StatusBar.Button>
|
|
198
199
|
{visible && (
|
|
199
|
-
<div
|
|
200
|
+
<div
|
|
201
|
+
className={mx(
|
|
202
|
+
'z-20 absolute bottom-[--statusbar-size] right-4 w-[450px]',
|
|
203
|
+
'overflow-x-hidden overflow-y-auto scrollbar-thin',
|
|
204
|
+
'border-x border-y border-separator',
|
|
205
|
+
)}
|
|
206
|
+
>
|
|
200
207
|
<StatsPanel stats={stats} onRefresh={refreshStats} />
|
|
201
208
|
</div>
|
|
202
209
|
)}
|
|
@@ -204,7 +211,7 @@ const PerformanceIndicator = () => {
|
|
|
204
211
|
);
|
|
205
212
|
};
|
|
206
213
|
|
|
207
|
-
const indicators = [
|
|
214
|
+
const indicators = [SavingIndicator, SwarmIndicator, PerformanceIndicator, ErrorIndicator];
|
|
208
215
|
|
|
209
216
|
export const DebugStatus = () => {
|
|
210
217
|
return (
|
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
-
import
|
|
7
|
+
import { type Meta } from '@storybook/react';
|
|
8
|
+
import React, { useEffect } from 'react';
|
|
8
9
|
|
|
9
10
|
import { createSpaceObjectGenerator } from '@dxos/echo-generator';
|
|
10
11
|
import { type ReactiveObject, useSpaces } from '@dxos/react-client/echo';
|
|
11
12
|
import { ClientRepeater } from '@dxos/react-client/testing';
|
|
12
13
|
|
|
13
|
-
import { ObjectCreator } from './ObjectCreator';
|
|
14
|
+
import { ObjectCreator, type ObjectCreatorProps } from './ObjectCreator';
|
|
14
15
|
|
|
15
|
-
const Story
|
|
16
|
+
const Story = () => {
|
|
16
17
|
const [space] = useSpaces();
|
|
17
18
|
useEffect(() => {
|
|
18
19
|
if (space) {
|
|
@@ -21,19 +22,21 @@ const Story: FC = () => {
|
|
|
21
22
|
}
|
|
22
23
|
}, [space]);
|
|
23
24
|
|
|
24
|
-
const handleCreate = (objects: ReactiveObject<any>[]) => {
|
|
25
|
-
console.log('Created:', objects);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
25
|
if (!space) {
|
|
29
26
|
return null;
|
|
30
27
|
}
|
|
31
28
|
|
|
29
|
+
const handleCreate: ObjectCreatorProps['onAddObjects'] = (objects: ReactiveObject<any>[]) => {
|
|
30
|
+
console.log('Created:', objects);
|
|
31
|
+
};
|
|
32
|
+
|
|
32
33
|
return <ObjectCreator space={space} onAddObjects={handleCreate} />;
|
|
33
34
|
};
|
|
34
35
|
|
|
35
|
-
export
|
|
36
|
-
|
|
36
|
+
export const Default = {};
|
|
37
|
+
|
|
38
|
+
const meta: Meta = {
|
|
39
|
+
title: 'plugins/plugin-debug/SchemaList',
|
|
37
40
|
component: ObjectCreator,
|
|
38
41
|
render: () => <ClientRepeater component={Story} createSpace />,
|
|
39
42
|
parameters: {
|
|
@@ -41,4 +44,4 @@ export default {
|
|
|
41
44
|
},
|
|
42
45
|
};
|
|
43
46
|
|
|
44
|
-
export
|
|
47
|
+
export default meta;
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import React, {
|
|
5
|
+
import React, { useMemo, useState } from 'react';
|
|
6
6
|
|
|
7
|
-
import { type EchoReactiveObject, type ReactiveObject } from '@dxos/echo
|
|
8
|
-
import {
|
|
9
|
-
import { Button, DensityProvider } from '@dxos/react-ui';
|
|
7
|
+
import { type EchoReactiveObject, type ReactiveObject, type Space } from '@dxos/react-client/echo';
|
|
8
|
+
import { Button } from '@dxos/react-ui';
|
|
10
9
|
import { createColumnBuilder, type TableColumnDef, Table } from '@dxos/react-ui-table';
|
|
11
10
|
|
|
12
11
|
import { SchemasNames, createSpaceObjectGenerator } from '../scaffolding';
|
|
@@ -22,10 +21,12 @@ export type CreateObjectsParams = {
|
|
|
22
21
|
|
|
23
22
|
const CREATE_OBJECTS_IN_ONE_CHUNK = 10;
|
|
24
23
|
|
|
25
|
-
export
|
|
24
|
+
export type ObjectCreatorProps = {
|
|
26
25
|
space: Space;
|
|
27
26
|
onAddObjects?: (objects: ReactiveObject<any>[]) => void;
|
|
28
|
-
}
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export const ObjectCreator = ({ space, onAddObjects }: ObjectCreatorProps) => {
|
|
29
30
|
const generator = useMemo(() => createSpaceObjectGenerator(space), [space]);
|
|
30
31
|
|
|
31
32
|
const [objectsToCreate, setObjectsToCreate] = useState<CreateObjectsParams[]>([
|
|
@@ -45,14 +46,6 @@ export const ObjectCreator: FC<{
|
|
|
45
46
|
mutationSize: 10,
|
|
46
47
|
maxContentLength: 1000,
|
|
47
48
|
},
|
|
48
|
-
{
|
|
49
|
-
enabled: true,
|
|
50
|
-
schema: SchemasNames.sheet,
|
|
51
|
-
objectsCount: 10,
|
|
52
|
-
mutationsCount: 10,
|
|
53
|
-
mutationSize: 10,
|
|
54
|
-
maxContentLength: 1000,
|
|
55
|
-
},
|
|
56
49
|
]);
|
|
57
50
|
|
|
58
51
|
const handleCreate = async () => {
|
|
@@ -95,13 +88,11 @@ export const ObjectCreator: FC<{
|
|
|
95
88
|
|
|
96
89
|
return (
|
|
97
90
|
<>
|
|
98
|
-
<
|
|
99
|
-
<Table.
|
|
100
|
-
<Table.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
</Table.Root>
|
|
104
|
-
</DensityProvider>
|
|
91
|
+
<Table.Root>
|
|
92
|
+
<Table.Viewport>
|
|
93
|
+
<Table.Main<CreateObjectsParams> columns={columns} data={objectsToCreate} />
|
|
94
|
+
</Table.Viewport>
|
|
95
|
+
</Table.Root>
|
|
105
96
|
<Button onClick={handleCreate}>Create</Button>
|
|
106
97
|
</>
|
|
107
98
|
);
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { useMemo, useState } from 'react';
|
|
6
|
+
|
|
7
|
+
import { type DebugInfo, useSurfaceRoot } from '@dxos/app-framework';
|
|
8
|
+
import { Button, Icon, type ThemedClassName } from '@dxos/react-ui';
|
|
9
|
+
import { mx } from '@dxos/react-ui-theme';
|
|
10
|
+
|
|
11
|
+
// TODO(burdon): Move to debug panel.
|
|
12
|
+
|
|
13
|
+
export type SurfaceDebugProps = ThemedClassName<{}>;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Show surface info.
|
|
17
|
+
* NOTE: Remove from @dxos/app-framework if removing this.
|
|
18
|
+
*/
|
|
19
|
+
export const SurfaceDebug = ({ classNames }: SurfaceDebugProps) => {
|
|
20
|
+
const context = useSurfaceRoot();
|
|
21
|
+
const [surfaces, setSurfaces] = useState<DebugInfo[]>([]);
|
|
22
|
+
const renderMap = useMemo(() => new Map<string, { last: number; delta: number }>(), []);
|
|
23
|
+
const handleRefresh = () => {
|
|
24
|
+
if (context.debugInfo) {
|
|
25
|
+
setSurfaces(
|
|
26
|
+
Array.from(context.debugInfo.values())
|
|
27
|
+
.sort(({ created: a }, { created: b }) => a - b)
|
|
28
|
+
.map((surface) => {
|
|
29
|
+
const state = renderMap.get(surface.id) ?? { last: 0, delta: 0 };
|
|
30
|
+
renderMap.set(surface.id, { last: surface.renderCount, delta: surface.renderCount - state.last });
|
|
31
|
+
return surface;
|
|
32
|
+
}),
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<div className={mx('flex flex-col border border-separator overflow-hidden bg-modalSurface', classNames)}>
|
|
39
|
+
<div className='flex flex-col h-full w-full p-2'>
|
|
40
|
+
{surfaces.map(({ id, name, renderCount }) => (
|
|
41
|
+
<div key={id} className='grid grid-cols-[1fr_3rem_3rem] items-center text-xs font-mono whitespace-nowrap'>
|
|
42
|
+
<span className='px-1 truncate'>{name}</span>
|
|
43
|
+
<span className='px-1 text-right'>{renderCount}</span>
|
|
44
|
+
<span className='px-1 text-right'>{renderMap.get(id)?.delta}</span>
|
|
45
|
+
</div>
|
|
46
|
+
))}
|
|
47
|
+
</div>
|
|
48
|
+
<div className='flex justify-center text-sm items-center'>
|
|
49
|
+
<Button onClick={handleRefresh}>
|
|
50
|
+
<Icon icon='ph--arrow-clockwise--regular' size={4} />
|
|
51
|
+
</Button>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
);
|
|
55
|
+
};
|
|
@@ -5,27 +5,36 @@
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { useResizeDetector } from 'react-resize-detector';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { fullyQualifiedId } from '@dxos/react-client/echo';
|
|
9
|
+
import { type ThemedClassName } from '@dxos/react-ui';
|
|
10
|
+
import { useAttendableAttributes } from '@dxos/react-ui-attention';
|
|
11
|
+
import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
|
|
9
12
|
import { mx } from '@dxos/react-ui-theme';
|
|
10
13
|
|
|
14
|
+
// TODO(burdon): Create generic container with wireframe mode.
|
|
15
|
+
export type WireframeProps = ThemedClassName<{
|
|
16
|
+
label?: string;
|
|
17
|
+
object?: any;
|
|
18
|
+
}>;
|
|
19
|
+
|
|
11
20
|
// TODO(burdon): Make focusable and attendable with input.
|
|
12
|
-
export const Wireframe = ({
|
|
13
|
-
const attendableAttrs =
|
|
21
|
+
export const Wireframe = ({ classNames, label, object }: WireframeProps) => {
|
|
22
|
+
const attendableAttrs = useAttendableAttributes(fullyQualifiedId(object));
|
|
14
23
|
const { width, height, ref } = useResizeDetector();
|
|
15
24
|
return (
|
|
16
|
-
<div ref={ref} className={mx('relative grow min-bs-96',
|
|
17
|
-
<div className='absolute inset-2 flex flex-col overflow-hidden font-mono'>
|
|
25
|
+
<div ref={ref} className={mx('relative grow min-bs-96', classNames)} {...attendableAttrs}>
|
|
26
|
+
<div className='absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono'>
|
|
18
27
|
<div className='flex justify-between'>
|
|
19
28
|
<div>{label}</div>
|
|
20
29
|
<div>{`[${width}x${height}]`}</div>
|
|
21
30
|
</div>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
31
|
+
{object && (
|
|
32
|
+
<SyntaxHighlighter language='json' classNames='flex w-full text-xs opacity-75 rounded'>
|
|
33
|
+
{JSON.stringify(object, undefined, 2)}
|
|
34
|
+
</SyntaxHighlighter>
|
|
35
|
+
)}
|
|
27
36
|
</div>
|
|
28
|
-
<svg width={width} height={height} className='bg-transparent [&>*]:
|
|
37
|
+
<svg width={width} height={height} className='bg-transparent [&>*]:text-subdued'>
|
|
29
38
|
<rect x={0} y={0} width={width} height={height} strokeWidth={1} fill='none' />
|
|
30
39
|
<line x1={0} y1={0} x2={width} y2={height} strokeWidth={1} />
|
|
31
40
|
<line x1={0} y1={height} x2={width} y2={0} strokeWidth={1} />
|
package/src/components/index.ts
CHANGED
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import { lazy } from 'react';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
export const
|
|
9
|
-
export const DebugSpace = React.lazy(() => import('./DebugSpace'));
|
|
10
|
-
export const DevtoolsMain = React.lazy(() => import('./DevtoolsMain'));
|
|
7
|
+
export const DebugGlobal = lazy(() => import('./DebugGlobal'));
|
|
8
|
+
export const DebugSpace = lazy(() => import('./DebugSpace'));
|
|
11
9
|
|
|
10
|
+
export * from './DebugObjectPanel';
|
|
12
11
|
export * from './DebugSettings';
|
|
13
12
|
export * from './DebugStatus';
|
|
14
13
|
export * from './Wireframe';
|
package/src/meta.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type PluginMeta } from '@dxos/app-framework';
|
|
6
|
+
|
|
7
|
+
export const DEBUG_PLUGIN = 'dxos.org/plugin/debug';
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
id: DEBUG_PLUGIN,
|
|
11
|
+
name: 'Debug',
|
|
12
|
+
description: 'DXOS debugging tools.',
|
|
13
|
+
tags: ['experimental'],
|
|
14
|
+
icon: 'ph--bug--regular',
|
|
15
|
+
} satisfies PluginMeta;
|
|
@@ -22,24 +22,22 @@ import {
|
|
|
22
22
|
import { create } from '@dxos/echo-schema';
|
|
23
23
|
import { log } from '@dxos/log';
|
|
24
24
|
import { DocumentType, TextType } from '@dxos/plugin-markdown/types';
|
|
25
|
-
import {
|
|
26
|
-
import { SheetType } from '@dxos/plugin-sheet/types';
|
|
27
|
-
import { TLDrawStoreAdapter } from '@dxos/plugin-sketch';
|
|
25
|
+
import { TLDrawStoreAdapter } from '@dxos/plugin-sketch/sdk';
|
|
28
26
|
import { CanvasType, DiagramType, TLDRAW_SCHEMA } from '@dxos/plugin-sketch/types';
|
|
29
27
|
import { faker } from '@dxos/random';
|
|
30
28
|
import { createDocAccessor, type Space } from '@dxos/react-client/echo';
|
|
31
29
|
|
|
32
|
-
// TODO(
|
|
30
|
+
// TODO(burdon): Move to echo-generator.
|
|
31
|
+
|
|
32
|
+
// TODO(wittjosiah): Remove? Just use DXNs.
|
|
33
33
|
export enum SchemasNames {
|
|
34
34
|
document = 'dxos.org/type/Document',
|
|
35
35
|
diagram = 'dxos.org/type/Diagram',
|
|
36
|
-
sheet = 'dxos.org/type/SheetType',
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
export const SchemasMap: TestSchemaMap<SchemasNames> = {
|
|
40
39
|
[SchemasNames.document]: DocumentType,
|
|
41
40
|
[SchemasNames.diagram]: DiagramType,
|
|
42
|
-
[SchemasNames.sheet]: SheetType,
|
|
43
41
|
};
|
|
44
42
|
|
|
45
43
|
export const ObjectGenerators: TestGeneratorMap<SchemasNames> = {
|
|
@@ -55,11 +53,6 @@ export const ObjectGenerators: TestGeneratorMap<SchemasNames> = {
|
|
|
55
53
|
canvas: create(CanvasType, { schema: TLDRAW_SCHEMA, content: {} }),
|
|
56
54
|
};
|
|
57
55
|
},
|
|
58
|
-
|
|
59
|
-
[SchemasNames.sheet]: () => {
|
|
60
|
-
const name = faker.lorem.sentence({ min: 2, max: 3 });
|
|
61
|
-
return createTestSheet({ name });
|
|
62
|
-
},
|
|
63
56
|
};
|
|
64
57
|
|
|
65
58
|
export const MutationsGenerators: TestMutationsMap<SchemasNames> = {
|
|
@@ -147,10 +140,6 @@ export const MutationsGenerators: TestMutationsMap<SchemasNames> = {
|
|
|
147
140
|
}
|
|
148
141
|
}
|
|
149
142
|
},
|
|
150
|
-
|
|
151
|
-
[SchemasNames.sheet]: async (object, params) => {
|
|
152
|
-
// TODO: Implement.
|
|
153
|
-
},
|
|
154
143
|
};
|
|
155
144
|
|
|
156
145
|
export const createSpaceObjectGenerator = (space: Space) =>
|
package/src/types.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type {
|
|
|
12
12
|
TranslationsProvides,
|
|
13
13
|
} from '@dxos/app-framework';
|
|
14
14
|
import type { TimerCallback, TimerOptions } from '@dxos/async';
|
|
15
|
+
import { S } from '@dxos/echo-schema';
|
|
15
16
|
|
|
16
17
|
import { DEBUG_PLUGIN } from './meta';
|
|
17
18
|
|
|
@@ -32,11 +33,15 @@ export const DebugContext: Context<DebugContextType> = createContext<DebugContex
|
|
|
32
33
|
stop: () => {},
|
|
33
34
|
});
|
|
34
35
|
|
|
35
|
-
export
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
export const DebugSettingsSchema = S.mutable(
|
|
37
|
+
S.Struct({
|
|
38
|
+
devtools: S.optional(S.Boolean),
|
|
39
|
+
debug: S.optional(S.Boolean),
|
|
40
|
+
wireframe: S.optional(S.Boolean),
|
|
41
|
+
}),
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
export interface DebugSettingsProps extends S.Schema.Type<typeof DebugSettingsSchema> {}
|
|
40
45
|
|
|
41
46
|
export type DebugPluginProvides = SurfaceProvides &
|
|
42
47
|
IntentResolverProvides &
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/DebugSpace.tsx", "../../../src/components/ObjectCreator.tsx", "../../../src/scaffolding/generator.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n ArrowClockwise,\n DownloadSimple,\n Flag,\n FlagPennant,\n HandPalm,\n Play,\n PlusMinus,\n Timer,\n UserCirclePlus,\n} from '@phosphor-icons/react';\nimport React, { type FC, useContext, useMemo, useState } from 'react';\n\nimport { type ReactiveObject } from '@dxos/echo-schema';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\nimport { faker } from '@dxos/random';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, type Space, useSpaceInvitation } from '@dxos/react-client/echo';\nimport { InvitationEncoder } from '@dxos/react-client/invitations';\nimport { useAsyncEffect } from '@dxos/react-hooks';\nimport { Button, Input, useFileDownload } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\nimport { safeParseInt } from '@dxos/util';\n\nimport { DebugPanel } from './DebugPanel';\nimport { ObjectCreator } from './ObjectCreator';\nimport { createSpaceObjectGenerator } from '../scaffolding';\nimport { DebugContext } from '../types';\n\nconst DEFAULT_COUNT = 100;\nconst DEFAULT_PERIOD = 500;\nconst DEFAULT_JITTER = 50;\n\n// TODO(burdon): Factor out.\nconst useRefresh = (): [any, () => void] => {\n const [update, setUpdate] = useState({});\n return [update, () => setUpdate({})];\n};\n\nconst DebugSpace: FC<{\n space: Space;\n onAddObjects?: (objects: ReactiveObject<any>[]) => void;\n}> = ({ space, onAddObjects }) => {\n const { connect } = useSpaceInvitation(space?.key);\n const client = useClient();\n const [data, setData] = useState<any>({});\n\n const [update, handleUpdate] = useRefresh();\n useAsyncEffect(\n async (isMounted) => {\n const data = await client.diagnostics({ truncate: true });\n if (isMounted()) {\n setData(\n data?.diagnostics?.spaces?.find(({ key }: any) => {\n return space.key.toHex().startsWith(key);\n }),\n );\n }\n },\n [space, update],\n );\n\n const download = useFileDownload();\n const handleCopy = async () => {\n download(\n new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' }),\n `${new Date().toISOString().replace(/\\W/g, '-')}.json`,\n );\n };\n\n const [mutationCount, setMutationCount] = useState(String(DEFAULT_COUNT));\n const [mutationInterval, setMutationInterval] = useState(String(DEFAULT_PERIOD));\n const [mutationJitter, setMutationJitter] = useState(String(DEFAULT_JITTER));\n\n const generator = useMemo(() => createSpaceObjectGenerator(space), [space]);\n\n // TODO(burdon): Note: this is shared across all spaces!\n const { running, start, stop } = useContext(DebugContext);\n const handleToggleRunning = () => {\n if (running) {\n stop();\n handleUpdate();\n } else {\n start(\n async () => {\n const { objects } = await space.db.query(Filter.schema(DocumentType)).run();\n if (objects.length) {\n const object = faker.helpers.arrayElement(objects);\n await generator.mutateObject(object, { count: 10, mutationSize: 10, maxContentLength: 1000 });\n }\n },\n {\n count: safeParseInt(mutationCount) ?? 0,\n interval: safeParseInt(mutationInterval) ?? 0,\n jitter: safeParseInt(mutationJitter) ?? 0,\n },\n );\n }\n };\n\n const handleCreateInvitation = () => {\n const invitation = space.share({\n type: Invitation.Type.INTERACTIVE,\n authMethod: Invitation.AuthMethod.NONE,\n multiUse: true,\n });\n\n // TODO(burdon): Refactor.\n // TODO(burdon): Unsubscribe?\n connect(invitation);\n const code = InvitationEncoder.encode(invitation.get());\n new URL(window.origin).searchParams.set('spaceInvitationCode', code);\n const url = `${window.origin}?spaceInvitationCode=${code}`;\n void navigator.clipboard.writeText(url);\n };\n\n const handleCreateEpoch = async () => {\n await space.internal.createEpoch();\n handleUpdate();\n };\n\n return (\n <DebugPanel\n menu={\n <>\n <div className='relative' title='mutation count'>\n <Input.Root>\n <Input.TextInput\n autoComplete='off'\n size={5}\n classNames='w-[100px] text-right pie-[22px]'\n placeholder='Count'\n value={mutationCount}\n onChange={({ target: { value } }) => setMutationCount(value)}\n />\n </Input.Root>\n <Flag className={mx('absolute inline-end-1 block-start-1 mt-[6px]', getSize(3))} />\n </div>\n <div className='relative' title='mutation period'>\n <Input.Root>\n <Input.TextInput\n autoComplete='off'\n size={5}\n classNames='w-[100px] text-right pie-[22px]'\n placeholder='Interval'\n value={mutationInterval}\n onChange={({ target: { value } }) => setMutationInterval(value)}\n />\n </Input.Root>\n <Timer className={mx('absolute inline-end-1 block-start-1 mt-[6px]', getSize(3))} />\n </div>\n <div className='relative' title='mutation jitter'>\n <Input.Root>\n <Input.TextInput\n autoComplete='off'\n size={5}\n classNames='w-[100px] text-right pie-[22px]'\n placeholder='Jitter'\n value={mutationJitter}\n onChange={({ target: { value } }) => setMutationJitter(value)}\n />\n </Input.Root>\n <PlusMinus className={mx('absolute inline-end-1 block-start-1 mt-[6px]', getSize(3))} />\n </div>\n <Button onClick={handleToggleRunning}>\n {running ? <HandPalm className={getSize(5)} /> : <Play className={getSize(5)} />}\n </Button>\n <Button onClick={handleUpdate}>\n <ArrowClockwise className={getSize(5)} />\n </Button>\n <Button onClick={handleCopy}>\n <DownloadSimple className={getSize(5)} />\n </Button>\n\n <div className='grow' />\n <Button onClick={handleCreateEpoch} title='Create epoch'>\n <FlagPennant className={mx(getSize(5))} />\n </Button>\n <Button onClick={handleCreateInvitation} title='Create Space invitation'>\n <UserCirclePlus className={mx(getSize(5), 'text-blue-500')} />\n </Button>\n </>\n }\n >\n <ObjectCreator space={space} onAddObjects={onAddObjects} />\n </DebugPanel>\n );\n};\n\nexport default DebugSpace;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC, useMemo, useState } from 'react';\n\nimport { type EchoReactiveObject, type ReactiveObject } from '@dxos/echo-schema';\nimport { type Space } from '@dxos/react-client/echo';\nimport { Button, DensityProvider } from '@dxos/react-ui';\nimport { createColumnBuilder, type TableColumnDef, Table } from '@dxos/react-ui-table';\n\nimport { SchemasNames, createSpaceObjectGenerator } from '../scaffolding';\n\nexport type CreateObjectsParams = {\n enabled: boolean;\n schema: SchemasNames;\n objectsCount: number;\n mutationsCount: number;\n maxContentLength: number;\n mutationSize: number;\n};\n\nconst CREATE_OBJECTS_IN_ONE_CHUNK = 10;\n\nexport const ObjectCreator: FC<{\n space: Space;\n onAddObjects?: (objects: ReactiveObject<any>[]) => void;\n}> = ({ space, onAddObjects }) => {\n const generator = useMemo(() => createSpaceObjectGenerator(space), [space]);\n\n const [objectsToCreate, setObjectsToCreate] = useState<CreateObjectsParams[]>([\n {\n enabled: true,\n schema: SchemasNames.document,\n objectsCount: 10,\n mutationsCount: 10,\n mutationSize: 10,\n maxContentLength: 1000,\n },\n {\n enabled: true,\n schema: SchemasNames.diagram,\n objectsCount: 10,\n mutationsCount: 10,\n mutationSize: 10,\n maxContentLength: 1000,\n },\n {\n enabled: true,\n schema: SchemasNames.sheet,\n objectsCount: 10,\n mutationsCount: 10,\n mutationSize: 10,\n maxContentLength: 1000,\n },\n ]);\n\n const handleCreate = async () => {\n for (const params of objectsToCreate) {\n if (!params.enabled) {\n continue;\n }\n let objectsCreated = 0;\n while (objectsCreated < params.objectsCount) {\n const objects = (await generator.createObjects({\n [params.schema]: Math.min(CREATE_OBJECTS_IN_ONE_CHUNK, params.objectsCount - objectsCreated),\n })) as EchoReactiveObject<any>[];\n\n await generator.mutateObjects(objects, {\n count: params.mutationsCount,\n mutationSize: params.mutationSize,\n maxContentLength: params.maxContentLength,\n });\n objectsCreated += objects.length;\n onAddObjects?.(objects);\n }\n }\n await space.db.flush();\n };\n const handleChangeOnRow = (row: CreateObjectsParams, key: string, value: any) => {\n const newObjects = [...objectsToCreate];\n Object.assign(newObjects.find((object) => object.schema === row.schema)!, { [key]: value });\n setObjectsToCreate(newObjects);\n };\n\n const { helper, builder } = createColumnBuilder<CreateObjectsParams>();\n const columns: TableColumnDef<CreateObjectsParams>[] = [\n helper.accessor('enabled', builder.switch({ label: 'Enabled', onUpdate: handleChangeOnRow })),\n helper.accessor('schema', builder.string({ classNames: 'font-mono', label: 'Schema' })),\n helper.accessor('objectsCount', builder.number({ label: 'Objects', onUpdate: handleChangeOnRow })),\n helper.accessor('mutationsCount', builder.number({ label: 'Mutations', onUpdate: handleChangeOnRow })),\n helper.accessor('mutationSize', builder.number({ label: 'Mut. Size', onUpdate: handleChangeOnRow })),\n helper.accessor('maxContentLength', builder.number({ label: 'Length', onUpdate: handleChangeOnRow })),\n ];\n\n return (\n <>\n <DensityProvider density={'fine'}>\n <Table.Root>\n <Table.Viewport>\n <Table.Main<CreateObjectsParams> columns={columns} data={objectsToCreate} />\n </Table.Viewport>\n </Table.Root>\n </DensityProvider>\n <Button onClick={handleCreate}>Create</Button>\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n createShapeId,\n defaultBindingUtils,\n defaultShapeUtils,\n defaultTools,\n Editor,\n type TLParentId,\n} from '@tldraw/tldraw';\n\nimport { sleep } from '@dxos/async';\nimport { next as A } from '@dxos/automerge/automerge';\nimport {\n SpaceObjectGenerator,\n type TestGeneratorMap,\n type TestMutationsMap,\n type TestSchemaMap,\n} from '@dxos/echo-generator';\nimport { create } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\nimport { DocumentType, TextType } from '@dxos/plugin-markdown/types';\nimport { createTestSheet } from '@dxos/plugin-sheet/testing';\nimport { SheetType } from '@dxos/plugin-sheet/types';\nimport { TLDrawStoreAdapter } from '@dxos/plugin-sketch';\nimport { CanvasType, DiagramType, TLDRAW_SCHEMA } from '@dxos/plugin-sketch/types';\nimport { faker } from '@dxos/random';\nimport { createDocAccessor, type Space } from '@dxos/react-client/echo';\n\n// TODO(wittjosiah): Remove? Just use typenames.\nexport enum SchemasNames {\n document = 'dxos.org/type/Document',\n diagram = 'dxos.org/type/Diagram',\n sheet = 'dxos.org/type/SheetType',\n}\n\nexport const SchemasMap: TestSchemaMap<SchemasNames> = {\n [SchemasNames.document]: DocumentType,\n [SchemasNames.diagram]: DiagramType,\n [SchemasNames.sheet]: SheetType,\n};\n\nexport const ObjectGenerators: TestGeneratorMap<SchemasNames> = {\n [SchemasNames.document]: () => {\n const name = faker.lorem.sentence({ min: 2, max: 3 });\n return { name, content: create(TextType, { content: '' }), threads: [] };\n },\n\n [SchemasNames.diagram]: () => {\n const name = faker.lorem.sentence({ min: 2, max: 3 });\n return {\n name,\n canvas: create(CanvasType, { schema: TLDRAW_SCHEMA, content: {} }),\n };\n },\n\n [SchemasNames.sheet]: () => {\n const name = faker.lorem.sentence({ min: 2, max: 3 });\n return createTestSheet({ name });\n },\n};\n\nexport const MutationsGenerators: TestMutationsMap<SchemasNames> = {\n [SchemasNames.document]: async (object, params) => {\n const accessor = createDocAccessor<DocumentType>(object.content, ['content']);\n\n for (let i = 0; i < params.count; i++) {\n const length = object.content?.content?.length ?? 0;\n accessor.handle.change((doc) => {\n A.splice(\n doc,\n accessor.path.slice(),\n 0,\n params.maxContentLength >= length ? 0 : params.mutationSize,\n faker.string.hexadecimal({ length: params.mutationSize - 1 }) + ' ',\n );\n });\n\n // Release the event loop.\n if (i % 100 === 0 || i === params.count - 1) {\n log.info('Mutation:', { mutationIdx: i });\n await sleep(1);\n }\n }\n },\n\n [SchemasNames.diagram]: async (object, params) => {\n const store = new TLDrawStoreAdapter();\n await store.open(createDocAccessor<CanvasType>(object.canvas, ['content']));\n const app = new Editor({\n store: store.store!,\n shapeUtils: defaultShapeUtils,\n bindingUtils: defaultBindingUtils,\n tools: defaultTools,\n getContainer: () => document.getElementsByTagName('body')[0],\n });\n\n //\n // Draw spiral.\n //\n const r = 100;\n const a = 0.05;\n const cx = 200;\n const cy = 200;\n\n for (let i = 0; i < params.count; i++) {\n const t = i;\n const t1 = i + 1;\n const x = cx + a * t * r * Math.cos(t);\n const y = cy + a * t * r * Math.sin(t);\n const x1 = cx + a * t1 * r * Math.cos(t1);\n const y1 = cy + a * t1 * r * Math.sin(t1);\n\n app.createShape({\n id: createShapeId(),\n isLocked: false,\n meta: {},\n opacity: 1,\n parentId: 'page:page' as TLParentId,\n props: {\n arrowheadEnd: 'none',\n arrowheadStart: 'none',\n bend: 0,\n color: 'black',\n dash: 'draw',\n start: { x, y },\n end: { x: x1, y: y1 },\n fill: 'none',\n font: 'draw',\n labelColor: 'black',\n labelPosition: 0.5,\n scale: 1,\n size: 'm',\n },\n rotation: 0,\n type: 'arrow',\n typeName: 'shape',\n x: 0,\n y: 0,\n });\n\n // Release the event loop.\n if (i % 100 === 0) {\n await sleep(1);\n }\n }\n },\n\n [SchemasNames.sheet]: async (object, params) => {\n // TODO: Implement.\n },\n};\n\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, SchemasMap, ObjectGenerators, MutationsGenerators);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;AAIA,SACEA,gBACAC,gBACAC,MACAC,aACAC,UACAC,MACAC,WACAC,OACAC,sBACK;AACP,OAAOC,UAAkBC,YAAYC,WAAAA,UAASC,YAAAA,iBAAgB;AAG9D,SAASC,gBAAAA,qBAAoB;AAC7B,SAASC,kBAAkB;AAC3B,SAASC,SAAAA,cAAa;AACtB,SAASC,iBAAiB;AAC1B,SAASC,QAAoBC,0BAA0B;AACvD,SAASC,yBAAyB;AAClC,SAASC,sBAAsB;AAC/B,SAASC,UAAAA,SAAQC,OAAOC,uBAAuB;AAC/C,SAASC,SAASC,UAAU;AAC5B,SAASC,oBAAoB;;;ACvB7B,OAAOC,SAAkBC,SAASC,gBAAgB;AAIlD,SAASC,QAAQC,uBAAuB;AACxC,SAASC,qBAA0CC,aAAa;;;ACLhE,SACEC,eACAC,qBACAC,mBACAC,cACAC,cAEK;AAEP,SAASC,aAAa;AACtB,SAASC,QAAQC,SAAS;AAC1B,SACEC,4BAIK;AACP,SAASC,cAAc;AACvB,SAASC,WAAW;AACpB,SAASC,cAAcC,gBAAgB;AACvC,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AACnC,SAASC,YAAYC,aAAaC,qBAAqB;AACvD,SAASC,aAAa;AACtB,SAASC,yBAAqC;;;UAGlCC,eAAAA;;;;GAAAA,iBAAAA,eAAAA,CAAAA,EAAAA;AAML,IAAMC,aAA0C;EACrD,CAAA,wBAAA,GAAyBX;EACzB,CAAA,uBAAA,GAAwBM;EACxB,CAAA,yBAAA,GAAsBH;AACxB;AAEO,IAAMS,mBAAmD;EAC9D,CAAA,wBAAA,GAAyB,MAAA;AACvB,UAAMC,OAAOL,MAAMM,MAAMC,SAAS;MAAEC,KAAK;MAAGC,KAAK;IAAE,CAAA;AACnD,WAAO;MAAEJ;MAAMK,SAASpB,OAAOG,UAAU;QAAEiB,SAAS;MAAG,CAAA;MAAIC,SAAS,CAAA;IAAG;EACzE;EAEA,CAAA,uBAAA,GAAwB,MAAA;AACtB,UAAMN,OAAOL,MAAMM,MAAMC,SAAS;MAAEC,KAAK;MAAGC,KAAK;IAAE,CAAA;AACnD,WAAO;MACLJ;MACAO,QAAQtB,OAAOO,YAAY;QAAEgB,QAAQd;QAAeW,SAAS,CAAC;MAAE,CAAA;IAClE;EACF;EAEA,CAAA,yBAAA,GAAsB,MAAA;AACpB,UAAML,OAAOL,MAAMM,MAAMC,SAAS;MAAEC,KAAK;MAAGC,KAAK;IAAE,CAAA;AACnD,WAAOf,gBAAgB;MAAEW;IAAK,CAAA;EAChC;AACF;AAEO,IAAMS,sBAAsD;EACjE,CAAA,wBAAA,GAAyB,OAAOC,QAAQC,WAAAA;AACtC,UAAMC,WAAWhB,kBAAgCc,OAAOL,SAAS;MAAC;KAAU;AAE5E,aAASQ,IAAI,GAAGA,IAAIF,OAAOG,OAAOD,KAAK;AACrC,YAAME,SAASL,OAAOL,SAASA,SAASU,UAAU;AAClDH,eAASI,OAAOC,OAAO,CAACC,QAAAA;AACtBnC,UAAEoC,OACAD,KACAN,SAASQ,KAAKC,MAAK,GACnB,GACAV,OAAOW,oBAAoBP,SAAS,IAAIJ,OAAOY,cAC/C5B,MAAM6B,OAAOC,YAAY;UAAEV,QAAQJ,OAAOY,eAAe;QAAE,CAAA,IAAK,GAAA;MAEpE,CAAA;AAGA,UAAIV,IAAI,QAAQ,KAAKA,MAAMF,OAAOG,QAAQ,GAAG;AAC3C5B,YAAIwC,KAAK,aAAa;UAAEC,aAAad;QAAE,GAAA;;;;;;AACvC,cAAMhC,MAAM,CAAA;MACd;IACF;EACF;EAEA,CAAA,uBAAA,GAAwB,OAAO6B,QAAQC,WAAAA;AACrC,UAAMiB,QAAQ,IAAIrC,mBAAAA;AAClB,UAAMqC,MAAMC,KAAKjC,kBAA8Bc,OAAOH,QAAQ;MAAC;KAAU,CAAA;AACzE,UAAMuB,MAAM,IAAIlD,OAAO;MACrBgD,OAAOA,MAAMA;MACbG,YAAYrD;MACZsD,cAAcvD;MACdwD,OAAOtD;MACPuD,cAAc,MAAMC,SAASC,qBAAqB,MAAA,EAAQ,CAAA;IAC5D,CAAA;AAKA,UAAMC,IAAI;AACV,UAAMC,IAAI;AACV,UAAMC,KAAK;AACX,UAAMC,KAAK;AAEX,aAAS3B,IAAI,GAAGA,IAAIF,OAAOG,OAAOD,KAAK;AACrC,YAAM4B,IAAI5B;AACV,YAAM6B,KAAK7B,IAAI;AACf,YAAM8B,IAAIJ,KAAKD,IAAIG,IAAIJ,IAAIO,KAAKC,IAAIJ,CAAAA;AACpC,YAAMK,IAAIN,KAAKF,IAAIG,IAAIJ,IAAIO,KAAKG,IAAIN,CAAAA;AACpC,YAAMO,KAAKT,KAAKD,IAAII,KAAKL,IAAIO,KAAKC,IAAIH,EAAAA;AACtC,YAAMO,KAAKT,KAAKF,IAAII,KAAKL,IAAIO,KAAKG,IAAIL,EAAAA;AAEtCZ,UAAIoB,YAAY;QACdC,IAAI3E,cAAAA;QACJ4E,UAAU;QACVC,MAAM,CAAC;QACPC,SAAS;QACTC,UAAU;QACVC,OAAO;UACLC,cAAc;UACdC,gBAAgB;UAChBC,MAAM;UACNC,OAAO;UACPC,MAAM;UACNC,OAAO;YAAEnB;YAAGG;UAAE;UACdiB,KAAK;YAAEpB,GAAGK;YAAIF,GAAGG;UAAG;UACpBe,MAAM;UACNC,MAAM;UACNC,YAAY;UACZC,eAAe;UACfC,OAAO;UACPC,MAAM;QACR;QACAC,UAAU;QACVC,MAAM;QACNC,UAAU;QACV7B,GAAG;QACHG,GAAG;MACL,CAAA;AAGA,UAAIjC,IAAI,QAAQ,GAAG;AACjB,cAAMhC,MAAM,CAAA;MACd;IACF;EACF;EAEA,CAAA,yBAAA,GAAsB,OAAO6B,QAAQC,WAAAA;EAErC;AACF;AAEO,IAAM8D,6BAA6B,CAACC,UACzC,IAAI1F,qBAAqB0F,OAAO5E,YAAYC,kBAAkBU,mBAAAA;;;ADtIhE,IAAMkE,8BAA8B;AAE7B,IAAMC,gBAGR,CAAC,EAAEC,OAAOC,aAAY,MAAE;AAC3B,QAAMC,YAAYC,QAAQ,MAAMC,2BAA2BJ,KAAAA,GAAQ;IAACA;GAAM;AAE1E,QAAM,CAACK,iBAAiBC,kBAAAA,IAAsBC,SAAgC;IAC5E;MACEC,SAAS;MACTC,QAAQC,aAAaC;MACrBC,cAAc;MACdC,gBAAgB;MAChBC,cAAc;MACdC,kBAAkB;IACpB;IACA;MACEP,SAAS;MACTC,QAAQC,aAAaM;MACrBJ,cAAc;MACdC,gBAAgB;MAChBC,cAAc;MACdC,kBAAkB;IACpB;IACA;MACEP,SAAS;MACTC,QAAQC,aAAaO;MACrBL,cAAc;MACdC,gBAAgB;MAChBC,cAAc;MACdC,kBAAkB;IACpB;GACD;AAED,QAAMG,eAAe,YAAA;AACnB,eAAWC,UAAUd,iBAAiB;AACpC,UAAI,CAACc,OAAOX,SAAS;AACnB;MACF;AACA,UAAIY,iBAAiB;AACrB,aAAOA,iBAAiBD,OAAOP,cAAc;AAC3C,cAAMS,UAAW,MAAMnB,UAAUoB,cAAc;UAC7C,CAACH,OAAOV,MAAM,GAAGc,KAAKC,IAAI1B,6BAA6BqB,OAAOP,eAAeQ,cAAAA;QAC/E,CAAA;AAEA,cAAMlB,UAAUuB,cAAcJ,SAAS;UACrCK,OAAOP,OAAON;UACdC,cAAcK,OAAOL;UACrBC,kBAAkBI,OAAOJ;QAC3B,CAAA;AACAK,0BAAkBC,QAAQM;AAC1B1B,uBAAeoB,OAAAA;MACjB;IACF;AACA,UAAMrB,MAAM4B,GAAGC,MAAK;EACtB;AACA,QAAMC,oBAAoB,CAACC,KAA0BC,KAAaC,UAAAA;AAChE,UAAMC,aAAa;SAAI7B;;AACvB8B,WAAOC,OAAOF,WAAWG,KAAK,CAACC,WAAWA,OAAO7B,WAAWsB,IAAItB,MAAM,GAAI;MAAE,CAACuB,GAAAA,GAAMC;IAAM,CAAA;AACzF3B,uBAAmB4B,UAAAA;EACrB;AAEA,QAAM,EAAEK,QAAQC,QAAO,IAAKC,oBAAAA;AAC5B,QAAMC,UAAiD;IACrDH,OAAOI,SAAS,WAAWH,QAAQI,OAAO;MAAEC,OAAO;MAAWC,UAAUhB;IAAkB,CAAA,CAAA;IAC1FS,OAAOI,SAAS,UAAUH,QAAQO,OAAO;MAAEC,YAAY;MAAaH,OAAO;IAAS,CAAA,CAAA;IACpFN,OAAOI,SAAS,gBAAgBH,QAAQS,OAAO;MAAEJ,OAAO;MAAWC,UAAUhB;IAAkB,CAAA,CAAA;IAC/FS,OAAOI,SAAS,kBAAkBH,QAAQS,OAAO;MAAEJ,OAAO;MAAaC,UAAUhB;IAAkB,CAAA,CAAA;IACnGS,OAAOI,SAAS,gBAAgBH,QAAQS,OAAO;MAAEJ,OAAO;MAAaC,UAAUhB;IAAkB,CAAA,CAAA;IACjGS,OAAOI,SAAS,oBAAoBH,QAAQS,OAAO;MAAEJ,OAAO;MAAUC,UAAUhB;IAAkB,CAAA,CAAA;;AAGpG,SACE,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAACoB,iBAAAA;IAAgBC,SAAS;KACxB,sBAAA,cAACC,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,UAAQ,MACb,sBAAA,cAACF,MAAMG,MAAI;IAAsBb;IAAkBc,MAAMnD;SAI/D,sBAAA,cAACoD,QAAAA;IAAOC,SAASxC;KAAc,QAAA,CAAA;AAGrC;;;ADzEA,IAAMyC,gBAAgB;AACtB,IAAMC,iBAAiB;AACvB,IAAMC,iBAAiB;AAGvB,IAAMC,aAAa,MAAA;AACjB,QAAM,CAACC,QAAQC,SAAAA,IAAaC,UAAS,CAAC,CAAA;AACtC,SAAO;IAACF;IAAQ,MAAMC,UAAU,CAAC,CAAA;;AACnC;AAEA,IAAME,aAGD,CAAC,EAAEC,OAAOC,aAAY,MAAE;AAC3B,QAAM,EAAEC,QAAO,IAAKC,mBAAmBH,OAAOI,GAAAA;AAC9C,QAAMC,SAASC,UAAAA;AACf,QAAM,CAACC,MAAMC,OAAAA,IAAWV,UAAc,CAAC,CAAA;AAEvC,QAAM,CAACF,QAAQa,YAAAA,IAAgBd,WAAAA;AAC/Be,iBACE,OAAOC,cAAAA;AACL,UAAMJ,QAAO,MAAMF,OAAOO,YAAY;MAAEC,UAAU;IAAK,CAAA;AACvD,QAAIF,UAAAA,GAAa;AACfH,cACED,OAAMK,aAAaE,QAAQC,KAAK,CAAC,EAAEX,IAAG,MAAO;AAC3C,eAAOJ,MAAMI,IAAIY,MAAK,EAAGC,WAAWb,GAAAA;MACtC,CAAA,CAAA;IAEJ;EACF,GACA;IAACJ;IAAOJ;GAAO;AAGjB,QAAMsB,WAAWC,gBAAAA;AACjB,QAAMC,aAAa,YAAA;AACjBF,aACE,IAAIG,KAAK;MAACC,KAAKC,UAAUhB,MAAMiB,QAAW,CAAA;OAAK;MAAEC,MAAM;IAAa,CAAA,GACpE,IAAG,oBAAIC,KAAAA,GAAOC,YAAW,EAAGC,QAAQ,OAAO,GAAA,CAAA,OAAW;EAE1D;AAEA,QAAM,CAACC,eAAeC,gBAAAA,IAAoBhC,UAASiC,OAAOvC,aAAAA,CAAAA;AAC1D,QAAM,CAACwC,kBAAkBC,mBAAAA,IAAuBnC,UAASiC,OAAOtC,cAAAA,CAAAA;AAChE,QAAM,CAACyC,gBAAgBC,iBAAAA,IAAqBrC,UAASiC,OAAOrC,cAAAA,CAAAA;AAE5D,QAAM0C,YAAYC,SAAQ,MAAMC,2BAA2BtC,KAAAA,GAAQ;IAACA;GAAM;AAG1E,QAAM,EAAEuC,SAASC,OAAOC,KAAI,IAAKC,WAAWC,YAAAA;AAC5C,QAAMC,sBAAsB,MAAA;AAC1B,QAAIL,SAAS;AACXE,WAAAA;AACAhC,mBAAAA;IACF,OAAO;AACL+B,YACE,YAAA;AACE,cAAM,EAAEK,QAAO,IAAK,MAAM7C,MAAM8C,GAAGC,MAAMC,OAAOC,OAAOC,aAAAA,CAAAA,EAAeC,IAAG;AACzE,YAAIN,QAAQO,QAAQ;AAClB,gBAAMC,SAASC,OAAMC,QAAQC,aAAaX,OAAAA;AAC1C,gBAAMT,UAAUqB,aAAaJ,QAAQ;YAAEK,OAAO;YAAIC,cAAc;YAAIC,kBAAkB;UAAK,CAAA;QAC7F;MACF,GACA;QACEF,OAAOG,aAAahC,aAAAA,KAAkB;QACtCiC,UAAUD,aAAa7B,gBAAAA,KAAqB;QAC5C+B,QAAQF,aAAa3B,cAAAA,KAAmB;MAC1C,CAAA;IAEJ;EACF;AAEA,QAAM8B,yBAAyB,MAAA;AAC7B,UAAMC,aAAajE,MAAMkE,MAAM;MAC7BzC,MAAM0C,WAAWC,KAAKC;MACtBC,YAAYH,WAAWI,WAAWC;MAClCC,UAAU;IACZ,CAAA;AAIAvE,YAAQ+D,UAAAA;AACR,UAAMS,OAAOC,kBAAkBC,OAAOX,WAAWY,IAAG,CAAA;AACpD,QAAIC,IAAIC,OAAOC,MAAM,EAAEC,aAAaC,IAAI,uBAAuBR,IAAAA;AAC/D,UAAMS,MAAM,GAAGJ,OAAOC,MAAM,wBAAwBN,IAAAA;AACpD,SAAKU,UAAUC,UAAUC,UAAUH,GAAAA;EACrC;AAEA,QAAMI,oBAAoB,YAAA;AACxB,UAAMvF,MAAMwF,SAASC,YAAW;AAChChF,iBAAAA;EACF;AAEA,SACE,gBAAAiF,OAAA,cAACC,YAAAA;IACCC,MACE,gBAAAF,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACG,OAAAA;MAAIC,WAAU;MAAWC,OAAM;OAC9B,gBAAAL,OAAA,cAACM,MAAMC,MAAI,MACT,gBAAAP,OAAA,cAACM,MAAME,WAAS;MACdC,cAAa;MACbC,MAAM;MACNC,YAAW;MACXC,aAAY;MACZC,OAAO1E;MACP2E,UAAU,CAAC,EAAEC,QAAQ,EAAEF,MAAK,EAAE,MAAOzE,iBAAiByE,KAAAA;SAG1D,gBAAAb,OAAA,cAACgB,MAAAA;MAAKZ,WAAWa,GAAG,gDAAgDC,QAAQ,CAAA,CAAA;SAE9E,gBAAAlB,OAAA,cAACG,OAAAA;MAAIC,WAAU;MAAWC,OAAM;OAC9B,gBAAAL,OAAA,cAACM,MAAMC,MAAI,MACT,gBAAAP,OAAA,cAACM,MAAME,WAAS;MACdC,cAAa;MACbC,MAAM;MACNC,YAAW;MACXC,aAAY;MACZC,OAAOvE;MACPwE,UAAU,CAAC,EAAEC,QAAQ,EAAEF,MAAK,EAAE,MAAOtE,oBAAoBsE,KAAAA;SAG7D,gBAAAb,OAAA,cAACmB,OAAAA;MAAMf,WAAWa,GAAG,gDAAgDC,QAAQ,CAAA,CAAA;SAE/E,gBAAAlB,OAAA,cAACG,OAAAA;MAAIC,WAAU;MAAWC,OAAM;OAC9B,gBAAAL,OAAA,cAACM,MAAMC,MAAI,MACT,gBAAAP,OAAA,cAACM,MAAME,WAAS;MACdC,cAAa;MACbC,MAAM;MACNC,YAAW;MACXC,aAAY;MACZC,OAAOrE;MACPsE,UAAU,CAAC,EAAEC,QAAQ,EAAEF,MAAK,EAAE,MAAOpE,kBAAkBoE,KAAAA;SAG3D,gBAAAb,OAAA,cAACoB,WAAAA;MAAUhB,WAAWa,GAAG,gDAAgDC,QAAQ,CAAA,CAAA;SAEnF,gBAAAlB,OAAA,cAACqB,SAAAA;MAAOC,SAASpE;OACdL,UAAU,gBAAAmD,OAAA,cAACuB,UAAAA;MAASnB,WAAWc,QAAQ,CAAA;SAAS,gBAAAlB,OAAA,cAACwB,MAAAA;MAAKpB,WAAWc,QAAQ,CAAA;SAE5E,gBAAAlB,OAAA,cAACqB,SAAAA;MAAOC,SAASvG;OACf,gBAAAiF,OAAA,cAACyB,gBAAAA;MAAerB,WAAWc,QAAQ,CAAA;SAErC,gBAAAlB,OAAA,cAACqB,SAAAA;MAAOC,SAAS5F;OACf,gBAAAsE,OAAA,cAAC0B,gBAAAA;MAAetB,WAAWc,QAAQ,CAAA;SAGrC,gBAAAlB,OAAA,cAACG,OAAAA;MAAIC,WAAU;QACf,gBAAAJ,OAAA,cAACqB,SAAAA;MAAOC,SAASzB;MAAmBQ,OAAM;OACxC,gBAAAL,OAAA,cAAC2B,aAAAA;MAAYvB,WAAWa,GAAGC,QAAQ,CAAA,CAAA;SAErC,gBAAAlB,OAAA,cAACqB,SAAAA;MAAOC,SAAShD;MAAwB+B,OAAM;OAC7C,gBAAAL,OAAA,cAAC4B,gBAAAA;MAAexB,WAAWa,GAAGC,QAAQ,CAAA,GAAI,eAAA;;KAKhD,gBAAAlB,OAAA,cAAC6B,eAAAA;IAAcvH;IAAcC;;AAGnC;AAEA,IAAA,qBAAeF;",
|
|
6
|
-
"names": ["ArrowClockwise", "DownloadSimple", "Flag", "FlagPennant", "HandPalm", "Play", "PlusMinus", "Timer", "UserCirclePlus", "React", "useContext", "useMemo", "useState", "DocumentType", "Invitation", "faker", "useClient", "Filter", "useSpaceInvitation", "InvitationEncoder", "useAsyncEffect", "Button", "Input", "useFileDownload", "getSize", "mx", "safeParseInt", "React", "useMemo", "useState", "Button", "DensityProvider", "createColumnBuilder", "Table", "createShapeId", "defaultBindingUtils", "defaultShapeUtils", "defaultTools", "Editor", "sleep", "next", "A", "SpaceObjectGenerator", "create", "log", "DocumentType", "TextType", "createTestSheet", "SheetType", "TLDrawStoreAdapter", "CanvasType", "DiagramType", "TLDRAW_SCHEMA", "faker", "createDocAccessor", "SchemasNames", "SchemasMap", "ObjectGenerators", "name", "lorem", "sentence", "min", "max", "content", "threads", "canvas", "schema", "MutationsGenerators", "object", "params", "accessor", "i", "count", "length", "handle", "change", "doc", "splice", "path", "slice", "maxContentLength", "mutationSize", "string", "hexadecimal", "info", "mutationIdx", "store", "open", "app", "shapeUtils", "bindingUtils", "tools", "getContainer", "document", "getElementsByTagName", "r", "a", "cx", "cy", "t", "t1", "x", "Math", "cos", "y", "sin", "x1", "y1", "createShape", "id", "isLocked", "meta", "opacity", "parentId", "props", "arrowheadEnd", "arrowheadStart", "bend", "color", "dash", "start", "end", "fill", "font", "labelColor", "labelPosition", "scale", "size", "rotation", "type", "typeName", "createSpaceObjectGenerator", "space", "CREATE_OBJECTS_IN_ONE_CHUNK", "ObjectCreator", "space", "onAddObjects", "generator", "useMemo", "createSpaceObjectGenerator", "objectsToCreate", "setObjectsToCreate", "useState", "enabled", "schema", "SchemasNames", "document", "objectsCount", "mutationsCount", "mutationSize", "maxContentLength", "diagram", "sheet", "handleCreate", "params", "objectsCreated", "objects", "createObjects", "Math", "min", "mutateObjects", "count", "length", "db", "flush", "handleChangeOnRow", "row", "key", "value", "newObjects", "Object", "assign", "find", "object", "helper", "builder", "createColumnBuilder", "columns", "accessor", "switch", "label", "onUpdate", "string", "classNames", "number", "DensityProvider", "density", "Table", "Root", "Viewport", "Main", "data", "Button", "onClick", "DEFAULT_COUNT", "DEFAULT_PERIOD", "DEFAULT_JITTER", "useRefresh", "update", "setUpdate", "useState", "DebugSpace", "space", "onAddObjects", "connect", "useSpaceInvitation", "key", "client", "useClient", "data", "setData", "handleUpdate", "useAsyncEffect", "isMounted", "diagnostics", "truncate", "spaces", "find", "toHex", "startsWith", "download", "useFileDownload", "handleCopy", "Blob", "JSON", "stringify", "undefined", "type", "Date", "toISOString", "replace", "mutationCount", "setMutationCount", "String", "mutationInterval", "setMutationInterval", "mutationJitter", "setMutationJitter", "generator", "useMemo", "createSpaceObjectGenerator", "running", "start", "stop", "useContext", "DebugContext", "handleToggleRunning", "objects", "db", "query", "Filter", "schema", "DocumentType", "run", "length", "object", "faker", "helpers", "arrayElement", "mutateObject", "count", "mutationSize", "maxContentLength", "safeParseInt", "interval", "jitter", "handleCreateInvitation", "invitation", "share", "Invitation", "Type", "INTERACTIVE", "authMethod", "AuthMethod", "NONE", "multiUse", "code", "InvitationEncoder", "encode", "get", "URL", "window", "origin", "searchParams", "set", "url", "navigator", "clipboard", "writeText", "handleCreateEpoch", "internal", "createEpoch", "React", "DebugPanel", "menu", "div", "className", "title", "Input", "Root", "TextInput", "autoComplete", "size", "classNames", "placeholder", "value", "onChange", "target", "Flag", "mx", "getSize", "Timer", "PlusMinus", "Button", "onClick", "HandPalm", "Play", "ArrowClockwise", "DownloadSimple", "FlagPennant", "UserCirclePlus", "ObjectCreator"]
|
|
7
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// packages/plugins/experimental/plugin-debug/src/components/DevtoolsMain.tsx
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { Devtools } from "@dxos/devtools";
|
|
4
|
-
import { useClient } from "@dxos/react-client";
|
|
5
|
-
var DevtoolsMain = () => {
|
|
6
|
-
const client = useClient();
|
|
7
|
-
return /* @__PURE__ */ React.createElement(Devtools, {
|
|
8
|
-
client
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var DevtoolsMain_default = DevtoolsMain;
|
|
12
|
-
export {
|
|
13
|
-
DevtoolsMain_default as default
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=DevtoolsMain-RWT3FLJ6.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/DevtoolsMain.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Devtools } from '@dxos/devtools';\nimport { useClient } from '@dxos/react-client';\n\nconst DevtoolsMain = () => {\n const client = useClient();\n return <Devtools client={client} />;\n};\n\nexport default DevtoolsMain;\n"],
|
|
5
|
-
"mappings": ";AAIA,OAAOA,WAAW;AAElB,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAE1B,IAAMC,eAAe,MAAA;AACnB,QAAMC,SAASC,UAAAA;AACf,SAAO,sBAAA,cAACC,UAAAA;IAASF;;AACnB;AAEA,IAAA,uBAAeD;",
|
|
6
|
-
"names": ["React", "Devtools", "useClient", "DevtoolsMain", "client", "useClient", "Devtools"]
|
|
7
|
-
}
|