@dxos/plugin-space 0.8.4-main.72ec0f3 → 0.8.4-main.7ace549

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.
Files changed (187) hide show
  1. package/dist/lib/browser/{ObjectDetailsPanel-2BRUBHP6.mjs → ObjectDetailsPanel-ACGHWPDX.mjs} +2 -2
  2. package/dist/lib/browser/{ObjectDetailsPanel-2BRUBHP6.mjs.map → ObjectDetailsPanel-ACGHWPDX.mjs.map} +3 -3
  3. package/dist/lib/browser/{ObjectSettings-5LLWCVEK.mjs → ObjectSettings-U3IH7BMV.mjs} +2 -2
  4. package/dist/lib/browser/{ObjectSettings-5LLWCVEK.mjs.map → ObjectSettings-U3IH7BMV.mjs.map} +3 -3
  5. package/dist/lib/browser/{RecordArticle-SXDRWTTU.mjs → RecordArticle-2PFEBPXY.mjs} +1 -1
  6. package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-builder-VQAB3GCQ.mjs → app-graph-builder-HABMCWAI.mjs} +140 -151
  8. package/dist/lib/browser/app-graph-builder-HABMCWAI.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-serializer-KSLKMEPP.mjs → app-graph-serializer-G3VFEGTN.mjs} +4 -4
  10. package/dist/lib/browser/chunk-6A3NWBB6.mjs +392 -0
  11. package/dist/lib/browser/chunk-6A3NWBB6.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-K5J7ZB5P.mjs → chunk-C6DAPIFF.mjs} +3 -3
  13. package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-ERQMHU7L.mjs → chunk-GJOZILGC.mjs} +163 -105
  15. package/dist/lib/browser/chunk-GJOZILGC.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-J2BUK5E6.mjs → chunk-KCZ527AM.mjs} +169 -101
  17. package/dist/lib/browser/chunk-KCZ527AM.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-PU5IOFMG.mjs → chunk-P25R3AOK.mjs} +4 -47
  19. package/dist/lib/browser/{chunk-PU5IOFMG.mjs.map → chunk-P25R3AOK.mjs.map} +4 -4
  20. package/dist/lib/browser/{chunk-OLBBSOVI.mjs → chunk-POFUXISV.mjs} +53 -59
  21. package/dist/lib/browser/chunk-POFUXISV.mjs.map +7 -0
  22. package/dist/lib/browser/index.mjs +47 -94
  23. package/dist/lib/browser/index.mjs.map +3 -3
  24. package/dist/lib/browser/{intent-resolver-Q2XWHAVA.mjs → intent-resolver-RZEWNJ2K.mjs} +51 -40
  25. package/dist/lib/browser/intent-resolver-RZEWNJ2K.mjs.map +7 -0
  26. package/dist/lib/browser/meta.json +1 -1
  27. package/dist/lib/browser/{react-root-MM4HADPE.mjs → react-root-JCRD74GI.mjs} +6 -6
  28. package/dist/lib/browser/{react-surface-SGZC3Y4U.mjs → react-surface-VOETEAG3.mjs} +28 -14
  29. package/dist/lib/browser/react-surface-VOETEAG3.mjs.map +7 -0
  30. package/dist/lib/browser/repair-CNLE35NF.mjs +44 -0
  31. package/dist/lib/browser/repair-CNLE35NF.mjs.map +7 -0
  32. package/dist/lib/browser/{settings-WKLGKUHQ.mjs → settings-TRLI52I5.mjs} +2 -2
  33. package/dist/lib/browser/{spaces-ready-C5QC2UFL.mjs → spaces-ready-OHGCWZHQ.mjs} +13 -7
  34. package/dist/lib/browser/{spaces-ready-C5QC2UFL.mjs.map → spaces-ready-OHGCWZHQ.mjs.map} +2 -2
  35. package/dist/lib/browser/{state-Q7YRE5KG.mjs → state-C7N6EDDZ.mjs} +2 -2
  36. package/dist/lib/browser/types/index.mjs +9 -3
  37. package/dist/lib/node-esm/{ObjectDetailsPanel-6PZQIQG3.mjs → ObjectDetailsPanel-6OFTT3GG.mjs} +2 -2
  38. package/dist/lib/node-esm/{ObjectDetailsPanel-6PZQIQG3.mjs.map → ObjectDetailsPanel-6OFTT3GG.mjs.map} +3 -3
  39. package/dist/lib/node-esm/{ObjectSettings-OQSBOH7K.mjs → ObjectSettings-YXPJQMJ5.mjs} +2 -2
  40. package/dist/lib/node-esm/{ObjectSettings-OQSBOH7K.mjs.map → ObjectSettings-YXPJQMJ5.mjs.map} +3 -3
  41. package/dist/lib/node-esm/{RecordArticle-NACBH42P.mjs → RecordArticle-SSJ7PULS.mjs} +1 -1
  42. package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs.map +7 -0
  43. package/dist/lib/node-esm/{app-graph-builder-24JCLJPX.mjs → app-graph-builder-T6VJKIOA.mjs} +140 -151
  44. package/dist/lib/node-esm/app-graph-builder-T6VJKIOA.mjs.map +7 -0
  45. package/dist/lib/node-esm/{app-graph-serializer-R723K764.mjs → app-graph-serializer-2NLWWFUB.mjs} +4 -4
  46. package/dist/lib/node-esm/{chunk-TJPQDQNI.mjs → chunk-7EV4SN47.mjs} +4 -47
  47. package/dist/lib/node-esm/{chunk-TJPQDQNI.mjs.map → chunk-7EV4SN47.mjs.map} +4 -4
  48. package/dist/lib/node-esm/{chunk-WC4VBFMA.mjs → chunk-AX3UGL5D.mjs} +53 -59
  49. package/dist/lib/node-esm/chunk-AX3UGL5D.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-VH2EBZEV.mjs → chunk-I6FZP42D.mjs} +163 -105
  51. package/dist/lib/node-esm/chunk-I6FZP42D.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-ITQFSFQ3.mjs → chunk-JAMGJUFU.mjs} +169 -101
  53. package/dist/lib/node-esm/chunk-JAMGJUFU.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-Z7BB6HC2.mjs → chunk-WWGV5FJM.mjs} +3 -3
  55. package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-X34VDVMY.mjs +393 -0
  57. package/dist/lib/node-esm/chunk-X34VDVMY.mjs.map +7 -0
  58. package/dist/lib/node-esm/index.mjs +47 -94
  59. package/dist/lib/node-esm/index.mjs.map +3 -3
  60. package/dist/lib/node-esm/{intent-resolver-YK4ESSET.mjs → intent-resolver-4PHJWDXW.mjs} +51 -40
  61. package/dist/lib/node-esm/intent-resolver-4PHJWDXW.mjs.map +7 -0
  62. package/dist/lib/node-esm/meta.json +1 -1
  63. package/dist/lib/node-esm/{react-root-5ANDLQMX.mjs → react-root-O5I5CDJ7.mjs} +6 -6
  64. package/dist/lib/node-esm/{react-surface-V7J2QB44.mjs → react-surface-J3XDMU2D.mjs} +28 -14
  65. package/dist/lib/node-esm/react-surface-J3XDMU2D.mjs.map +7 -0
  66. package/dist/lib/node-esm/repair-EHZS6MFY.mjs +45 -0
  67. package/dist/lib/node-esm/repair-EHZS6MFY.mjs.map +7 -0
  68. package/dist/lib/node-esm/{settings-RBB5633M.mjs → settings-MNQTKHL7.mjs} +2 -2
  69. package/dist/lib/node-esm/{spaces-ready-SJCXV6YH.mjs → spaces-ready-ZPU24DA2.mjs} +13 -7
  70. package/dist/lib/node-esm/{spaces-ready-SJCXV6YH.mjs.map → spaces-ready-ZPU24DA2.mjs.map} +2 -2
  71. package/dist/lib/node-esm/{state-362I5BMK.mjs → state-45TXZQJ6.mjs} +2 -2
  72. package/dist/lib/node-esm/types/index.mjs +9 -3
  73. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/capabilities.d.ts +9 -4
  76. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/index.d.ts +1 -1
  78. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/repair.d.ts +4 -0
  82. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  84. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  85. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +147 -253
  86. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +14 -7
  88. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  89. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +147 -253
  90. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -1
  91. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  92. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +147 -253
  93. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -1
  94. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +3 -3
  95. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  96. package/dist/types/src/components/RecordArticle.stories.d.ts +147 -253
  97. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -1
  98. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  99. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  100. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts +2 -2
  101. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -1
  102. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +147 -253
  103. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  104. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  105. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +147 -253
  106. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  107. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +147 -253
  108. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  110. package/dist/types/src/components/index.d.ts +2 -2
  111. package/dist/types/src/helpers/query.d.ts +1 -1
  112. package/dist/types/src/helpers/query.d.ts.map +1 -1
  113. package/dist/types/src/hooks/useTypeOptions.d.ts +2 -2
  114. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -1
  115. package/dist/types/src/translations.d.ts +147 -253
  116. package/dist/types/src/translations.d.ts.map +1 -1
  117. package/dist/types/src/types/form.d.ts +24 -0
  118. package/dist/types/src/types/form.d.ts.map +1 -0
  119. package/dist/types/src/types/index.d.ts +1 -0
  120. package/dist/types/src/types/index.d.ts.map +1 -1
  121. package/dist/types/src/types/types.d.ts +29 -72
  122. package/dist/types/src/types/types.d.ts.map +1 -1
  123. package/dist/types/src/util.d.ts +16 -32
  124. package/dist/types/src/util.d.ts.map +1 -1
  125. package/dist/types/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +54 -50
  127. package/src/SpacePlugin.ts +34 -84
  128. package/src/capabilities/app-graph-builder.ts +130 -227
  129. package/src/capabilities/capabilities.ts +10 -5
  130. package/src/capabilities/index.ts +1 -1
  131. package/src/capabilities/intent-resolver.ts +31 -35
  132. package/src/capabilities/react-surface.tsx +34 -8
  133. package/src/capabilities/repair.ts +57 -0
  134. package/src/capabilities/spaces-ready.ts +7 -1
  135. package/src/components/CreateDialog/CreateObjectDialog.tsx +33 -23
  136. package/src/components/CreateDialog/CreateObjectPanel.tsx +32 -25
  137. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +1 -1
  138. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -5
  139. package/src/components/ObjectSettings/BaseObjectSettings.tsx +1 -1
  140. package/src/components/ObjectSettings/ForeignKeys.tsx +5 -5
  141. package/src/components/RecordArticle.tsx +6 -6
  142. package/src/components/SchemaContainer.tsx +2 -2
  143. package/src/components/SpacePresence/SpacePresence.tsx +2 -2
  144. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +25 -6
  145. package/src/components/ViewEditor.tsx +9 -3
  146. package/src/helpers/query.ts +1 -1
  147. package/src/hooks/useTypeOptions.ts +3 -35
  148. package/src/translations.ts +52 -57
  149. package/src/types/form.ts +75 -0
  150. package/src/types/index.ts +1 -0
  151. package/src/types/types.ts +26 -36
  152. package/src/util.tsx +165 -107
  153. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +0 -7
  154. package/dist/lib/browser/app-graph-builder-VQAB3GCQ.mjs.map +0 -7
  155. package/dist/lib/browser/chunk-ERQMHU7L.mjs.map +0 -7
  156. package/dist/lib/browser/chunk-J2BUK5E6.mjs.map +0 -7
  157. package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +0 -7
  158. package/dist/lib/browser/chunk-M2Z6D4ZI.mjs +0 -349
  159. package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +0 -7
  160. package/dist/lib/browser/chunk-OLBBSOVI.mjs.map +0 -7
  161. package/dist/lib/browser/intent-resolver-Q2XWHAVA.mjs.map +0 -7
  162. package/dist/lib/browser/react-surface-SGZC3Y4U.mjs.map +0 -7
  163. package/dist/lib/browser/schema-defs-QPI2JU3X.mjs +0 -26
  164. package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +0 -7
  165. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +0 -7
  166. package/dist/lib/node-esm/app-graph-builder-24JCLJPX.mjs.map +0 -7
  167. package/dist/lib/node-esm/chunk-2PN7QNGV.mjs +0 -350
  168. package/dist/lib/node-esm/chunk-2PN7QNGV.mjs.map +0 -7
  169. package/dist/lib/node-esm/chunk-ITQFSFQ3.mjs.map +0 -7
  170. package/dist/lib/node-esm/chunk-VH2EBZEV.mjs.map +0 -7
  171. package/dist/lib/node-esm/chunk-WC4VBFMA.mjs.map +0 -7
  172. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +0 -7
  173. package/dist/lib/node-esm/intent-resolver-YK4ESSET.mjs.map +0 -7
  174. package/dist/lib/node-esm/react-surface-V7J2QB44.mjs.map +0 -7
  175. package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs +0 -27
  176. package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +0 -7
  177. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  178. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  179. package/src/capabilities/schema-defs.ts +0 -31
  180. /package/dist/lib/browser/{app-graph-serializer-KSLKMEPP.mjs.map → app-graph-serializer-G3VFEGTN.mjs.map} +0 -0
  181. /package/dist/lib/browser/{react-root-MM4HADPE.mjs.map → react-root-JCRD74GI.mjs.map} +0 -0
  182. /package/dist/lib/browser/{settings-WKLGKUHQ.mjs.map → settings-TRLI52I5.mjs.map} +0 -0
  183. /package/dist/lib/browser/{state-Q7YRE5KG.mjs.map → state-C7N6EDDZ.mjs.map} +0 -0
  184. /package/dist/lib/node-esm/{app-graph-serializer-R723K764.mjs.map → app-graph-serializer-2NLWWFUB.mjs.map} +0 -0
  185. /package/dist/lib/node-esm/{react-root-5ANDLQMX.mjs.map → react-root-O5I5CDJ7.mjs.map} +0 -0
  186. /package/dist/lib/node-esm/{settings-RBB5633M.mjs.map → settings-MNQTKHL7.mjs.map} +0 -0
  187. /package/dist/lib/node-esm/{state-362I5BMK.mjs.map → state-45TXZQJ6.mjs.map} +0 -0
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  SPACE_TYPE,
4
4
  SpaceAction
