@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
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SPACE_TYPE,
3
3
  SpaceAction
4
- } from "./chunk-M2Z6D4ZI.mjs";
4
+ } from "./chunk-6A3NWBB6.mjs";
5
5
  import {
6
6
  meta
7
7
  } from "./chunk-VZBIIYFM.mjs";
@@ -10,14 +10,14 @@ import {
10
10
  import { Atom } from "@effect-atom/atom-react";
11
11
  import * as Function from "effect/Function";
12
12
  import { LayoutAction, chain, createIntent } from "@dxos/app-framework";
13
- import { Obj, Ref, Type } from "@dxos/echo";
13
+ import { Filter, Obj, Query, Ref, Type } from "@dxos/echo";
14
14
  import { EXPANDO_TYPENAME } from "@dxos/echo/internal";
15
15
  import { invariant } from "@dxos/invariant";
16
16
  import { Migrations } from "@dxos/migrations";
17
17
  import { ACTION_GROUP_TYPE, ACTION_TYPE, isGraphNode } from "@dxos/plugin-graph";
18
18
  import { SpaceState, getSpace, isSpace } from "@dxos/react-client/echo";
19
19
  import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/react-ui-attention";
20
- import { Collection, StoredSchema, View, getTypenameFromQuery } from "@dxos/schema";
20
+ import { Collection } from "@dxos/schema";
21
21
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
22
22
  var SPACES = `${meta.id}-spaces`;
23
23
  var COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
@@ -82,10 +82,16 @@ var getCollectionGraphNodePartials = ({ collection, space, resolve }) => {
82
82
  }
83
83
  };
84
84
  };
85
- var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
86
- const typename = getTypenameFromQuery(collection.query);
87
- const metadata = typename ? resolve(typename) : {};
85
+ var getSystemCollectionNodePartials = ({ collection, space, resolve }) => {
86
+ const metadata = resolve(collection.key);
88
87
  return {
88
+ label: [
89
+ "typename label",
90
+ {
91
+ ns: collection.key,
92
+ count: 2
93
+ }
94
+ ],
89
95
  icon: metadata.icon,
90
96
  iconHue: metadata.iconHue,
91
97
  acceptPersistenceClass: /* @__PURE__ */ new Set([
@@ -94,14 +100,7 @@ var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
94
100
  acceptPersistenceKey: /* @__PURE__ */ new Set([
95
101
  space.id
96
102
  ]),
97
- role: "branch",
98
- canDrop: (source) => {
99
- return isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename;
100
- },
101
- onTransferStart: (child, index) => {
102
- },
103
- onTransferEnd: (child, destination) => {
104
- }
103
+ role: "branch"
105
104
  };
106
105
  };
107
106
  var getSchemaGraphNodePartials = () => {
@@ -110,23 +109,6 @@ var getSchemaGraphNodePartials = () => {
110
109
  canDrop: () => false
111
110
  };
112
111
  };
113
- var getViewGraphNodePartials = ({ view, resolve }) => {
114
- const presentation = view.presentation.target;
115
- const typename = presentation ? Obj.getTypename(presentation) : void 0;
116
- const metadata = typename ? resolve(typename) : {};
117
- return {
118
- label: view.name || [
119
- "object name placeholder",
120
- {
121
- ns: typename,
122
- default: "New view"
123
- }
124
- ],
125
- icon: metadata.icon,
126
- iconHue: metadata.iconHue,
127
- canDrop: () => false
128
- };
129
- };
130
112
  var checkPendingMigration = (space) => {
131
113
  return space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION || space.state.get() === SpaceState.SPACE_READY && !!Migrations.versionProperty && space.properties[Migrations.versionProperty] !== Migrations.targetVersion;
132
114
  };
@@ -311,6 +293,7 @@ var createStaticSchemaNode = ({ schema, space }) => {
311
293
  "typename label",
312
294
  {
313
295
  ns: Type.getTypename(schema),
296
+ count: 2,
314
297
  default: Type.getTypename(schema)
315
298
  }
316
299
  ],
@@ -342,7 +325,7 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
342
325
  label: [
343
326
  "add view to schema label",
344
327
  {
345
- ns: Type.getTypename(StoredSchema)
328
+ ns: meta.id
346
329
  }
347
330
  ],
348
331
  icon: "ph--plus--regular",
@@ -360,7 +343,7 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
360
343
  label: [
361
344
  "rename object label",
362
345
  {
363
- ns: Type.getTypename(StoredSchema)
346
+ ns: Type.getTypename(Type.PersistentType)
364
347
  }
365
348
  ],
366
349
  icon: "ph--pencil-simple-line--regular",
@@ -382,7 +365,7 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
382
365
  label: [
383
366
  "delete object label",
384
367
  {
385
- ns: Type.getTypename(StoredSchema)
368
+ ns: Type.getTypename(Type.PersistentType)
386
369
  }
387
370
  ],
388
371
  icon: "ph--trash--regular",
@@ -390,11 +373,38 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
390
373
  disabled: !deletable,
391
374
  testId: "spacePlugin.deleteObject"
392
375
  }
376
+ },
377
+ {
378
+ id: getId(SpaceAction.Snapshot._tag),
379
+ type: ACTION_TYPE,
380
+ data: async () => {
381
+ const result = await dispatch(createIntent(SpaceAction.Snapshot, {
382
+ space,
383
+ query: Query.select(Filter.type(schema)).ast
384
+ }));
385
+ if (result.data?.snapshot) {
386
+ await downloadBlob(
387
+ result.data.snapshot,
388
+ // TODO(wittjosiah): Factor out file name construction.
389
+ `${(/* @__PURE__ */ new Date()).toISOString()}-${space.id}-${Type.getTypename(schema)}.json`
390
+ );
391
+ }
392
+ },
393
+ properties: {
394
+ label: [
395
+ "snapshot by schema label",
396
+ {
397
+ ns: meta.id
398
+ }
399
+ ],
400
+ icon: "ph--camera--regular",
401
+ disposition: "list-item"
402
+ }
393
403
  }
