@dxos/plugin-space 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/{chunk-LZEGRS7H.mjs → chunk-AVLRQF6L.mjs} +1 -1
- package/dist/lib/browser/chunk-AVLRQF6L.mjs.map +7 -0
- package/dist/lib/browser/{chunk-DTVUOG2C.mjs → chunk-FOI7DAUV.mjs} +24 -5
- package/dist/lib/browser/chunk-FOI7DAUV.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +757 -298
- 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/lib/browser/types/index.mjs +7 -3
- package/dist/lib/node/{chunk-CVZPI2P3.cjs → chunk-OTDRTHT4.cjs} +30 -9
- package/dist/lib/node/chunk-OTDRTHT4.cjs.map +7 -0
- package/dist/lib/node/{chunk-6CNYF6YU.cjs → chunk-P4XUXM7Y.cjs} +4 -4
- package/dist/lib/node/chunk-P4XUXM7Y.cjs.map +7 -0
- package/dist/lib/node/index.cjs +953 -498
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.cjs +5 -5
- package/dist/lib/node/meta.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/types/index.cjs +14 -10
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/chunk-FYDGMPSC.mjs +116 -0
- package/dist/lib/node-esm/chunk-FYDGMPSC.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YPQGKWHJ.mjs +37 -0
- package/dist/lib/node-esm/chunk-YPQGKWHJ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +3100 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/meta.mjs +14 -0
- package/dist/lib/node-esm/meta.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +26 -0
- package/dist/lib/node-esm/types/index.mjs.map +7 -0
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/components/DefaultObjectSettings.d.ts +7 -0
- package/dist/types/src/components/DefaultObjectSettings.d.ts.map +1 -0
- package/dist/types/src/components/MenuFooter.d.ts +1 -1
- package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
- package/dist/types/src/components/SaveStatus.d.ts +3 -0
- package/dist/types/src/components/SaveStatus.d.ts.map +1 -0
- package/dist/types/src/components/ShareSpaceButton.stories.d.ts +3 -91
- package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceMain/SpaceMain.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.d.ts +4 -2
- package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +4 -92
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettingsPanel.d.ts +7 -0
- package/dist/types/src/components/SpaceSettingsPanel.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +13 -0
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +24 -0
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/index.d.ts +2 -0
- package/dist/types/src/components/SyncStatus/index.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/types.d.ts +14 -0
- package/dist/types/src/components/SyncStatus/types.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +4 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +8 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/thread.d.ts +15 -1
- package/dist/types/src/types/thread.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +21 -1
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +4 -7
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +45 -45
- package/src/SpacePlugin.tsx +229 -116
- package/src/components/DefaultObjectSettings.tsx +33 -0
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/SaveStatus.tsx +95 -0
- package/src/components/ShareSpaceButton.stories.tsx +11 -7
- package/src/components/SpaceMain/SpaceMain.tsx +1 -22
- package/src/components/SpacePresence.stories.tsx +11 -9
- package/src/components/SpacePresence.tsx +34 -23
- package/src/components/SpaceSettings.tsx +35 -6
- package/src/components/SpaceSettingsPanel.tsx +59 -0
- package/src/components/SyncStatus/SyncStatus.stories.tsx +65 -0
- package/src/components/SyncStatus/SyncStatus.tsx +188 -0
- package/src/components/SyncStatus/index.ts +5 -0
- package/src/components/SyncStatus/types.ts +77 -0
- package/src/components/index.ts +4 -2
- package/src/meta.ts +3 -1
- package/src/translations.ts +10 -2
- package/src/types/collection.ts +1 -1
- package/src/types/thread.ts +12 -2
- package/src/types/types.ts +28 -2
- package/src/util.tsx +23 -58
- package/dist/lib/browser/chunk-DTVUOG2C.mjs.map +0 -7
- package/dist/lib/browser/chunk-LZEGRS7H.mjs.map +0 -7
- package/dist/lib/node/chunk-6CNYF6YU.cjs.map +0 -7
- package/dist/lib/node/chunk-CVZPI2P3.cjs.map +0 -7
- package/dist/types/src/components/EmptySpace.d.ts +0 -3
- package/dist/types/src/components/EmptySpace.d.ts.map +0 -1
- package/dist/types/src/components/EmptyTree.d.ts +0 -3
- package/dist/types/src/components/EmptyTree.d.ts.map +0 -1
- package/src/components/EmptySpace.tsx +0 -25
- package/src/components/EmptyTree.tsx +0 -25
package/dist/lib/node/index.cjs
CHANGED
|
@@ -28,40 +28,45 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var node_exports = {};
|
|
30
30
|
__export(node_exports, {
|
|
31
|
-
ActorSchema: () =>
|
|
31
|
+
ActorSchema: () => import_chunk_OTDRTHT4.ActorSchema,
|
|
32
32
|
AwaitingObject: () => AwaitingObject,
|
|
33
33
|
COMPOSER_SPACE_LOCK: () => COMPOSER_SPACE_LOCK,
|
|
34
|
-
ChannelType: () =>
|
|
34
|
+
ChannelType: () => import_chunk_OTDRTHT4.ChannelType,
|
|
35
35
|
CollectionMain: () => CollectionMain,
|
|
36
36
|
CollectionSection: () => CollectionSection,
|
|
37
|
-
CollectionType: () =>
|
|
38
|
-
ContactType: () =>
|
|
39
|
-
|
|
40
|
-
EmptyTree: () => EmptyTree,
|
|
37
|
+
CollectionType: () => import_chunk_OTDRTHT4.CollectionType,
|
|
38
|
+
ContactType: () => import_chunk_OTDRTHT4.ContactType,
|
|
39
|
+
DefaultObjectSettings: () => DefaultObjectSettings,
|
|
41
40
|
FullPresence: () => FullPresence,
|
|
42
41
|
MenuFooter: () => MenuFooter,
|
|
43
|
-
|
|
42
|
+
MessageState: () => import_chunk_OTDRTHT4.MessageState,
|
|
43
|
+
MessageType: () => import_chunk_OTDRTHT4.MessageType,
|
|
44
44
|
MissingObject: () => MissingObject,
|
|
45
45
|
PersistenceStatus: () => PersistenceStatus,
|
|
46
46
|
PopoverRenameObject: () => PopoverRenameObject,
|
|
47
47
|
PopoverRenameSpace: () => PopoverRenameSpace,
|
|
48
48
|
SHARED: () => SHARED,
|
|
49
49
|
SPACES: () => SPACES,
|
|
50
|
-
SPACE_DIRECTORY_HANDLE: () =>
|
|
51
|
-
SPACE_PLUGIN: () =>
|
|
52
|
-
SPACE_PLUGIN_SHORT_ID: () =>
|
|
50
|
+
SPACE_DIRECTORY_HANDLE: () => import_chunk_OTDRTHT4.SPACE_DIRECTORY_HANDLE,
|
|
51
|
+
SPACE_PLUGIN: () => import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
52
|
+
SPACE_PLUGIN_SHORT_ID: () => import_chunk_P4XUXM7Y.SPACE_PLUGIN_SHORT_ID,
|
|
53
53
|
SPACE_TYPE: () => SPACE_TYPE,
|
|
54
|
+
SaveStatus: () => SaveStatus,
|
|
54
55
|
ShareSpaceButton: () => ShareSpaceButton,
|
|
55
56
|
ShareSpaceButtonImpl: () => ShareSpaceButtonImpl,
|
|
56
57
|
SmallPresence: () => SmallPresence,
|
|
57
58
|
SmallPresenceLive: () => SmallPresenceLive,
|
|
58
|
-
SpaceAction: () =>
|
|
59
|
+
SpaceAction: () => import_chunk_P4XUXM7Y.SpaceAction,
|
|
59
60
|
SpaceMain: () => SpaceMain,
|
|
60
61
|
SpacePlugin: () => SpacePlugin,
|
|
61
62
|
SpacePresence: () => SpacePresence,
|
|
62
63
|
SpaceSettings: () => SpaceSettings,
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
SpaceSettingsPanel: () => SpaceSettingsPanel,
|
|
65
|
+
SyncStatus: () => SyncStatus,
|
|
66
|
+
SyncStatusDetail: () => SyncStatusDetail,
|
|
67
|
+
SyncStatusIndicator: () => SyncStatusIndicator,
|
|
68
|
+
ThreadStatus: () => import_chunk_OTDRTHT4.ThreadStatus,
|
|
69
|
+
ThreadType: () => import_chunk_OTDRTHT4.ThreadType,
|
|
65
70
|
cloneObject: () => cloneObject,
|
|
66
71
|
constructObjectActionGroups: () => constructObjectActionGroups,
|
|
67
72
|
constructObjectActions: () => constructObjectActions,
|
|
@@ -74,18 +79,19 @@ __export(node_exports, {
|
|
|
74
79
|
getNestedObjects: () => getNestedObjects,
|
|
75
80
|
getSpaceDisplayName: () => getSpaceDisplayName,
|
|
76
81
|
memoizeQuery: () => memoizeQuery,
|
|
82
|
+
parseSpaceInitPlugin: () => import_chunk_OTDRTHT4.parseSpaceInitPlugin,
|
|
77
83
|
parseSpacePlugin: () => parseSpacePlugin,
|
|
78
84
|
translations: () => translations_default
|
|
79
85
|
});
|
|
80
86
|
module.exports = __toCommonJS(node_exports);
|
|
81
|
-
var
|
|
82
|
-
var
|
|
83
|
-
var import_react = require("@phosphor-icons/react");
|
|
87
|
+
var import_chunk_P4XUXM7Y = require("./chunk-P4XUXM7Y.cjs");
|
|
88
|
+
var import_chunk_OTDRTHT4 = require("./chunk-OTDRTHT4.cjs");
|
|
84
89
|
var import_signals_core = require("@preact/signals-core");
|
|
85
|
-
var
|
|
90
|
+
var import_react = __toESM(require("react"));
|
|
86
91
|
var import_app_framework = require("@dxos/app-framework");
|
|
87
92
|
var import_async = require("@dxos/async");
|
|
88
93
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
94
|
+
var import_core = require("@dxos/echo-signals/core");
|
|
89
95
|
var import_local_storage = require("@dxos/local-storage");
|
|
90
96
|
var import_log = require("@dxos/log");
|
|
91
97
|
var import_migrations = require("@dxos/migrations");
|
|
@@ -96,97 +102,109 @@ var import_meta = require("@dxos/plugin-observability/meta");
|
|
|
96
102
|
var import_react_client = require("@dxos/react-client");
|
|
97
103
|
var import_echo = require("@dxos/react-client/echo");
|
|
98
104
|
var import_react_ui = require("@dxos/react-ui");
|
|
99
|
-
var
|
|
105
|
+
var import_react2 = require("@dxos/shell/react");
|
|
100
106
|
var import_util = require("@dxos/util");
|
|
101
|
-
var
|
|
102
|
-
var
|
|
107
|
+
var import_react3 = require("@phosphor-icons/react");
|
|
108
|
+
var import_react4 = __toESM(require("react"));
|
|
103
109
|
var import_app_framework2 = require("@dxos/app-framework");
|
|
104
110
|
var import_react_client2 = require("@dxos/react-client");
|
|
105
111
|
var import_echo2 = require("@dxos/react-client/echo");
|
|
106
112
|
var import_react_ui2 = require("@dxos/react-ui");
|
|
107
113
|
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
108
|
-
var
|
|
114
|
+
var import_react5 = __toESM(require("react"));
|
|
109
115
|
var import_react_ui3 = require("@dxos/react-ui");
|
|
110
116
|
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
111
|
-
var
|
|
117
|
+
var import_react6 = __toESM(require("react"));
|
|
112
118
|
var import_react_ui4 = require("@dxos/react-ui");
|
|
113
|
-
var
|
|
119
|
+
var import_react7 = __toESM(require("react"));
|
|
114
120
|
var import_react_ui5 = require("@dxos/react-ui");
|
|
115
|
-
var
|
|
121
|
+
var import_react8 = require("@phosphor-icons/react");
|
|
116
122
|
var import_react9 = __toESM(require("react"));
|
|
117
|
-
var import_react_ui6 = require("@dxos/react-ui");
|
|
118
|
-
var import_react_ui_theme4 = require("@dxos/react-ui-theme");
|
|
119
|
-
var import_react10 = require("@phosphor-icons/react");
|
|
120
|
-
var import_react11 = __toESM(require("react"));
|
|
121
123
|
var import_echo3 = require("@dxos/client/echo");
|
|
122
124
|
var import_react_client3 = require("@dxos/react-client");
|
|
123
|
-
var
|
|
124
|
-
var import_react12 = require("@phosphor-icons/react");
|
|
125
|
-
var import_react13 = __toESM(require("react"));
|
|
125
|
+
var import_react_ui6 = require("@dxos/react-ui");
|
|
126
126
|
var import_app_framework3 = require("@dxos/app-framework");
|
|
127
127
|
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
128
128
|
var import_invariant = require("@dxos/invariant");
|
|
129
129
|
var import_migrations2 = require("@dxos/migrations");
|
|
130
130
|
var import_plugin_graph2 = require("@dxos/plugin-graph");
|
|
131
131
|
var import_echo4 = require("@dxos/react-client/echo");
|
|
132
|
-
var
|
|
132
|
+
var import_react10 = __toESM(require("react"));
|
|
133
133
|
var import_app_framework4 = require("@dxos/app-framework");
|
|
134
|
-
var
|
|
135
|
-
var
|
|
136
|
-
var
|
|
137
|
-
var
|
|
134
|
+
var import_react_ui7 = require("@dxos/react-ui");
|
|
135
|
+
var import_react_ui_theme3 = require("@dxos/react-ui-theme");
|
|
136
|
+
var import_react11 = require("@phosphor-icons/react");
|
|
137
|
+
var import_react12 = __toESM(require("react"));
|
|
138
138
|
var import_async2 = require("@dxos/async");
|
|
139
|
-
var
|
|
140
|
-
var
|
|
141
|
-
var
|
|
139
|
+
var import_react_ui8 = require("@dxos/react-ui");
|
|
140
|
+
var import_react_ui_theme4 = require("@dxos/react-ui-theme");
|
|
141
|
+
var import_react13 = __toESM(require("react"));
|
|
142
142
|
var import_log2 = require("@dxos/log");
|
|
143
|
+
var import_react_ui9 = require("@dxos/react-ui");
|
|
144
|
+
var import_react14 = __toESM(require("react"));
|
|
143
145
|
var import_react_ui10 = require("@dxos/react-ui");
|
|
144
|
-
var
|
|
145
|
-
var import_react_ui11 = require("@dxos/react-ui");
|
|
146
|
-
var import_react19 = __toESM(require("react"));
|
|
146
|
+
var import_react15 = __toESM(require("react"));
|
|
147
147
|
var import_app_framework5 = require("@dxos/app-framework");
|
|
148
|
-
var
|
|
149
|
-
var
|
|
150
|
-
var
|
|
148
|
+
var import_react_ui11 = require("@dxos/react-ui");
|
|
149
|
+
var import_react16 = require("@phosphor-icons/react");
|
|
150
|
+
var import_react17 = __toESM(require("react"));
|
|
151
151
|
var import_app_framework6 = require("@dxos/app-framework");
|
|
152
152
|
var import_echo5 = require("@dxos/react-client/echo");
|
|
153
|
-
var
|
|
154
|
-
var
|
|
155
|
-
var
|
|
156
|
-
var
|
|
157
|
-
var
|
|
153
|
+
var import_react_ui12 = require("@dxos/react-ui");
|
|
154
|
+
var import_react_ui_theme5 = require("@dxos/react-ui-theme");
|
|
155
|
+
var import_react18 = require("@dxos/shell/react");
|
|
156
|
+
var import_react19 = require("@phosphor-icons/react");
|
|
157
|
+
var import_react20 = __toESM(require("react"));
|
|
158
158
|
var import_app_framework7 = require("@dxos/app-framework");
|
|
159
159
|
var import_echo6 = require("@dxos/react-client/echo");
|
|
160
160
|
var import_invitations = require("@dxos/react-client/invitations");
|
|
161
161
|
var import_invitations2 = require("@dxos/react-client/invitations");
|
|
162
|
-
var
|
|
163
|
-
var
|
|
164
|
-
var
|
|
165
|
-
var
|
|
162
|
+
var import_react_ui13 = require("@dxos/react-ui");
|
|
163
|
+
var import_react_ui_theme6 = require("@dxos/react-ui-theme");
|
|
164
|
+
var import_react21 = require("@dxos/shell/react");
|
|
165
|
+
var import_react22 = __toESM(require("react"));
|
|
166
166
|
var import_app_framework8 = require("@dxos/app-framework");
|
|
167
167
|
var import_display_name = require("@dxos/display-name");
|
|
168
168
|
var import_react_client4 = require("@dxos/react-client");
|
|
169
169
|
var import_echo7 = require("@dxos/react-client/echo");
|
|
170
170
|
var import_halo = require("@dxos/react-client/halo");
|
|
171
|
-
var
|
|
171
|
+
var import_react_ui14 = require("@dxos/react-ui");
|
|
172
172
|
var import_react_ui_attention = require("@dxos/react-ui-attention");
|
|
173
173
|
var import_util2 = require("@dxos/util");
|
|
174
|
-
var
|
|
174
|
+
var import_react23 = __toESM(require("react"));
|
|
175
175
|
var import_app_framework9 = require("@dxos/app-framework");
|
|
176
|
-
var
|
|
176
|
+
var import_react_ui15 = require("@dxos/react-ui");
|
|
177
|
+
var import_react_ui_data = require("@dxos/react-ui-data");
|
|
178
|
+
var import_react24 = __toESM(require("react"));
|
|
179
|
+
var import_log3 = require("@dxos/log");
|
|
180
|
+
var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
|
|
177
181
|
var import_react_ui16 = require("@dxos/react-ui");
|
|
182
|
+
var import_react25 = __toESM(require("react"));
|
|
183
|
+
var import_context = require("@dxos/context");
|
|
184
|
+
var import_plugin_status_bar = require("@dxos/plugin-status-bar");
|
|
185
|
+
var import_react_client5 = require("@dxos/react-client");
|
|
186
|
+
var import_react_ui17 = require("@dxos/react-ui");
|
|
187
|
+
var import_react26 = __toESM(require("react"));
|
|
188
|
+
var import_plugin_status_bar2 = require("@dxos/plugin-status-bar");
|
|
189
|
+
var import_react_ui18 = require("@dxos/react-ui");
|
|
190
|
+
var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
|
|
191
|
+
var import_react_ui_theme7 = require("@dxos/react-ui-theme");
|
|
192
|
+
var import_react27 = require("react");
|
|
193
|
+
var import_context2 = require("@dxos/context");
|
|
194
|
+
var import_protocols = require("@dxos/protocols");
|
|
195
|
+
var import_react_client6 = require("@dxos/react-client");
|
|
178
196
|
var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
|
|
179
197
|
var TOAST_TIMEOUT = 24e4;
|
|
180
198
|
var AwaitingObject = ({ id }) => {
|
|
181
|
-
const [open, setOpen] = (0,
|
|
182
|
-
const [waiting, setWaiting] = (0,
|
|
183
|
-
const [found, setFound] = (0,
|
|
184
|
-
const { t } = (0, import_react_ui2.useTranslation)(
|
|
199
|
+
const [open, setOpen] = (0, import_react4.useState)(true);
|
|
200
|
+
const [waiting, setWaiting] = (0, import_react4.useState)(true);
|
|
201
|
+
const [found, setFound] = (0, import_react4.useState)(false);
|
|
202
|
+
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
185
203
|
const intentPlugin = (0, import_app_framework2.useResolvePlugin)(import_app_framework2.parseIntentPlugin);
|
|
186
204
|
const navigationPlugin = (0, import_app_framework2.useResolvePlugin)(import_app_framework2.parseNavigationPlugin);
|
|
187
205
|
const client = (0, import_react_client2.useClient)();
|
|
188
206
|
const objects = (0, import_echo2.useQuery)(client.spaces);
|
|
189
|
-
(0,
|
|
207
|
+
(0, import_react4.useEffect)(() => {
|
|
190
208
|
if (!id) {
|
|
191
209
|
return;
|
|
192
210
|
}
|
|
@@ -197,7 +215,7 @@ var AwaitingObject = ({ id }) => {
|
|
|
197
215
|
}, [
|
|
198
216
|
id
|
|
199
217
|
]);
|
|
200
|
-
(0,
|
|
218
|
+
(0, import_react4.useEffect)(() => {
|
|
201
219
|
if (objects.findIndex((object) => (0, import_echo2.fullyQualifiedId)(object) === id) > -1) {
|
|
202
220
|
setFound(true);
|
|
203
221
|
if (navigationPlugin?.provides.location.active === id) {
|
|
@@ -210,8 +228,8 @@ var AwaitingObject = ({ id }) => {
|
|
|
210
228
|
intentPlugin
|
|
211
229
|
]);
|
|
212
230
|
const handleClose = async () => intentPlugin?.provides.intent.dispatch({
|
|
213
|
-
plugin:
|
|
214
|
-
action:
|
|
231
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
232
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.WAIT_FOR_OBJECT,
|
|
215
233
|
data: {
|
|
216
234
|
id: void 0
|
|
217
235
|
}
|
|
@@ -229,73 +247,72 @@ var AwaitingObject = ({ id }) => {
|
|
|
229
247
|
});
|
|
230
248
|
void handleClose();
|
|
231
249
|
};
|
|
232
|
-
return /* @__PURE__ */
|
|
250
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Root, {
|
|
233
251
|
open,
|
|
234
252
|
duration: TOAST_TIMEOUT,
|
|
235
253
|
onOpenChange: setOpen
|
|
236
|
-
}, /* @__PURE__ */
|
|
254
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Body, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Title, {
|
|
237
255
|
classNames: "flex items-center gap-2"
|
|
238
|
-
}, found ? /* @__PURE__ */
|
|
256
|
+
}, found ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CheckCircle, {
|
|
239
257
|
className: (0, import_react_ui_theme.getSize)(5)
|
|
240
|
-
}), /* @__PURE__ */
|
|
258
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t("found object label"))) : waiting ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CircleNotch, {
|
|
241
259
|
className: (0, import_react_ui_theme.mx)((0, import_react_ui_theme.getSize)(5), "animate-spin")
|
|
242
|
-
}), /* @__PURE__ */
|
|
260
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t("waiting for object label"))) : /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CircleDashed, {
|
|
243
261
|
className: (0, import_react_ui_theme.getSize)(5)
|
|
244
|
-
}), /* @__PURE__ */
|
|
262
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t("object not found label")))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Description, null, t(found ? "found object description" : waiting ? "waiting for object description" : "object not found description"))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Actions, null, found ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Action, {
|
|
245
263
|
altText: t("go to object alt"),
|
|
246
264
|
asChild: true
|
|
247
|
-
}, /* @__PURE__ */
|
|
265
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
|
|
248
266
|
variant: "primary",
|
|
249
267
|
onClick: handleNavigate
|
|
250
|
-
}, t("go to object label"))), /* @__PURE__ */
|
|
268
|
+
}, t("go to object label"))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Close, {
|
|
251
269
|
asChild: true
|
|
252
|
-
}, /* @__PURE__ */
|
|
270
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
|
|
253
271
|
onClick: handleClose
|
|
254
272
|
}, t("close label", {
|
|
255
273
|
ns: "appkit"
|
|
256
|
-
})))) : /* @__PURE__ */
|
|
274
|
+
})))) : /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Close, {
|
|
257
275
|
asChild: true
|
|
258
|
-
}, /* @__PURE__ */
|
|
276
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
|
|
259
277
|
onClick: handleClose
|
|
260
278
|
}, t(waiting ? "close label" : "confirm label", {
|
|
261
279
|
ns: "appkit"
|
|
262
280
|
})))));
|
|
263
281
|
};
|
|
264
282
|
var CollectionMain = ({ collection }) => {
|
|
265
|
-
const { t } = (0, import_react_ui3.useTranslation)(
|
|
266
|
-
return /* @__PURE__ */
|
|
283
|
+
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
284
|
+
return /* @__PURE__ */ import_react5.default.createElement("div", {
|
|
267
285
|
role: "none",
|
|
268
286
|
className: (0, import_react_ui_theme2.mx)(import_react_ui_theme2.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
|
|
269
287
|
"data-testid": "composer.firstRunMessage"
|
|
270
|
-
}, /* @__PURE__ */
|
|
288
|
+
}, /* @__PURE__ */ import_react5.default.createElement("p", {
|
|
271
289
|
role: "alert",
|
|
272
290
|
className: (0, import_react_ui_theme2.mx)(import_react_ui_theme2.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
|
|
273
291
|
}, collection.name ?? t("unnamed collection label")));
|
|
274
292
|
};
|
|
275
293
|
var CollectionSection = ({ collection }) => {
|
|
276
|
-
const { t } = (0, import_react_ui4.useTranslation)(
|
|
277
|
-
return /* @__PURE__ */
|
|
294
|
+
const { t } = (0, import_react_ui4.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
295
|
+
return /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
278
296
|
className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
|
|
279
|
-
}, /* @__PURE__ */
|
|
297
|
+
}, /* @__PURE__ */ import_react6.default.createElement("span", {
|
|
280
298
|
className: "truncate"
|
|
281
299
|
}, collection.name ?? t("unnamed collection label")));
|
|
282
300
|
};
|
|
283
|
-
var
|
|
284
|
-
const { t } = (0, import_react_ui5.useTranslation)(
|
|
285
|
-
return /* @__PURE__ */
|
|
286
|
-
role: "
|
|
287
|
-
className:
|
|
288
|
-
}, t("
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
}, t("empty tree message"));
|
|
301
|
+
var DefaultObjectSettings = ({ object }) => {
|
|
302
|
+
const { t } = (0, import_react_ui5.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
303
|
+
return /* @__PURE__ */ import_react7.default.createElement("div", {
|
|
304
|
+
role: "form",
|
|
305
|
+
className: "flex flex-col w-full p-2 gap-1"
|
|
306
|
+
}, /* @__PURE__ */ import_react7.default.createElement(import_react_ui5.Input.Root, null, /* @__PURE__ */ import_react7.default.createElement(import_react_ui5.Input.Label, null, t("name label")), /* @__PURE__ */ import_react7.default.createElement(import_react_ui5.Input.TextInput, {
|
|
307
|
+
placeholder: t("name placeholder"),
|
|
308
|
+
value: object.name ?? "",
|
|
309
|
+
onChange: (event) => {
|
|
310
|
+
object.name = event.target.value;
|
|
311
|
+
}
|
|
312
|
+
})));
|
|
296
313
|
};
|
|
297
314
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
|
|
298
|
-
var SPACES = `${
|
|
315
|
+
var SPACES = `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}-spaces`;
|
|
299
316
|
var SPACE_TYPE = "dxos.org/type/Space";
|
|
300
317
|
var COMPOSER_SPACE_LOCK = "dxos.org/plugin/space/lock";
|
|
301
318
|
var SHARED = "shared-spaces";
|
|
@@ -311,12 +328,12 @@ var getSpaceDisplayName = (space, { personal, namesCache = {} } = {}) => {
|
|
|
311
328
|
return space.state.get() === import_echo4.SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0 ? space.properties.name : namesCache[space.id] ? namesCache[space.id] : personal ? [
|
|
312
329
|
"personal space label",
|
|
313
330
|
{
|
|
314
|
-
ns:
|
|
331
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
315
332
|
}
|
|
316
333
|
] : [
|
|
317
334
|
"unnamed space label",
|
|
318
335
|
{
|
|
319
|
-
ns:
|
|
336
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
320
337
|
}
|
|
321
338
|
];
|
|
322
339
|
};
|
|
@@ -348,7 +365,7 @@ var getCollectionGraphNodePartials = ({ collection, space, resolve }) => {
|
|
|
348
365
|
}
|
|
349
366
|
},
|
|
350
367
|
onCopy: async (child, index) => {
|
|
351
|
-
const newObject = await cloneObject(child.data, resolve);
|
|
368
|
+
const newObject = await cloneObject(child.data, resolve, space);
|
|
352
369
|
space.db.add(newObject);
|
|
353
370
|
if (typeof index !== "undefined") {
|
|
354
371
|
collection.objects.splice(index, 0, newObject);
|
|
@@ -363,8 +380,8 @@ var checkPendingMigration = (space) => {
|
|
|
363
380
|
};
|
|
364
381
|
var constructSpaceNode = ({ space, personal, namesCache, resolve }) => {
|
|
365
382
|
const hasPendingMigration = checkPendingMigration(space);
|
|
366
|
-
const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[
|
|
367
|
-
const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof
|
|
383
|
+
const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[import_chunk_OTDRTHT4.CollectionType.typename];
|
|
384
|
+
const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof import_chunk_OTDRTHT4.CollectionType ? getCollectionGraphNodePartials({
|
|
368
385
|
collection,
|
|
369
386
|
space,
|
|
370
387
|
resolve
|
|
@@ -380,8 +397,7 @@ var constructSpaceNode = ({ space, personal, namesCache, resolve }) => {
|
|
|
380
397
|
namesCache
|
|
381
398
|
}),
|
|
382
399
|
description: space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties.description,
|
|
383
|
-
icon:
|
|
384
|
-
iconSymbol: "ph--planet--regular",
|
|
400
|
+
icon: "ph--planet--regular",
|
|
385
401
|
disabled: space.state.get() !== import_echo4.SpaceState.SPACE_READY || hasPendingMigration,
|
|
386
402
|
testId: "spacePlugin.space"
|
|
387
403
|
}
|
|
@@ -394,21 +410,20 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
|
|
|
394
410
|
if (state !== import_echo4.SpaceState.SPACE_READY || hasPendingMigration) {
|
|
395
411
|
return [];
|
|
396
412
|
}
|
|
397
|
-
const collection = space.properties[
|
|
413
|
+
const collection = space.properties[import_chunk_OTDRTHT4.CollectionType.typename];
|
|
398
414
|
const actions = [
|
|
399
415
|
{
|
|
400
|
-
id: getId(
|
|
416
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT),
|
|
401
417
|
type: import_plugin_graph2.ACTION_GROUP_TYPE,
|
|
402
418
|
data: import_plugin_graph2.actionGroupSymbol,
|
|
403
419
|
properties: {
|
|
404
420
|
label: [
|
|
405
421
|
"create object in space label",
|
|
406
422
|
{
|
|
407
|
-
ns:
|
|
423
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
408
424
|
}
|
|
409
425
|
],
|
|
410
|
-
icon:
|
|
411
|
-
iconSymbol: "ph--plus--regular",
|
|
426
|
+
icon: "ph--plus--regular",
|
|
412
427
|
disposition: "toolbar",
|
|
413
428
|
// TODO(wittjosiah): This is currently a navtree feature. Address this with cmd+k integration.
|
|
414
429
|
// mainAreaDisposition: 'in-flow',
|
|
@@ -417,15 +432,15 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
|
|
|
417
432
|
},
|
|
418
433
|
nodes: [
|
|
419
434
|
{
|
|
420
|
-
id: getId(
|
|
435
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT.replace("object", "collection")),
|
|
421
436
|
type: import_plugin_graph2.ACTION_TYPE,
|
|
422
437
|
data: () => dispatch([
|
|
423
438
|
{
|
|
424
|
-
plugin:
|
|
425
|
-
action:
|
|
439
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
440
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
|
|
426
441
|
data: {
|
|
427
442
|
target: collection,
|
|
428
|
-
object: (0, import_echo_schema2.create)(
|
|
443
|
+
object: (0, import_echo_schema2.create)(import_chunk_OTDRTHT4.CollectionType, {
|
|
429
444
|
objects: [],
|
|
430
445
|
views: {}
|
|
431
446
|
})
|
|
@@ -439,11 +454,10 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
|
|
|
439
454
|
label: [
|
|
440
455
|
"create collection label",
|
|
441
456
|
{
|
|
442
|
-
ns:
|
|
457
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
443
458
|
}
|
|
444
459
|
],
|
|
445
|
-
icon:
|
|
446
|
-
iconSymbol: "ph--cards-three--regular",
|
|
460
|
+
icon: "ph--cards-three--regular",
|
|
447
461
|
testId: "spacePlugin.createCollection"
|
|
448
462
|
}
|
|
449
463
|
}
|
|
@@ -459,12 +473,12 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
459
473
|
const actions = [];
|
|
460
474
|
if (hasPendingMigration) {
|
|
461
475
|
actions.push({
|
|
462
|
-
id: getId(
|
|
476
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.MIGRATE),
|
|
463
477
|
type: import_plugin_graph2.ACTION_GROUP_TYPE,
|
|
464
478
|
data: async () => {
|
|
465
479
|
await dispatch({
|
|
466
|
-
plugin:
|
|
467
|
-
action:
|
|
480
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
481
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.MIGRATE,
|
|
468
482
|
data: {
|
|
469
483
|
space
|
|
470
484
|
}
|
|
@@ -474,11 +488,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
474
488
|
label: [
|
|
475
489
|
"migrate space label",
|
|
476
490
|
{
|
|
477
|
-
ns:
|
|
491
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
478
492
|
}
|
|
479
493
|
],
|
|
480
|
-
icon:
|
|
481
|
-
iconSymbol: "ph--database--regular",
|
|
494
|
+
icon: "ph--database--regular",
|
|
482
495
|
disposition: "toolbar",
|
|
483
496
|
mainAreaDisposition: "in-flow",
|
|
484
497
|
disabled: migrating || import_migrations2.Migrations.running(space)
|
|
@@ -488,15 +501,15 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
488
501
|
if (state === import_echo4.SpaceState.SPACE_READY && !hasPendingMigration) {
|
|
489
502
|
const locked = space.properties[COMPOSER_SPACE_LOCK];
|
|
490
503
|
actions.push({
|
|
491
|
-
id: getId(
|
|
504
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.SHARE),
|
|
492
505
|
type: import_plugin_graph2.ACTION_TYPE,
|
|
493
506
|
data: async () => {
|
|
494
507
|
if (locked) {
|
|
495
508
|
return;
|
|
496
509
|
}
|
|
497
510
|
await dispatch({
|
|
498
|
-
plugin:
|
|
499
|
-
action:
|
|
511
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
512
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.SHARE,
|
|
500
513
|
data: {
|
|
501
514
|
spaceId: space.id
|
|
502
515
|
}
|
|
@@ -506,11 +519,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
506
519
|
label: [
|
|
507
520
|
"share space label",
|
|
508
521
|
{
|
|
509
|
-
ns:
|
|
522
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
510
523
|
}
|
|
511
524
|
],
|
|
512
|
-
icon:
|
|
513
|
-
iconSymbol: "ph--users--regular",
|
|
525
|
+
icon: "ph--users--regular",
|
|
514
526
|
disabled: locked,
|
|
515
527
|
keyBinding: {
|
|
516
528
|
macos: "meta+.",
|
|
@@ -519,12 +531,12 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
519
531
|
mainAreaDisposition: "absent"
|
|
520
532
|
}
|
|
521
533
|
}, {
|
|
522
|
-
id: locked ? getId(
|
|
534
|
+
id: locked ? getId(import_chunk_P4XUXM7Y.SpaceAction.UNLOCK) : getId(import_chunk_P4XUXM7Y.SpaceAction.LOCK),
|
|
523
535
|
type: import_plugin_graph2.ACTION_TYPE,
|
|
524
536
|
data: async () => {
|
|
525
537
|
await dispatch({
|
|
526
|
-
plugin:
|
|
527
|
-
action: locked ?
|
|
538
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
539
|
+
action: locked ? import_chunk_P4XUXM7Y.SpaceAction.UNLOCK : import_chunk_P4XUXM7Y.SpaceAction.LOCK,
|
|
528
540
|
data: {
|
|
529
541
|
space
|
|
530
542
|
}
|
|
@@ -534,19 +546,18 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
534
546
|
label: [
|
|
535
547
|
locked ? "unlock space label" : "lock space label",
|
|
536
548
|
{
|
|
537
|
-
ns:
|
|
549
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
538
550
|
}
|
|
539
551
|
],
|
|
540
|
-
icon: locked ?
|
|
541
|
-
iconSymbol: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
|
|
552
|
+
icon: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
|
|
542
553
|
}
|
|
543
554
|
}, {
|
|
544
|
-
id: getId(
|
|
555
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.RENAME),
|
|
545
556
|
type: import_plugin_graph2.ACTION_TYPE,
|
|
546
557
|
data: async (params) => {
|
|
547
558
|
await dispatch({
|
|
548
|
-
plugin:
|
|
549
|
-
action:
|
|
559
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
560
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.RENAME,
|
|
550
561
|
data: {
|
|
551
562
|
space,
|
|
552
563
|
...params
|
|
@@ -557,11 +568,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
557
568
|
label: [
|
|
558
569
|
"rename space label",
|
|
559
570
|
{
|
|
560
|
-
ns:
|
|
571
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
561
572
|
}
|
|
562
573
|
],
|
|
563
|
-
icon:
|
|
564
|
-
iconSymbol: "ph--pencil-simple-line--regular",
|
|
574
|
+
icon: "ph--pencil-simple-line--regular",
|
|
565
575
|
keyBinding: {
|
|
566
576
|
macos: "shift+F6",
|
|
567
577
|
windows: "shift+F6"
|
|
@@ -572,12 +582,12 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
572
582
|
}
|
|
573
583
|
if (state !== import_echo4.SpaceState.SPACE_INACTIVE && !hasPendingMigration) {
|
|
574
584
|
actions.push({
|
|
575
|
-
id: getId(
|
|
585
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.CLOSE),
|
|
576
586
|
type: import_plugin_graph2.ACTION_TYPE,
|
|
577
587
|
data: async () => {
|
|
578
588
|
await dispatch({
|
|
579
|
-
plugin:
|
|
580
|
-
action:
|
|
589
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
590
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.CLOSE,
|
|
581
591
|
data: {
|
|
582
592
|
space
|
|
583
593
|
}
|
|
@@ -587,11 +597,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
587
597
|
label: [
|
|
588
598
|
"close space label",
|
|
589
599
|
{
|
|
590
|
-
ns:
|
|
600
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
591
601
|
}
|
|
592
602
|
],
|
|
593
|
-
icon:
|
|
594
|
-
iconSymbol: "ph--x--regular",
|
|
603
|
+
icon: "ph--x--regular",
|
|
595
604
|
mainAreaDisposition: "menu",
|
|
596
605
|
disabled: personal
|
|
597
606
|
}
|
|
@@ -599,12 +608,12 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
599
608
|
}
|
|
600
609
|
if (state === import_echo4.SpaceState.SPACE_INACTIVE) {
|
|
601
610
|
actions.push({
|
|
602
|
-
id: getId(
|
|
611
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.OPEN),
|
|
603
612
|
type: import_plugin_graph2.ACTION_TYPE,
|
|
604
613
|
data: async () => {
|
|
605
614
|
await dispatch({
|
|
606
|
-
plugin:
|
|
607
|
-
action:
|
|
615
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
616
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.OPEN,
|
|
608
617
|
data: {
|
|
609
618
|
space
|
|
610
619
|
}
|
|
@@ -614,11 +623,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
614
623
|
label: [
|
|
615
624
|
"open space label",
|
|
616
625
|
{
|
|
617
|
-
ns:
|
|
626
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
618
627
|
}
|
|
619
628
|
],
|
|
620
|
-
icon:
|
|
621
|
-
iconSymbol: "ph--clock-counter-clockwise--regular",
|
|
629
|
+
icon: "ph--clock-counter-clockwise--regular",
|
|
622
630
|
disposition: "toolbar",
|
|
623
631
|
mainAreaDisposition: "in-flow"
|
|
624
632
|
}
|
|
@@ -635,7 +643,7 @@ var createObjectNode = ({ object, space, resolve }) => {
|
|
|
635
643
|
if (Object.keys(metadata).length === 0) {
|
|
636
644
|
return void 0;
|
|
637
645
|
}
|
|
638
|
-
const partials = object instanceof
|
|
646
|
+
const partials = object instanceof import_chunk_OTDRTHT4.CollectionType ? getCollectionGraphNodePartials({
|
|
639
647
|
collection: object,
|
|
640
648
|
space,
|
|
641
649
|
resolve
|
|
@@ -649,11 +657,10 @@ var createObjectNode = ({ object, space, resolve }) => {
|
|
|
649
657
|
label: metadata.label?.(object) || object.name || metadata.placeholder || [
|
|
650
658
|
"unnamed object label",
|
|
651
659
|
{
|
|
652
|
-
ns:
|
|
660
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
653
661
|
}
|
|
654
662
|
],
|
|
655
|
-
icon: metadata.icon ??
|
|
656
|
-
iconSymbol: metadata.iconSymbol ?? "ph--placeholder--regular",
|
|
663
|
+
icon: metadata.icon ?? "ph--placeholder--regular",
|
|
657
664
|
testId: "spacePlugin.object",
|
|
658
665
|
persistenceClass: "echo",
|
|
659
666
|
persistenceKey: space?.id
|
|
@@ -661,25 +668,24 @@ var createObjectNode = ({ object, space, resolve }) => {
|
|
|
661
668
|
};
|
|
662
669
|
};
|
|
663
670
|
var constructObjectActionGroups = ({ object, dispatch }) => {
|
|
664
|
-
if (!(object instanceof
|
|
671
|
+
if (!(object instanceof import_chunk_OTDRTHT4.CollectionType)) {
|
|
665
672
|
return [];
|
|
666
673
|
}
|
|
667
674
|
const collection = object;
|
|
668
675
|
const getId = (id) => `${id}/${(0, import_echo4.fullyQualifiedId)(object)}`;
|
|
669
676
|
const actions = [
|
|
670
677
|
{
|
|
671
|
-
id: getId(
|
|
678
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT),
|
|
672
679
|
type: import_plugin_graph2.ACTION_GROUP_TYPE,
|
|
673
680
|
data: import_plugin_graph2.actionGroupSymbol,
|
|
674
681
|
properties: {
|
|
675
682
|
label: [
|
|
676
683
|
"create object in collection label",
|
|
677
684
|
{
|
|
678
|
-
ns:
|
|
685
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
679
686
|
}
|
|
680
687
|
],
|
|
681
|
-
icon:
|
|
682
|
-
iconSymbol: "ph--plus--regular",
|
|
688
|
+
icon: "ph--plus--regular",
|
|
683
689
|
disposition: "toolbar",
|
|
684
690
|
// TODO(wittjosiah): This is currently a navtree feature. Address this with cmd+k integration.
|
|
685
691
|
// mainAreaDisposition: 'in-flow',
|
|
@@ -688,15 +694,15 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
|
|
|
688
694
|
},
|
|
689
695
|
nodes: [
|
|
690
696
|
{
|
|
691
|
-
id: getId(
|
|
697
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT.replace("object", "collection")),
|
|
692
698
|
type: import_plugin_graph2.ACTION_TYPE,
|
|
693
699
|
data: () => dispatch([
|
|
694
700
|
{
|
|
695
|
-
plugin:
|
|
696
|
-
action:
|
|
701
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
702
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
|
|
697
703
|
data: {
|
|
698
704
|
target: collection,
|
|
699
|
-
object: (0, import_echo_schema2.create)(
|
|
705
|
+
object: (0, import_echo_schema2.create)(import_chunk_OTDRTHT4.CollectionType, {
|
|
700
706
|
objects: [],
|
|
701
707
|
views: {}
|
|
702
708
|
})
|
|
@@ -710,11 +716,10 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
|
|
|
710
716
|
label: [
|
|
711
717
|
"create collection label",
|
|
712
718
|
{
|
|
713
|
-
ns:
|
|
719
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
714
720
|
}
|
|
715
721
|
],
|
|
716
|
-
icon:
|
|
717
|
-
iconSymbol: "ph--cards-three--regular",
|
|
722
|
+
icon: "ph--cards-three--regular",
|
|
718
723
|
testId: "spacePlugin.createCollection"
|
|
719
724
|
}
|
|
720
725
|
}
|
|
@@ -728,11 +733,11 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
728
733
|
const getId = (id) => `${id}/${(0, import_echo4.fullyQualifiedId)(object)}`;
|
|
729
734
|
const actions = [
|
|
730
735
|
{
|
|
731
|
-
id: getId(
|
|
736
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.RENAME_OBJECT),
|
|
732
737
|
type: import_plugin_graph2.ACTION_TYPE,
|
|
733
738
|
data: async (params) => {
|
|
734
739
|
await dispatch({
|
|
735
|
-
action:
|
|
740
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.RENAME_OBJECT,
|
|
736
741
|
data: {
|
|
737
742
|
object,
|
|
738
743
|
...params
|
|
@@ -741,29 +746,28 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
741
746
|
},
|
|
742
747
|
properties: {
|
|
743
748
|
label: [
|
|
744
|
-
object instanceof
|
|
749
|
+
object instanceof import_chunk_OTDRTHT4.CollectionType ? "rename collection label" : "rename object label",
|
|
745
750
|
{
|
|
746
|
-
ns:
|
|
751
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
747
752
|
}
|
|
748
753
|
],
|
|
749
|
-
icon:
|
|
750
|
-
iconSymbol: "ph--pencil-simple-line--regular",
|
|
754
|
+
icon: "ph--pencil-simple-line--regular",
|
|
751
755
|
// TODO(wittjosiah): Doesn't work.
|
|
752
756
|
// keyBinding: 'shift+F6',
|
|
753
757
|
testId: "spacePlugin.renameObject"
|
|
754
758
|
}
|
|
755
759
|
},
|
|
756
760
|
{
|
|
757
|
-
id: getId(
|
|
761
|
+
id: getId(import_chunk_P4XUXM7Y.SpaceAction.REMOVE_OBJECT),
|
|
758
762
|
type: import_plugin_graph2.ACTION_TYPE,
|
|
759
763
|
data: async () => {
|
|
760
764
|
const graph = (0, import_plugin_graph2.getGraph)(node);
|
|
761
765
|
const collection = graph.nodes(node, {
|
|
762
766
|
relation: "inbound"
|
|
763
|
-
}).find(({ data }) => data instanceof
|
|
767
|
+
}).find(({ data }) => data instanceof import_chunk_OTDRTHT4.CollectionType)?.data;
|
|
764
768
|
await dispatch([
|
|
765
769
|
{
|
|
766
|
-
action:
|
|
770
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.REMOVE_OBJECT,
|
|
767
771
|
data: {
|
|
768
772
|
object,
|
|
769
773
|
collection
|
|
@@ -773,14 +777,13 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
773
777
|
},
|
|
774
778
|
properties: {
|
|
775
779
|
label: [
|
|
776
|
-
object instanceof
|
|
780
|
+
object instanceof import_chunk_OTDRTHT4.CollectionType ? "delete collection label" : "delete object label",
|
|
777
781
|
{
|
|
778
|
-
ns:
|
|
782
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
779
783
|
}
|
|
780
784
|
],
|
|
781
|
-
icon:
|
|
782
|
-
|
|
783
|
-
keyBinding: object instanceof import_chunk_CVZPI2P3.CollectionType ? void 0 : "shift+meta+Backspace",
|
|
785
|
+
icon: "ph--trash--regular",
|
|
786
|
+
keyBinding: object instanceof import_chunk_OTDRTHT4.CollectionType ? void 0 : "shift+meta+Backspace",
|
|
784
787
|
testId: "spacePlugin.deleteObject"
|
|
785
788
|
}
|
|
786
789
|
},
|
|
@@ -795,11 +798,10 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
795
798
|
label: [
|
|
796
799
|
"copy link label",
|
|
797
800
|
{
|
|
798
|
-
ns:
|
|
801
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
799
802
|
}
|
|
800
803
|
],
|
|
801
|
-
icon:
|
|
802
|
-
iconSymbol: "ph--link--regular",
|
|
804
|
+
icon: "ph--link--regular",
|
|
803
805
|
testId: "spacePlugin.copyLink"
|
|
804
806
|
}
|
|
805
807
|
}
|
|
@@ -833,14 +835,14 @@ var getNestedObjects = async (object, resolve) => {
|
|
|
833
835
|
...nested.flat()
|
|
834
836
|
];
|
|
835
837
|
};
|
|
836
|
-
var cloneObject = async (object, resolve) => {
|
|
838
|
+
var cloneObject = async (object, resolve, newSpace) => {
|
|
837
839
|
const schema = (0, import_echo_schema2.getSchema)(object);
|
|
838
|
-
const typename = schema ? (0, import_echo_schema2.
|
|
840
|
+
const typename = schema ? (0, import_echo_schema2.getObjectAnnotation)(schema)?.typename ?? import_echo_schema2.EXPANDO_TYPENAME : import_echo_schema2.EXPANDO_TYPENAME;
|
|
839
841
|
const metadata = resolve(typename);
|
|
840
842
|
const serializer = metadata.serializer;
|
|
841
843
|
(0, import_invariant.invariant)(serializer, `No serializer for type: ${typename}`, {
|
|
842
844
|
F: __dxlog_file,
|
|
843
|
-
L:
|
|
845
|
+
L: 604,
|
|
844
846
|
S: void 0,
|
|
845
847
|
A: [
|
|
846
848
|
"serializer",
|
|
@@ -852,40 +854,41 @@ var cloneObject = async (object, resolve) => {
|
|
|
852
854
|
});
|
|
853
855
|
return serializer.deserialize({
|
|
854
856
|
content,
|
|
857
|
+
space: newSpace,
|
|
855
858
|
newId: true
|
|
856
859
|
});
|
|
857
860
|
};
|
|
858
861
|
var MenuFooter = ({ object }) => {
|
|
859
|
-
const { t } = (0,
|
|
862
|
+
const { t } = (0, import_react_ui6.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
860
863
|
const client = (0, import_react_client3.useClient)();
|
|
861
864
|
const space = (0, import_echo3.getSpace)(object);
|
|
862
865
|
const spaceName = space ? getSpaceDisplayName(space, {
|
|
863
866
|
personal: client.spaces.default === space
|
|
864
867
|
}) : "";
|
|
865
|
-
return space ? /* @__PURE__ */
|
|
868
|
+
return space ? /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(import_react_ui6.DropdownMenu.Separator, null), /* @__PURE__ */ import_react9.default.createElement(import_react_ui6.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react9.default.createElement("dl", {
|
|
866
869
|
className: "pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
|
|
867
|
-
}, /* @__PURE__ */
|
|
870
|
+
}, /* @__PURE__ */ import_react9.default.createElement("dt", {
|
|
868
871
|
className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
|
|
869
|
-
}, t("location label")), /* @__PURE__ */
|
|
872
|
+
}, t("location label")), /* @__PURE__ */ import_react9.default.createElement("dd", {
|
|
870
873
|
className: "line-clamp-3"
|
|
871
|
-
}, /* @__PURE__ */
|
|
874
|
+
}, /* @__PURE__ */ import_react9.default.createElement(import_react8.Planet, {
|
|
872
875
|
className: "inline-block mie-1"
|
|
873
|
-
}), (0,
|
|
876
|
+
}), (0, import_react_ui6.toLocalizedString)(spaceName, t)))) : null;
|
|
874
877
|
};
|
|
875
878
|
var WAIT_FOR_OBJECT_TIMEOUT2 = 1e3;
|
|
876
879
|
var MissingObject = ({ id }) => {
|
|
877
|
-
const { t } = (0,
|
|
878
|
-
const [waiting, setWaiting] = (0,
|
|
880
|
+
const { t } = (0, import_react_ui7.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
881
|
+
const [waiting, setWaiting] = (0, import_react10.useState)(false);
|
|
879
882
|
const intentPlugin = (0, import_app_framework4.useResolvePlugin)(import_app_framework4.parseIntentPlugin);
|
|
880
|
-
(0,
|
|
883
|
+
(0, import_react10.useEffect)(() => {
|
|
881
884
|
if (!intentPlugin) {
|
|
882
885
|
return;
|
|
883
886
|
}
|
|
884
887
|
const timeout = setTimeout(async () => {
|
|
885
888
|
setWaiting(true);
|
|
886
889
|
await intentPlugin.provides.intent.dispatch({
|
|
887
|
-
plugin:
|
|
888
|
-
action:
|
|
890
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
891
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.WAIT_FOR_OBJECT,
|
|
889
892
|
data: {
|
|
890
893
|
id
|
|
891
894
|
}
|
|
@@ -896,13 +899,13 @@ var MissingObject = ({ id }) => {
|
|
|
896
899
|
intentPlugin,
|
|
897
900
|
id
|
|
898
901
|
]);
|
|
899
|
-
return /* @__PURE__ */
|
|
902
|
+
return /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
900
903
|
role: "none",
|
|
901
|
-
className: (0,
|
|
902
|
-
}, waiting ? /* @__PURE__ */
|
|
904
|
+
className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8")
|
|
905
|
+
}, waiting ? /* @__PURE__ */ import_react10.default.createElement("p", {
|
|
903
906
|
role: "alert",
|
|
904
|
-
className: (0,
|
|
905
|
-
}, t("missing object message")) : /* @__PURE__ */
|
|
907
|
+
className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg flex items-center justify-center p-8 font-normal text-lg")
|
|
908
|
+
}, t("missing object message")) : /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Status, {
|
|
906
909
|
indeterminate: true,
|
|
907
910
|
"aria-label": "Initializing"
|
|
908
911
|
}));
|
|
@@ -914,12 +917,12 @@ var Status2;
|
|
|
914
917
|
Status3[Status3["ERROR"] = 2] = "ERROR";
|
|
915
918
|
})(Status2 || (Status2 = {}));
|
|
916
919
|
var PersistenceStatus = ({ db }) => {
|
|
917
|
-
const { t } = (0,
|
|
918
|
-
const [displayMessage, setDisplayMessage] = (0,
|
|
919
|
-
const [status, naturalSetStatus] = (0,
|
|
920
|
-
const [prevStatus, setPrevStatus] = (0,
|
|
920
|
+
const { t } = (0, import_react_ui8.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
921
|
+
const [displayMessage, setDisplayMessage] = (0, import_react12.useState)(false);
|
|
922
|
+
const [status, naturalSetStatus] = (0, import_react12.useState)(0);
|
|
923
|
+
const [prevStatus, setPrevStatus] = (0, import_react12.useState)(0);
|
|
921
924
|
const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
|
|
922
|
-
(0,
|
|
925
|
+
(0, import_react12.useEffect)(() => {
|
|
923
926
|
setPrevStatus(status);
|
|
924
927
|
if (prevStatus !== status && status === 0) {
|
|
925
928
|
setDisplayMessage(true);
|
|
@@ -931,44 +934,44 @@ var PersistenceStatus = ({ db }) => {
|
|
|
931
934
|
]);
|
|
932
935
|
switch (status) {
|
|
933
936
|
case 2:
|
|
934
|
-
return /* @__PURE__ */
|
|
937
|
+
return /* @__PURE__ */ import_react12.default.createElement("div", {
|
|
935
938
|
className: "flex items-center"
|
|
936
|
-
}, /* @__PURE__ */
|
|
937
|
-
className: (0,
|
|
938
|
-
}), /* @__PURE__ */
|
|
939
|
-
className: (0,
|
|
939
|
+
}, /* @__PURE__ */ import_react12.default.createElement(import_react11.Warning, {
|
|
940
|
+
className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(4), "me-1")
|
|
941
|
+
}), /* @__PURE__ */ import_react12.default.createElement("span", {
|
|
942
|
+
className: (0, import_react_ui_theme4.mx)("text-sm", import_react_ui_theme4.warningText)
|
|
940
943
|
}, t("persistence error label")));
|
|
941
944
|
case 1:
|
|
942
|
-
return /* @__PURE__ */
|
|
945
|
+
return /* @__PURE__ */ import_react12.default.createElement("div", {
|
|
943
946
|
className: "flex items-center"
|
|
944
|
-
}, /* @__PURE__ */
|
|
945
|
-
className: (0,
|
|
946
|
-
}), /* @__PURE__ */
|
|
947
|
-
className: (0,
|
|
947
|
+
}, /* @__PURE__ */ import_react12.default.createElement(import_react11.ArrowsCounterClockwise, {
|
|
948
|
+
className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(4), "me-1")
|
|
949
|
+
}), /* @__PURE__ */ import_react12.default.createElement("span", {
|
|
950
|
+
className: (0, import_react_ui_theme4.mx)("text-sm", import_react_ui_theme4.staticPlaceholderText)
|
|
948
951
|
}, t("persistence pending label")));
|
|
949
952
|
case 0:
|
|
950
953
|
default:
|
|
951
|
-
return /* @__PURE__ */
|
|
954
|
+
return /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Root, {
|
|
952
955
|
delayDuration: 400
|
|
953
|
-
}, /* @__PURE__ */
|
|
956
|
+
}, /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Trigger, {
|
|
954
957
|
role: "status",
|
|
955
958
|
className: "flex items-center"
|
|
956
|
-
}, /* @__PURE__ */
|
|
957
|
-
className: (0,
|
|
958
|
-
}), displayMessage && /* @__PURE__ */
|
|
959
|
-
className: (0,
|
|
960
|
-
}, t("persisted locally label"))), /* @__PURE__ */
|
|
959
|
+
}, /* @__PURE__ */ import_react12.default.createElement(import_react11.CheckCircle, {
|
|
960
|
+
className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(4), "me-1")
|
|
961
|
+
}), displayMessage && /* @__PURE__ */ import_react12.default.createElement("span", {
|
|
962
|
+
className: (0, import_react_ui_theme4.mx)("text-sm", import_react_ui_theme4.staticPlaceholderText)
|
|
963
|
+
}, t("persisted locally label"))), /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Portal, null, /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Content, {
|
|
961
964
|
classNames: "z-10"
|
|
962
|
-
}, t("persisted locally message"), /* @__PURE__ */
|
|
965
|
+
}, t("persisted locally message"), /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Arrow, null))));
|
|
963
966
|
}
|
|
964
967
|
};
|
|
965
968
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
|
|
966
969
|
var PopoverRenameObject = ({ object: obj }) => {
|
|
967
|
-
const { t } = (0,
|
|
968
|
-
const doneButton = (0,
|
|
970
|
+
const { t } = (0, import_react_ui9.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
971
|
+
const doneButton = (0, import_react13.useRef)(null);
|
|
969
972
|
const object = obj;
|
|
970
|
-
const [name, setName] = (0,
|
|
971
|
-
const handleDone = (0,
|
|
973
|
+
const [name, setName] = (0, import_react13.useState)(object.name || object.title || "");
|
|
974
|
+
const handleDone = (0, import_react13.useCallback)(() => {
|
|
972
975
|
try {
|
|
973
976
|
object.name = name;
|
|
974
977
|
} catch {
|
|
@@ -989,23 +992,23 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
989
992
|
object,
|
|
990
993
|
name
|
|
991
994
|
]);
|
|
992
|
-
return /* @__PURE__ */
|
|
995
|
+
return /* @__PURE__ */ import_react13.default.createElement("div", {
|
|
993
996
|
role: "none",
|
|
994
997
|
className: "p-1 flex gap-2"
|
|
995
|
-
}, /* @__PURE__ */
|
|
998
|
+
}, /* @__PURE__ */ import_react13.default.createElement("div", {
|
|
996
999
|
role: "none",
|
|
997
1000
|
className: "flex-1"
|
|
998
|
-
}, /* @__PURE__ */
|
|
1001
|
+
}, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Input.Root, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Input.Label, {
|
|
999
1002
|
srOnly: true
|
|
1000
|
-
}, t("object name label")), /* @__PURE__ */
|
|
1003
|
+
}, t("object name label")), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Input.TextInput, {
|
|
1001
1004
|
placeholder: t("object title placeholder"),
|
|
1002
1005
|
value: name,
|
|
1003
1006
|
"data-testid": "spacePlugin.renameObject.input",
|
|
1004
1007
|
onChange: ({ target: { value } }) => setName(value),
|
|
1005
1008
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1006
|
-
}))), /* @__PURE__ */
|
|
1009
|
+
}))), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Popover.Close, {
|
|
1007
1010
|
asChild: true
|
|
1008
|
-
}, /* @__PURE__ */
|
|
1011
|
+
}, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Button, {
|
|
1009
1012
|
ref: doneButton,
|
|
1010
1013
|
classNames: "self-stretch",
|
|
1011
1014
|
onClick: handleDone
|
|
@@ -1014,33 +1017,33 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
1014
1017
|
}))));
|
|
1015
1018
|
};
|
|
1016
1019
|
var PopoverRenameSpace = ({ space }) => {
|
|
1017
|
-
const { t } = (0,
|
|
1018
|
-
const doneButton = (0,
|
|
1019
|
-
const [name, setName] = (0,
|
|
1020
|
-
const handleDone = (0,
|
|
1020
|
+
const { t } = (0, import_react_ui10.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1021
|
+
const doneButton = (0, import_react14.useRef)(null);
|
|
1022
|
+
const [name, setName] = (0, import_react14.useState)(space.properties.name ?? "");
|
|
1023
|
+
const handleDone = (0, import_react14.useCallback)(() => {
|
|
1021
1024
|
space.properties.name = name;
|
|
1022
1025
|
}, [
|
|
1023
1026
|
space,
|
|
1024
1027
|
name
|
|
1025
1028
|
]);
|
|
1026
|
-
return /* @__PURE__ */
|
|
1029
|
+
return /* @__PURE__ */ import_react14.default.createElement("div", {
|
|
1027
1030
|
role: "none",
|
|
1028
1031
|
className: "p-1 flex gap-2"
|
|
1029
|
-
}, /* @__PURE__ */
|
|
1032
|
+
}, /* @__PURE__ */ import_react14.default.createElement("div", {
|
|
1030
1033
|
role: "none",
|
|
1031
1034
|
className: "flex-1"
|
|
1032
|
-
}, /* @__PURE__ */
|
|
1035
|
+
}, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.Root, null, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.Label, {
|
|
1033
1036
|
srOnly: true
|
|
1034
|
-
}, t("space name label")), /* @__PURE__ */
|
|
1037
|
+
}, t("space name label")), /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.TextInput, {
|
|
1035
1038
|
defaultValue: space.properties.name ?? "",
|
|
1036
1039
|
placeholder: t("unnamed space label"),
|
|
1037
1040
|
onChange: ({ target: { value } }) => setName(value),
|
|
1038
1041
|
// TODO(wittjosiah): Ideally this should access the popover context to close the popover.
|
|
1039
1042
|
// Currently this is not possible because Radix does not expose the popover context.
|
|
1040
1043
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1041
|
-
}))), /* @__PURE__ */
|
|
1044
|
+
}))), /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Popover.Close, {
|
|
1042
1045
|
asChild: true
|
|
1043
|
-
}, /* @__PURE__ */
|
|
1046
|
+
}, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Button, {
|
|
1044
1047
|
ref: doneButton,
|
|
1045
1048
|
classNames: "self-stretch",
|
|
1046
1049
|
onClick: handleDone
|
|
@@ -1050,9 +1053,9 @@ var PopoverRenameSpace = ({ space }) => {
|
|
|
1050
1053
|
};
|
|
1051
1054
|
var ShareSpaceButton = ({ spaceId }) => {
|
|
1052
1055
|
const dispatch = (0, import_app_framework5.useIntentDispatcher)();
|
|
1053
|
-
return /* @__PURE__ */
|
|
1056
|
+
return /* @__PURE__ */ import_react15.default.createElement(ShareSpaceButtonImpl, {
|
|
1054
1057
|
onClick: () => dispatch({
|
|
1055
|
-
action:
|
|
1058
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.SHARE,
|
|
1056
1059
|
data: {
|
|
1057
1060
|
spaceId
|
|
1058
1061
|
}
|
|
@@ -1060,8 +1063,8 @@ var ShareSpaceButton = ({ spaceId }) => {
|
|
|
1060
1063
|
});
|
|
1061
1064
|
};
|
|
1062
1065
|
var ShareSpaceButtonImpl = ({ onClick }) => {
|
|
1063
|
-
const { t } = (0,
|
|
1064
|
-
return /* @__PURE__ */
|
|
1066
|
+
const { t } = (0, import_react_ui11.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1067
|
+
return /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Button, {
|
|
1065
1068
|
"data-testid": "spacePlugin.shareSpaceButton",
|
|
1066
1069
|
onClick,
|
|
1067
1070
|
classNames: "mli-1"
|
|
@@ -1071,9 +1074,9 @@ var activeActionKeyStorageKey = "dxos:react-shell/space-manager/active-action";
|
|
|
1071
1074
|
var Presence = import_echo6.SpaceMember.PresenceState;
|
|
1072
1075
|
var handleCreateInvitationUrl = (invitationCode) => `${origin}?spaceInvitationCode=${invitationCode}`;
|
|
1073
1076
|
var SpaceMemberList = ({ members }) => {
|
|
1074
|
-
return members.length > 0 ? /* @__PURE__ */
|
|
1077
|
+
return members.length > 0 ? /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.List, {
|
|
1075
1078
|
classNames: "col-start-2 col-end-5 gap-y-1 grid grid-cols-subgrid items-center"
|
|
1076
|
-
}, members.map((member) => /* @__PURE__ */
|
|
1079
|
+
}, members.map((member) => /* @__PURE__ */ import_react20.default.createElement(import_react21.IdentityListItem, {
|
|
1077
1080
|
classNames: "contents",
|
|
1078
1081
|
key: member.identity.identityKey.toHex(),
|
|
1079
1082
|
identity: member.identity,
|
|
@@ -1081,7 +1084,7 @@ var SpaceMemberList = ({ members }) => {
|
|
|
1081
1084
|
}))) : null;
|
|
1082
1085
|
};
|
|
1083
1086
|
var SpaceMembersSection = ({ space }) => {
|
|
1084
|
-
const { t } = (0,
|
|
1087
|
+
const { t } = (0, import_react_ui13.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1085
1088
|
const invitations = (0, import_echo6.useSpaceInvitations)(space.key);
|
|
1086
1089
|
const { dispatch } = (0, import_app_framework7.useIntent)();
|
|
1087
1090
|
const handleCloseDialog = () => dispatch({
|
|
@@ -1117,8 +1120,8 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1117
1120
|
description: t("invite one description", {
|
|
1118
1121
|
ns: "os"
|
|
1119
1122
|
}),
|
|
1120
|
-
icon:
|
|
1121
|
-
onClick: (0,
|
|
1123
|
+
icon: import_react19.UserPlus,
|
|
1124
|
+
onClick: (0, import_react20.useCallback)(() => {
|
|
1122
1125
|
space.share?.({
|
|
1123
1126
|
type: import_invitations2.Invitation.Type.INTERACTIVE,
|
|
1124
1127
|
authMethod: import_invitations2.Invitation.AuthMethod.SHARED_SECRET
|
|
@@ -1134,8 +1137,8 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1134
1137
|
description: t("invite many description", {
|
|
1135
1138
|
ns: "os"
|
|
1136
1139
|
}),
|
|
1137
|
-
icon:
|
|
1138
|
-
onClick: (0,
|
|
1140
|
+
icon: import_react19.UsersThree,
|
|
1141
|
+
onClick: (0, import_react20.useCallback)(() => {
|
|
1139
1142
|
space.share?.({
|
|
1140
1143
|
type: import_invitations2.Invitation.Type.INTERACTIVE,
|
|
1141
1144
|
authMethod: import_invitations2.Invitation.AuthMethod.NONE,
|
|
@@ -1146,7 +1149,7 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1146
1149
|
])
|
|
1147
1150
|
}
|
|
1148
1151
|
};
|
|
1149
|
-
const [activeActionKey, setInternalActiveActionKey] = (0,
|
|
1152
|
+
const [activeActionKey, setInternalActiveActionKey] = (0, import_react20.useState)(localStorage.getItem(activeActionKeyStorageKey) ?? "inviteOne");
|
|
1150
1153
|
const setActiveActionKey = (nextKey) => {
|
|
1151
1154
|
setInternalActiveActionKey(nextKey);
|
|
1152
1155
|
localStorage.setItem(activeActionKeyStorageKey, nextKey);
|
|
@@ -1159,101 +1162,101 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1159
1162
|
[Presence.ONLINE]: [],
|
|
1160
1163
|
[Presence.OFFLINE]: []
|
|
1161
1164
|
});
|
|
1162
|
-
return /* @__PURE__ */
|
|
1165
|
+
return /* @__PURE__ */ import_react20.default.createElement("section", {
|
|
1163
1166
|
className: "mbe-4 col-span-3 grid gap-y-2 grid-cols-subgrid auto-rows-min"
|
|
1164
|
-
}, /* @__PURE__ */
|
|
1167
|
+
}, /* @__PURE__ */ import_react20.default.createElement("h2", {
|
|
1165
1168
|
className: "contents"
|
|
1166
|
-
}, /* @__PURE__ */
|
|
1169
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react19.UsersThree, {
|
|
1167
1170
|
weight: "duotone",
|
|
1168
|
-
className: (0,
|
|
1169
|
-
}), /* @__PURE__ */
|
|
1171
|
+
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(5), "place-self-center")
|
|
1172
|
+
}), /* @__PURE__ */ import_react20.default.createElement("span", {
|
|
1170
1173
|
className: "text-lg col-span-2"
|
|
1171
|
-
}, t("space members label"))), /* @__PURE__ */
|
|
1174
|
+
}, t("space members label"))), /* @__PURE__ */ import_react20.default.createElement("h3", {
|
|
1172
1175
|
className: "col-start-2 col-span-3 text-sm italic text-description"
|
|
1173
|
-
}, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */
|
|
1176
|
+
}, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.List, {
|
|
1174
1177
|
classNames: "col-start-2 col-span-2 gap-y-2 grid grid-cols-[var(--rail-size)_1fr_var(--rail-action)_var(--rail-action)]"
|
|
1175
|
-
}, invitations.map((invitation) => /* @__PURE__ */
|
|
1178
|
+
}, invitations.map((invitation) => /* @__PURE__ */ import_react20.default.createElement(import_react21.InvitationListItem, {
|
|
1176
1179
|
reverseEffects: true,
|
|
1177
1180
|
classNames: "pis-0 pie-0 gap-0 col-span-4 grid grid-cols-subgrid",
|
|
1178
1181
|
key: invitation.get().invitationId,
|
|
1179
1182
|
invitation,
|
|
1180
1183
|
send: handleInvitationSelect,
|
|
1181
1184
|
createInvitationUrl: handleCreateInvitationUrl
|
|
1182
|
-
}))), /* @__PURE__ */
|
|
1185
|
+
}))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.ButtonGroup, {
|
|
1183
1186
|
classNames: "col-start-2 col-end-4 grid grid-cols-[1fr_var(--rail-action)] place-self-grow gap-px"
|
|
1184
|
-
}, /* @__PURE__ */
|
|
1187
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Button, {
|
|
1185
1188
|
classNames: "gap-2",
|
|
1186
1189
|
onClick: activeAction.onClick
|
|
1187
|
-
}, /* @__PURE__ */
|
|
1188
|
-
className: (0,
|
|
1189
|
-
}), /* @__PURE__ */
|
|
1190
|
+
}, /* @__PURE__ */ import_react20.default.createElement(activeAction.icon, {
|
|
1191
|
+
className: (0, import_react_ui_theme6.getSize)(5)
|
|
1192
|
+
}), /* @__PURE__ */ import_react20.default.createElement("span", null, t(activeAction.label, {
|
|
1190
1193
|
ns: "os"
|
|
1191
|
-
}))), /* @__PURE__ */
|
|
1194
|
+
}))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Root, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Trigger, {
|
|
1192
1195
|
asChild: true
|
|
1193
|
-
}, /* @__PURE__ */
|
|
1196
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Button, {
|
|
1194
1197
|
classNames: "pli-0"
|
|
1195
|
-
}, /* @__PURE__ */
|
|
1196
|
-
className: (0,
|
|
1197
|
-
}))), /* @__PURE__ */
|
|
1198
|
-
return /* @__PURE__ */
|
|
1198
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react19.CaretDown, {
|
|
1199
|
+
className: (0, import_react_ui_theme6.getSize)(4)
|
|
1200
|
+
}))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Content, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Viewport, null, Object.entries(inviteActions).map(([id, action]) => {
|
|
1201
|
+
return /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.CheckboxItem, {
|
|
1199
1202
|
key: id,
|
|
1200
1203
|
"aria-labelledby": `${id}__label`,
|
|
1201
1204
|
"aria-describedby": `${id}__description`,
|
|
1202
1205
|
checked: activeActionKey === id,
|
|
1203
1206
|
onCheckedChange: (checked) => checked && setActiveActionKey(id),
|
|
1204
1207
|
classNames: "gap-2"
|
|
1205
|
-
}, action.icon && /* @__PURE__ */
|
|
1206
|
-
className: (0,
|
|
1207
|
-
}), /* @__PURE__ */
|
|
1208
|
+
}, action.icon && /* @__PURE__ */ import_react20.default.createElement(action.icon, {
|
|
1209
|
+
className: (0, import_react_ui_theme6.getSize)(5)
|
|
1210
|
+
}), /* @__PURE__ */ import_react20.default.createElement("div", {
|
|
1208
1211
|
role: "none",
|
|
1209
1212
|
className: "flex-1 min-is-0 space-b-1"
|
|
1210
|
-
}, /* @__PURE__ */
|
|
1213
|
+
}, /* @__PURE__ */ import_react20.default.createElement("p", {
|
|
1211
1214
|
id: `${id}__label`
|
|
1212
1215
|
}, t(action.label, {
|
|
1213
1216
|
ns: "os"
|
|
1214
|
-
})), action.description && /* @__PURE__ */
|
|
1217
|
+
})), action.description && /* @__PURE__ */ import_react20.default.createElement("p", {
|
|
1215
1218
|
id: `${id}__description`,
|
|
1216
|
-
className:
|
|
1219
|
+
className: import_react_ui_theme6.descriptionText
|
|
1217
1220
|
}, t(action.description, {
|
|
1218
1221
|
ns: "os"
|
|
1219
|
-
}))), /* @__PURE__ */
|
|
1222
|
+
}))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.ItemIndicator, {
|
|
1220
1223
|
asChild: true
|
|
1221
|
-
}, /* @__PURE__ */
|
|
1222
|
-
className: (0,
|
|
1224
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react19.Check, {
|
|
1225
|
+
className: (0, import_react_ui_theme6.getSize)(4)
|
|
1223
1226
|
})));
|
|
1224
|
-
})), /* @__PURE__ */
|
|
1225
|
-
className: (0,
|
|
1227
|
+
})), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Arrow, null)))), members[Presence.ONLINE].length + members[Presence.OFFLINE].length < 1 ? /* @__PURE__ */ import_react20.default.createElement("p", {
|
|
1228
|
+
className: (0, import_react_ui_theme6.mx)(import_react_ui_theme6.descriptionText, "text-center is-full mlb-2")
|
|
1226
1229
|
}, t("empty space members message", {
|
|
1227
1230
|
ns: "os"
|
|
1228
|
-
})) : /* @__PURE__ */
|
|
1231
|
+
})) : /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement("h3", {
|
|
1229
1232
|
className: "col-start-2 col-end-5 text-sm italic text-description"
|
|
1230
1233
|
}, t("active space members heading", {
|
|
1231
1234
|
count: members[Presence.ONLINE].length
|
|
1232
|
-
})), /* @__PURE__ */
|
|
1235
|
+
})), /* @__PURE__ */ import_react20.default.createElement(SpaceMemberList, {
|
|
1233
1236
|
members: members[Presence.ONLINE]
|
|
1234
|
-
}), /* @__PURE__ */
|
|
1237
|
+
}), /* @__PURE__ */ import_react20.default.createElement("h3", {
|
|
1235
1238
|
className: "col-start-2 col-end-5 text-sm italic text-description"
|
|
1236
1239
|
}, t("inactive space members heading", {
|
|
1237
1240
|
count: members[Presence.OFFLINE].length
|
|
1238
|
-
})), /* @__PURE__ */
|
|
1241
|
+
})), /* @__PURE__ */ import_react20.default.createElement(SpaceMemberList, {
|
|
1239
1242
|
members: members[Presence.OFFLINE]
|
|
1240
1243
|
})));
|
|
1241
1244
|
};
|
|
1242
1245
|
var KeyShortcuts = () => {
|
|
1243
|
-
const { t } = (0,
|
|
1244
|
-
return /* @__PURE__ */
|
|
1246
|
+
const { t } = (0, import_react_ui12.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1247
|
+
return /* @__PURE__ */ import_react17.default.createElement("section", {
|
|
1245
1248
|
className: "mbe-4 col-span-4 md:col-start-5 md:col-end-7 grid grid-cols-subgrid gap-y-2 auto-rows-min"
|
|
1246
|
-
}, /* @__PURE__ */
|
|
1249
|
+
}, /* @__PURE__ */ import_react17.default.createElement("h2", {
|
|
1247
1250
|
className: "contents"
|
|
1248
|
-
}, /* @__PURE__ */
|
|
1251
|
+
}, /* @__PURE__ */ import_react17.default.createElement(import_react16.Command, {
|
|
1249
1252
|
weight: "duotone",
|
|
1250
|
-
className: (0,
|
|
1251
|
-
}), /* @__PURE__ */
|
|
1253
|
+
className: (0, import_react_ui_theme5.mx)((0, import_react_ui_theme5.getSize)(5), "place-self-center")
|
|
1254
|
+
}), /* @__PURE__ */ import_react17.default.createElement("span", {
|
|
1252
1255
|
className: "text-lg col-span-2 md:col-span-1"
|
|
1253
|
-
}, t("keyshortcuts label"))), /* @__PURE__ */
|
|
1256
|
+
}, t("keyshortcuts label"))), /* @__PURE__ */ import_react17.default.createElement("div", {
|
|
1254
1257
|
role: "none",
|
|
1255
1258
|
className: "col-start-2 col-end-4 md:col-end-5 pie-2"
|
|
1256
|
-
}, /* @__PURE__ */
|
|
1259
|
+
}, /* @__PURE__ */ import_react17.default.createElement(import_app_framework6.Surface, {
|
|
1257
1260
|
role: "keyshortcuts"
|
|
1258
1261
|
})));
|
|
1259
1262
|
};
|
|
@@ -1261,42 +1264,41 @@ var spaceMainLayout = "grid gap-y-2 auto-rows-min before:bs-2 before:col-span-5
|
|
|
1261
1264
|
var SpaceMain = ({ space, role }) => {
|
|
1262
1265
|
const state = space.state.get();
|
|
1263
1266
|
const ready = state === import_echo5.SpaceState.SPACE_READY;
|
|
1264
|
-
const Root = role === "main" ?
|
|
1265
|
-
return /* @__PURE__ */
|
|
1267
|
+
const Root = role === "main" ? import_react_ui12.Main.Content : "div";
|
|
1268
|
+
return /* @__PURE__ */ import_react17.default.createElement(import_react18.ClipboardProvider, null, /* @__PURE__ */ import_react17.default.createElement(Root, {
|
|
1266
1269
|
...role === "main" ? {
|
|
1267
1270
|
classNames: [
|
|
1268
|
-
|
|
1271
|
+
import_react_ui_theme5.topbarBlockPaddingStart,
|
|
1269
1272
|
"min-bs-dvh",
|
|
1270
1273
|
spaceMainLayout
|
|
1271
1274
|
]
|
|
1272
1275
|
} : {
|
|
1273
1276
|
role: "none",
|
|
1274
|
-
className: (0,
|
|
1277
|
+
className: (0, import_react_ui_theme5.mx)(import_react_ui_theme5.topbarBlockPaddingStart, "row-span-2", spaceMainLayout)
|
|
1275
1278
|
},
|
|
1276
1279
|
"data-testid": `spacePlugin.${role}`,
|
|
1277
1280
|
"data-isready": ready ? "true" : "false"
|
|
1278
|
-
}, ready && /* @__PURE__ */
|
|
1281
|
+
}, ready && /* @__PURE__ */ import_react17.default.createElement(SpaceMembersSection, {
|
|
1279
1282
|
space
|
|
1280
|
-
}), /* @__PURE__ */
|
|
1283
|
+
}), /* @__PURE__ */ import_react17.default.createElement(KeyShortcuts, null)));
|
|
1281
1284
|
};
|
|
1282
1285
|
var REFRESH_INTERVAL = 5e3;
|
|
1283
1286
|
var ACTIVITY_DURATION = 3e4;
|
|
1284
1287
|
var noViewers = new import_util2.ComplexMap(import_react_client4.PublicKey.hash);
|
|
1285
1288
|
var getName = (identity) => identity.profile?.displayName ?? (0, import_display_name.generateName)(identity.identityKey.toHex());
|
|
1286
1289
|
var SpacePresence = ({ object, spaceKey }) => {
|
|
1287
|
-
const
|
|
1288
|
-
const spacePlugin = (0, import_app_framework8.usePlugin)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
1290
|
+
const spacePlugin = (0, import_app_framework8.usePlugin)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1289
1291
|
const client = (0, import_react_client4.useClient)();
|
|
1290
1292
|
const identity = (0, import_halo.useIdentity)();
|
|
1291
1293
|
const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo7.getSpace)(object);
|
|
1292
1294
|
const spaceMembers = (0, import_echo7.useMembers)(space?.key);
|
|
1293
|
-
const [_moment, setMoment] = (0,
|
|
1294
|
-
(0,
|
|
1295
|
+
const [_moment, setMoment] = (0, import_react22.useState)(Date.now());
|
|
1296
|
+
(0, import_react22.useEffect)(() => {
|
|
1295
1297
|
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
1296
1298
|
return () => clearInterval(interval);
|
|
1297
1299
|
}, []);
|
|
1298
|
-
const memberOnline = (0,
|
|
1299
|
-
const memberIsNotSelf = (0,
|
|
1300
|
+
const memberOnline = (0, import_react22.useCallback)((member) => member.presence === 1, []);
|
|
1301
|
+
const memberIsNotSelf = (0, import_react22.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
|
|
1300
1302
|
identity?.identityKey
|
|
1301
1303
|
]);
|
|
1302
1304
|
if (!identity || !spacePlugin || !space) {
|
|
@@ -1314,63 +1316,61 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1314
1316
|
lastSeen
|
|
1315
1317
|
};
|
|
1316
1318
|
}).toSorted((a, b) => a.lastSeen - b.lastSeen);
|
|
1317
|
-
return
|
|
1318
|
-
count: membersForObject.length
|
|
1319
|
-
}) : /* @__PURE__ */ import_react26.default.createElement(FullPresence, {
|
|
1319
|
+
return /* @__PURE__ */ import_react22.default.createElement(FullPresence, {
|
|
1320
1320
|
members: membersForObject
|
|
1321
1321
|
});
|
|
1322
1322
|
};
|
|
1323
1323
|
var FullPresence = (props) => {
|
|
1324
1324
|
const { size = 9, onMemberClick } = props;
|
|
1325
|
-
const members = (0,
|
|
1325
|
+
const members = (0, import_react_ui14.useDefaultValue)(props.members, () => []);
|
|
1326
1326
|
if (members.length === 0) {
|
|
1327
1327
|
return null;
|
|
1328
1328
|
}
|
|
1329
|
-
return /* @__PURE__ */
|
|
1329
|
+
return /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.AvatarGroup.Root, {
|
|
1330
1330
|
size,
|
|
1331
1331
|
classNames: "mbs-2 mie-4",
|
|
1332
1332
|
"data-testid": "spacePlugin.presence"
|
|
1333
|
-
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */
|
|
1333
|
+
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Root, {
|
|
1334
1334
|
key: member.identity.identityKey.toHex()
|
|
1335
|
-
}, /* @__PURE__ */
|
|
1335
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Trigger, null, /* @__PURE__ */ import_react22.default.createElement(PrensenceAvatar, {
|
|
1336
1336
|
identity: member.identity,
|
|
1337
1337
|
group: true,
|
|
1338
1338
|
match: member.currentlyAttended,
|
|
1339
1339
|
index: members.length - i,
|
|
1340
1340
|
onClick: () => onMemberClick?.(member)
|
|
1341
|
-
})), /* @__PURE__ */
|
|
1341
|
+
})), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Content, {
|
|
1342
1342
|
side: "bottom"
|
|
1343
|
-
}, /* @__PURE__ */
|
|
1343
|
+
}, /* @__PURE__ */ import_react22.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Trigger, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.AvatarGroupItem.Root, {
|
|
1344
1344
|
status: "inactive"
|
|
1345
|
-
}, /* @__PURE__ */
|
|
1345
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Frame, {
|
|
1346
1346
|
style: {
|
|
1347
1347
|
zIndex: members.length - 4
|
|
1348
1348
|
}
|
|
1349
|
-
}, /* @__PURE__ */
|
|
1349
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Fallback, {
|
|
1350
1350
|
text: `+${members.length - 3}`
|
|
1351
|
-
})))), /* @__PURE__ */
|
|
1351
|
+
})))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Content, {
|
|
1352
1352
|
side: "bottom"
|
|
1353
|
-
}, /* @__PURE__ */
|
|
1353
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Arrow, null), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.List, {
|
|
1354
1354
|
classNames: "max-h-56 overflow-y-auto"
|
|
1355
|
-
}, members.map((member) => /* @__PURE__ */
|
|
1355
|
+
}, members.map((member) => /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.ListItem.Root, {
|
|
1356
1356
|
key: member.identity.identityKey.toHex(),
|
|
1357
1357
|
classNames: "flex gap-2 items-center cursor-pointer mbe-2",
|
|
1358
1358
|
onClick: () => onMemberClick?.(member),
|
|
1359
1359
|
"data-testid": "identity-list-item"
|
|
1360
|
-
}, /* @__PURE__ */
|
|
1360
|
+
}, /* @__PURE__ */ import_react22.default.createElement(PrensenceAvatar, {
|
|
1361
1361
|
identity: member.identity,
|
|
1362
1362
|
showName: true,
|
|
1363
1363
|
match: member.currentlyAttended
|
|
1364
1364
|
}))))))));
|
|
1365
1365
|
};
|
|
1366
1366
|
var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) => {
|
|
1367
|
-
const Root = group ?
|
|
1367
|
+
const Root = group ? import_react_ui14.AvatarGroupItem.Root : import_react_ui14.Avatar.Root;
|
|
1368
1368
|
const status = match ? "current" : "active";
|
|
1369
1369
|
const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
|
|
1370
|
-
return /* @__PURE__ */
|
|
1370
|
+
return /* @__PURE__ */ import_react22.default.createElement(Root, {
|
|
1371
1371
|
status,
|
|
1372
1372
|
hue: identity.profile?.data?.hue || fallbackValue.hue
|
|
1373
|
-
}, /* @__PURE__ */
|
|
1373
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Frame, {
|
|
1374
1374
|
"data-testid": "spacePlugin.presence.member",
|
|
1375
1375
|
"data-status": status,
|
|
1376
1376
|
...index ? {
|
|
@@ -1379,61 +1379,397 @@ var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) =>
|
|
|
1379
1379
|
}
|
|
1380
1380
|
} : {},
|
|
1381
1381
|
onClick: () => onClick?.()
|
|
1382
|
-
}, /* @__PURE__ */
|
|
1382
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Fallback, {
|
|
1383
1383
|
text: identity.profile?.data?.emoji || fallbackValue.emoji
|
|
1384
|
-
})), showName && /* @__PURE__ */
|
|
1384
|
+
})), showName && /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Label, {
|
|
1385
1385
|
classNames: "text-sm truncate pli-2"
|
|
1386
1386
|
}, getName(identity)));
|
|
1387
1387
|
};
|
|
1388
|
-
var SmallPresenceLive = ({ viewers }) => {
|
|
1389
|
-
const
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1388
|
+
var SmallPresenceLive = ({ id, viewers }) => {
|
|
1389
|
+
const getActiveViewers = (viewers2) => {
|
|
1390
|
+
const moment = Date.now();
|
|
1391
|
+
return Array.from(viewers2.values()).filter(({ lastSeen }) => moment - lastSeen < ACTIVITY_DURATION);
|
|
1392
|
+
};
|
|
1393
|
+
const [activeViewers, setActiveViewers] = (0, import_react22.useState)(viewers ? getActiveViewers(viewers) : []);
|
|
1394
|
+
(0, import_react22.useEffect)(() => {
|
|
1395
|
+
if (viewers) {
|
|
1396
|
+
setActiveViewers(getActiveViewers(viewers));
|
|
1397
|
+
const interval = setInterval(() => {
|
|
1398
|
+
setActiveViewers(getActiveViewers(viewers));
|
|
1399
|
+
}, REFRESH_INTERVAL);
|
|
1400
|
+
return () => clearInterval(interval);
|
|
1401
|
+
}
|
|
1402
|
+
}, [
|
|
1403
|
+
viewers
|
|
1404
|
+
]);
|
|
1405
|
+
return /* @__PURE__ */ import_react22.default.createElement(SmallPresence, {
|
|
1406
|
+
id,
|
|
1396
1407
|
count: activeViewers.length
|
|
1397
1408
|
});
|
|
1398
1409
|
};
|
|
1399
|
-
var SmallPresence = ({ count }) => {
|
|
1400
|
-
const { t } = (0,
|
|
1401
|
-
|
|
1410
|
+
var SmallPresence = ({ id, count }) => {
|
|
1411
|
+
const { t } = (0, import_react_ui14.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1412
|
+
const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention.useAttention)(id);
|
|
1413
|
+
const attention = hasAttention || isAncestor || isRelated;
|
|
1414
|
+
return /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Trigger, {
|
|
1402
1415
|
asChild: true
|
|
1403
|
-
}, /* @__PURE__ */
|
|
1416
|
+
}, /* @__PURE__ */ import_react22.default.createElement("div", {
|
|
1417
|
+
role: "none",
|
|
1418
|
+
className: "flex",
|
|
1419
|
+
"data-attention": attention
|
|
1420
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui_attention.AttentionGlyph, {
|
|
1404
1421
|
presence: count > 1 ? "many" : count === 1 ? "one" : "none",
|
|
1405
1422
|
classNames: "self-center mie-1"
|
|
1406
|
-
})), /* @__PURE__ */
|
|
1423
|
+
}))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Content, {
|
|
1407
1424
|
side: "bottom",
|
|
1408
1425
|
classNames: "z-[70]"
|
|
1409
|
-
}, /* @__PURE__ */
|
|
1426
|
+
}, /* @__PURE__ */ import_react22.default.createElement("span", null, t("presence label", {
|
|
1410
1427
|
count
|
|
1411
|
-
})), /* @__PURE__ */
|
|
1428
|
+
})), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Arrow, null))));
|
|
1412
1429
|
};
|
|
1413
1430
|
var SpaceSettings = ({ settings }) => {
|
|
1414
|
-
const { t } = (0,
|
|
1431
|
+
const { t } = (0, import_react_ui15.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1415
1432
|
const dispatch = (0, import_app_framework9.useIntentDispatcher)();
|
|
1416
|
-
|
|
1433
|
+
const plugins = (0, import_app_framework9.useResolvePlugins)(import_chunk_OTDRTHT4.parseSpaceInitPlugin);
|
|
1434
|
+
return /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui_data.FormInput, {
|
|
1417
1435
|
label: t("show hidden spaces label")
|
|
1418
|
-
}, /* @__PURE__ */
|
|
1436
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Input.Switch, {
|
|
1419
1437
|
checked: settings.showHidden,
|
|
1420
1438
|
onCheckedChange: (checked) => dispatch({
|
|
1421
|
-
plugin:
|
|
1422
|
-
action:
|
|
1439
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
1440
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.TOGGLE_HIDDEN,
|
|
1423
1441
|
data: {
|
|
1424
1442
|
state: !!checked
|
|
1425
1443
|
}
|
|
1426
1444
|
})
|
|
1427
|
-
}))
|
|
1445
|
+
})), /* @__PURE__ */ import_react23.default.createElement(import_react_ui_data.FormInput, {
|
|
1446
|
+
label: t("default on space create label")
|
|
1447
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Root, {
|
|
1448
|
+
value: settings.onSpaceCreate,
|
|
1449
|
+
onValueChange: (value) => {
|
|
1450
|
+
settings.onSpaceCreate = value;
|
|
1451
|
+
}
|
|
1452
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.TriggerButton, null), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Portal, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Content, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Viewport, null, plugins.map(({ provides: { space: { onSpaceCreate } } }) => /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Option, {
|
|
1453
|
+
key: onSpaceCreate.action,
|
|
1454
|
+
value: onSpaceCreate.action
|
|
1455
|
+
}, (0, import_react_ui15.toLocalizedString)(onSpaceCreate.label, t)))))))));
|
|
1456
|
+
};
|
|
1457
|
+
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettingsPanel.tsx";
|
|
1458
|
+
var SpaceSettingsPanel = ({ space }) => {
|
|
1459
|
+
const { t } = (0, import_react_ui16.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1460
|
+
const [edgeReplication, setEdgeReplication] = (0, import_react24.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
|
|
1461
|
+
const toggleEdgeReplication = (0, import_react24.useCallback)(async (next) => {
|
|
1462
|
+
setEdgeReplication(next);
|
|
1463
|
+
await space?.internal.setEdgeReplicationPreference(next ? import_metadata.EdgeReplicationSetting.ENABLED : import_metadata.EdgeReplicationSetting.DISABLED).catch((err) => {
|
|
1464
|
+
import_log3.log.catch(err, void 0, {
|
|
1465
|
+
F: __dxlog_file3,
|
|
1466
|
+
L: 30,
|
|
1467
|
+
S: void 0,
|
|
1468
|
+
C: (f, a) => f(...a)
|
|
1469
|
+
});
|
|
1470
|
+
setEdgeReplication(!next);
|
|
1471
|
+
});
|
|
1472
|
+
}, [
|
|
1473
|
+
space
|
|
1474
|
+
]);
|
|
1475
|
+
return /* @__PURE__ */ import_react24.default.createElement("div", {
|
|
1476
|
+
role: "form",
|
|
1477
|
+
className: "flex flex-col w-full p-2 gap-4"
|
|
1478
|
+
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Root, null, /* @__PURE__ */ import_react24.default.createElement("div", {
|
|
1479
|
+
role: "none",
|
|
1480
|
+
className: "flex flex-col gap-1"
|
|
1481
|
+
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Label, null, t("name label")), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.TextInput, {
|
|
1482
|
+
placeholder: t("name placeholder"),
|
|
1483
|
+
value: space.properties.name,
|
|
1484
|
+
onChange: (event) => {
|
|
1485
|
+
space.properties.name = event.target.value;
|
|
1486
|
+
}
|
|
1487
|
+
}))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Root, null, /* @__PURE__ */ import_react24.default.createElement("div", {
|
|
1488
|
+
role: "none",
|
|
1489
|
+
className: "flex justify-between"
|
|
1490
|
+
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Label, null, t("edge replication label")), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Switch, {
|
|
1491
|
+
checked: edgeReplication,
|
|
1492
|
+
onCheckedChange: toggleEdgeReplication
|
|
1493
|
+
}))));
|
|
1494
|
+
};
|
|
1495
|
+
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SaveStatus.tsx";
|
|
1496
|
+
var SaveStatus = () => {
|
|
1497
|
+
const { t } = (0, import_react_ui17.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1498
|
+
const client = (0, import_react_client5.useClient)();
|
|
1499
|
+
const [state, setState] = (0, import_react25.useState)("saved");
|
|
1500
|
+
(0, import_react25.useEffect)(() => {
|
|
1501
|
+
return createClientSaveTracker(client, (state2) => {
|
|
1502
|
+
setState(state2);
|
|
1503
|
+
});
|
|
1504
|
+
}, []);
|
|
1505
|
+
return /* @__PURE__ */ import_react25.default.createElement(import_plugin_status_bar.StatusBar.Item, {
|
|
1506
|
+
title: state === "saving" ? t("saving label") : t("saved label")
|
|
1507
|
+
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Icon, {
|
|
1508
|
+
icon: state === "saving" ? "ph--arrows-clockwise--regular" : "ph--check-circle--regular",
|
|
1509
|
+
size: 4
|
|
1510
|
+
}));
|
|
1511
|
+
};
|
|
1512
|
+
var createClientSaveTracker = (client, cb) => {
|
|
1513
|
+
const unsubscribeCallbacks = {};
|
|
1514
|
+
const state = {};
|
|
1515
|
+
const install = (spaces) => {
|
|
1516
|
+
for (const space of spaces) {
|
|
1517
|
+
if (state[space.id]) {
|
|
1518
|
+
continue;
|
|
1519
|
+
}
|
|
1520
|
+
state[space.id] = "saved";
|
|
1521
|
+
unsubscribeCallbacks[space.id] = createSpaceSaveTracker(space, (s) => {
|
|
1522
|
+
state[space.id] = s;
|
|
1523
|
+
cb(Object.values(state).some((s2) => s2 === "saving") ? "saving" : "saved");
|
|
1524
|
+
});
|
|
1525
|
+
}
|
|
1526
|
+
};
|
|
1527
|
+
client.spaces.subscribe((spaces) => {
|
|
1528
|
+
install(spaces);
|
|
1529
|
+
});
|
|
1530
|
+
install(client.spaces.get());
|
|
1531
|
+
return () => {
|
|
1532
|
+
for (const unsubscribe of Object.values(unsubscribeCallbacks)) {
|
|
1533
|
+
unsubscribe();
|
|
1534
|
+
}
|
|
1535
|
+
};
|
|
1536
|
+
};
|
|
1537
|
+
var createSpaceSaveTracker = (space, cb) => {
|
|
1538
|
+
const ctx = new import_context.Context(void 0, {
|
|
1539
|
+
F: __dxlog_file4,
|
|
1540
|
+
L: 64
|
|
1541
|
+
});
|
|
1542
|
+
void space.waitUntilReady().then(() => {
|
|
1543
|
+
if (ctx.disposed) {
|
|
1544
|
+
return;
|
|
1545
|
+
}
|
|
1546
|
+
let hasUnsavedChanges = false;
|
|
1547
|
+
let lastFlushPromise;
|
|
1548
|
+
space.crud.saveStateChanged.on(ctx, ({ unsavedDocuments }) => {
|
|
1549
|
+
hasUnsavedChanges = unsavedDocuments.length > 0;
|
|
1550
|
+
});
|
|
1551
|
+
space.crud.saveStateChanged.debounce(500).on(ctx, () => {
|
|
1552
|
+
if (hasUnsavedChanges) {
|
|
1553
|
+
lastFlushPromise = void 0;
|
|
1554
|
+
cb("saving");
|
|
1555
|
+
} else {
|
|
1556
|
+
const flushPromise = space.crud.flush();
|
|
1557
|
+
lastFlushPromise = flushPromise;
|
|
1558
|
+
void flushPromise.then(() => {
|
|
1559
|
+
if (lastFlushPromise === flushPromise) {
|
|
1560
|
+
cb("saved");
|
|
1561
|
+
}
|
|
1562
|
+
});
|
|
1563
|
+
}
|
|
1564
|
+
});
|
|
1565
|
+
});
|
|
1566
|
+
return () => {
|
|
1567
|
+
void ctx.dispose();
|
|
1568
|
+
};
|
|
1569
|
+
};
|
|
1570
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/types.ts";
|
|
1571
|
+
var createEmptyEdgeSyncState = () => ({
|
|
1572
|
+
missingOnLocal: 0,
|
|
1573
|
+
missingOnRemote: 0,
|
|
1574
|
+
localDocumentCount: 0,
|
|
1575
|
+
remoteDocumentCount: 0,
|
|
1576
|
+
differentDocuments: 0
|
|
1577
|
+
});
|
|
1578
|
+
var getSyncSummary = (syncMap) => {
|
|
1579
|
+
return Object.entries(syncMap).reduce((summary, [_spaceId, peerState]) => {
|
|
1580
|
+
summary.missingOnLocal += peerState.missingOnLocal;
|
|
1581
|
+
summary.missingOnRemote += peerState.missingOnRemote;
|
|
1582
|
+
summary.localDocumentCount += peerState.localDocumentCount;
|
|
1583
|
+
summary.remoteDocumentCount += peerState.remoteDocumentCount;
|
|
1584
|
+
summary.differentDocuments += peerState.differentDocuments;
|
|
1585
|
+
return summary;
|
|
1586
|
+
}, createEmptyEdgeSyncState());
|
|
1587
|
+
};
|
|
1588
|
+
var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
|
|
1589
|
+
var useSyncState = () => {
|
|
1590
|
+
const client = (0, import_react_client6.useClient)();
|
|
1591
|
+
const [spaceState, setSpaceState] = (0, import_react27.useState)({});
|
|
1592
|
+
(0, import_react27.useEffect)(() => {
|
|
1593
|
+
const ctx = new import_context2.Context(void 0, {
|
|
1594
|
+
F: __dxlog_file5,
|
|
1595
|
+
L: 48
|
|
1596
|
+
});
|
|
1597
|
+
const createSubscriptions = (spaces) => {
|
|
1598
|
+
for (const space of spaces) {
|
|
1599
|
+
if (spaceState[space.id]) {
|
|
1600
|
+
continue;
|
|
1601
|
+
}
|
|
1602
|
+
ctx.onDispose(space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
|
|
1603
|
+
const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
|
|
1604
|
+
if (syncState) {
|
|
1605
|
+
setSpaceState((spaceState2) => ({
|
|
1606
|
+
...spaceState2,
|
|
1607
|
+
[space.id]: syncState
|
|
1608
|
+
}));
|
|
1609
|
+
}
|
|
1610
|
+
}));
|
|
1611
|
+
}
|
|
1612
|
+
};
|
|
1613
|
+
createSubscriptions(client.spaces.get());
|
|
1614
|
+
client.spaces.subscribe((spaces) => {
|
|
1615
|
+
createSubscriptions(spaces);
|
|
1616
|
+
});
|
|
1617
|
+
return () => {
|
|
1618
|
+
void ctx.dispose();
|
|
1619
|
+
};
|
|
1620
|
+
}, [
|
|
1621
|
+
client
|
|
1622
|
+
]);
|
|
1623
|
+
return spaceState;
|
|
1624
|
+
};
|
|
1625
|
+
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1626
|
+
var styles = {
|
|
1627
|
+
barBg: "bg-neutral-50 dark:bg-green-900 text-black",
|
|
1628
|
+
barFg: "bg-neutral-100 bg-green-500",
|
|
1629
|
+
barHover: "dark:hover:bg-green-500"
|
|
1630
|
+
};
|
|
1631
|
+
var SyncStatus = () => {
|
|
1632
|
+
const state = useSyncState();
|
|
1633
|
+
return /* @__PURE__ */ import_react26.default.createElement(SyncStatusIndicator, {
|
|
1634
|
+
state
|
|
1635
|
+
});
|
|
1636
|
+
};
|
|
1637
|
+
var SyncStatusIndicator = ({ state }) => {
|
|
1638
|
+
const summary = getSyncSummary(state);
|
|
1639
|
+
const offline = false;
|
|
1640
|
+
const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
|
|
1641
|
+
const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;
|
|
1642
|
+
const [classNames, setClassNames] = (0, import_react26.useState)();
|
|
1643
|
+
(0, import_react26.useEffect)(() => {
|
|
1644
|
+
setClassNames(void 0);
|
|
1645
|
+
if (!needsToUpload && !needsToDownload) {
|
|
1646
|
+
return;
|
|
1647
|
+
}
|
|
1648
|
+
const t = setTimeout(() => {
|
|
1649
|
+
setClassNames("text-orange-500");
|
|
1650
|
+
}, SYNC_STALLED_TIMEOUT);
|
|
1651
|
+
return () => clearTimeout(t);
|
|
1652
|
+
}, [
|
|
1653
|
+
needsToUpload,
|
|
1654
|
+
needsToDownload
|
|
1655
|
+
]);
|
|
1656
|
+
return /* @__PURE__ */ import_react26.default.createElement(import_plugin_status_bar2.StatusBar.Item, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Popover.Root, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Popover.Trigger, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
|
|
1657
|
+
icon: offline ? "ph--cloud-x--regular" : needsToUpload ? "ph--cloud-arrow-up--regular" : needsToDownload ? "ph--cloud-arrow-down--regular" : "ph--cloud-check--regular",
|
|
1658
|
+
size: 4,
|
|
1659
|
+
classNames
|
|
1660
|
+
})), /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Popover.Content, {
|
|
1661
|
+
sideOffset: 16
|
|
1662
|
+
}, /* @__PURE__ */ import_react26.default.createElement(SyncStatusDetail, {
|
|
1663
|
+
state,
|
|
1664
|
+
summary,
|
|
1665
|
+
debug: false
|
|
1666
|
+
}))));
|
|
1667
|
+
};
|
|
1668
|
+
var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
|
|
1669
|
+
const { t } = (0, import_react_ui18.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1670
|
+
const entries = Object.entries(state).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
|
|
1671
|
+
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1672
|
+
className: (0, import_react_ui_theme7.mx)("flex flex-col text-xs min-w-[16rem]", classNames)
|
|
1673
|
+
}, /* @__PURE__ */ import_react26.default.createElement("h1", {
|
|
1674
|
+
className: "p-2"
|
|
1675
|
+
}, t("sync status title")), /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1676
|
+
className: "flex flex-col gap-[2px] my-[2px]"
|
|
1677
|
+
}, entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react26.default.createElement(SpaceRow, {
|
|
1678
|
+
key: spaceId,
|
|
1679
|
+
spaceId,
|
|
1680
|
+
state: state2
|
|
1681
|
+
}))), debug && /* @__PURE__ */ import_react26.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
|
|
1682
|
+
language: "json"
|
|
1683
|
+
}, JSON.stringify(summary, null, 2)));
|
|
1684
|
+
};
|
|
1685
|
+
var useActive = (count) => {
|
|
1686
|
+
const [current, setCurrent] = (0, import_react26.useState)(count);
|
|
1687
|
+
const [active, setActive] = (0, import_react26.useState)(false);
|
|
1688
|
+
(0, import_react26.useEffect)(() => {
|
|
1689
|
+
let t;
|
|
1690
|
+
if (count !== current) {
|
|
1691
|
+
setActive(true);
|
|
1692
|
+
setCurrent(count);
|
|
1693
|
+
t && clearTimeout(t);
|
|
1694
|
+
t = setTimeout(() => {
|
|
1695
|
+
setActive(false);
|
|
1696
|
+
}, SYNC_STALLED_TIMEOUT);
|
|
1697
|
+
}
|
|
1698
|
+
return () => {
|
|
1699
|
+
setActive(false);
|
|
1700
|
+
clearTimeout(t);
|
|
1701
|
+
};
|
|
1702
|
+
}, [
|
|
1703
|
+
count,
|
|
1704
|
+
current
|
|
1705
|
+
]);
|
|
1706
|
+
return active;
|
|
1707
|
+
};
|
|
1708
|
+
var SpaceRow = ({ spaceId, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
|
|
1709
|
+
const downActive = useActive(localDocumentCount);
|
|
1710
|
+
const upActive = useActive(remoteDocumentCount);
|
|
1711
|
+
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1712
|
+
className: (0, import_react_ui_theme7.mx)("flex items-center mx-[2px] gap-[2px] cursor-pointer", styles.barHover),
|
|
1713
|
+
title: spaceId,
|
|
1714
|
+
onClick: () => {
|
|
1715
|
+
void navigator.clipboard.writeText(spaceId);
|
|
1716
|
+
}
|
|
1717
|
+
}, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
|
|
1718
|
+
icon: "ph--arrow-fat-line-left--regular",
|
|
1719
|
+
size: 3,
|
|
1720
|
+
classNames: (0, import_react_ui_theme7.mx)(downActive && "animate-[pulse_1s_infinite]")
|
|
1721
|
+
}), /* @__PURE__ */ import_react26.default.createElement(Candle, {
|
|
1722
|
+
up: {
|
|
1723
|
+
count: remoteDocumentCount,
|
|
1724
|
+
total: remoteDocumentCount + missingOnRemote
|
|
1725
|
+
},
|
|
1726
|
+
down: {
|
|
1727
|
+
count: localDocumentCount,
|
|
1728
|
+
total: localDocumentCount + missingOnLocal
|
|
1729
|
+
},
|
|
1730
|
+
title: spaceId
|
|
1731
|
+
}), /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
|
|
1732
|
+
icon: "ph--arrow-fat-line-right--regular",
|
|
1733
|
+
size: 3,
|
|
1734
|
+
classNames: (0, import_react_ui_theme7.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
|
|
1735
|
+
}));
|
|
1736
|
+
};
|
|
1737
|
+
var Candle = ({ classNames, up, down }) => {
|
|
1738
|
+
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1739
|
+
className: (0, import_react_ui_theme7.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
|
|
1740
|
+
}, /* @__PURE__ */ import_react26.default.createElement(Bar, {
|
|
1741
|
+
classNames: "justify-end",
|
|
1742
|
+
...up
|
|
1743
|
+
}), /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1744
|
+
className: "relative"
|
|
1745
|
+
}, /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1746
|
+
className: (0, import_react_ui_theme7.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
|
|
1747
|
+
}, up.total)), /* @__PURE__ */ import_react26.default.createElement(Bar, down));
|
|
1748
|
+
};
|
|
1749
|
+
var Bar = ({ classNames, count, total }) => {
|
|
1750
|
+
let p = count / total * 100;
|
|
1751
|
+
if (count < total) {
|
|
1752
|
+
p = Math.min(p, 95);
|
|
1753
|
+
}
|
|
1754
|
+
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1755
|
+
className: (0, import_react_ui_theme7.mx)("relative flex w-full", styles.barBg, classNames)
|
|
1756
|
+
}, /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1757
|
+
className: (0, import_react_ui_theme7.mx)("shrink-0", styles.barFg),
|
|
1758
|
+
style: {
|
|
1759
|
+
width: `${p}%`
|
|
1760
|
+
}
|
|
1761
|
+
}), count !== total && /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1762
|
+
className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
|
|
1763
|
+
}, count));
|
|
1428
1764
|
};
|
|
1429
1765
|
var translations_default = [
|
|
1430
1766
|
{
|
|
1431
1767
|
"en-US": {
|
|
1432
|
-
[
|
|
1768
|
+
[import_chunk_P4XUXM7Y.SPACE_PLUGIN]: {
|
|
1433
1769
|
"plugin name": "Spaces",
|
|
1434
1770
|
"first run message": "Nothing selected.",
|
|
1435
|
-
"create space label": "Create
|
|
1436
|
-
"join space label": "Join
|
|
1771
|
+
"create space label": "Create space",
|
|
1772
|
+
"join space label": "Join space",
|
|
1437
1773
|
"empty space message": "No documents",
|
|
1438
1774
|
"empty tree message": "No spaces",
|
|
1439
1775
|
"unnamed space label": "New space",
|
|
@@ -1504,23 +1840,34 @@ var translations_default = [
|
|
|
1504
1840
|
"space limit close label": "Close",
|
|
1505
1841
|
"remove deleted objects label": "Cleanup",
|
|
1506
1842
|
"remove deleted objects alt": "Permanently remove deleted objects to free up space.",
|
|
1507
|
-
"copy link label": "Copy link"
|
|
1843
|
+
"copy link label": "Copy link",
|
|
1844
|
+
"default on space create label": "On space create",
|
|
1845
|
+
"sync status title": "Sync status",
|
|
1846
|
+
"dismiss label": "Dismiss",
|
|
1847
|
+
"join success label": "Successfully joined space",
|
|
1848
|
+
"name label": "Name",
|
|
1849
|
+
"name placeholder": "Name",
|
|
1850
|
+
"unnamed object settings label": "Settings",
|
|
1851
|
+
"edge replication label": "Enable EDGE Replication"
|
|
1508
1852
|
}
|
|
1509
1853
|
}
|
|
1510
1854
|
}
|
|
1511
1855
|
];
|
|
1512
|
-
var
|
|
1856
|
+
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/SpacePlugin.tsx";
|
|
1513
1857
|
var ACTIVE_NODE_BROADCAST_INTERVAL = 3e4;
|
|
1514
1858
|
var OBJECT_ID_LENGTH = 60;
|
|
1515
1859
|
var SPACE_MAX_OBJECTS = 500;
|
|
1516
1860
|
var DIRECTORY_TYPE = "text/directory";
|
|
1517
1861
|
var parseSpacePlugin = (plugin) => Array.isArray(plugin?.provides.space?.enabled) ? plugin : void 0;
|
|
1518
1862
|
var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
1519
|
-
const settings = new import_local_storage.LocalStorageStore(
|
|
1520
|
-
|
|
1863
|
+
const settings = new import_local_storage.LocalStorageStore(import_chunk_P4XUXM7Y.SPACE_PLUGIN, {
|
|
1864
|
+
onSpaceCreate: "dxos.org/plugin/markdown/action/create"
|
|
1865
|
+
});
|
|
1866
|
+
const state = new import_local_storage.LocalStorageStore(import_chunk_P4XUXM7Y.SPACE_PLUGIN, {
|
|
1521
1867
|
awaiting: void 0,
|
|
1522
1868
|
spaceNames: {},
|
|
1523
1869
|
viewersByObject: {},
|
|
1870
|
+
// TODO(wittjosiah): Stop using (Complex)Map inside reactive object.
|
|
1524
1871
|
viewersByIdentity: new import_util.ComplexMap(import_react_client.PublicKey.hash),
|
|
1525
1872
|
sdkMigrationRunning: {}
|
|
1526
1873
|
});
|
|
@@ -1556,17 +1903,21 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1556
1903
|
await defaultSpace.internal.migrate();
|
|
1557
1904
|
}
|
|
1558
1905
|
spaces.filter((space) => space.state.get() === import_echo.SpaceState.SPACE_READY).forEach((space) => {
|
|
1559
|
-
subscriptions.add((0,
|
|
1560
|
-
|
|
1561
|
-
}));
|
|
1906
|
+
subscriptions.add((0, import_core.scheduledEffect)(() => ({
|
|
1907
|
+
name: space.properties.name
|
|
1908
|
+
}), ({ name }) => state.values.spaceNames[space.id] = name));
|
|
1562
1909
|
});
|
|
1563
1910
|
}).unsubscribe);
|
|
1564
|
-
subscriptions.add((0,
|
|
1911
|
+
subscriptions.add((0, import_core.scheduledEffect)(() => ({
|
|
1912
|
+
ids: (0, import_app_framework.openIds)(location.active),
|
|
1913
|
+
removed: location.closed ? [
|
|
1914
|
+
location.closed
|
|
1915
|
+
].flat() : []
|
|
1916
|
+
}), ({ ids, removed }) => {
|
|
1565
1917
|
const send = () => {
|
|
1566
1918
|
const spaces = client.spaces.get();
|
|
1567
1919
|
const identity = client.halo.identity.get();
|
|
1568
1920
|
if (identity && location.active) {
|
|
1569
|
-
const ids = (0, import_app_framework.openIds)(location.active);
|
|
1570
1921
|
const idsBySpace = (0, import_util.reduceGroupBy)(ids, (id) => {
|
|
1571
1922
|
const [spaceId] = id.split(":");
|
|
1572
1923
|
return spaceId;
|
|
@@ -1581,9 +1932,6 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1581
1932
|
if (!space) {
|
|
1582
1933
|
continue;
|
|
1583
1934
|
}
|
|
1584
|
-
const removed = location.closed ? [
|
|
1585
|
-
location.closed
|
|
1586
|
-
].flat() : [];
|
|
1587
1935
|
void space.postMessage("viewing", {
|
|
1588
1936
|
identityKey: identity.identityKey.toHex(),
|
|
1589
1937
|
attended: attention.attended ? [
|
|
@@ -1596,8 +1944,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1596
1944
|
import_log.log.warn("Failed to broadcast active node for presence.", {
|
|
1597
1945
|
err: err.message
|
|
1598
1946
|
}, {
|
|
1599
|
-
F:
|
|
1600
|
-
L:
|
|
1947
|
+
F: __dxlog_file6,
|
|
1948
|
+
L: 231,
|
|
1601
1949
|
S: void 0,
|
|
1602
1950
|
C: (f, a) => f(...a)
|
|
1603
1951
|
});
|
|
@@ -1643,18 +1991,16 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1643
1991
|
}).unsubscribe);
|
|
1644
1992
|
};
|
|
1645
1993
|
return {
|
|
1646
|
-
meta:
|
|
1994
|
+
meta: import_chunk_P4XUXM7Y.meta_default,
|
|
1647
1995
|
ready: async (plugins) => {
|
|
1648
1996
|
settings.prop({
|
|
1649
1997
|
key: "showHidden",
|
|
1650
|
-
storageKey: "show-hidden",
|
|
1651
1998
|
type: import_local_storage.LocalStorageStore.bool({
|
|
1652
1999
|
allowUndefined: true
|
|
1653
2000
|
})
|
|
1654
2001
|
});
|
|
1655
2002
|
state.prop({
|
|
1656
2003
|
key: "spaceNames",
|
|
1657
|
-
storageKey: "space-names",
|
|
1658
2004
|
type: import_local_storage.LocalStorageStore.json()
|
|
1659
2005
|
});
|
|
1660
2006
|
navigationPlugin = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseNavigationPlugin);
|
|
@@ -1668,7 +2014,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1668
2014
|
const dispatch = intentPlugin.provides.intent.dispatch;
|
|
1669
2015
|
const handleFirstRun = async () => {
|
|
1670
2016
|
const defaultSpace = client.spaces.default;
|
|
1671
|
-
defaultSpace.properties[
|
|
2017
|
+
defaultSpace.properties[import_chunk_OTDRTHT4.CollectionType.typename] = (0, import_echo.create)(import_chunk_OTDRTHT4.CollectionType, {
|
|
1672
2018
|
objects: [],
|
|
1673
2019
|
views: {}
|
|
1674
2020
|
});
|
|
@@ -1704,22 +2050,21 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1704
2050
|
settings: settings.values,
|
|
1705
2051
|
translations: [
|
|
1706
2052
|
...translations_default,
|
|
1707
|
-
|
|
2053
|
+
import_react2.osTranslations
|
|
1708
2054
|
],
|
|
1709
|
-
root: () => state.values.awaiting ? /* @__PURE__ */
|
|
2055
|
+
root: () => state.values.awaiting ? /* @__PURE__ */ import_react.default.createElement(AwaitingObject, {
|
|
1710
2056
|
id: state.values.awaiting
|
|
1711
2057
|
}) : null,
|
|
1712
2058
|
metadata: {
|
|
1713
2059
|
records: {
|
|
1714
|
-
[
|
|
2060
|
+
[import_chunk_OTDRTHT4.CollectionType.typename]: {
|
|
1715
2061
|
placeholder: [
|
|
1716
2062
|
"unnamed collection label",
|
|
1717
2063
|
{
|
|
1718
|
-
ns:
|
|
2064
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
1719
2065
|
}
|
|
1720
2066
|
],
|
|
1721
|
-
icon:
|
|
1722
|
-
iconSymbol: "ph--cards-three--regular",
|
|
2067
|
+
icon: "ph--cards-three--regular",
|
|
1723
2068
|
// TODO(wittjosiah): Move out of metadata.
|
|
1724
2069
|
loadReferences: (collection) => (0, import_echo.loadObjectReferences)(collection, (collection2) => [
|
|
1725
2070
|
...collection2.objects,
|
|
@@ -1730,7 +2075,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1730
2075
|
},
|
|
1731
2076
|
echo: {
|
|
1732
2077
|
schema: [
|
|
1733
|
-
|
|
2078
|
+
import_chunk_OTDRTHT4.CollectionType
|
|
1734
2079
|
]
|
|
1735
2080
|
},
|
|
1736
2081
|
surface: {
|
|
@@ -1739,55 +2084,58 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1739
2084
|
switch (role) {
|
|
1740
2085
|
case "article":
|
|
1741
2086
|
case "main":
|
|
1742
|
-
return (0, import_echo.isSpace)(primary) && primary.state.get() === import_echo.SpaceState.SPACE_READY ? /* @__PURE__ */
|
|
2087
|
+
return (0, import_echo.isSpace)(primary) && primary.state.get() === import_echo.SpaceState.SPACE_READY ? /* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
|
|
1743
2088
|
data: {
|
|
1744
|
-
active: primary.properties[
|
|
2089
|
+
active: primary.properties[import_chunk_OTDRTHT4.CollectionType.typename],
|
|
2090
|
+
id: primary.id
|
|
1745
2091
|
},
|
|
1746
2092
|
role,
|
|
1747
2093
|
...rest
|
|
1748
|
-
}) : primary instanceof
|
|
1749
|
-
node: /* @__PURE__ */
|
|
2094
|
+
}) : primary instanceof import_chunk_OTDRTHT4.CollectionType ? {
|
|
2095
|
+
node: /* @__PURE__ */ import_react.default.createElement(CollectionMain, {
|
|
1750
2096
|
collection: primary
|
|
1751
2097
|
}),
|
|
1752
2098
|
disposition: "fallback"
|
|
1753
|
-
} : typeof primary === "string" && primary.length === OBJECT_ID_LENGTH ? /* @__PURE__ */
|
|
2099
|
+
} : typeof primary === "string" && primary.length === OBJECT_ID_LENGTH ? /* @__PURE__ */ import_react.default.createElement(MissingObject, {
|
|
1754
2100
|
id: primary
|
|
1755
2101
|
}) : null;
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
}
|
|
2102
|
+
case "complementary--settings":
|
|
2103
|
+
return (0, import_echo.isSpace)(data.subject) ? /* @__PURE__ */ import_react.default.createElement(SpaceSettingsPanel, {
|
|
2104
|
+
space: data.subject
|
|
2105
|
+
}) : (0, import_echo.isEchoObject)(data.subject) ? {
|
|
2106
|
+
node: /* @__PURE__ */ import_react.default.createElement(DefaultObjectSettings, {
|
|
2107
|
+
object: data.subject
|
|
2108
|
+
}),
|
|
2109
|
+
disposition: "fallback"
|
|
2110
|
+
} : null;
|
|
1766
2111
|
case "dialog":
|
|
1767
2112
|
if (data.component === "dxos.org/plugin/space/InvitationManagerDialog") {
|
|
1768
|
-
return /* @__PURE__ */
|
|
2113
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react_ui.Dialog.Content, null, /* @__PURE__ */ import_react.default.createElement(import_react2.ClipboardProvider, null, /* @__PURE__ */ import_react.default.createElement(import_react2.InvitationManager, {
|
|
1769
2114
|
active: true,
|
|
1770
2115
|
...data.subject
|
|
1771
2116
|
})));
|
|
1772
|
-
} else {
|
|
1773
|
-
return null;
|
|
1774
2117
|
}
|
|
1775
|
-
|
|
2118
|
+
return null;
|
|
2119
|
+
case "popover": {
|
|
1776
2120
|
if (data.component === "dxos.org/plugin/space/RenameSpacePopover" && (0, import_echo.isSpace)(data.subject)) {
|
|
1777
|
-
return /* @__PURE__ */
|
|
2121
|
+
return /* @__PURE__ */ import_react.default.createElement(PopoverRenameSpace, {
|
|
1778
2122
|
space: data.subject
|
|
1779
2123
|
});
|
|
1780
2124
|
}
|
|
1781
2125
|
if (data.component === "dxos.org/plugin/space/RenameObjectPopover" && (0, import_echo_schema.isReactiveObject)(data.subject)) {
|
|
1782
|
-
return /* @__PURE__ */
|
|
2126
|
+
return /* @__PURE__ */ import_react.default.createElement(PopoverRenameObject, {
|
|
1783
2127
|
object: data.subject
|
|
1784
2128
|
});
|
|
1785
2129
|
}
|
|
1786
2130
|
return null;
|
|
2131
|
+
}
|
|
2132
|
+
// TODO(burdon): Add role name syntax to minimal plugin docs.
|
|
1787
2133
|
case "presence--glyph": {
|
|
1788
|
-
return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */
|
|
2134
|
+
return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */ import_react.default.createElement(SmallPresenceLive, {
|
|
2135
|
+
id: data.id,
|
|
1789
2136
|
viewers: state.values.viewersByObject[(0, import_echo.fullyQualifiedId)(data.object)]
|
|
1790
|
-
}) : /* @__PURE__ */
|
|
2137
|
+
}) : /* @__PURE__ */ import_react.default.createElement(SmallPresence, {
|
|
2138
|
+
id: data.id,
|
|
1791
2139
|
count: 0
|
|
1792
2140
|
});
|
|
1793
2141
|
}
|
|
@@ -1799,32 +2147,35 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1799
2147
|
return null;
|
|
1800
2148
|
}
|
|
1801
2149
|
const space = (0, import_echo.isSpace)(data.object) ? data.object : (0, import_echo.getSpace)(data.object);
|
|
1802
|
-
const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[
|
|
2150
|
+
const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_OTDRTHT4.CollectionType.typename] : void 0 : data.object;
|
|
1803
2151
|
return space && object ? {
|
|
1804
|
-
node: /* @__PURE__ */
|
|
2152
|
+
node: /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SpacePresence, {
|
|
1805
2153
|
object
|
|
1806
|
-
}), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */
|
|
2154
|
+
}), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */ import_react.default.createElement(ShareSpaceButton, {
|
|
1807
2155
|
spaceId: space.id
|
|
1808
2156
|
})),
|
|
1809
2157
|
disposition: "hoist"
|
|
1810
2158
|
} : null;
|
|
1811
2159
|
}
|
|
1812
2160
|
case "section":
|
|
1813
|
-
return data.object instanceof
|
|
2161
|
+
return data.object instanceof import_chunk_OTDRTHT4.CollectionType ? /* @__PURE__ */ import_react.default.createElement(CollectionSection, {
|
|
1814
2162
|
collection: data.object
|
|
1815
2163
|
}) : null;
|
|
1816
2164
|
case "settings":
|
|
1817
|
-
return data.plugin ===
|
|
2165
|
+
return data.plugin === import_chunk_P4XUXM7Y.meta_default.id ? /* @__PURE__ */ import_react.default.createElement(SpaceSettings, {
|
|
1818
2166
|
settings: settings.values
|
|
1819
2167
|
}) : null;
|
|
1820
2168
|
case "menu-footer":
|
|
1821
|
-
if (
|
|
1822
|
-
return
|
|
1823
|
-
} else {
|
|
1824
|
-
return /* @__PURE__ */ import_react2.default.createElement(MenuFooter, {
|
|
2169
|
+
if ((0, import_echo.isEchoObject)(data.object)) {
|
|
2170
|
+
return /* @__PURE__ */ import_react.default.createElement(MenuFooter, {
|
|
1825
2171
|
object: data.object
|
|
1826
2172
|
});
|
|
2173
|
+
} else {
|
|
2174
|
+
return null;
|
|
1827
2175
|
}
|
|
2176
|
+
case "status": {
|
|
2177
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SyncStatus, null), /* @__PURE__ */ import_react.default.createElement(SaveStatus, null));
|
|
2178
|
+
}
|
|
1828
2179
|
default:
|
|
1829
2180
|
return null;
|
|
1830
2181
|
}
|
|
@@ -1839,13 +2190,13 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1839
2190
|
const dispatch = intentPlugin?.provides.intent.dispatch;
|
|
1840
2191
|
const resolve = metadataPlugin?.provides.metadata.resolver;
|
|
1841
2192
|
const graph = graphPlugin?.provides.graph;
|
|
1842
|
-
if (!
|
|
2193
|
+
if (!client || !dispatch || !resolve || !graph) {
|
|
1843
2194
|
return [];
|
|
1844
2195
|
}
|
|
1845
2196
|
return [
|
|
1846
2197
|
// Create spaces group node.
|
|
1847
2198
|
(0, import_plugin_graph.createExtension)({
|
|
1848
|
-
id: `${
|
|
2199
|
+
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/root`,
|
|
1849
2200
|
filter: (node) => node.id === "root",
|
|
1850
2201
|
connector: () => {
|
|
1851
2202
|
const isReady = (0, import_plugin_graph.toSignal)((onChange) => {
|
|
@@ -1868,10 +2219,9 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1868
2219
|
label: [
|
|
1869
2220
|
"spaces label",
|
|
1870
2221
|
{
|
|
1871
|
-
ns:
|
|
2222
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
1872
2223
|
}
|
|
1873
2224
|
],
|
|
1874
|
-
palette: "teal",
|
|
1875
2225
|
testId: "spacePlugin.spaces",
|
|
1876
2226
|
role: "branch",
|
|
1877
2227
|
childrenPersistenceClass: "echo",
|
|
@@ -1884,8 +2234,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1884
2234
|
spacesOrder.order = nextOrder.map(({ id }) => id);
|
|
1885
2235
|
} else {
|
|
1886
2236
|
import_log.log.warn("spaces order object not found", void 0, {
|
|
1887
|
-
F:
|
|
1888
|
-
L:
|
|
2237
|
+
F: __dxlog_file6,
|
|
2238
|
+
L: 528,
|
|
1889
2239
|
S: void 0,
|
|
1890
2240
|
C: (f, a) => f(...a)
|
|
1891
2241
|
});
|
|
@@ -1902,12 +2252,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1902
2252
|
filter: (node) => node.id === SPACES,
|
|
1903
2253
|
actions: () => [
|
|
1904
2254
|
{
|
|
1905
|
-
id:
|
|
2255
|
+
id: import_chunk_P4XUXM7Y.SpaceAction.CREATE,
|
|
1906
2256
|
data: async () => {
|
|
1907
2257
|
await dispatch([
|
|
1908
2258
|
{
|
|
1909
|
-
plugin:
|
|
1910
|
-
action:
|
|
2259
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
2260
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.CREATE
|
|
1911
2261
|
},
|
|
1912
2262
|
{
|
|
1913
2263
|
action: import_app_framework.NavigationAction.OPEN
|
|
@@ -1918,22 +2268,22 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1918
2268
|
label: [
|
|
1919
2269
|
"create space label",
|
|
1920
2270
|
{
|
|
1921
|
-
ns:
|
|
2271
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
1922
2272
|
}
|
|
1923
2273
|
],
|
|
1924
|
-
icon:
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
2274
|
+
icon: "ph--plus--regular",
|
|
2275
|
+
disposition: "item",
|
|
2276
|
+
testId: "spacePlugin.createSpace",
|
|
2277
|
+
className: "pbs-4"
|
|
1928
2278
|
}
|
|
1929
2279
|
},
|
|
1930
2280
|
{
|
|
1931
|
-
id:
|
|
2281
|
+
id: import_chunk_P4XUXM7Y.SpaceAction.JOIN,
|
|
1932
2282
|
data: async () => {
|
|
1933
2283
|
await dispatch([
|
|
1934
2284
|
{
|
|
1935
|
-
plugin:
|
|
1936
|
-
action:
|
|
2285
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
2286
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.JOIN
|
|
1937
2287
|
},
|
|
1938
2288
|
{
|
|
1939
2289
|
action: import_app_framework.NavigationAction.OPEN
|
|
@@ -1944,12 +2294,13 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1944
2294
|
label: [
|
|
1945
2295
|
"join space label",
|
|
1946
2296
|
{
|
|
1947
|
-
ns:
|
|
2297
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
1948
2298
|
}
|
|
1949
2299
|
],
|
|
1950
|
-
icon:
|
|
1951
|
-
|
|
1952
|
-
testId: "spacePlugin.joinSpace"
|
|
2300
|
+
icon: "ph--sign-in--regular",
|
|
2301
|
+
disposition: "item",
|
|
2302
|
+
testId: "spacePlugin.joinSpace",
|
|
2303
|
+
className: "pbe-4"
|
|
1953
2304
|
}
|
|
1954
2305
|
}
|
|
1955
2306
|
],
|
|
@@ -1980,7 +2331,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1980
2331
|
}),
|
|
1981
2332
|
// Find an object by its fully qualified id.
|
|
1982
2333
|
(0, import_plugin_graph.createExtension)({
|
|
1983
|
-
id: `${
|
|
2334
|
+
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/objects`,
|
|
1984
2335
|
resolver: ({ id }) => {
|
|
1985
2336
|
const [spaceId, objectId] = id.split(":");
|
|
1986
2337
|
const space = client.spaces.get().find((space2) => space2.id === spaceId);
|
|
@@ -2010,7 +2361,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2010
2361
|
}),
|
|
2011
2362
|
// Create space actions and action groups.
|
|
2012
2363
|
(0, import_plugin_graph.createExtension)({
|
|
2013
|
-
id: `${
|
|
2364
|
+
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/actions`,
|
|
2014
2365
|
filter: (node) => (0, import_echo.isSpace)(node.data),
|
|
2015
2366
|
actionGroups: ({ node }) => constructSpaceActionGroups({
|
|
2016
2367
|
space: node.data,
|
|
@@ -2028,7 +2379,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2028
2379
|
}),
|
|
2029
2380
|
// Create nodes for objects in the root collection of a space.
|
|
2030
2381
|
(0, import_plugin_graph.createExtension)({
|
|
2031
|
-
id: `${
|
|
2382
|
+
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/root-collection`,
|
|
2032
2383
|
filter: (node) => (0, import_echo.isSpace)(node.data),
|
|
2033
2384
|
connector: ({ node }) => {
|
|
2034
2385
|
const space = node.data;
|
|
@@ -2036,7 +2387,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2036
2387
|
if (state2 !== import_echo.SpaceState.SPACE_READY) {
|
|
2037
2388
|
return;
|
|
2038
2389
|
}
|
|
2039
|
-
const collection = space.properties[
|
|
2390
|
+
const collection = space.properties[import_chunk_OTDRTHT4.CollectionType.typename];
|
|
2040
2391
|
if (!collection) {
|
|
2041
2392
|
return;
|
|
2042
2393
|
}
|
|
@@ -2049,7 +2400,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2049
2400
|
}),
|
|
2050
2401
|
// Create collection actions and action groups.
|
|
2051
2402
|
(0, import_plugin_graph.createExtension)({
|
|
2052
|
-
id: `${
|
|
2403
|
+
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/object-actions`,
|
|
2053
2404
|
filter: (node) => (0, import_echo.isEchoObject)(node.data),
|
|
2054
2405
|
actionGroups: ({ node }) => constructObjectActionGroups({
|
|
2055
2406
|
object: node.data,
|
|
@@ -2062,8 +2413,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2062
2413
|
}),
|
|
2063
2414
|
// Create nodes for objects in collections.
|
|
2064
2415
|
(0, import_plugin_graph.createExtension)({
|
|
2065
|
-
id: `${
|
|
2066
|
-
filter: (node) => node.data instanceof
|
|
2416
|
+
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/collection-objects`,
|
|
2417
|
+
filter: (node) => node.data instanceof import_chunk_OTDRTHT4.CollectionType,
|
|
2067
2418
|
connector: ({ node }) => {
|
|
2068
2419
|
const collection = node.data;
|
|
2069
2420
|
const space = (0, import_echo.getSpace)(collection);
|
|
@@ -2076,6 +2427,72 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2076
2427
|
resolve
|
|
2077
2428
|
})).filter(import_util.nonNullable);
|
|
2078
2429
|
}
|
|
2430
|
+
}),
|
|
2431
|
+
// Create nodes for object settings.
|
|
2432
|
+
(0, import_plugin_graph.createExtension)({
|
|
2433
|
+
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/settings-for-subject`,
|
|
2434
|
+
resolver: ({ id }) => {
|
|
2435
|
+
if (!id.endsWith("~settings")) {
|
|
2436
|
+
return;
|
|
2437
|
+
}
|
|
2438
|
+
const type = "orphan-settings-for-subject";
|
|
2439
|
+
const icon = "ph--gear--regular";
|
|
2440
|
+
const [subjectId] = id.split("~");
|
|
2441
|
+
const { spaceId, objectId } = (0, import_echo.parseId)(subjectId);
|
|
2442
|
+
const space = client.spaces.get().find((space2) => space2.id === spaceId);
|
|
2443
|
+
if (!objectId) {
|
|
2444
|
+
const label2 = space ? space.properties.name || [
|
|
2445
|
+
"unnamed space label",
|
|
2446
|
+
{
|
|
2447
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
2448
|
+
}
|
|
2449
|
+
] : [
|
|
2450
|
+
"unnamed object settings label",
|
|
2451
|
+
{
|
|
2452
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
2453
|
+
}
|
|
2454
|
+
];
|
|
2455
|
+
return {
|
|
2456
|
+
id,
|
|
2457
|
+
type,
|
|
2458
|
+
data: null,
|
|
2459
|
+
properties: {
|
|
2460
|
+
icon,
|
|
2461
|
+
label: label2,
|
|
2462
|
+
showResolvedThreads: false,
|
|
2463
|
+
object: null,
|
|
2464
|
+
space
|
|
2465
|
+
}
|
|
2466
|
+
};
|
|
2467
|
+
}
|
|
2468
|
+
const object = (0, import_plugin_graph.toSignal)((onChange) => {
|
|
2469
|
+
const timeout = setTimeout(async () => {
|
|
2470
|
+
await space?.db.loadObjectById(objectId);
|
|
2471
|
+
onChange();
|
|
2472
|
+
});
|
|
2473
|
+
return () => clearTimeout(timeout);
|
|
2474
|
+
}, () => space?.db.getObjectById(objectId), subjectId);
|
|
2475
|
+
if (!object || !subjectId) {
|
|
2476
|
+
return;
|
|
2477
|
+
}
|
|
2478
|
+
const meta = resolve((0, import_echo.getTypename)(object) ?? "");
|
|
2479
|
+
const label = meta.label?.(object) || object.name || meta.placeholder || [
|
|
2480
|
+
"unnamed object settings label",
|
|
2481
|
+
{
|
|
2482
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
2483
|
+
}
|
|
2484
|
+
];
|
|
2485
|
+
return {
|
|
2486
|
+
id,
|
|
2487
|
+
type,
|
|
2488
|
+
data: null,
|
|
2489
|
+
properties: {
|
|
2490
|
+
icon,
|
|
2491
|
+
label,
|
|
2492
|
+
object
|
|
2493
|
+
}
|
|
2494
|
+
};
|
|
2495
|
+
}
|
|
2079
2496
|
})
|
|
2080
2497
|
];
|
|
2081
2498
|
},
|
|
@@ -2089,8 +2506,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2089
2506
|
inputType: SPACES,
|
|
2090
2507
|
outputType: DIRECTORY_TYPE,
|
|
2091
2508
|
serialize: (node) => ({
|
|
2092
|
-
name: translations_default[0]["en-US"][
|
|
2093
|
-
data: translations_default[0]["en-US"][
|
|
2509
|
+
name: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["spaces label"],
|
|
2510
|
+
data: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["spaces label"],
|
|
2094
2511
|
type: DIRECTORY_TYPE
|
|
2095
2512
|
}),
|
|
2096
2513
|
deserialize: () => {
|
|
@@ -2100,14 +2517,14 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2100
2517
|
inputType: SPACE_TYPE,
|
|
2101
2518
|
outputType: DIRECTORY_TYPE,
|
|
2102
2519
|
serialize: (node) => ({
|
|
2103
|
-
name: node.data.properties.name ?? translations_default[0]["en-US"][
|
|
2104
|
-
data: node.data.properties.name ?? translations_default[0]["en-US"][
|
|
2520
|
+
name: node.data.properties.name ?? translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["unnamed space label"],
|
|
2521
|
+
data: node.data.properties.name ?? translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["unnamed space label"],
|
|
2105
2522
|
type: DIRECTORY_TYPE
|
|
2106
2523
|
}),
|
|
2107
2524
|
deserialize: async (data) => {
|
|
2108
2525
|
const result = await dispatch({
|
|
2109
|
-
plugin:
|
|
2110
|
-
action:
|
|
2526
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
2527
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.CREATE,
|
|
2111
2528
|
data: {
|
|
2112
2529
|
name: data.name
|
|
2113
2530
|
}
|
|
@@ -2116,25 +2533,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2116
2533
|
}
|
|
2117
2534
|
},
|
|
2118
2535
|
{
|
|
2119
|
-
inputType:
|
|
2536
|
+
inputType: import_chunk_OTDRTHT4.CollectionType.typename,
|
|
2120
2537
|
outputType: DIRECTORY_TYPE,
|
|
2121
2538
|
serialize: (node) => ({
|
|
2122
|
-
name: node.data.name ?? translations_default[0]["en-US"][
|
|
2123
|
-
data: node.data.name ?? translations_default[0]["en-US"][
|
|
2539
|
+
name: node.data.name ?? translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["unnamed collection label"],
|
|
2540
|
+
data: node.data.name ?? translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["unnamed collection label"],
|
|
2124
2541
|
type: DIRECTORY_TYPE
|
|
2125
2542
|
}),
|
|
2126
2543
|
deserialize: async (data, ancestors) => {
|
|
2127
2544
|
const space = ancestors.find(import_echo.isSpace);
|
|
2128
|
-
const collection = ancestors.findLast((ancestor) => ancestor instanceof
|
|
2545
|
+
const collection = ancestors.findLast((ancestor) => ancestor instanceof import_chunk_OTDRTHT4.CollectionType) ?? space?.properties[import_chunk_OTDRTHT4.CollectionType.typename];
|
|
2129
2546
|
if (!space || !collection) {
|
|
2130
2547
|
return;
|
|
2131
2548
|
}
|
|
2132
2549
|
const result = await dispatch({
|
|
2133
|
-
plugin:
|
|
2134
|
-
action:
|
|
2550
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
2551
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
|
|
2135
2552
|
data: {
|
|
2136
2553
|
target: collection,
|
|
2137
|
-
object: (0, import_echo.create)(
|
|
2554
|
+
object: (0, import_echo.create)(import_chunk_OTDRTHT4.CollectionType, {
|
|
2138
2555
|
name: data.name,
|
|
2139
2556
|
objects: [],
|
|
2140
2557
|
views: {}
|
|
@@ -2152,23 +2569,23 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2152
2569
|
const clientPlugin2 = (0, import_app_framework.resolvePlugin)(plugins, import_plugin_client.parseClientPlugin);
|
|
2153
2570
|
const client = clientPlugin2?.provides.client;
|
|
2154
2571
|
switch (intent.action) {
|
|
2155
|
-
case
|
|
2572
|
+
case import_chunk_P4XUXM7Y.SpaceAction.WAIT_FOR_OBJECT: {
|
|
2156
2573
|
state.values.awaiting = intent.data?.id;
|
|
2157
2574
|
return {
|
|
2158
2575
|
data: true
|
|
2159
2576
|
};
|
|
2160
2577
|
}
|
|
2161
|
-
case
|
|
2578
|
+
case import_chunk_P4XUXM7Y.SpaceAction.CREATE: {
|
|
2162
2579
|
if (!client) {
|
|
2163
2580
|
return;
|
|
2164
2581
|
}
|
|
2165
2582
|
const space = await client.spaces.create(intent.data);
|
|
2166
2583
|
await space.waitUntilReady();
|
|
2167
|
-
const collection = (0, import_echo.create)(
|
|
2584
|
+
const collection = (0, import_echo.create)(import_chunk_OTDRTHT4.CollectionType, {
|
|
2168
2585
|
objects: [],
|
|
2169
2586
|
views: {}
|
|
2170
2587
|
});
|
|
2171
|
-
space.properties[
|
|
2588
|
+
space.properties[import_chunk_OTDRTHT4.CollectionType.typename] = collection;
|
|
2172
2589
|
if (import_migrations.Migrations.versionProperty) {
|
|
2173
2590
|
space.properties[import_migrations.Migrations.versionProperty] = import_migrations.Migrations.targetVersion;
|
|
2174
2591
|
}
|
|
@@ -2183,6 +2600,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2183
2600
|
}
|
|
2184
2601
|
},
|
|
2185
2602
|
intents: [
|
|
2603
|
+
...settings.values.onSpaceCreate ? [
|
|
2604
|
+
[
|
|
2605
|
+
{
|
|
2606
|
+
action: settings.values.onSpaceCreate,
|
|
2607
|
+
data: {
|
|
2608
|
+
space
|
|
2609
|
+
}
|
|
2610
|
+
},
|
|
2611
|
+
{
|
|
2612
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
|
|
2613
|
+
data: {
|
|
2614
|
+
target: space
|
|
2615
|
+
}
|
|
2616
|
+
},
|
|
2617
|
+
{
|
|
2618
|
+
action: import_app_framework.NavigationAction.EXPOSE
|
|
2619
|
+
}
|
|
2620
|
+
]
|
|
2621
|
+
] : [],
|
|
2186
2622
|
[
|
|
2187
2623
|
{
|
|
2188
2624
|
action: import_meta.ObservabilityAction.SEND_EVENT,
|
|
@@ -2197,7 +2633,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2197
2633
|
]
|
|
2198
2634
|
};
|
|
2199
2635
|
}
|
|
2200
|
-
case
|
|
2636
|
+
case import_chunk_P4XUXM7Y.SpaceAction.JOIN: {
|
|
2201
2637
|
if (client) {
|
|
2202
2638
|
const { space } = await client.shell.joinSpace({
|
|
2203
2639
|
invitationCode: intent.data?.invitationCode
|
|
@@ -2214,6 +2650,20 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2214
2650
|
}
|
|
2215
2651
|
},
|
|
2216
2652
|
intents: [
|
|
2653
|
+
[
|
|
2654
|
+
{
|
|
2655
|
+
action: import_app_framework.LayoutAction.SET_LAYOUT,
|
|
2656
|
+
data: {
|
|
2657
|
+
element: "toast",
|
|
2658
|
+
subject: {
|
|
2659
|
+
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/join-success`,
|
|
2660
|
+
duration: 1e4,
|
|
2661
|
+
title: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["join success label"],
|
|
2662
|
+
closeLabel: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["dismiss label"]
|
|
2663
|
+
}
|
|
2664
|
+
}
|
|
2665
|
+
}
|
|
2666
|
+
],
|
|
2217
2667
|
[
|
|
2218
2668
|
{
|
|
2219
2669
|
action: import_meta.ObservabilityAction.SEND_EVENT,
|
|
@@ -2231,7 +2681,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2231
2681
|
}
|
|
2232
2682
|
break;
|
|
2233
2683
|
}
|
|
2234
|
-
case
|
|
2684
|
+
case import_chunk_P4XUXM7Y.SpaceAction.SHARE: {
|
|
2235
2685
|
const spaceId = intent.data?.spaceId;
|
|
2236
2686
|
if (clientPlugin2 && typeof spaceId === "string") {
|
|
2237
2687
|
if (!navigationPlugin?.provides.location.active) {
|
|
@@ -2264,7 +2714,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2264
2714
|
}
|
|
2265
2715
|
break;
|
|
2266
2716
|
}
|
|
2267
|
-
case
|
|
2717
|
+
case import_chunk_P4XUXM7Y.SpaceAction.LOCK: {
|
|
2268
2718
|
const space = intent.data?.space;
|
|
2269
2719
|
if ((0, import_echo.isSpace)(space)) {
|
|
2270
2720
|
space.properties[COMPOSER_SPACE_LOCK] = true;
|
|
@@ -2287,7 +2737,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2287
2737
|
}
|
|
2288
2738
|
break;
|
|
2289
2739
|
}
|
|
2290
|
-
case
|
|
2740
|
+
case import_chunk_P4XUXM7Y.SpaceAction.UNLOCK: {
|
|
2291
2741
|
const space = intent.data?.space;
|
|
2292
2742
|
if ((0, import_echo.isSpace)(space)) {
|
|
2293
2743
|
space.properties[COMPOSER_SPACE_LOCK] = false;
|
|
@@ -2310,7 +2760,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2310
2760
|
}
|
|
2311
2761
|
break;
|
|
2312
2762
|
}
|
|
2313
|
-
case
|
|
2763
|
+
case import_chunk_P4XUXM7Y.SpaceAction.RENAME: {
|
|
2314
2764
|
const { caller, space } = intent.data ?? {};
|
|
2315
2765
|
if (typeof caller === "string" && (0, import_echo.isSpace)(space)) {
|
|
2316
2766
|
return {
|
|
@@ -2331,7 +2781,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2331
2781
|
}
|
|
2332
2782
|
break;
|
|
2333
2783
|
}
|
|
2334
|
-
case
|
|
2784
|
+
case import_chunk_P4XUXM7Y.SpaceAction.OPEN: {
|
|
2335
2785
|
const space = intent.data?.space;
|
|
2336
2786
|
if ((0, import_echo.isSpace)(space)) {
|
|
2337
2787
|
await space.open();
|
|
@@ -2341,7 +2791,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2341
2791
|
}
|
|
2342
2792
|
break;
|
|
2343
2793
|
}
|
|
2344
|
-
case
|
|
2794
|
+
case import_chunk_P4XUXM7Y.SpaceAction.CLOSE: {
|
|
2345
2795
|
const space = intent.data?.space;
|
|
2346
2796
|
if ((0, import_echo.isSpace)(space)) {
|
|
2347
2797
|
await space.close();
|
|
@@ -2351,7 +2801,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2351
2801
|
}
|
|
2352
2802
|
break;
|
|
2353
2803
|
}
|
|
2354
|
-
case
|
|
2804
|
+
case import_chunk_P4XUXM7Y.SpaceAction.MIGRATE: {
|
|
2355
2805
|
const space = intent.data?.space;
|
|
2356
2806
|
if ((0, import_echo.isSpace)(space)) {
|
|
2357
2807
|
if (space.state.get() === import_echo.SpaceState.SPACE_REQUIRES_MIGRATION) {
|
|
@@ -2380,7 +2830,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2380
2830
|
}
|
|
2381
2831
|
break;
|
|
2382
2832
|
}
|
|
2383
|
-
case
|
|
2833
|
+
case import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT: {
|
|
2384
2834
|
const object = intent.data?.object ?? intent.data?.result;
|
|
2385
2835
|
if (!(0, import_echo_schema.isReactiveObject)(object)) {
|
|
2386
2836
|
return;
|
|
@@ -2399,16 +2849,15 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2399
2849
|
data: {
|
|
2400
2850
|
element: "toast",
|
|
2401
2851
|
subject: {
|
|
2402
|
-
id: `${
|
|
2403
|
-
title: translations_default[0]["en-US"][
|
|
2404
|
-
description: translations_default[0]["en-US"][
|
|
2852
|
+
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/space-limit`,
|
|
2853
|
+
title: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["space limit label"],
|
|
2854
|
+
description: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["space limit description"],
|
|
2405
2855
|
duration: 5e3,
|
|
2406
|
-
icon:
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
actionAlt: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["remove deleted objects alt"],
|
|
2856
|
+
icon: "ph--warning--regular",
|
|
2857
|
+
actionLabel: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["remove deleted objects label"],
|
|
2858
|
+
actionAlt: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["remove deleted objects alt"],
|
|
2410
2859
|
// TODO(wittjosiah): Use OS namespace.
|
|
2411
|
-
closeLabel: translations_default[0]["en-US"][
|
|
2860
|
+
closeLabel: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["space limit close label"],
|
|
2412
2861
|
onAction: () => space.db.coreDatabase.unlinkDeletedObjects()
|
|
2413
2862
|
}
|
|
2414
2863
|
}
|
|
@@ -2428,25 +2877,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2428
2877
|
]
|
|
2429
2878
|
};
|
|
2430
2879
|
}
|
|
2431
|
-
if (intent.data?.target instanceof
|
|
2880
|
+
if (intent.data?.target instanceof import_chunk_OTDRTHT4.CollectionType) {
|
|
2432
2881
|
intent.data?.target.objects.push(object);
|
|
2433
2882
|
} else if ((0, import_echo.isSpace)(intent.data?.target)) {
|
|
2434
|
-
const collection = space.properties[
|
|
2435
|
-
if (collection instanceof
|
|
2883
|
+
const collection = space.properties[import_chunk_OTDRTHT4.CollectionType.typename];
|
|
2884
|
+
if (collection instanceof import_chunk_OTDRTHT4.CollectionType) {
|
|
2436
2885
|
collection.objects.push(object);
|
|
2437
2886
|
} else {
|
|
2438
|
-
const collection2 = (0, import_echo.create)(
|
|
2887
|
+
const collection2 = (0, import_echo.create)(import_chunk_OTDRTHT4.CollectionType, {
|
|
2439
2888
|
objects: [
|
|
2440
2889
|
object
|
|
2441
2890
|
],
|
|
2442
2891
|
views: {}
|
|
2443
2892
|
});
|
|
2444
|
-
space.properties[
|
|
2893
|
+
space.properties[import_chunk_OTDRTHT4.CollectionType.typename] = collection2;
|
|
2445
2894
|
}
|
|
2446
2895
|
}
|
|
2447
2896
|
return {
|
|
2448
2897
|
data: {
|
|
2449
|
-
id: object
|
|
2898
|
+
id: (0, import_echo.fullyQualifiedId)(object),
|
|
2450
2899
|
object,
|
|
2451
2900
|
activeParts: {
|
|
2452
2901
|
main: [
|
|
@@ -2471,7 +2920,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2471
2920
|
]
|
|
2472
2921
|
};
|
|
2473
2922
|
}
|
|
2474
|
-
case
|
|
2923
|
+
case import_chunk_P4XUXM7Y.SpaceAction.REMOVE_OBJECT: {
|
|
2475
2924
|
const object = intent.data?.object ?? intent.data?.result;
|
|
2476
2925
|
const space = (0, import_echo.getSpace)(object);
|
|
2477
2926
|
if (!((0, import_echo.isEchoObject)(object) && space)) {
|
|
@@ -2481,12 +2930,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2481
2930
|
const activeParts = navigationPlugin?.provides.location.active;
|
|
2482
2931
|
const openObjectIds = new Set((0, import_app_framework.openIds)(activeParts ?? {}));
|
|
2483
2932
|
if (!intent.undo && resolve) {
|
|
2484
|
-
const parentCollection = intent.data?.collection ?? space.properties[
|
|
2933
|
+
const parentCollection = intent.data?.collection ?? space.properties[import_chunk_OTDRTHT4.CollectionType.typename];
|
|
2485
2934
|
const nestedObjects = await getNestedObjects(object, resolve);
|
|
2486
2935
|
const deletionData = {
|
|
2487
2936
|
object,
|
|
2488
2937
|
parentCollection,
|
|
2489
|
-
index: parentCollection instanceof
|
|
2938
|
+
index: parentCollection instanceof import_chunk_OTDRTHT4.CollectionType ? parentCollection.objects.indexOf(object) : -1,
|
|
2490
2939
|
nestedObjects,
|
|
2491
2940
|
wasActive: [
|
|
2492
2941
|
object,
|
|
@@ -2499,13 +2948,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2499
2948
|
data: {
|
|
2500
2949
|
activeParts: {
|
|
2501
2950
|
main: deletionData.wasActive,
|
|
2502
|
-
sidebar: deletionData.wasActive
|
|
2503
|
-
complementary: deletionData.wasActive
|
|
2951
|
+
sidebar: deletionData.wasActive
|
|
2504
2952
|
}
|
|
2505
2953
|
}
|
|
2506
2954
|
});
|
|
2507
2955
|
}
|
|
2508
|
-
if (parentCollection instanceof
|
|
2956
|
+
if (parentCollection instanceof import_chunk_OTDRTHT4.CollectionType) {
|
|
2509
2957
|
const index = parentCollection.objects.indexOf(object);
|
|
2510
2958
|
if (index !== -1) {
|
|
2511
2959
|
parentCollection.objects.splice(index, 1);
|
|
@@ -2515,18 +2963,18 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2515
2963
|
space.db.remove(obj);
|
|
2516
2964
|
});
|
|
2517
2965
|
space.db.remove(object);
|
|
2518
|
-
const undoMessageKey = object instanceof
|
|
2966
|
+
const undoMessageKey = object instanceof import_chunk_OTDRTHT4.CollectionType ? "collection deleted label" : "object deleted label";
|
|
2519
2967
|
return {
|
|
2520
2968
|
data: true,
|
|
2521
2969
|
undoable: {
|
|
2522
2970
|
// Consider using a translation key here.
|
|
2523
|
-
message: translations_default[0]["en-US"][
|
|
2971
|
+
message: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN][undoMessageKey],
|
|
2524
2972
|
data: deletionData
|
|
2525
2973
|
}
|
|
2526
2974
|
};
|
|
2527
2975
|
} else {
|
|
2528
2976
|
const undoData = intent.data;
|
|
2529
|
-
if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof
|
|
2977
|
+
if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof import_chunk_OTDRTHT4.CollectionType) {
|
|
2530
2978
|
const restoredObject = space.db.add(undoData.object);
|
|
2531
2979
|
undoData.nestedObjects.forEach((obj) => {
|
|
2532
2980
|
space.db.add(obj);
|
|
@@ -2553,7 +3001,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2553
3001
|
};
|
|
2554
3002
|
}
|
|
2555
3003
|
}
|
|
2556
|
-
case
|
|
3004
|
+
case import_chunk_P4XUXM7Y.SpaceAction.RENAME_OBJECT: {
|
|
2557
3005
|
const object = intent.data?.object ?? intent.data?.result;
|
|
2558
3006
|
const caller = intent.data?.caller;
|
|
2559
3007
|
if ((0, import_echo_schema.isReactiveObject)(object) && caller) {
|
|
@@ -2575,18 +3023,19 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2575
3023
|
}
|
|
2576
3024
|
break;
|
|
2577
3025
|
}
|
|
2578
|
-
case
|
|
3026
|
+
case import_chunk_P4XUXM7Y.SpaceAction.DUPLICATE_OBJECT: {
|
|
2579
3027
|
const originalObject = intent.data?.object ?? intent.data?.result;
|
|
2580
3028
|
const resolve = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseMetadataResolverPlugin)?.provides.metadata.resolver;
|
|
2581
|
-
|
|
3029
|
+
const space = (0, import_echo.isSpace)(intent.data?.target) ? intent.data?.target : (0, import_echo.getSpace)(intent.data?.target);
|
|
3030
|
+
if (!(0, import_echo.isEchoObject)(originalObject) || !resolve || !space) {
|
|
2582
3031
|
return;
|
|
2583
3032
|
}
|
|
2584
|
-
const newObject = await cloneObject(originalObject, resolve);
|
|
3033
|
+
const newObject = await cloneObject(originalObject, resolve, space);
|
|
2585
3034
|
return {
|
|
2586
3035
|
intents: [
|
|
2587
3036
|
[
|
|
2588
3037
|
{
|
|
2589
|
-
action:
|
|
3038
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
|
|
2590
3039
|
data: {
|
|
2591
3040
|
object: newObject,
|
|
2592
3041
|
target: intent.data?.target
|
|
@@ -2596,7 +3045,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2596
3045
|
]
|
|
2597
3046
|
};
|
|
2598
3047
|
}
|
|
2599
|
-
case
|
|
3048
|
+
case import_chunk_P4XUXM7Y.SpaceAction.TOGGLE_HIDDEN: {
|
|
2600
3049
|
settings.values.showHidden = intent.data?.state ?? !settings.values.showHidden;
|
|
2601
3050
|
return {
|
|
2602
3051
|
data: true
|
|
@@ -2619,10 +3068,10 @@ var src_default = SpacePlugin;
|
|
|
2619
3068
|
CollectionSection,
|
|
2620
3069
|
CollectionType,
|
|
2621
3070
|
ContactType,
|
|
2622
|
-
|
|
2623
|
-
EmptyTree,
|
|
3071
|
+
DefaultObjectSettings,
|
|
2624
3072
|
FullPresence,
|
|
2625
3073
|
MenuFooter,
|
|
3074
|
+
MessageState,
|
|
2626
3075
|
MessageType,
|
|
2627
3076
|
MissingObject,
|
|
2628
3077
|
PersistenceStatus,
|
|
@@ -2634,6 +3083,7 @@ var src_default = SpacePlugin;
|
|
|
2634
3083
|
SPACE_PLUGIN,
|
|
2635
3084
|
SPACE_PLUGIN_SHORT_ID,
|
|
2636
3085
|
SPACE_TYPE,
|
|
3086
|
+
SaveStatus,
|
|
2637
3087
|
ShareSpaceButton,
|
|
2638
3088
|
ShareSpaceButtonImpl,
|
|
2639
3089
|
SmallPresence,
|
|
@@ -2643,6 +3093,10 @@ var src_default = SpacePlugin;
|
|
|
2643
3093
|
SpacePlugin,
|
|
2644
3094
|
SpacePresence,
|
|
2645
3095
|
SpaceSettings,
|
|
3096
|
+
SpaceSettingsPanel,
|
|
3097
|
+
SyncStatus,
|
|
3098
|
+
SyncStatusDetail,
|
|
3099
|
+
SyncStatusIndicator,
|
|
2646
3100
|
ThreadStatus,
|
|
2647
3101
|
ThreadType,
|
|
2648
3102
|
cloneObject,
|
|
@@ -2656,6 +3110,7 @@ var src_default = SpacePlugin;
|
|
|
2656
3110
|
getNestedObjects,
|
|
2657
3111
|
getSpaceDisplayName,
|
|
2658
3112
|
memoizeQuery,
|
|
3113
|
+
parseSpaceInitPlugin,
|
|
2659
3114
|
parseSpacePlugin,
|
|
2660
3115
|
translations
|
|
2661
3116
|
});
|