5
- } from "./chunk-2PN7QNGV.mjs";
5
+ } from "./chunk-X34VDVMY.mjs";
6
6
  import {
7
7
  meta
8
8
  } from "./chunk-BDEFTL6K.mjs";
@@ -11,14 +11,14 @@ import {
11
11
  import { Atom } from "@effect-atom/atom-react";
12
12
  import * as Function from "effect/Function";
13
13
  import { LayoutAction, chain, createIntent } from "@dxos/app-framework";
14
- import { Obj, Ref, Type } from "@dxos/echo";
14
+ import { Filter, Obj, Query, Ref, Type } from "@dxos/echo";
15
15
  import { EXPANDO_TYPENAME } from "@dxos/echo/internal";
16
16
  import { invariant } from "@dxos/invariant";
17
17
  import { Migrations } from "@dxos/migrations";
18
18
  import { ACTION_GROUP_TYPE, ACTION_TYPE, isGraphNode } from "@dxos/plugin-graph";
19
19
  import { SpaceState, getSpace, isSpace } from "@dxos/react-client/echo";
20
20
  import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/react-ui-attention";
21
- import { Collection, StoredSchema, View, getTypenameFromQuery } from "@dxos/schema";
21
+ import { Collection } from "@dxos/schema";
22
22
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
23
23
  var SPACES = `${meta.id}-spaces`;
24
24
  var COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
@@ -83,10 +83,16 @@ var getCollectionGraphNodePartials = ({ collection, space, resolve }) => {
83
83
  }
84
84
  };