394
404
  ];
395
405
  return actions;
396
406
  };
397
- var createObjectNode = ({ space, object, disposition, droppable = true, navigable = false, resolve }) => {
407
+ var createObjectNode = ({ space, object, disposition, droppable = true, navigable = false, managedCollectionChild = false, resolve }) => {
398
408
  const type = Obj.getTypename(object);
399
409
  if (!type) {
400
410
  return null;
@@ -404,14 +414,11 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
404
414
  collection: object,
405
415
  space,
406
416
  resolve
407
- }) : Obj.instanceOf(Collection.QueryCollection, object) ? getQueryCollectionNodePartials({
417
+ }) : Obj.instanceOf(Collection.Managed, object) ? getSystemCollectionNodePartials({
408
418
  collection: object,
409
419
  space,
410
420
  resolve
411
- }) : Obj.instanceOf(StoredSchema, object) ? getSchemaGraphNodePartials() : Obj.instanceOf(View.View, object) ? getViewGraphNodePartials({
412
- view: object,
413
- resolve
414
- }) : metadata.graphProps;
421
+ }) : Obj.instanceOf(Type.PersistentType, object) ? getSchemaGraphNodePartials() : metadata.graphProps;
415
422
  const label = object.name || Obj.getLabel(object) || // TODO(wittjosiah): Remove metadata labels.
416
423
  metadata.label?.(object) || [
417
424
  "object name placeholder",
@@ -420,7 +427,7 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
420
427
  default: "New item"
421
428
  }
422
429
  ];
423
- const selectable = !Obj.instanceOf(StoredSchema, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(Collection.Collection, object) || navigable && Obj.instanceOf(Collection.Collection, object);
430
+ const selectable = !Obj.instanceOf(Type.PersistentType, object) && !Obj.instanceOf(Collection.Managed, object) && !Obj.instanceOf(Collection.Collection, object) || navigable && Obj.instanceOf(Collection.Collection, object);
424
431
  return {
425
432
  id: Obj.getDXN(object).toString(),
426
433
  type,
@@ -439,6 +446,16 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
439
446
  persistenceClass: "echo",
440
447
  persistenceKey: space?.id,
441
448
  selectable,
449
+ managedCollectionChild,
450
+ blockInstruction: (source, instruction) => {
451
+ if (source.item.properties.managedCollectionChild) {
452
+ return true;
453
+ }
454
+ if (Obj.instanceOf(Collection.Managed, object)) {
455
+ return !instruction.type.startsWith("reorder");
456
+ }
457
+ return managedCollectionChild;
458
+ },
442
459
  canDrop: (source) => {
443
460
  return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
444
461
  },
@@ -446,11 +463,11 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
446
463
  }
447
464
  };
448
465
  };
