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