85
85
  };
86
- var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
87
- const typename = getTypenameFromQuery(collection.query);
88
- const metadata = typename ? resolve(typename) : {};
86
+ var getSystemCollectionNodePartials = ({ collection, space, resolve }) => {
87
+ const metadata = resolve(collection.key);
89
88
  return {
89
+ label: [
90
+ "typename label",
91
+ {
92
+ ns: collection.key,
93
+ count: 2
94
+ }
95
+ ],
90
96
  icon: metadata.icon,
91
97
  iconHue: metadata.iconHue,
92
98
  acceptPersistenceClass: /* @__PURE__ */ new Set([
@@ -95,14 +101,7 @@ var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
95
101
  acceptPersistenceKey: /* @__PURE__ */ new Set([
96
102
  space.id
97
103
  ]),
98
- role: "branch",
99
- canDrop: (source) => {
100
- return isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename;
101
- },
102
- onTransferStart: (child, index) => {
103
- },
104
- onTransferEnd: (child, destination) => {
105
- }
104
+ role: "branch"
106
105
  };
107
106
  };
108
107
  var getSchemaGraphNodePartials = () => {
@@ -111,23 +110,6 @@ var getSchemaGraphNodePartials = () => {
111
110
  canDrop: () => false
112
111
  };
113
112
  };
114
- var getViewGraphNodePartials = ({ view, resolve }) => {
115
- const presentation = view.presentation.target;
116
- const typename = presentation ? Obj.getTypename(presentation) : void 0;
117
- const metadata = typename ? resolve(typename) : {};
118
- return {
119
- label: view.name || [
120
- "object name placeholder",
121
- {
122
- ns: typename,
123
- default: "New view"
124
- }
125
- ],
126
- icon: metadata.icon,
127
- iconHue: metadata.iconHue,
128
- canDrop: () => false
129
- };
130
- };
131
113
  var checkPendingMigration = (space) => {
132
114
  return space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION || space.state.get() === SpaceState.SPACE_READY && !!Migrations.versionProperty && space.properties[Migrations.versionProperty] !== Migrations.targetVersion;
133
115
  };
@@ -312,6 +294,7 @@ var createStaticSchemaNode = ({ schema, space }) => {
312
294
  "typename label",
313
295
  {
314
296
  ns: Type.getTypename(schema),
297
+ count: 2,
315
298
  default: Type.getTypename(schema)
316
299
  }
317
300
  ],
@@ -343,7 +326,7 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
343
326
  label: [
344
327
  "add view to schema label",
345
328
  {
346
- ns: Type.getTypename(StoredSchema)
329
+ ns: meta.id
347
330
  }
348
331
  ],
349
332
  icon: "ph--plus--regular",
@@ -361,7 +344,7 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
361
344
  label: [
362
345
  "rename object label",
363
346
  {
364
- ns: Type.getTypename(StoredSchema)
347
+ ns: Type.getTypename(Type.PersistentType)
365
348
  }
366
349
  ],
367
350
  icon: "ph--pencil-simple-line--regular",
@@ -383,7 +366,7 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
383
366
  label: [
384
367
  "delete object label",
385
368
  {
386
- ns: Type.getTypename(StoredSchema)
369
+ ns: Type.getTypename(Type.PersistentType)
387
370
  }
388
371
  ],
389
372
  icon: "ph--trash--regular",
@@ -391,11 +374,38 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
391
374
  disabled: !deletable,
392
375
  testId: "spacePlugin.deleteObject"
393
376
  }
377
+ },
378
+ {
379
+ id: getId(SpaceAction.Snapshot._tag),
380
+ type: ACTION_TYPE,
381
+ data: async () => {
382
+ const result = await dispatch(createIntent(SpaceAction.Snapshot, {
383
+ space,
384
+ query: Query.select(Filter.type(schema)).ast
385
+ }));
386
+ if (result.data?.snapshot) {
387
+ await downloadBlob(
388
+ result.data.snapshot,
389
+ // TODO(wittjosiah): Factor out file name construction.
390
+ `${(/* @__PURE__ */ new Date()).toISOString()}-${space.id}-${Type.getTypename(schema)}.json`
391
+ );
392
+ }
393
+ },
394
+ properties: {
395
+ label: [
396
+ "snapshot by schema label",
397
+ {
398
+ ns: meta.id
399
+ }
400
+ ],
401
+ icon: "ph--camera--regular",
402
+ disposition: "list-item"
403
+ }
394
404
  }