449
- var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable = true, navigable = false }) => {
466
+ var constructObjectActions = ({ object, graph, dispatch, resolve, deletable = true, navigable = false }) => {
450
467
  const space = getSpace(object);
451
468
  invariant(space, "Space not found", {
452
469
  F: __dxlog_file,
453
- L: 532,
470
+ L: 548,
454
471
  S: void 0,
455
472
  A: [
456
473
  "space",
@@ -460,7 +477,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
460
477
  const typename = Obj.getTypename(object);
461
478
  invariant(typename, "Object has no typename", {
462
479
  F: __dxlog_file,
463
- L: 534,
480
+ L: 550,
464
481
  S: void 0,
465
482
  A: [
466
483
  "typename",
@@ -468,8 +485,10 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
468
485
  ]
469
486
  });
470
487
  const getId = (id) => `${id}/${Obj.getDXN(object).toString()}`;
471
- const queryCollection = Obj.instanceOf(Collection.QueryCollection, object) ? object : void 0;
472
- const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === getTypenameFromQuery(queryCollection.query)) : void 0;
488
+ const managedCollection = Obj.instanceOf(Collection.Managed, object) ? object : void 0;
489
+ const metadata = managedCollection ? resolve(managedCollection.key) : {};
490
+ const createObjectIntent = metadata.createObjectIntent;
491
+ const inputSchema = metadata.inputSchema;
473
492
  const actions = [
474
493
  ...Obj.instanceOf(Collection.Collection, object) ? [
475
494
  {
@@ -493,7 +512,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
493
512
  }
494
513
  }
495
514
  ] : [],
496
- ...Obj.instanceOf(StoredSchema, object) ? [
515
+ ...Obj.instanceOf(Type.PersistentType, object) ? [
497
516
  {
498
517
  id: getId(SpaceAction.AddObject._tag),
499
518
  type: ACTION_TYPE,
@@ -510,27 +529,54 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
510
529
  label: [
511
530
  "add view to schema label",
512
531
  {
513
- ns: Type.getTypename(StoredSchema)
532
+ ns: meta.id
514
533
  }
515
534
  ],
516
535
  icon: "ph--plus--regular",
517
536
  disposition: "list-item-primary",
518
537
  testId: "spacePlugin.addViewToSchema"
519
538
  }
539
+ },
540
+ {
541
+ id: getId(SpaceAction.Snapshot._tag),
542
+ type: ACTION_TYPE,
543
+ data: async () => {
544
+ const result = await dispatch(createIntent(SpaceAction.Snapshot, {
545
+ space,
546
+ query: Query.select(Filter.type(Type.toEffectSchema(object.jsonSchema))).ast
547
+ }));
548
+ if (result.data?.snapshot) {
549
+ await downloadBlob(
550
+ result.data.snapshot,
551
+ // TODO(wittjosiah): Factor out file name construction.
552
+ `${(/* @__PURE__ */ new Date()).toISOString()}-${space.id}-${object.typename}.json`
553
+ );
554
+ }
555
+ },
556
+ properties: {
557
+ label: [
558
+ "snapshot by schema label",
559
+ {
560
+ ns: meta.id
561
+ }
562
+ ],
563
+ icon: "ph--camera--regular",
564
+ disposition: "list-item"
565
+ }
520
566
  }
521
567
  ] : [],
522
- ...matchingObjectForm ? [
568
+ ...createObjectIntent ? [
523
569
  {
524
570
  id: getId(SpaceAction.OpenCreateObject._tag),
525
571
  type: ACTION_TYPE,
526
572
  data: async () => {
527
- if (matchingObjectForm.formSchema) {
573
+ if (inputSchema) {
528
574
  await dispatch(createIntent(SpaceAction.OpenCreateObject, {
529
575
  target: space,
530
- typename: queryCollection ? getTypenameFromQuery(queryCollection.query) : void 0
576
+ typename: managedCollection ? managedCollection.key : void 0
531
577
  }));
532
578
  } else {
533
- await dispatch(Function.pipe(matchingObjectForm.getIntent({}, {
579
+ await dispatch(Function.pipe(createObjectIntent({}, {
534
580
  space
535
581
  }), chain(SpaceAction.AddObject, {
536
582
  target: space,
@@ -542,7 +588,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
542
588
  },
543
589
  properties: {
544
590
  label: [
545
- "create object in smart collection label",
591
+ "create object in system collection label",
546
592
  {
547
593
  ns: meta.id
548
594
  }
@@ -553,59 +599,61 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
553
599
  }
554
600
  }
555
601
  ] : [],
556
- {
557
- id: getId(SpaceAction.RenameObject._tag),
558
- type: ACTION_TYPE,
559
- data: async (params) => {
560
- await dispatch(createIntent(SpaceAction.RenameObject, {
561
- object,
562
- caller: params?.caller
563
- }));
564
- },
565
- properties: {
566
- label: [
567
- "rename object label",
568
- {
569
- ns: typename
570
- }
571
- ],
572
- icon: "ph--pencil-simple-line--regular",
573
- disposition: "list-item",
574
- // TODO(wittjosiah): Not working.
575
- // keyBinding: {
576
- // macos: 'shift+F6',
577
- // },
578
- testId: "spacePlugin.renameObject"
579
- }
580
- },
581
- {
582
- id: getId(SpaceAction.RemoveObjects._tag),
583
- type: ACTION_TYPE,
584
- data: async () => {
585
- const collection = graph.getConnections(Obj.getDXN(object).toString(), "inbound").find(({ data }) => Obj.instanceOf(Collection.Collection, data))?.data;
586
- await dispatch(createIntent(SpaceAction.RemoveObjects, {
587
- objects: [
588
- object
602
+ ...managedCollection ? [] : [
603
+ {
604
+ id: getId(SpaceAction.RenameObject._tag),
605
+ type: ACTION_TYPE,
606
+ data: async (params) => {
607
+ await dispatch(createIntent(SpaceAction.RenameObject, {
608
+ object,
609
+ caller: params?.caller
610
+ }));
611
+ },
612
+ properties: {
613
+ label: [
614
+ "rename object label",
615
+ {
616
+ ns: typename
617
+ }
589
618
  ],
590
- target: collection
591
- }));
619
+ icon: "ph--pencil-simple-line--regular",
620
+ disposition: "list-item",
621
+ // TODO(wittjosiah): Not working.
622
+ // keyBinding: {
623
+ // macos: 'shift+F6',
624
+ // },
625
+ testId: "spacePlugin.renameObject"
626
+ }
592
627
  },
593
- properties: {
594
- label: [
595
- "delete object label",
596
- {
597
- ns: typename
598
- }
599
- ],
600
- icon: "ph--trash--regular",
601
- disposition: "list-item",
602
- disabled: !deletable,
603
- // TODO(wittjosiah): This is a browser shortcut.
604
- // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
605
- testId: "spacePlugin.deleteObject"
628
+ {
629
+ id: getId(SpaceAction.RemoveObjects._tag),
630
+ type: ACTION_TYPE,
631
+ data: async () => {
632
+ const collection = graph.getConnections(Obj.getDXN(object).toString(), "inbound").find(({ data }) => Obj.instanceOf(Collection.Collection, data))?.data;
633
+ await dispatch(createIntent(SpaceAction.RemoveObjects, {
634
+ objects: [
635
+ object
636
+ ],
637
+ target: collection
638
+ }));
639
+ },
640
+ properties: {
641
+ label: [
642
+ "delete object label",
643
+ {
644
+ ns: typename
645
+ }
646
+ ],
647
+ icon: "ph--trash--regular",
648
+ disposition: "list-item",
649
+ disabled: !deletable,
650
+ // TODO(wittjosiah): This is a browser shortcut.
651
+ // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
652
+ testId: "spacePlugin.deleteObject"
653
+ }
606
654
  }
607
- },
608
- ...navigable || !Obj.instanceOf(Collection.Collection, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(StoredSchema, object) ? [
655
+ ],
656
+ ...navigable || !Obj.instanceOf(Collection.Collection, object) && !Obj.instanceOf(Collection.Managed, object) && !Obj.instanceOf(Type.PersistentType, object) ? [
609
657
  {
610
658
  id: getId("copy-link"),
611
659
  type: ACTION_TYPE,
@@ -651,6 +699,16 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
651
699
  ];
652
700
  return actions;
653
701
  };
702
+ var downloadBlob = async (blob, filename) => {
703
+ const url = URL.createObjectURL(blob);
704
+ const a = document.createElement("a");
705
+ a.href = url;
706
+ a.download = filename;
707
+ document.body.appendChild(a);
708
+ a.click();
709
+ document.body.removeChild(a);
710
+ URL.revokeObjectURL(url);
711
+ };
654
712
  var getNestedObjects = async (object, resolve) => {
655
713
  const type = Obj.getTypename(object);
656
714
  if (!type) {
@@ -675,7 +733,7 @@ var cloneObject = async (object, resolve, newSpace) => {
675
733
  const serializer = metadata.serializer;
676
734
  invariant(serializer, `No serializer for type: ${typename}`, {
677
735
  F: __dxlog_file,
678
- L: 730,
736
+ L: 788,
679
737
  S: void 0,
680
738
  A: [
681
739
  "serializer",
@@ -707,4 +765,4 @@ export {
707
765
  getNestedObjects,
708
766
  cloneObject
709
767
  };
710
- //# sourceMappingURL=chunk-ERQMHU7L.mjs.map
768
+ //# sourceMappingURL=chunk-GJOZILGC.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
+ }