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