395
405
  ];
396
406
  return actions;
397
407
  };
398
- var createObjectNode = ({ space, object, disposition, droppable = true, navigable = false, resolve }) => {
408
+ var createObjectNode = ({ space, object, disposition, droppable = true, navigable = false, managedCollectionChild = false, resolve }) => {
399
409
  const type = Obj.getTypename(object);
400
410
  if (!type) {
401
411
  return null;
@@ -405,14 +415,11 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
405
415
  collection: object,
406
416
  space,
407
417
  resolve
408
- }) : Obj.instanceOf(Collection.QueryCollection, object) ? getQueryCollectionNodePartials({
418
+ }) : Obj.instanceOf(Collection.Managed, object) ? getSystemCollectionNodePartials({
409
419
  collection: object,
410
420
  space,
411
421
  resolve
412
- }) : Obj.instanceOf(StoredSchema, object) ? getSchemaGraphNodePartials() : Obj.instanceOf(View.View, object) ? getViewGraphNodePartials({
413
- view: object,
414
- resolve
415
- }) : metadata.graphProps;
422
+ }) : Obj.instanceOf(Type.PersistentType, object) ? getSchemaGraphNodePartials() : metadata.graphProps;
416
423
  const label = object.name || Obj.getLabel(object) || // TODO(wittjosiah): Remove metadata labels.
417
424
  metadata.label?.(object) || [
418
425
  "object name placeholder",
@@ -421,7 +428,7 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
421
428
  default: "New item"
422
429
  }
423
430
  ];
424
- const selectable = !Obj.instanceOf(StoredSchema, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(Collection.Collection, object) || navigable && Obj.instanceOf(Collection.Collection, object);
431
+ const selectable = !Obj.instanceOf(Type.PersistentType, object) && !Obj.instanceOf(Collection.Managed, object) && !Obj.instanceOf(Collection.Collection, object) || navigable && Obj.instanceOf(Collection.Collection, object);
425
432
  return {
426
433
  id: Obj.getDXN(object).toString(),
427
434
  type,
@@ -440,6 +447,16 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
440
447
  persistenceClass: "echo",
441
448
  persistenceKey: space?.id,
442
449
  selectable,
450
+ managedCollectionChild,
451
+ blockInstruction: (source, instruction) => {
452
+ if (source.item.properties.managedCollectionChild) {
453
+ return true;
454
+ }
455
+ if (Obj.instanceOf(Collection.Managed, object)) {
456
+ return !instruction.type.startsWith("reorder");
457
+ }
458
+ return managedCollectionChild;
459
+ },
443
460
  canDrop: (source) => {
444
461
  return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
445
462
  },
@@ -447,11 +464,11 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
447
464
  }
448
465
  };
449
466
  };
