@dxos/plugin-navtree 0.10.0 → 0.11.1
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/PLUGIN.mdl +8 -6
- package/dist/lib/NavTreePlugin.mjs +40 -0
- package/dist/lib/NavTreePlugin.mjs.map +1 -0
- package/dist/lib/capabilities.mjs +11 -0
- package/dist/lib/capabilities.mjs.map +1 -0
- package/dist/lib/chunk-CommandsDialogContent.mjs +100 -0
- package/dist/lib/chunk-CommandsDialogContent.mjs.map +1 -0
- package/dist/lib/chunk-CommandsTrigger.mjs +27 -0
- package/dist/lib/chunk-CommandsTrigger.mjs.map +1 -0
- package/dist/lib/chunk-NavTreeDocumentTitle.mjs +17 -0
- package/dist/lib/chunk-NavTreeDocumentTitle.mjs.map +1 -0
- package/dist/lib/chunk-app-graph-builder.mjs +33 -0
- package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
- package/dist/lib/chunk-expose.mjs +31 -0
- package/dist/lib/chunk-expose.mjs.map +1 -0
- package/dist/lib/chunk-keyboard.mjs +49 -0
- package/dist/lib/chunk-keyboard.mjs.map +1 -0
- package/dist/lib/{neutral/chunk-IRQMJLRY.mjs → chunk-meta.mjs} +14 -23
- package/dist/lib/chunk-meta.mjs.map +1 -0
- package/dist/lib/chunk-operation-handler.mjs +11 -0
- package/dist/lib/chunk-operation-handler.mjs.map +1 -0
- package/dist/lib/chunk-react-surface.mjs +46 -0
- package/dist/lib/chunk-react-surface.mjs.map +1 -0
- package/dist/lib/chunk-state.mjs +106 -0
- package/dist/lib/chunk-state.mjs.map +1 -0
- package/dist/lib/chunk-types.mjs +26 -0
- package/dist/lib/chunk-types.mjs.map +1 -0
- package/dist/lib/chunk-util.mjs +51 -0
- package/dist/lib/chunk-util.mjs.map +1 -0
- package/dist/lib/components.mjs +723 -0
- package/dist/lib/components.mjs.map +1 -0
- package/dist/lib/containers.mjs +231 -0
- package/dist/lib/containers.mjs.map +1 -0
- package/dist/lib/hooks.mjs +162 -0
- package/dist/lib/hooks.mjs.map +1 -0
- package/dist/lib/index.mjs +4 -0
- package/dist/lib/meta.mjs +2 -0
- package/dist/lib/operations.mjs +7 -0
- package/dist/lib/operations.mjs.map +1 -0
- package/dist/lib/plugin.mjs +9 -0
- package/dist/lib/plugin.mjs.map +1 -0
- package/dist/lib/testing.mjs +397 -0
- package/dist/lib/testing.mjs.map +1 -0
- package/dist/lib/translations.mjs +17 -0
- package/dist/lib/translations.mjs.map +1 -0
- package/dist/lib/types.mjs +2 -0
- package/dist/types/src/NavTreePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/keyboard.d.ts +1 -1
- package/dist/types/src/capabilities/nav-tree-view-state.d.ts +12 -0
- package/dist/types/src/capabilities/nav-tree-view-state.d.ts.map +1 -0
- package/dist/types/src/capabilities/nav-tree-view-state.test.d.ts +2 -0
- package/dist/types/src/capabilities/nav-tree-view-state.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +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/capabilities/state.d.ts +1 -1
- package/dist/types/src/components/NavTree/NavTree.d.ts.map +1 -1
- package/dist/types/src/components/NavTree/NavTree.stories.d.ts +3 -0
- package/dist/types/src/components/NavTree/NavTree.stories.d.ts.map +1 -1
- package/dist/types/src/components/NavTreeContext/NavTreeContext.d.ts.map +1 -1
- package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts +1 -1
- package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts.map +1 -1
- package/dist/types/src/components/Sidebar/L0Menu.d.ts.map +1 -1
- package/dist/types/src/components/Sidebar/L1Panel.d.ts +5 -2
- package/dist/types/src/components/Sidebar/L1Panel.d.ts.map +1 -1
- package/dist/types/src/components/Sidebar/L1Tabs.d.ts.map +1 -1
- package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.d.ts.map +1 -1
- package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.stories.d.ts +2 -0
- package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.stories.d.ts.map +1 -1
- package/dist/types/src/containers/CommandsTrigger/CommandsTrigger.d.ts +4 -1
- package/dist/types/src/containers/CommandsTrigger/CommandsTrigger.d.ts.map +1 -1
- package/dist/types/src/containers/NavTreeContainer/NavTreeContainer.d.ts.map +1 -1
- package/dist/types/src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.d.ts +5 -2
- package/dist/types/src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.d.ts.map +1 -1
- package/dist/types/src/experimental/Tree.d.ts +0 -1
- package/dist/types/src/experimental/Tree.d.ts.map +1 -1
- package/dist/types/src/experimental/Tree.stories.d.ts.map +1 -1
- package/dist/types/src/experimental/visit-nodes.d.ts +3 -0
- package/dist/types/src/experimental/visit-nodes.d.ts.map +1 -0
- package/dist/types/src/hooks/useActions.d.ts +3 -1
- package/dist/types/src/hooks/useActions.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/NavTreeCapabilities.d.ts +1 -1
- package/dist/types/src/types/NavTreeCapabilities.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +1 -1
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +47 -52
- package/src/NavTreePlugin.tsx +3 -1
- package/src/capabilities/nav-tree-view-state.test.ts +55 -0
- package/src/capabilities/nav-tree-view-state.ts +19 -0
- package/src/capabilities/{react-surface.tsx → react-surface.ts} +8 -9
- package/src/capabilities/state.ts +47 -38
- package/src/components/NavTree/NavTree.stories.tsx +26 -5
- package/src/components/NavTree/NavTree.tsx +10 -13
- package/src/components/NavTreeItem/NavTreeItemAction.tsx +1 -1
- package/src/components/Sidebar/L0Menu.tsx +9 -3
- package/src/components/Sidebar/L1Panel.tsx +52 -20
- package/src/components/Sidebar/L1Tabs.tsx +6 -0
- package/src/containers/CommandsDialogContent/CommandsDialogContent.tsx +49 -44
- package/src/containers/CommandsTrigger/CommandsTrigger.tsx +2 -0
- package/src/containers/NavTreeContainer/NavTreeContainer.tsx +17 -18
- package/src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.tsx +2 -0
- package/src/experimental/Tree.stories.tsx +2 -1
- package/src/experimental/Tree.tsx +2 -18
- package/src/experimental/visit-nodes.ts +27 -0
- package/src/hooks/useActions.ts +15 -4
- package/src/hooks/useNavTreeModel.ts +1 -1
- package/src/operations/expose.ts +2 -2
- package/src/testing/app-graph-builder.ts +1 -1
- package/src/translations.ts +3 -0
- package/src/types/NavTreeCapabilities.ts +1 -1
- package/src/types/schema.ts +1 -1
- package/src/util.ts +7 -9
- package/dist/lib/neutral/CommandsDialogContent-TEKBCQ3U.mjs +0 -112
- package/dist/lib/neutral/CommandsDialogContent-TEKBCQ3U.mjs.map +0 -7
- package/dist/lib/neutral/CommandsTrigger-HGCI22SP.mjs +0 -27
- package/dist/lib/neutral/CommandsTrigger-HGCI22SP.mjs.map +0 -7
- package/dist/lib/neutral/NavTreeContainer-ICDKC2GI.mjs +0 -12
- package/dist/lib/neutral/NavTreeContainer-ICDKC2GI.mjs.map +0 -7
- package/dist/lib/neutral/NavTreeDocumentTitle-RMERXZGK.mjs +0 -22
- package/dist/lib/neutral/NavTreeDocumentTitle-RMERXZGK.mjs.map +0 -7
- package/dist/lib/neutral/NavTreePlugin.mjs +0 -68
- package/dist/lib/neutral/NavTreePlugin.mjs.map +0 -7
- package/dist/lib/neutral/NavTreePlugin.node.mjs +0 -18
- package/dist/lib/neutral/NavTreePlugin.node.mjs.map +0 -7
- package/dist/lib/neutral/NavTreePlugin.workerd.mjs +0 -16
- package/dist/lib/neutral/NavTreePlugin.workerd.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-2DYAIROU.mjs +0 -42
- package/dist/lib/neutral/app-graph-builder-2DYAIROU.mjs.map +0 -7
- package/dist/lib/neutral/capabilities/index.mjs +0 -17
- package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
- package/dist/lib/neutral/chunk-4RN6TH36.mjs +0 -292
- package/dist/lib/neutral/chunk-4RN6TH36.mjs.map +0 -7
- package/dist/lib/neutral/chunk-BAVI2K7A.mjs +0 -27
- package/dist/lib/neutral/chunk-BAVI2K7A.mjs.map +0 -7
- package/dist/lib/neutral/chunk-EAN4K6OL.mjs +0 -8
- package/dist/lib/neutral/chunk-EAN4K6OL.mjs.map +0 -7
- package/dist/lib/neutral/chunk-IRQMJLRY.mjs.map +0 -7
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-JOSNCOV4.mjs +0 -79
- package/dist/lib/neutral/chunk-JOSNCOV4.mjs.map +0 -7
- package/dist/lib/neutral/components/index.mjs +0 -814
- package/dist/lib/neutral/components/index.mjs.map +0 -7
- package/dist/lib/neutral/containers/index.mjs +0 -20
- package/dist/lib/neutral/containers/index.mjs.map +0 -7
- package/dist/lib/neutral/expose-HIBA2NQG.mjs +0 -38
- package/dist/lib/neutral/expose-HIBA2NQG.mjs.map +0 -7
- package/dist/lib/neutral/hooks/index.mjs +0 -181
- package/dist/lib/neutral/hooks/index.mjs.map +0 -7
- package/dist/lib/neutral/index.mjs +0 -34
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/keyboard-JM2HCF5N.mjs +0 -58
- package/dist/lib/neutral/keyboard-JM2HCF5N.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
- package/dist/lib/neutral/meta.mjs +0 -12
- package/dist/lib/neutral/meta.mjs.map +0 -7
- package/dist/lib/neutral/operation-handler-ORDOJUL2.mjs +0 -13
- package/dist/lib/neutral/operation-handler-ORDOJUL2.mjs.map +0 -7
- package/dist/lib/neutral/operations/index.mjs +0 -8
- package/dist/lib/neutral/operations/index.mjs.map +0 -7
- package/dist/lib/neutral/plugin.mjs +0 -16
- package/dist/lib/neutral/plugin.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-QPMUEDZX.mjs +0 -48
- package/dist/lib/neutral/react-surface-QPMUEDZX.mjs.map +0 -7
- package/dist/lib/neutral/state-PDZU4PIP.mjs +0 -126
- package/dist/lib/neutral/state-PDZU4PIP.mjs.map +0 -7
- package/dist/lib/neutral/testing/index.mjs +0 -439
- package/dist/lib/neutral/testing/index.mjs.map +0 -7
- package/dist/lib/neutral/translations.mjs +0 -23
- package/dist/lib/neutral/translations.mjs.map +0 -7
- package/dist/lib/neutral/types/index.mjs +0 -10
- package/dist/lib/neutral/types/index.mjs.map +0 -7
- package/dist/types/src/NavTreePlugin.node.d.ts +0 -4
- package/dist/types/src/NavTreePlugin.node.d.ts.map +0 -1
- package/dist/types/src/NavTreePlugin.test.d.ts +0 -2
- package/dist/types/src/NavTreePlugin.test.d.ts.map +0 -1
- package/dist/types/src/NavTreePlugin.workerd.d.ts +0 -4
- package/dist/types/src/NavTreePlugin.workerd.d.ts.map +0 -1
- package/src/NavTreePlugin.node.ts +0 -17
- package/src/NavTreePlugin.test.ts +0 -27
- package/src/NavTreePlugin.workerd.ts +0 -16
- /package/src/components/NavTreeContext/{NavTreeContext.tsx → NavTreeContext.ts} +0 -0
|
@@ -1,439 +0,0 @@
|
|
|
1
|
-
import "../chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/testing/app-graph-builder.ts
|
|
4
|
-
import { Atom } from "@effect-atom/atom-react";
|
|
5
|
-
import * as Effect from "effect/Effect";
|
|
6
|
-
import { log } from "@dxos/log";
|
|
7
|
-
import { GraphBuilder, Node, NodeMatcher } from "@dxos/plugin-graph";
|
|
8
|
-
import { random } from "@dxos/random";
|
|
9
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-navtree/src/testing/app-graph-builder.ts";
|
|
10
|
-
var storybookGraphBuilders = () => {
|
|
11
|
-
const propertiesCache = /* @__PURE__ */ new Map();
|
|
12
|
-
const getProperties = (id, defaults) => {
|
|
13
|
-
const cached = propertiesCache.get(id);
|
|
14
|
-
if (cached) {
|
|
15
|
-
return cached;
|
|
16
|
-
}
|
|
17
|
-
propertiesCache.set(id, defaults);
|
|
18
|
-
return defaults;
|
|
19
|
-
};
|
|
20
|
-
return Effect.runSync(Effect.all([
|
|
21
|
-
// Create app menu actions.
|
|
22
|
-
GraphBuilder.createExtension({
|
|
23
|
-
id: "appMenu",
|
|
24
|
-
match: NodeMatcher.whenRoot,
|
|
25
|
-
actions: () => Effect.succeed(Array.from({
|
|
26
|
-
length: 5
|
|
27
|
-
}, (_, i) => ({
|
|
28
|
-
id: `action-${i}`,
|
|
29
|
-
data: Effect.fnUntraced(function* () {
|
|
30
|
-
log.info("action", {
|
|
31
|
-
id: "app-menu",
|
|
32
|
-
index: i
|
|
33
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 29, S: this });
|
|
34
|
-
}),
|
|
35
|
-
properties: {
|
|
36
|
-
label: `Action ${i}`,
|
|
37
|
-
icon: random.properties.icon(),
|
|
38
|
-
disposition: "menu"
|
|
39
|
-
}
|
|
40
|
-
})))
|
|
41
|
-
}),
|
|
42
|
-
// Create user account node.
|
|
43
|
-
GraphBuilder.createExtension({
|
|
44
|
-
id: "userAccount",
|
|
45
|
-
match: NodeMatcher.whenRoot,
|
|
46
|
-
connector: () => Effect.succeed([
|
|
47
|
-
Node.make({
|
|
48
|
-
id: "user-account",
|
|
49
|
-
type: "user-account",
|
|
50
|
-
properties: {
|
|
51
|
-
label: "User profile",
|
|
52
|
-
icon: "ph--user--regular",
|
|
53
|
-
disposition: "user-account",
|
|
54
|
-
userId: "1234567890ABCDEF",
|
|
55
|
-
hue: random.properties.hue(),
|
|
56
|
-
emoji: random.properties.emoji(),
|
|
57
|
-
status: "active"
|
|
58
|
-
},
|
|
59
|
-
nodes: [
|
|
60
|
-
Node.make({
|
|
61
|
-
id: "profile",
|
|
62
|
-
type: "profile",
|
|
63
|
-
properties: {
|
|
64
|
-
label: "Profile",
|
|
65
|
-
icon: "ph--user--regular"
|
|
66
|
-
}
|
|
67
|
-
}),
|
|
68
|
-
Node.make({
|
|
69
|
-
id: "devices",
|
|
70
|
-
type: "devices",
|
|
71
|
-
properties: {
|
|
72
|
-
label: "Devices",
|
|
73
|
-
icon: "ph--devices--regular"
|
|
74
|
-
}
|
|
75
|
-
}),
|
|
76
|
-
Node.make({
|
|
77
|
-
id: "security",
|
|
78
|
-
type: "security",
|
|
79
|
-
properties: {
|
|
80
|
-
label: "Security",
|
|
81
|
-
icon: "ph--key--regular"
|
|
82
|
-
}
|
|
83
|
-
})
|
|
84
|
-
]
|
|
85
|
-
})
|
|
86
|
-
])
|
|
87
|
-
}),
|
|
88
|
-
// Create space (workspace) nodes directly under root.
|
|
89
|
-
GraphBuilder.createExtension({
|
|
90
|
-
id: "spaces",
|
|
91
|
-
match: NodeMatcher.whenRoot,
|
|
92
|
-
connector: (_, get) => Effect.sync(() => {
|
|
93
|
-
const count = Atom.make((get2) => {
|
|
94
|
-
let value = 3;
|
|
95
|
-
const interval = setInterval(() => {
|
|
96
|
-
if (value >= 10) {
|
|
97
|
-
clearInterval(interval);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
value++;
|
|
101
|
-
get2.setSelf(value);
|
|
102
|
-
}, 5e3);
|
|
103
|
-
get2.addFinalizer(() => clearInterval(interval));
|
|
104
|
-
return value;
|
|
105
|
-
});
|
|
106
|
-
return Array.from({
|
|
107
|
-
length: get(count)
|
|
108
|
-
}, (_2, i) => Node.make({
|
|
109
|
-
id: `space-${i}`,
|
|
110
|
-
type: "space",
|
|
111
|
-
properties: getProperties(`space-${i}`, {
|
|
112
|
-
label: `Space ${i}`,
|
|
113
|
-
icon: random.properties.icon(),
|
|
114
|
-
hue: random.properties.hue(),
|
|
115
|
-
disposition: "workspace"
|
|
116
|
-
})
|
|
117
|
-
}));
|
|
118
|
-
})
|
|
119
|
-
}),
|
|
120
|
-
// Create space actions.
|
|
121
|
-
GraphBuilder.createExtension({
|
|
122
|
-
id: "spaceActions",
|
|
123
|
-
match: NodeMatcher.whenNodeType("space"),
|
|
124
|
-
actions: () => Effect.succeed(Array.from({
|
|
125
|
-
length: 5
|
|
126
|
-
}, (_, i) => ({
|
|
127
|
-
id: `action-${i}`,
|
|
128
|
-
data: Effect.fnUntraced(function* () {
|
|
129
|
-
log.info("action", {
|
|
130
|
-
id: "space-actions",
|
|
131
|
-
index: i
|
|
132
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 128, S: this });
|
|
133
|
-
}),
|
|
134
|
-
properties: getProperties(`action-${i}`, {
|
|
135
|
-
label: `Action ${i}`,
|
|
136
|
-
icon: random.properties.icon()
|
|
137
|
-
})
|
|
138
|
-
})))
|
|
139
|
-
}),
|
|
140
|
-
// Create object nodes.
|
|
141
|
-
GraphBuilder.createExtension({
|
|
142
|
-
id: "objects",
|
|
143
|
-
match: NodeMatcher.whenNodeType("space"),
|
|
144
|
-
connector: (_, get) => Effect.sync(() => {
|
|
145
|
-
const count = Atom.make((get2) => {
|
|
146
|
-
let value = 3;
|
|
147
|
-
const interval = setInterval(() => {
|
|
148
|
-
if (value >= 20) {
|
|
149
|
-
clearInterval(interval);
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
value++;
|
|
153
|
-
get2.setSelf(value);
|
|
154
|
-
}, 5e3);
|
|
155
|
-
get2.addFinalizer(() => clearInterval(interval));
|
|
156
|
-
return value;
|
|
157
|
-
});
|
|
158
|
-
return Array.from({
|
|
159
|
-
length: get(count)
|
|
160
|
-
}, (_2, i) => Node.make({
|
|
161
|
-
id: `object-${i}`,
|
|
162
|
-
type: "object",
|
|
163
|
-
properties: getProperties(`object-${i}`, {
|
|
164
|
-
label: `Object ${i}`,
|
|
165
|
-
icon: random.properties.icon(),
|
|
166
|
-
...i % 3 === 0 && {
|
|
167
|
-
count: (i + 1) * 2
|
|
168
|
-
},
|
|
169
|
-
...i % 3 === 1 && {
|
|
170
|
-
modifiedCount: i + 1
|
|
171
|
-
}
|
|
172
|
-
})
|
|
173
|
-
}));
|
|
174
|
-
})
|
|
175
|
-
}),
|
|
176
|
-
// Create object actions.
|
|
177
|
-
GraphBuilder.createExtension({
|
|
178
|
-
id: "objectActions",
|
|
179
|
-
match: NodeMatcher.whenNodeType("object"),
|
|
180
|
-
actions: () => Effect.succeed(Array.from({
|
|
181
|
-
length: 5
|
|
182
|
-
}, (_, i) => ({
|
|
183
|
-
id: `action-${i}`,
|
|
184
|
-
data: Effect.fnUntraced(function* () {
|
|
185
|
-
log.info("action", {
|
|
186
|
-
id: "objectActions",
|
|
187
|
-
index: i
|
|
188
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 184, S: this });
|
|
189
|
-
}),
|
|
190
|
-
properties: getProperties(`action-${i}`, {
|
|
191
|
-
label: `Action ${i}`,
|
|
192
|
-
icon: random.properties.icon()
|
|
193
|
-
})
|
|
194
|
-
})))
|
|
195
|
-
})
|
|
196
|
-
]));
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
// src/testing/generator.ts
|
|
200
|
-
import * as Schema from "effect/Schema";
|
|
201
|
-
import { DXN, Obj, Type } from "@dxos/echo";
|
|
202
|
-
import { TestSchema } from "@dxos/echo/testing";
|
|
203
|
-
import { random as random2 } from "@dxos/random";
|
|
204
|
-
import { range } from "@dxos/util";
|
|
205
|
-
var createFactory = ({ createSchema, createData }) => {
|
|
206
|
-
const schema = createSchema?.();
|
|
207
|
-
return {
|
|
208
|
-
schema,
|
|
209
|
-
createObject: () => schema ? Obj.make(schema, createData()) : Obj.make(TestSchema.Expando, createData())
|
|
210
|
-
};
|
|
211
|
-
};
|
|
212
|
-
var Status = [
|
|
213
|
-
"pending",
|
|
214
|
-
"active",
|
|
215
|
-
"done"
|
|
216
|
-
];
|
|
217
|
-
var Priority = [
|
|
218
|
-
1,
|
|
219
|
-
2,
|
|
220
|
-
3,
|
|
221
|
-
4,
|
|
222
|
-
5
|
|
223
|
-
];
|
|
224
|
-
var defaultGenerators = {
|
|
225
|
-
document: {
|
|
226
|
-
createData: () => ({
|
|
227
|
-
title: random2.lorem.sentence(3),
|
|
228
|
-
body: random2.lorem.sentences({
|
|
229
|
-
min: 1,
|
|
230
|
-
max: random2.number.int({
|
|
231
|
-
min: 1,
|
|
232
|
-
max: 3
|
|
233
|
-
})
|
|
234
|
-
})
|
|
235
|
-
})
|
|
236
|
-
},
|
|
237
|
-
image: {
|
|
238
|
-
createData: () => ({
|
|
239
|
-
title: random2.lorem.sentence(3),
|
|
240
|
-
image: random2.helpers.arrayElement(data.images),
|
|
241
|
-
body: random2.datatype.boolean() ? random2.lorem.sentences() : void 0
|
|
242
|
-
})
|
|
243
|
-
},
|
|
244
|
-
project: {
|
|
245
|
-
createSchema: () => Type.makeObject(DXN.make("com.example.type.project", "0.1.0"))(Schema.Struct({
|
|
246
|
-
title: Schema.String,
|
|
247
|
-
repo: Schema.String,
|
|
248
|
-
status: Schema.String,
|
|
249
|
-
priority: Schema.Number
|
|
250
|
-
})),
|
|
251
|
-
createData: () => ({
|
|
252
|
-
title: random2.commerce.productName(),
|
|
253
|
-
repo: random2.datatype.boolean({
|
|
254
|
-
probability: 0.3
|
|
255
|
-
}) ? random2.internet.url() : void 0,
|
|
256
|
-
status: random2.helpers.arrayElement(Status),
|
|
257
|
-
priority: random2.helpers.arrayElement(Priority)
|
|
258
|
-
})
|
|
259
|
-
}
|
|
260
|
-
};
|
|
261
|
-
var TestObjectGenerator = class {
|
|
262
|
-
factories;
|
|
263
|
-
constructor({ types, factories } = {}) {
|
|
264
|
-
this.factories = factories ?? (types ?? Object.keys(defaultGenerators)).reduce((acc, type) => {
|
|
265
|
-
acc[type] = createFactory(defaultGenerators[type]);
|
|
266
|
-
return acc;
|
|
267
|
-
}, {});
|
|
268
|
-
}
|
|
269
|
-
get schema() {
|
|
270
|
-
return Object.values(this.factories).map((f) => f.schema);
|
|
271
|
-
}
|
|
272
|
-
createObject({ types } = {}) {
|
|
273
|
-
const type = random2.helpers.arrayElement(types ?? Object.keys(this.factories));
|
|
274
|
-
const factory = this.factories[type];
|
|
275
|
-
return factory?.createObject();
|
|
276
|
-
}
|
|
277
|
-
createObjects({ types, length }) {
|
|
278
|
-
return range(length, () => this.createObject({
|
|
279
|
-
types
|
|
280
|
-
}));
|
|
281
|
-
}
|
|
282
|
-
};
|
|
283
|
-
var data = {
|
|
284
|
-
images: [
|
|
285
|
-
"/images/image-1.png",
|
|
286
|
-
"/images/image-2.png",
|
|
287
|
-
"/images/image-3.png",
|
|
288
|
-
"/images/image-4.png",
|
|
289
|
-
"/images/image-5.png",
|
|
290
|
-
"/images/image-6.png"
|
|
291
|
-
]
|
|
292
|
-
};
|
|
293
|
-
var createTree = () => {
|
|
294
|
-
const generator = new TestObjectGenerator({
|
|
295
|
-
types: [
|
|
296
|
-
"document"
|
|
297
|
-
]
|
|
298
|
-
});
|
|
299
|
-
const initialContent = {
|
|
300
|
-
id: "root",
|
|
301
|
-
data: null,
|
|
302
|
-
type: "root",
|
|
303
|
-
properties: {
|
|
304
|
-
label: "Root",
|
|
305
|
-
icon: "ph--circle--regular"
|
|
306
|
-
},
|
|
307
|
-
nodes: [
|
|
308
|
-
...Array(4)
|
|
309
|
-
].map(() => {
|
|
310
|
-
const l0 = generator.createObject();
|
|
311
|
-
return {
|
|
312
|
-
id: random2.string.uuid(),
|
|
313
|
-
data: null,
|
|
314
|
-
type: "category",
|
|
315
|
-
properties: {
|
|
316
|
-
label: l0.title,
|
|
317
|
-
icon: "ph--horse--regular",
|
|
318
|
-
disposition: "workspace"
|
|
319
|
-
},
|
|
320
|
-
nodes: [
|
|
321
|
-
...[
|
|
322
|
-
...Array(4)
|
|
323
|
-
].map(() => {
|
|
324
|
-
const l1 = generator.createObject();
|
|
325
|
-
return {
|
|
326
|
-
id: random2.string.uuid(),
|
|
327
|
-
data: null,
|
|
328
|
-
type: "document",
|
|
329
|
-
properties: {
|
|
330
|
-
label: l1.title,
|
|
331
|
-
icon: "ph--butterfly--regular"
|
|
332
|
-
},
|
|
333
|
-
nodes: [
|
|
334
|
-
{
|
|
335
|
-
id: `${random2.string.uuid()}__a1`,
|
|
336
|
-
data: () => {
|
|
337
|
-
},
|
|
338
|
-
type: "action",
|
|
339
|
-
properties: {
|
|
340
|
-
label: random2.lorem.words(2),
|
|
341
|
-
icon: "ph--boat--regular"
|
|
342
|
-
}
|
|
343
|
-
},
|
|
344
|
-
{
|
|
345
|
-
id: `${random2.string.uuid()}__a2`,
|
|
346
|
-
data: () => {
|
|
347
|
-
},
|
|
348
|
-
type: "action",
|
|
349
|
-
properties: {
|
|
350
|
-
label: random2.lorem.words(2),
|
|
351
|
-
icon: "ph--train-simple--regular"
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
]
|
|
355
|
-
};
|
|
356
|
-
}),
|
|
357
|
-
{
|
|
358
|
-
id: `${random2.string.uuid()}__a1`,
|
|
359
|
-
data: () => {
|
|
360
|
-
},
|
|
361
|
-
type: "action",
|
|
362
|
-
properties: {
|
|
363
|
-
label: random2.lorem.words(2),
|
|
364
|
-
icon: "ph--boat--regular"
|
|
365
|
-
}
|
|
366
|
-
},
|
|
367
|
-
{
|
|
368
|
-
id: `${random2.string.uuid()}__a2`,
|
|
369
|
-
data: () => {
|
|
370
|
-
},
|
|
371
|
-
type: "action",
|
|
372
|
-
properties: {
|
|
373
|
-
label: random2.lorem.words(2),
|
|
374
|
-
icon: "ph--train-simple--regular"
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
]
|
|
378
|
-
};
|
|
379
|
-
})
|
|
380
|
-
};
|
|
381
|
-
return initialContent;
|
|
382
|
-
};
|
|
383
|
-
|
|
384
|
-
// src/testing/update-state.ts
|
|
385
|
-
import { log as log2 } from "@dxos/log";
|
|
386
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-navtree/src/testing/update-state.ts";
|
|
387
|
-
var removeItem = (tree, source) => {
|
|
388
|
-
const parent = getNode(tree, source.path.slice(1, -1));
|
|
389
|
-
const index = parent.nodes.findIndex((node) => node.id === source.id);
|
|
390
|
-
const item = parent.nodes[index];
|
|
391
|
-
parent.nodes.splice(index, 1);
|
|
392
|
-
return item;
|
|
393
|
-
};
|
|
394
|
-
var getNode = (tree, path) => {
|
|
395
|
-
let node = tree;
|
|
396
|
-
for (const part of path) {
|
|
397
|
-
node = node.nodes.find((n) => n.id === part);
|
|
398
|
-
}
|
|
399
|
-
return node;
|
|
400
|
-
};
|
|
401
|
-
var updateState = ({ state, instruction, source, target }) => {
|
|
402
|
-
switch (instruction.type) {
|
|
403
|
-
case "reorder-above": {
|
|
404
|
-
const item = removeItem(state, source);
|
|
405
|
-
const parent = getNode(state, target.path.slice(1, -1));
|
|
406
|
-
const index = parent.nodes.findIndex(({ id }) => id === target.id);
|
|
407
|
-
parent.nodes.splice(index, 0, item);
|
|
408
|
-
break;
|
|
409
|
-
}
|
|
410
|
-
case "reorder-below": {
|
|
411
|
-
const item = removeItem(state, source);
|
|
412
|
-
const parent = getNode(state, target.path.slice(1, -1));
|
|
413
|
-
const index = parent.nodes.findIndex(({ id }) => id === target.id);
|
|
414
|
-
parent.nodes.splice(index + 1, 0, item);
|
|
415
|
-
break;
|
|
416
|
-
}
|
|
417
|
-
case "make-child": {
|
|
418
|
-
const item = removeItem(state, source);
|
|
419
|
-
const parent = getNode(state, target.path.slice(1));
|
|
420
|
-
parent.nodes.push(item);
|
|
421
|
-
break;
|
|
422
|
-
}
|
|
423
|
-
case "instruction-blocked":
|
|
424
|
-
break;
|
|
425
|
-
default:
|
|
426
|
-
log2.warn("Unsupported instruction", instruction, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 48, S: void 0 });
|
|
427
|
-
break;
|
|
428
|
-
}
|
|
429
|
-
};
|
|
430
|
-
export {
|
|
431
|
-
Priority,
|
|
432
|
-
Status,
|
|
433
|
-
TestObjectGenerator,
|
|
434
|
-
createTree,
|
|
435
|
-
defaultGenerators,
|
|
436
|
-
storybookGraphBuilders,
|
|
437
|
-
updateState
|
|
438
|
-
};
|
|
439
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/testing/app-graph-builder.ts", "../../../../src/testing/generator.ts", "../../../../src/testing/update-state.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { type BuilderExtensions } from '@dxos/app-graph';\nimport { log } from '@dxos/log';\nimport { GraphBuilder, Node, NodeMatcher } from '@dxos/plugin-graph';\nimport { random } from '@dxos/random';\n\nexport const storybookGraphBuilders = (): BuilderExtensions => {\n const propertiesCache = new Map<string, Record<string, unknown>>();\n const getProperties = (id: string, defaults: Record<string, unknown>) => {\n const cached = propertiesCache.get(id);\n if (cached) {\n return cached;\n }\n\n propertiesCache.set(id, defaults);\n return defaults;\n };\n\n return Effect.runSync(\n Effect.all([\n // Create app menu actions.\n GraphBuilder.createExtension({\n id: 'appMenu',\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed(\n Array.from({ length: 5 }, (_, i) => ({\n id: `action-${i}`,\n data: Effect.fnUntraced(function* () {\n log.info('action', { id: 'app-menu', index: i });\n }),\n properties: {\n label: `Action ${i}`,\n icon: random.properties.icon(),\n disposition: 'menu',\n },\n })),\n ),\n }),\n // Create user account node.\n GraphBuilder.createExtension({\n id: 'userAccount',\n match: NodeMatcher.whenRoot,\n connector: () =>\n Effect.succeed([\n Node.make({\n id: 'user-account',\n type: 'user-account',\n properties: {\n label: 'User profile',\n icon: 'ph--user--regular',\n disposition: 'user-account',\n userId: '1234567890ABCDEF',\n hue: random.properties.hue(),\n emoji: random.properties.emoji(),\n status: 'active',\n },\n nodes: [\n Node.make({\n id: 'profile',\n type: 'profile',\n properties: {\n label: 'Profile',\n icon: 'ph--user--regular',\n },\n }),\n Node.make({\n id: 'devices',\n type: 'devices',\n properties: {\n label: 'Devices',\n icon: 'ph--devices--regular',\n },\n }),\n Node.make({\n id: 'security',\n type: 'security',\n properties: {\n label: 'Security',\n icon: 'ph--key--regular',\n },\n }),\n ],\n }),\n ]),\n }),\n // Create space (workspace) nodes directly under root.\n GraphBuilder.createExtension({\n id: 'spaces',\n match: NodeMatcher.whenRoot,\n connector: (_, get) =>\n Effect.sync(() => {\n const count = Atom.make((get) => {\n let value = 3;\n const interval = setInterval(() => {\n if (value >= 10) {\n clearInterval(interval);\n return;\n }\n\n value++;\n get.setSelf(value);\n }, 5000);\n get.addFinalizer(() => clearInterval(interval));\n return value;\n });\n\n return Array.from({ length: get(count) }, (_, i) =>\n Node.make({\n id: `space-${i}`,\n type: 'space',\n properties: getProperties(`space-${i}`, {\n label: `Space ${i}`,\n icon: random.properties.icon(),\n hue: random.properties.hue(),\n disposition: 'workspace',\n }),\n }),\n );\n }),\n }),\n // Create space actions.\n GraphBuilder.createExtension({\n id: 'spaceActions',\n match: NodeMatcher.whenNodeType('space'),\n actions: () =>\n Effect.succeed(\n Array.from({ length: 5 }, (_, i) => ({\n id: `action-${i}`,\n data: Effect.fnUntraced(function* () {\n log.info('action', { id: 'space-actions', index: i });\n }),\n properties: getProperties(`action-${i}`, {\n label: `Action ${i}`,\n icon: random.properties.icon(),\n }),\n })),\n ),\n }),\n // Create object nodes.\n GraphBuilder.createExtension({\n id: 'objects',\n match: NodeMatcher.whenNodeType('space'),\n connector: (_, get) =>\n Effect.sync(() => {\n const count = Atom.make((get) => {\n let value = 3;\n const interval = setInterval(() => {\n if (value >= 20) {\n clearInterval(interval);\n return;\n }\n\n value++;\n get.setSelf(value);\n }, 5000);\n get.addFinalizer(() => clearInterval(interval));\n return value;\n });\n\n return Array.from({ length: get(count) }, (_, i) =>\n Node.make({\n id: `object-${i}`,\n type: 'object',\n properties: getProperties(`object-${i}`, {\n label: `Object ${i}`,\n icon: random.properties.icon(),\n ...(i % 3 === 0 && { count: (i + 1) * 2 }),\n ...(i % 3 === 1 && { modifiedCount: i + 1 }),\n }),\n }),\n );\n }),\n }),\n // Create object actions.\n GraphBuilder.createExtension({\n id: 'objectActions',\n match: NodeMatcher.whenNodeType('object'),\n actions: () =>\n Effect.succeed(\n Array.from({ length: 5 }, (_, i) => ({\n id: `action-${i}`,\n data: Effect.fnUntraced(function* () {\n log.info('action', { id: 'objectActions', index: i });\n }),\n properties: getProperties(`action-${i}`, {\n label: `Action ${i}`,\n icon: random.properties.icon(),\n }),\n })),\n ),\n }),\n ]),\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { type Node } from '@dxos/app-graph';\nimport { DXN, Obj, Type } from '@dxos/echo';\nimport { TestSchema } from '@dxos/echo/testing';\nimport { random } from '@dxos/random';\nimport { range } from '@dxos/util';\n\n// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/react-ui/testing.\n// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).\n\n// TODO(burdon): Commit to using ECHO to generate all test data? Or convert from raw data?\nexport type TestItem = { id: string; type: string } & Record<string, any>;\n\ntype ObjectDataGenerator = {\n createSchema?: () => Type.AnyObj;\n createData: () => any;\n};\n\ntype ObjectFactory<T> = {\n schema?: Type.AnyObj; // TODO(burdon): Support both typed and expando schema.\n createObject: () => T;\n};\n\ntype ObjectFactoryMap = { [type: string]: ObjectFactory<any> };\n\nconst createFactory = ({ createSchema, createData }: ObjectDataGenerator) => {\n const schema = createSchema?.();\n return {\n schema,\n createObject: () => (schema ? Obj.make(schema, createData()) : Obj.make(TestSchema.Expando, createData())),\n };\n};\n\n// TODO(burdon): Handle restricted values.\nexport const Status = ['pending', 'active', 'done'];\nexport const Priority = [1, 2, 3, 4, 5];\n\nexport const defaultGenerators: { [type: string]: ObjectDataGenerator } = {\n document: {\n createData: () => ({\n title: random.lorem.sentence(3),\n body: random.lorem.sentences({ min: 1, max: random.number.int({ min: 1, max: 3 }) }),\n }),\n },\n\n image: {\n createData: () => ({\n title: random.lorem.sentence(3),\n image: random.helpers.arrayElement(data.images),\n body: random.datatype.boolean() ? random.lorem.sentences() : undefined,\n }),\n },\n\n project: {\n createSchema: () =>\n Type.makeObject(DXN.make('com.example.type.project', '0.1.0'))(\n Schema.Struct({\n title: Schema.String,\n repo: Schema.String,\n status: Schema.String,\n priority: Schema.Number,\n }),\n ),\n\n createData: () => ({\n title: random.commerce.productName(),\n repo: random.datatype.boolean({ probability: 0.3 }) ? random.internet.url() : undefined,\n status: random.helpers.arrayElement(Status),\n priority: random.helpers.arrayElement(Priority),\n }),\n },\n};\n\n/**\n * Typed object generator.\n */\nexport class TestObjectGenerator {\n public readonly factories: ObjectFactoryMap;\n\n constructor({ types, factories }: { types?: string[]; factories?: ObjectFactoryMap } = {}) {\n this.factories =\n factories ??\n (types ?? Object.keys(defaultGenerators)).reduce<ObjectFactoryMap>((acc, type) => {\n acc[type] = createFactory(defaultGenerators[type]);\n return acc;\n }, {});\n }\n\n get schema(): Type.AnyObj[] {\n return Object.values(this.factories).map((f) => f.schema!);\n }\n\n createObject({ types }: { types?: string[] } = {}) {\n const type = random.helpers.arrayElement(types ?? Object.keys(this.factories));\n const factory = this.factories[type];\n return factory?.createObject();\n }\n\n createObjects({ types, length }: { types?: string[]; length: number }) {\n return range(length, () => this.createObject({ types }));\n }\n}\n\n// https://unsplash.com\n// TODO(burdon): Use https://picsum.photos?\nconst data = {\n images: [\n '/images/image-1.png',\n '/images/image-2.png',\n '/images/image-3.png',\n '/images/image-4.png',\n '/images/image-5.png',\n '/images/image-6.png',\n ],\n};\n\nexport const createTree = () => {\n const generator = new TestObjectGenerator({ types: ['document'] });\n\n const initialContent = {\n id: 'root',\n data: null,\n type: 'root',\n properties: {\n label: 'Root',\n icon: 'ph--circle--regular',\n },\n nodes: [...Array(4)].map(() => {\n const l0 = generator.createObject();\n return {\n id: random.string.uuid(),\n data: null,\n type: 'category',\n properties: {\n label: l0.title,\n icon: 'ph--horse--regular',\n disposition: 'workspace',\n },\n nodes: [\n ...[...Array(4)].map(() => {\n const l1 = generator.createObject();\n return {\n id: random.string.uuid(),\n data: null,\n type: 'document',\n properties: {\n label: l1.title,\n icon: 'ph--butterfly--regular',\n },\n nodes: [\n {\n id: `${random.string.uuid()}__a1`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--boat--regular',\n },\n },\n {\n id: `${random.string.uuid()}__a2`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--train-simple--regular',\n },\n },\n ],\n } satisfies Node.NodeArg<any>;\n }),\n {\n id: `${random.string.uuid()}__a1`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--boat--regular',\n },\n },\n {\n id: `${random.string.uuid()}__a2`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--train-simple--regular',\n },\n },\n ],\n } satisfies Node.NodeArg<any>;\n }),\n } satisfies Node.NodeArg<any>;\n\n return initialContent;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';\n\nimport { type Node } from '@dxos/app-graph';\nimport { log } from '@dxos/log';\nimport { type TreeData } from '@dxos/react-ui-list';\n\nconst removeItem = (tree: Node.NodeArg<any>, source: TreeData) => {\n const parent = getNode(tree, source.path.slice(1, -1));\n const index = parent.nodes!.findIndex((node: Node.NodeArg<any>) => node.id === source.id);\n const item = parent.nodes![index];\n parent.nodes!.splice(index, 1);\n return item;\n};\n\nconst getNode = (tree: Node.NodeArg<any>, path: string[]) => {\n let node = tree;\n for (const part of path) {\n node = node.nodes!.find((n: Node.NodeArg<any>) => n.id === part)!;\n }\n return node;\n};\n\n// TODO(wittjosiah): Reconcile with react-ui-list/Tree/testing.\nexport const updateState = ({\n state,\n instruction,\n source,\n target,\n}: {\n state: Node.NodeArg<any>;\n instruction: Instruction;\n source: TreeData;\n target: TreeData;\n}) => {\n switch (instruction.type) {\n case 'reorder-above': {\n const item = removeItem(state, source);\n const parent = getNode(state, target.path.slice(1, -1));\n const index = parent.nodes!.findIndex(({ id }) => id === target.id);\n parent.nodes!.splice(index, 0, item);\n break;\n }\n\n case 'reorder-below': {\n const item = removeItem(state, source);\n const parent = getNode(state, target.path.slice(1, -1));\n const index = parent.nodes!.findIndex(({ id }) => id === target.id);\n parent.nodes!.splice(index + 1, 0, item);\n break;\n }\n\n case 'make-child': {\n const item = removeItem(state, source);\n const parent = getNode(state, target.path.slice(1));\n parent.nodes!.push(item);\n break;\n }\n\n case 'instruction-blocked':\n break;\n\n default:\n log.warn('Unsupported instruction', instruction);\n break;\n }\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Atom", "Effect", "log", "GraphBuilder", "Node", "NodeMatcher", "random", "storybookGraphBuilders", "getProperties", "defaults", "propertiesCache", "cached", "createExtension", "whenRoot", "actions", "_", "data", "index", "i", "properties", "disposition", "connector", "type", "label", "userId", "hue", "emoji", "status", "nodes", "count", "interval", "setInterval", "value", "clearInterval", "get", "addFinalizer", "Array", "make", "whenNodeType", "Schema", "DXN", "Obj", "Type", "TestSchema", "random", "range", "createFactory", "createSchema", "createData", "schema", "createObject", "make", "Expando", "Status", "Priority", "defaultGenerators", "document", "title", "lorem", "sentence", "body", "sentences", "min", "max", "number", "int", "image", "helpers", "arrayElement", "data", "images", "datatype", "boolean", "undefined", "project", "makeObject", "Struct", "String", "repo", "status", "priority", "Number", "commerce", "productName", "probability", "internet", "url", "TestObjectGenerator", "factories", "types", "Object", "keys", "reduce", "acc", "type", "values", "map", "f", "factory", "createObjects", "length", "createTree", "generator", "initialContent", "id", "properties", "label", "icon", "nodes", "Array", "l0", "string", "uuid", "disposition", "l1", "words", "log", "__dxlog_file", "removeItem", "parent", "nodes", "findIndex", "item", "index", "splice", "getNode", "part", "path", "node", "push"]
|
|
7
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/translations.ts
|
|
4
|
-
import { meta } from "#meta";
|
|
5
|
-
var translations = [
|
|
6
|
-
{
|
|
7
|
-
"en-US": {
|
|
8
|
-
[meta.profile.key]: {
|
|
9
|
-
"app-menu.label": "App menu",
|
|
10
|
-
"open-commands.label": "Search commands",
|
|
11
|
-
"commands-dialog.title": "Commands",
|
|
12
|
-
"command-list-input.placeholder": "Search for commands\u2026",
|
|
13
|
-
"node-actions-menu-invoker.label": "More options",
|
|
14
|
-
"tree-item-actions.label": "More actions",
|
|
15
|
-
"button-back.button": "Back to Space"
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
];
|
|
20
|
-
export {
|
|
21
|
-
translations
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=translations.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.profile.key]: {\n 'app-menu.label': 'App menu',\n 'open-commands.label': 'Search commands',\n 'commands-dialog.title': 'Commands',\n 'command-list-input.placeholder': 'Search for commands…',\n 'node-actions-menu-invoker.label': 'More options',\n 'tree-item-actions.label': 'More actions',\n 'button-back.button': 'Back to Space',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
-
"mappings": ";;;AAMA,SAASA,YAAY;AAEd,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACD,KAAKE,QAAQC,GAAG,GAAG;QAClB,kBAAkB;QAClB,uBAAuB;QACvB,yBAAyB;QACzB,kCAAkC;QAClC,mCAAmC;QACnC,2BAA2B;QAC3B,sBAAsB;MACxB;IACF;EACF;;",
|
|
6
|
-
"names": ["meta", "translations", "profile", "key"]
|
|
7
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
NavTreeCapabilities_exports,
|
|
3
|
-
NavTreeEvents_exports
|
|
4
|
-
} from "../chunk-BAVI2K7A.mjs";
|
|
5
|
-
import "../chunk-J5LGTIGS.mjs";
|
|
6
|
-
export {
|
|
7
|
-
NavTreeCapabilities_exports as NavTreeCapabilities,
|
|
8
|
-
NavTreeEvents_exports as NavTreeEvents
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavTreePlugin.node.d.ts","sourceRoot":"","sources":["../../../src/NavTreePlugin.node.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAM7C,eAAO,MAAM,aAAa,4BAIzB,CAAC;eAEa,aAAa"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavTreePlugin.test.d.ts","sourceRoot":"","sources":["../../../src/NavTreePlugin.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavTreePlugin.workerd.d.ts","sourceRoot":"","sources":["../../../src/NavTreePlugin.workerd.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAM7C,eAAO,MAAM,aAAa,4BAGzB,CAAC;eAEa,aAAa"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { Plugin } from '@dxos/app-framework';
|
|
6
|
-
import { AppPlugin } from '@dxos/app-toolkit';
|
|
7
|
-
|
|
8
|
-
import { AppGraphBuilder, OperationHandler } from '#capabilities';
|
|
9
|
-
import { meta } from '#meta';
|
|
10
|
-
|
|
11
|
-
export const NavTreePlugin = Plugin.define(meta).pipe(
|
|
12
|
-
AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),
|
|
13
|
-
AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),
|
|
14
|
-
Plugin.make,
|
|
15
|
-
);
|
|
16
|
-
|
|
17
|
-
export default NavTreePlugin;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { describe, test } from 'vitest';
|
|
6
|
-
|
|
7
|
-
import { ActivationEvents } from '@dxos/app-framework';
|
|
8
|
-
import { createComposerTestApp } from '@dxos/plugin-testing/harness';
|
|
9
|
-
|
|
10
|
-
import { NavTreePlugin } from '#plugin';
|
|
11
|
-
|
|
12
|
-
import { meta } from './meta';
|
|
13
|
-
|
|
14
|
-
const moduleId = (name: string) => `${meta.profile.key}.module.${name}`;
|
|
15
|
-
|
|
16
|
-
describe('NavTreePlugin', () => {
|
|
17
|
-
test('modules activate on the expected events', async ({ expect }) => {
|
|
18
|
-
await using harness = await createComposerTestApp({
|
|
19
|
-
plugins: [NavTreePlugin()],
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
expect(harness.manager.getActive()).toEqual(expect.arrayContaining([moduleId('AppGraphBuilder')]));
|
|
23
|
-
|
|
24
|
-
await harness.fire(ActivationEvents.SetupProcessManager);
|
|
25
|
-
expect(harness.manager.getActive()).toContain(moduleId('OperationHandler'));
|
|
26
|
-
});
|
|
27
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { Plugin } from '@dxos/app-framework';
|
|
6
|
-
import { AppPlugin } from '@dxos/app-toolkit';
|
|
7
|
-
|
|
8
|
-
import { OperationHandler } from '#capabilities';
|
|
9
|
-
import { meta } from '#meta';
|
|
10
|
-
|
|
11
|
-
export const NavTreePlugin = Plugin.define(meta).pipe(
|
|
12
|
-
AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),
|
|
13
|
-
Plugin.make,
|
|
14
|
-
);
|
|
15
|
-
|
|
16
|
-
export default NavTreePlugin;
|
|
File without changes
|