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