450
- var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable = true, navigable = false }) => {
467
+ var constructObjectActions = ({ object, graph, dispatch, resolve, deletable = true, navigable = false }) => {
451
468
  const space = getSpace(object);
452
469
  invariant(space, "Space not found", {
453
470
  F: __dxlog_file,
454
- L: 532,
471
+ L: 548,
455
472
  S: void 0,
456
473
  A: [
457
474
  "space",
@@ -461,7 +478,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
461
478
  const typename = Obj.getTypename(object);
462
479
  invariant(typename, "Object has no typename", {
463
480
  F: __dxlog_file,
464
- L: 534,
481
+ L: 550,
465
482
  S: void 0,
466
483
  A: [
467
484
  "typename",
@@ -469,8 +486,10 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
469
486
  ]
470
487
  });
471
488
  const getId = (id) => `${id}/${Obj.getDXN(object).toString()}`;
472
- const queryCollection = Obj.instanceOf(Collection.QueryCollection, object) ? object : void 0;
473
- const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === getTypenameFromQuery(queryCollection.query)) : void 0;
489
+ const managedCollection = Obj.instanceOf(Collection.Managed, object) ? object : void 0;
490
+ const metadata = managedCollection ? resolve(managedCollection.key) : {};
491
+ const createObjectIntent = metadata.createObjectIntent;
492
+ const inputSchema = metadata.inputSchema;
474
493
  const actions = [
475
494
  ...Obj.instanceOf(Collection.Collection, object) ? [
476
495
  {
@@ -494,7 +513,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
494
513
  }
495
514
  }
496
515
  ] : [],
497
- ...Obj.instanceOf(StoredSchema, object) ? [
516
+ ...Obj.instanceOf(Type.PersistentType, object) ? [
498
517
  {
499
518
  id: getId(SpaceAction.AddObject._tag),
500
519
  type: ACTION_TYPE,
@@ -511,27 +530,54 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
511
530
  label: [
512
531
  "add view to schema label",
513
532
  {
514
- ns: Type.getTypename(StoredSchema)
533
+ ns: meta.id
515
534
  }
516
535
  ],
517
536
  icon: "ph--plus--regular",
518
537
  disposition: "list-item-primary",
519
538
  testId: "spacePlugin.addViewToSchema"
520
539
  }
540
+ },
541
+ {
542
+ id: getId(SpaceAction.Snapshot._tag),
543
+ type: ACTION_TYPE,
544
+ data: async () => {
545
+ const result = await dispatch(createIntent(SpaceAction.Snapshot, {
546
+ space,
547
+ query: Query.select(Filter.type(Type.toEffectSchema(object.jsonSchema))).ast
548
+ }));
549
+ if (result.data?.snapshot) {
550
+ await downloadBlob(
551
+ result.data.snapshot,
552
+ // TODO(wittjosiah): Factor out file name construction.
553
+ `${(/* @__PURE__ */ new Date()).toISOString()}-${space.id}-${object.typename}.json`
554
+ );
555
+ }
556
+ },
557
+ properties: {
558
+ label: [
559
+ "snapshot by schema label",
560
+ {
561
+ ns: meta.id
562
+ }
563
+ ],
564
+ icon: "ph--camera--regular",
565
+ disposition: "list-item"
566
+ }
521
567
  }
522
568
  ] : [],
523
- ...matchingObjectForm ? [
569
+ ...createObjectIntent ? [
524
570
  {
525
571
  id: getId(SpaceAction.OpenCreateObject._tag),
526
572
  type: ACTION_TYPE,
527
573
  data: async () => {
528
- if (matchingObjectForm.formSchema) {
574
+ if (inputSchema) {
529
575
  await dispatch(createIntent(SpaceAction.OpenCreateObject, {
530
576
  target: space,
531
- typename: queryCollection ? getTypenameFromQuery(queryCollection.query) : void 0
577
+ typename: managedCollection ? managedCollection.key : void 0
532
578
  }));
533
579
  } else {
534
- await dispatch(Function.pipe(matchingObjectForm.getIntent({}, {
580
+ await dispatch(Function.pipe(createObjectIntent({}, {
535
581
  space
536
582
  }), chain(SpaceAction.AddObject, {
537
583
  target: space,
@@ -543,7 +589,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
543
589
  },
544
590
  properties: {
545
591
  label: [
546
- "create object in smart collection label",
592
+ "create object in system collection label",
547
593
  {
548
594
  ns: meta.id
549
595
  }
@@ -554,59 +600,61 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
554
600
  }
555
601
  }
556
602
  ] : [],
557
- {
558
- id: getId(SpaceAction.RenameObject._tag),
559
- type: ACTION_TYPE,
560
- data: async (params) => {
561
- await dispatch(createIntent(SpaceAction.RenameObject, {
562
- object,
563
- caller: params?.caller
564
- }));
565
- },
566
- properties: {
567
- label: [
568
- "rename object label",
569
- {
570
- ns: typename
571
- }
572
- ],
573
- icon: "ph--pencil-simple-line--regular",
574
- disposition: "list-item",
575
- // TODO(wittjosiah): Not working.
576
- // keyBinding: {
577
- // macos: 'shift+F6',
578
- // },
579
- testId: "spacePlugin.renameObject"
580
- }
581
- },
582
- {
583
- id: getId(SpaceAction.RemoveObjects._tag),
584
- type: ACTION_TYPE,
585
- data: async () => {
586
- const collection = graph.getConnections(Obj.getDXN(object).toString(), "inbound").find(({ data }) => Obj.instanceOf(Collection.Collection, data))?.data;
587
- await dispatch(createIntent(SpaceAction.RemoveObjects, {
588
- objects: [
589
- object
603
+ ...managedCollection ? [] : [
604
+ {
605
+ id: getId(SpaceAction.RenameObject._tag),
606
+ type: ACTION_TYPE,
607
+ data: async (params) => {
608
+ await dispatch(createIntent(SpaceAction.RenameObject, {
609
+ object,
610
+ caller: params?.caller
611
+ }));
612
+ },
613
+ properties: {
614
+ label: [
615
+ "rename object label",
616
+ {
617
+ ns: typename
618
+ }
590
619
  ],
591
- target: collection
592
- }));
620
+ icon: "ph--pencil-simple-line--regular",
621
+ disposition: "list-item",
622
+ // TODO(wittjosiah): Not working.
623
+ // keyBinding: {
624
+ // macos: 'shift+F6',
625
+ // },
626
+ testId: "spacePlugin.renameObject"
627
+ }
593
628
  },
594
- properties: {
595
- label: [
596
- "delete object label",
597
- {
598
- ns: typename
599
- }
600
- ],
601
- icon: "ph--trash--regular",
602
- disposition: "list-item",
603
- disabled: !deletable,
604
- // TODO(wittjosiah): This is a browser shortcut.
605
- // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
606
- testId: "spacePlugin.deleteObject"
629
+ {
630
+ id: getId(SpaceAction.RemoveObjects._tag),
631
+ type: ACTION_TYPE,
632
+ data: async () => {
633
+ const collection = graph.getConnections(Obj.getDXN(object).toString(), "inbound").find(({ data }) => Obj.instanceOf(Collection.Collection, data))?.data;
634
+ await dispatch(createIntent(SpaceAction.RemoveObjects, {
635
+ objects: [
636
+ object
637
+ ],
638
+ target: collection
639
+ }));
640
+ },
641
+ properties: {
642
+ label: [
643
+ "delete object label",
644
+ {
645
+ ns: typename
646
+ }
647
+ ],
648
+ icon: "ph--trash--regular",
649
+ disposition: "list-item",
650
+ disabled: !deletable,
651
+ // TODO(wittjosiah): This is a browser shortcut.
652
+ // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
653
+ testId: "spacePlugin.deleteObject"
654
+ }
607
655
  }
608
- },
609
- ...navigable || !Obj.instanceOf(Collection.Collection, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(StoredSchema, object) ? [
656
+ ],
657
+ ...navigable || !Obj.instanceOf(Collection.Collection, object) && !Obj.instanceOf(Collection.Managed, object) && !Obj.instanceOf(Type.PersistentType, object) ? [
610
658
  {
611
659
  id: getId("copy-link"),
612
660
  type: ACTION_TYPE,
@@ -652,6 +700,16 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
652
700
  ];
653
701
  return actions;
654
702
  };
703
+ var downloadBlob = async (blob, filename) => {
704
+ const url = URL.createObjectURL(blob);
705
+ const a = document.createElement("a");
706
+ a.href = url;
707
+ a.download = filename;
708
+ document.body.appendChild(a);
709
+ a.click();
710
+ document.body.removeChild(a);
711
+ URL.revokeObjectURL(url);
712
+ };
655
713
  var getNestedObjects = async (object, resolve) => {
656
714
  const type = Obj.getTypename(object);
657
715
  if (!type) {
@@ -676,7 +734,7 @@ var cloneObject = async (object, resolve, newSpace) => {
676
734
  const serializer = metadata.serializer;
677
735
  invariant(serializer, `No serializer for type: ${typename}`, {
678
736
  F: __dxlog_file,
679
- L: 730,
737
+ L: 788,
680
738
  S: void 0,
681
739
  A: [
682
740
  "serializer",
@@ -708,4 +766,4 @@ export {
708
766
  getNestedObjects,
709
767
  cloneObject
710
768
  };
711
- //# sourceMappingURL=chunk-VH2EBZEV.mjs.map
769
+ //# sourceMappingURL=chunk-I6FZP42D.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Function from 'effect/Function';\nimport type * as Schema from 'effect/Schema';\n\nimport { LayoutAction, type PromiseIntentDispatcher, chain, createIntent } from '@dxos/app-framework';\nimport { type Database, type Entity, Filter, Obj, Query, Ref, Type } from '@dxos/echo';\nimport { EXPANDO_TYPENAME } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n type ActionData,\n type InvokeParams,\n type Node,\n type NodeArg,\n type ReadableGraph,\n isGraphNode,\n} from '@dxos/plugin-graph';\nimport { type Space, SpaceState, getSpace, isSpace } from '@dxos/react-client/echo';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';\nimport { type TreeData } from '@dxos/react-ui-list';\nimport { Collection } from '@dxos/schema';\n\nimport { meta } from './meta';\nimport { SPACE_TYPE, SpaceAction } from './types';\n\nexport const SPACES = `${meta.id}-spaces`;\nexport const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\n/**\n * Convert a query result to an Atom value of the objects.\n */\nexport const atomFromQuery = <T extends Entity.Unknown>(query: Database.QueryResult<T>): Atom.Atom<T[]> => {\n return Atom.make((get) => {\n const unsubscribe = query.subscribe((result) => {\n get.setSelf(result.objects);\n });\n\n get.addFinalizer(() => unsubscribe());\n return query.objects;\n });\n};\n\n// TODO(wittjosiah): Factor out? Expose via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): string | [string, { ns: string }] => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name!\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? ['personal space label', { ns: meta.id }]\n : ['unnamed space label', { ns: meta.id }];\n};\n\nconst getCollectionGraphNodePartials = ({\n collection,\n space,\n resolve,\n}: {\n collection: Collection.Collection;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n onRearrangeChildren: (nextOrder: unknown[]) => {\n // Change on disk.\n collection.objects = nextOrder.filter(Obj.isObject).map(Ref.make);\n },\n onTransferStart: (child: Node<Obj.Any>, index?: number) => {\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // if (space && childSpace && !childSpace.key.equals(space.key)) {\n // // Create clone of child and add to destination space.\n // const newObject = clone(child.data, {\n // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.\n // additional: [\n // child.data.content,\n // ...(child.data.objects ?? []),\n // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),\n // ],\n // });\n // space.db.add(newObject);\n // collection.objects.push(newObject);\n // } else {\n\n // Add child to destination collection.\n // TODO(dmaretskyi): Compare by id.\n if (!collection.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, Ref.make(child.data));\n } else {\n collection.objects.push(Ref.make(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {\n // Remove child from origin collection.\n const index = collection.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n collection.objects.splice(index, 1);\n }\n\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // const destinationSpace =\n // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);\n // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {\n // // Mark child as deleted in origin space.\n // childSpace.db.remove(child.data);\n // }\n },\n onCopy: async (child: Node<Obj.Any>, index?: number) => {\n // Create clone of child and add to destination space.\n const newObject = await cloneObject(child.data, resolve, space);\n space.db.add(newObject);\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, Ref.make(newObject));\n } else {\n collection.objects.push(Ref.make(newObject));\n }\n },\n };\n};\n\nconst getSystemCollectionNodePartials = ({\n collection,\n space,\n resolve,\n}: {\n collection: Collection.Managed;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const metadata = resolve(collection.key);\n return {\n label: ['typename label', { ns: collection.key, count: 2 }],\n icon: metadata.icon,\n iconHue: metadata.iconHue,\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n };\n};\n\nconst getSchemaGraphNodePartials = () => {\n return {\n role: 'branch',\n canDrop: () => false,\n };\n};\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection =\n space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection)\n ? getCollectionGraphNodePartials({ collection, space, resolve })\n : {};\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: ['label', 'icon', 'role'],\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n testId: 'spacePlugin.space',\n canDrop: (source: TreeData) => {\n // TODO(wittjosiah): Find a way to only allow space as source for rearranging.\n return Obj.isObject(source.item.data) || isSpace(source.item.data);\n },\n },\n nodes: [\n {\n id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${meta.id}/settings`,\n data: null,\n properties: {\n label: ['settings panel label', { ns: meta.id }],\n icon: 'ph--faders--regular',\n disposition: 'alternate-tree',\n },\n nodes: [\n {\n id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${meta.id}/properties`,\n data: `${meta.id}/properties`,\n properties: {\n label: ['space settings properties label', { ns: meta.id }],\n icon: 'ph--sliders--regular',\n position: 'hoist',\n },\n },\n {\n id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${meta.id}/members`,\n data: `${meta.id}/members`,\n properties: {\n label: ['members panel label', { ns: meta.id }],\n icon: 'ph--users--regular',\n position: 'hoist',\n },\n },\n {\n id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${meta.id}/schema`,\n data: `${meta.id}/schema`,\n properties: {\n label: ['space settings schema label', { ns: meta.id }],\n icon: 'ph--shapes--regular',\n },\n },\n ],\n },\n ],\n };\n};\n\nexport const constructSpaceActions = ({\n space,\n dispatch,\n personal,\n migrating,\n}: {\n space: Space;\n dispatch: PromiseIntentDispatcher;\n personal?: boolean;\n migrating?: boolean;\n}) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: NodeArg<ActionData>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Migrate._tag),\n type: ACTION_GROUP_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n },\n properties: {\n label: ['migrate space label', { ns: meta.id }],\n icon: 'ph--database--regular',\n disposition: 'list-item-primary',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n actions.push(\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));\n },\n properties: {\n label: ['create object in space label', { ns: meta.id }],\n icon: 'ph--plus--regular',\n disposition: 'item',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceAction.Rename._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.Rename, { space, caller: params?.caller }));\n },\n properties: {\n label: ['rename space label', { ns: meta.id }],\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n );\n }\n\n return actions;\n};\n\nexport const createStaticSchemaNode = ({\n schema,\n space,\n}: {\n schema: Schema.Schema.AnyNoContext;\n space: Space;\n}): Node => {\n return {\n id: `${space.id}/${Type.getTypename(schema)}`,\n type: `${meta.id}/static-schema`,\n data: schema,\n properties: {\n label: ['typename label', { ns: Type.getTypename(schema), count: 2, default: Type.getTypename(schema) }],\n icon: 'ph--database--regular',\n iconHue: 'green',\n role: 'branch',\n selectable: false,\n canDrop: () => false,\n space,\n },\n };\n};\n\nexport const createStaticSchemaActions = ({\n schema,\n space,\n dispatch,\n deletable,\n}: {\n schema: Type.Obj.Any;\n space: Space;\n dispatch: PromiseIntentDispatcher;\n deletable: boolean;\n}) => {\n const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;\n\n const actions: NodeArg<ActionData>[] = [\n {\n id: getId(SpaceAction.AddObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n views: true,\n initialFormValues: { typename: Type.getTypename(schema) },\n }),\n );\n },\n properties: {\n label: ['add view to schema label', { ns: meta.id }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n throw new Error('Not implemented');\n },\n properties: {\n label: ['rename object label', { ns: Type.getTypename(Type.PersistentType) }],\n icon: 'ph--pencil-simple-line--regular',\n disabled: true,\n disposition: 'list-item',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const index = space.properties.staticRecords.findIndex(\n (typename: string) => typename === Type.getTypename(schema),\n );\n if (index > -1) {\n space.properties.staticRecords.splice(index, 1);\n }\n },\n properties: {\n label: ['delete object label', { ns: Type.getTypename(Type.PersistentType) }],\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n testId: 'spacePlugin.deleteObject',\n },\n },\n {\n id: getId(SpaceAction.Snapshot._tag),\n type: ACTION_TYPE,\n data: async () => {\n const result = await dispatch(\n createIntent(SpaceAction.Snapshot, {\n space,\n query: Query.select(Filter.type(schema)).ast,\n }),\n );\n if (result.data?.snapshot) {\n await downloadBlob(\n result.data.snapshot,\n // TODO(wittjosiah): Factor out file name construction.\n `${new Date().toISOString()}-${space.id}-${Type.getTypename(schema)}.json`,\n );\n }\n },\n properties: {\n label: ['snapshot by schema label', { ns: meta.id }],\n icon: 'ph--camera--regular',\n disposition: 'list-item',\n },\n },\n ];\n\n return actions;\n};\n\nexport const createObjectNode = ({\n space,\n object,\n disposition,\n droppable = true,\n navigable = false,\n managedCollectionChild = false,\n resolve,\n}: {\n space: Space;\n object: Obj.Any;\n disposition?: string;\n droppable?: boolean;\n navigable?: boolean;\n managedCollectionChild?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = Obj.getTypename(object);\n if (!type) {\n return null;\n }\n\n const metadata = resolve(type);\n const partials = Obj.instanceOf(Collection.Collection, object)\n ? getCollectionGraphNodePartials({ collection: object, space, resolve })\n : Obj.instanceOf(Collection.Managed, object)\n ? getSystemCollectionNodePartials({ collection: object, space, resolve })\n : Obj.instanceOf(Type.PersistentType, object)\n ? getSchemaGraphNodePartials()\n : metadata.graphProps;\n\n // TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.\n // e.g., create new collection with no name and rename it.\n const label = (object as any).name ||\n Obj.getLabel(object) ||\n // TODO(wittjosiah): Remove metadata labels.\n metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];\n\n const selectable =\n (!Obj.instanceOf(Type.PersistentType, object) &&\n !Obj.instanceOf(Collection.Managed, object) &&\n !Obj.instanceOf(Collection.Collection, object)) ||\n (navigable && Obj.instanceOf(Collection.Collection, object));\n\n return {\n id: Obj.getDXN(object).toString(),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n label,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n iconHue: metadata.iconHue,\n disposition,\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n selectable,\n managedCollectionChild,\n blockInstruction: (source: TreeData, instruction: Instruction) => {\n if (source.item.properties.managedCollectionChild) {\n // TODO(wittjosiah): Support reordering system collections.\n // return !(managedCollectionChild && source.item.type === type && instruction.type.startsWith('reorder'));\n return true;\n }\n\n if (Obj.instanceOf(Collection.Managed, object)) {\n return !instruction.type.startsWith('reorder');\n }\n\n return managedCollectionChild;\n },\n canDrop: (source: TreeData) => {\n return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);\n },\n ...partials,\n },\n };\n};\n\nexport const constructObjectActions = ({\n object,\n graph,\n dispatch,\n resolve,\n deletable = true,\n navigable = false,\n}: {\n object: Obj.Any;\n graph: ReadableGraph;\n dispatch: PromiseIntentDispatcher;\n resolve: (typename: string) => Record<string, any>;\n deletable?: boolean;\n navigable?: boolean;\n}) => {\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const typename = Obj.getTypename(object);\n invariant(typename, 'Object has no typename');\n\n const getId = (id: string) => `${id}/${Obj.getDXN(object).toString()}`;\n\n const managedCollection = Obj.instanceOf(Collection.Managed, object) ? object : undefined;\n const metadata = managedCollection ? resolve(managedCollection.key) : {};\n const createObjectIntent = metadata.createObjectIntent;\n const inputSchema = metadata.inputSchema;\n\n const actions: NodeArg<ActionData>[] = [\n ...(Obj.instanceOf(Collection.Collection, object)\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));\n },\n properties: {\n label: ['create object in collection label', { ns: meta.id }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n ...(Obj.instanceOf(Type.PersistentType, object)\n ? [\n {\n id: getId(SpaceAction.AddObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n views: true,\n initialFormValues: { typename: object.typename },\n }),\n );\n },\n properties: {\n label: ['add view to schema label', { ns: meta.id }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n {\n id: getId(SpaceAction.Snapshot._tag),\n type: ACTION_TYPE,\n data: async () => {\n const result = await dispatch(\n createIntent(SpaceAction.Snapshot, {\n space,\n query: Query.select(Filter.type(Type.toEffectSchema(object.jsonSchema))).ast,\n }),\n );\n if (result.data?.snapshot) {\n await downloadBlob(\n result.data.snapshot,\n // TODO(wittjosiah): Factor out file name construction.\n `${new Date().toISOString()}-${space.id}-${object.typename}.json`,\n );\n }\n },\n properties: {\n label: ['snapshot by schema label', { ns: meta.id }],\n icon: 'ph--camera--regular',\n disposition: 'list-item',\n },\n },\n ]\n : []),\n ...(createObjectIntent\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (inputSchema) {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n typename: managedCollection ? managedCollection.key : undefined,\n }),\n );\n } else {\n await dispatch(\n Function.pipe(\n createObjectIntent({}, { space }),\n chain(SpaceAction.AddObject, { target: space, hidden: true }),\n chain(LayoutAction.Open, { part: 'main' }),\n ),\n );\n }\n },\n properties: {\n label: ['create object in system collection label', { ns: meta.id }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n ...(managedCollection\n ? []\n : [\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params?.caller }));\n },\n properties: {\n label: ['rename object label', { ns: typename }],\n icon: 'ph--pencil-simple-line--regular',\n disposition: 'list-item',\n // TODO(wittjosiah): Not working.\n // keyBinding: {\n // macos: 'shift+F6',\n // },\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const collection = graph\n .getConnections(Obj.getDXN(object).toString(), 'inbound')\n .find(({ data }) => Obj.instanceOf(Collection.Collection, data))?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: ['delete object label', { ns: typename }],\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n // TODO(wittjosiah): This is a browser shortcut.\n // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ]),\n ...(navigable ||\n (!Obj.instanceOf(Collection.Collection, object) &&\n !Obj.instanceOf(Collection.Managed, object) &&\n !Obj.instanceOf(Type.PersistentType, object))\n ? [\n {\n id: getId('copy-link'),\n type: ACTION_TYPE,\n data: async () => {\n const url = `${window.location.origin}/${space.id}/${Obj.getDXN(object).toString()}`;\n await navigator.clipboard.writeText(url);\n },\n properties: {\n label: ['copy link label', { ns: meta.id }],\n icon: 'ph--link--regular',\n disposition: 'list-item',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutAction.Expose._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(\n createIntent(LayoutAction.Expose, { part: 'navigation', subject: Obj.getDXN(object).toString() }),\n );\n },\n properties: {\n label: ['expose object label', { ns: meta.id }],\n icon: 'ph--eye--regular',\n disposition: 'heading-list-item',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n// TODO(wittjosiah): Factor out.\nconst downloadBlob = async (blob: Blob, filename: string) => {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = filename;\n\n document.body.appendChild(a);\n a.click();\n\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: Obj.Any,\n resolve: (typename: string) => Record<string, any>,\n): Promise<Obj.Any[]> => {\n const type = Obj.getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: Obj.Any[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Obj.Any,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Obj.Any> => {\n const schema = Obj.getSchema(object);\n const typename = schema ? (Type.getTypename(schema) ?? EXPANDO_TYPENAME) : EXPANDO_TYPENAME;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, space: newSpace, newId: true });\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Atom", "Function", "LayoutAction", "chain", "createIntent", "Filter", "Obj", "Query", "Ref", "Type", "EXPANDO_TYPENAME", "invariant", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "isGraphNode", "SpaceState", "getSpace", "isSpace", "ATTENDABLE_PATH_SEPARATOR", "Collection", "SPACES", "meta", "id", "COMPOSER_SPACE_LOCK", "SHARED", "atomFromQuery", "query", "Atom", "make", "get", "unsubscribe", "subscribe", "result", "setSelf", "objects", "addFinalizer", "getSpaceDisplayName", "space", "personal", "namesCache", "state", "SpaceState", "SPACE_READY", "properties", "name", "length", "ns", "getCollectionGraphNodePartials", "collection", "resolve", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "filter", "Obj", "isObject", "map", "Ref", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "db", "add", "getSystemCollectionNodePartials", "metadata", "key", "label", "count", "icon", "iconHue", "getSchemaGraphNodePartials", "canDrop", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "navigable", "hasPendingMigration", "Collection", "typename", "partials", "instanceOf", "type", "SPACE_TYPE", "cacheable", "description", "hue", "undefined", "disabled", "testId", "source", "item", "isSpace", "nodes", "ATTENDABLE_PATH_SEPARATOR", "disposition", "position", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "running", "OpenCreateObject", "ACTION_TYPE", "Rename", "params", "caller", "keyBinding", "macos", "windows", "createStaticSchemaNode", "schema", "Type", "getTypename", "default", "selectable", "createStaticSchemaActions", "deletable", "AddObject", "views", "initialFormValues", "RenameObject", "Error", "PersistentType", "RemoveObjects", "staticRecords", "Snapshot", "Query", "select", "Filter", "ast", "snapshot", "downloadBlob", "Date", "toISOString", "createObjectNode", "droppable", "managedCollectionChild", "Managed", "graphProps", "getLabel", "getDXN", "toString", "persistenceClass", "persistenceKey", "blockInstruction", "instruction", "startsWith", "isGraphNode", "constructObjectActions", "graph", "getSpace", "invariant", "managedCollection", "createObjectIntent", "inputSchema", "toEffectSchema", "jsonSchema", "pipe", "chain", "hidden", "LayoutAction", "Open", "part", "getConnections", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "Expose", "subject", "blob", "filename", "URL", "createObjectURL", "a", "document", "createElement", "href", "download", "body", "appendChild", "click", "removeChild", "revokeObjectURL", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "getSchema", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
7
+ }