@riboseinc/paneron-registry-kit 2.0.1 → 2.0.3

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 (502) hide show
  1. package/package.json +2 -2
  2. package/{dist/views → views}/index.js +20 -1
  3. package/views/index.js.map +1 -0
  4. package/LICENSE +0 -21
  5. package/README.adoc +0 -35
  6. package/compiled/common.js +0 -2
  7. package/compiled/index.js +0 -21
  8. package/compiled/migrations/initial.js +0 -8
  9. package/compiled/types/cr.js +0 -131
  10. package/compiled/types/index.js +0 -8
  11. package/compiled/types/item.js +0 -22
  12. package/compiled/types/proposal.js +0 -21
  13. package/compiled/types/register.js +0 -25
  14. package/compiled/types/registry.js +0 -10
  15. package/compiled/types/stakeholder.js +0 -34
  16. package/compiled/types/util.js +0 -3
  17. package/compiled/types/views.js +0 -2
  18. package/compiled/views/AnnotatedChange.js +0 -57
  19. package/compiled/views/BrowserCtx.js +0 -19
  20. package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -110
  21. package/compiled/views/FilterCriteria/criteriaGroupToQueryExpression.js +0 -40
  22. package/compiled/views/FilterCriteria/criteriaGroupToSummary.js +0 -47
  23. package/compiled/views/FilterCriteria/criteriaToNodes.js +0 -89
  24. package/compiled/views/FilterCriteria/index.js +0 -75
  25. package/compiled/views/FilterCriteria/models.js +0 -28
  26. package/compiled/views/FilterCriteria/mutateGroup.js +0 -53
  27. package/compiled/views/GenericRelatedItemView.js +0 -147
  28. package/compiled/views/RegisterStakeholder.js +0 -19
  29. package/compiled/views/RegisterVersion.js +0 -20
  30. package/compiled/views/SearchQuery.js +0 -58
  31. package/compiled/views/change-request/ChangeRequestContext.js +0 -30
  32. package/compiled/views/change-request/Proposals.js +0 -185
  33. package/compiled/views/change-request/objectChangeset.js +0 -189
  34. package/compiled/views/detail/ChangeRequest/Proposal.js +0 -144
  35. package/compiled/views/detail/ChangeRequest/index.js +0 -140
  36. package/compiled/views/detail/ChangeRequest/transitions.js +0 -418
  37. package/compiled/views/detail/CustomView/index.js +0 -32
  38. package/compiled/views/detail/RegisterHome/index.js +0 -70
  39. package/compiled/views/detail/RegisterItem/RelatedItems.js +0 -28
  40. package/compiled/views/detail/RegisterItem/SupersedingItemMenu.js +0 -27
  41. package/compiled/views/detail/RegisterItem/index.js +0 -277
  42. package/compiled/views/detail/RegisterMeta/RegisterMetaForm.js +0 -135
  43. package/compiled/views/detail/RegisterMeta/index.js +0 -61
  44. package/compiled/views/detail/index.js +0 -11
  45. package/compiled/views/diffing/InlineDiff.js +0 -20
  46. package/compiled/views/diffing/StructuredDiff.js +0 -38
  47. package/compiled/views/hooks/useCustomView.js +0 -14
  48. package/compiled/views/hooks/useItemClassConfig.js +0 -14
  49. package/compiled/views/hooks/useItemRef.js +0 -26
  50. package/compiled/views/hooks/useSingleRegisterItemData.js +0 -21
  51. package/compiled/views/index.js +0 -142
  52. package/compiled/views/index.js.map +0 -1
  53. package/compiled/views/itemPathUtils.js +0 -115
  54. package/compiled/views/itemQueryUtils.js +0 -42
  55. package/compiled/views/protocolRegistry.js +0 -24
  56. package/compiled/views/sidebar/Browse/index.js +0 -278
  57. package/compiled/views/sidebar/Export/index.js +0 -47
  58. package/compiled/views/sidebar/ListItem.js +0 -23
  59. package/compiled/views/sidebar/Registration/index.js +0 -114
  60. package/compiled/views/sidebar/Search/index.js +0 -100
  61. package/compiled/views/sidebar/index.js +0 -73
  62. package/compiled/views/util.js +0 -63
  63. package/dependencies-local/extension-kit/SettingsContext.d.ts +0 -8
  64. package/dependencies-local/extension-kit/SettingsContext.js +0 -19
  65. package/dependencies-local/extension-kit/SettingsContext.js.map +0 -1
  66. package/dependencies-local/extension-kit/context.d.ts +0 -11
  67. package/dependencies-local/extension-kit/context.js +0 -133
  68. package/dependencies-local/extension-kit/context.js.map +0 -1
  69. package/dependencies-local/extension-kit/i18n/ContextProvider.d.ts +0 -9
  70. package/dependencies-local/extension-kit/i18n/ContextProvider.js +0 -33
  71. package/dependencies-local/extension-kit/i18n/ContextProvider.js.map +0 -1
  72. package/dependencies-local/extension-kit/i18n/context.d.ts +0 -9
  73. package/dependencies-local/extension-kit/i18n/context.js +0 -23
  74. package/dependencies-local/extension-kit/i18n/context.js.map +0 -1
  75. package/dependencies-local/extension-kit/i18n/types.d.ts +0 -10
  76. package/dependencies-local/extension-kit/i18n/types.js +0 -5
  77. package/dependencies-local/extension-kit/i18n/types.js.map +0 -1
  78. package/dependencies-local/extension-kit/i18n/widgets.d.ts +0 -16
  79. package/dependencies-local/extension-kit/i18n/widgets.js +0 -56
  80. package/dependencies-local/extension-kit/i18n/widgets.js.map +0 -1
  81. package/dependencies-local/extension-kit/index.d.ts +0 -3
  82. package/dependencies-local/extension-kit/index.js +0 -78
  83. package/dependencies-local/extension-kit/index.js.map +0 -1
  84. package/dependencies-local/extension-kit/object-specs/index.d.ts +0 -2
  85. package/dependencies-local/extension-kit/object-specs/index.js +0 -22
  86. package/dependencies-local/extension-kit/object-specs/index.js.map +0 -1
  87. package/dependencies-local/extension-kit/object-specs/paneron-object.d.ts +0 -6
  88. package/dependencies-local/extension-kit/object-specs/paneron-object.js +0 -161
  89. package/dependencies-local/extension-kit/object-specs/paneron-object.js.map +0 -1
  90. package/dependencies-local/extension-kit/object-specs/ser-des.d.ts +0 -31
  91. package/dependencies-local/extension-kit/object-specs/ser-des.js +0 -187
  92. package/dependencies-local/extension-kit/object-specs/ser-des.js.map +0 -1
  93. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.d.ts +0 -2
  94. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js +0 -42
  95. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js.map +0 -1
  96. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.d.ts +0 -3
  97. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js +0 -110
  98. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js.map +0 -1
  99. package/dependencies-local/extension-kit/object-specs/yaml/index.d.ts +0 -9
  100. package/dependencies-local/extension-kit/object-specs/yaml/index.js +0 -36
  101. package/dependencies-local/extension-kit/object-specs/yaml/index.js.map +0 -1
  102. package/dependencies-local/extension-kit/object-specs/yaml/schema.d.ts +0 -3
  103. package/dependencies-local/extension-kit/object-specs/yaml/schema.js +0 -26
  104. package/dependencies-local/extension-kit/object-specs/yaml/schema.js.map +0 -1
  105. package/dependencies-local/extension-kit/package.json +0 -53
  106. package/dependencies-local/extension-kit/settings.d.ts +0 -6
  107. package/dependencies-local/extension-kit/settings.js +0 -11
  108. package/dependencies-local/extension-kit/settings.js.map +0 -1
  109. package/dependencies-local/extension-kit/types/binary-invocation.d.ts +0 -31
  110. package/dependencies-local/extension-kit/types/binary-invocation.js +0 -5
  111. package/dependencies-local/extension-kit/types/binary-invocation.js.map +0 -1
  112. package/dependencies-local/extension-kit/types/buffers.d.ts +0 -17
  113. package/dependencies-local/extension-kit/types/buffers.js +0 -5
  114. package/dependencies-local/extension-kit/types/buffers.js.map +0 -1
  115. package/dependencies-local/extension-kit/types/changes.d.ts +0 -37
  116. package/dependencies-local/extension-kit/types/changes.js +0 -5
  117. package/dependencies-local/extension-kit/types/changes.js.map +0 -1
  118. package/dependencies-local/extension-kit/types/data.d.ts +0 -54
  119. package/dependencies-local/extension-kit/types/data.js +0 -5
  120. package/dependencies-local/extension-kit/types/data.js.map +0 -1
  121. package/dependencies-local/extension-kit/types/dialogs.d.ts +0 -15
  122. package/dependencies-local/extension-kit/types/dialogs.js +0 -5
  123. package/dependencies-local/extension-kit/types/dialogs.js.map +0 -1
  124. package/dependencies-local/extension-kit/types/extension-maker.d.ts +0 -17
  125. package/dependencies-local/extension-kit/types/extension-maker.js +0 -5
  126. package/dependencies-local/extension-kit/types/extension-maker.js.map +0 -1
  127. package/dependencies-local/extension-kit/types/extension.d.ts +0 -27
  128. package/dependencies-local/extension-kit/types/extension.js +0 -5
  129. package/dependencies-local/extension-kit/types/extension.js.map +0 -1
  130. package/dependencies-local/extension-kit/types/index.d.ts +0 -3
  131. package/dependencies-local/extension-kit/types/index.js +0 -41
  132. package/dependencies-local/extension-kit/types/index.js.map +0 -1
  133. package/dependencies-local/extension-kit/types/indexes.d.ts +0 -6
  134. package/dependencies-local/extension-kit/types/indexes.js +0 -15
  135. package/dependencies-local/extension-kit/types/indexes.js.map +0 -1
  136. package/dependencies-local/extension-kit/types/migrations.d.ts +0 -15
  137. package/dependencies-local/extension-kit/types/migrations.js +0 -5
  138. package/dependencies-local/extension-kit/types/migrations.js.map +0 -1
  139. package/dependencies-local/extension-kit/types/object-spec.d.ts +0 -108
  140. package/dependencies-local/extension-kit/types/object-spec.js +0 -23
  141. package/dependencies-local/extension-kit/types/object-spec.js.map +0 -1
  142. package/dependencies-local/extension-kit/types/objects.d.ts +0 -18
  143. package/dependencies-local/extension-kit/types/objects.js +0 -5
  144. package/dependencies-local/extension-kit/types/objects.js.map +0 -1
  145. package/dependencies-local/extension-kit/types/progress.d.ts +0 -5
  146. package/dependencies-local/extension-kit/types/progress.js +0 -5
  147. package/dependencies-local/extension-kit/types/progress.js.map +0 -1
  148. package/dependencies-local/extension-kit/types/renderer.d.ts +0 -495
  149. package/dependencies-local/extension-kit/types/renderer.js +0 -5
  150. package/dependencies-local/extension-kit/types/renderer.js.map +0 -1
  151. package/dependencies-local/extension-kit/useDebounce.d.ts +0 -2
  152. package/dependencies-local/extension-kit/useDebounce.js +0 -27
  153. package/dependencies-local/extension-kit/useDebounce.js.map +0 -1
  154. package/dependencies-local/extension-kit/usePersistentStateReducer.d.ts +0 -35
  155. package/dependencies-local/extension-kit/usePersistentStateReducer.js +0 -91
  156. package/dependencies-local/extension-kit/usePersistentStateReducer.js.map +0 -1
  157. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.d.ts +0 -48
  158. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js +0 -116
  159. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js.map +0 -1
  160. package/dependencies-local/extension-kit/util.d.ts +0 -8
  161. package/dependencies-local/extension-kit/util.js +0 -21
  162. package/dependencies-local/extension-kit/util.js.map +0 -1
  163. package/dependencies-local/extension-kit/widgets/ErrorState.d.ts +0 -8
  164. package/dependencies-local/extension-kit/widgets/ErrorState.js +0 -44
  165. package/dependencies-local/extension-kit/widgets/ErrorState.js.map +0 -1
  166. package/dependencies-local/extension-kit/widgets/Grid.d.ts +0 -41
  167. package/dependencies-local/extension-kit/widgets/Grid.js +0 -213
  168. package/dependencies-local/extension-kit/widgets/Grid.js.map +0 -1
  169. package/dependencies-local/extension-kit/widgets/HelpTooltip.d.ts +0 -18
  170. package/dependencies-local/extension-kit/widgets/HelpTooltip.js +0 -84
  171. package/dependencies-local/extension-kit/widgets/HelpTooltip.js.map +0 -1
  172. package/dependencies-local/extension-kit/widgets/ItemCount.d.ts +0 -19
  173. package/dependencies-local/extension-kit/widgets/ItemCount.js +0 -78
  174. package/dependencies-local/extension-kit/widgets/ItemCount.js.map +0 -1
  175. package/dependencies-local/extension-kit/widgets/List.d.ts +0 -40
  176. package/dependencies-local/extension-kit/widgets/List.js +0 -191
  177. package/dependencies-local/extension-kit/widgets/List.js.map +0 -1
  178. package/dependencies-local/extension-kit/widgets/Navbar.d.ts +0 -20
  179. package/dependencies-local/extension-kit/widgets/Navbar.js +0 -75
  180. package/dependencies-local/extension-kit/widgets/Navbar.js.map +0 -1
  181. package/dependencies-local/extension-kit/widgets/SearchResultList.d.ts +0 -24
  182. package/dependencies-local/extension-kit/widgets/SearchResultList.js +0 -201
  183. package/dependencies-local/extension-kit/widgets/SearchResultList.js.map +0 -1
  184. package/dependencies-local/extension-kit/widgets/Sidebar/Block.d.ts +0 -21
  185. package/dependencies-local/extension-kit/widgets/Sidebar/Block.js +0 -94
  186. package/dependencies-local/extension-kit/widgets/Sidebar/Block.js.map +0 -1
  187. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.d.ts +0 -6
  188. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js +0 -22
  189. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js.map +0 -1
  190. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.d.ts +0 -28
  191. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js +0 -148
  192. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js.map +0 -1
  193. package/dependencies-local/extension-kit/widgets/Sidebar/index.d.ts +0 -27
  194. package/dependencies-local/extension-kit/widgets/Sidebar/index.js +0 -178
  195. package/dependencies-local/extension-kit/widgets/Sidebar/index.js.map +0 -1
  196. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.d.ts +0 -13
  197. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js +0 -82
  198. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js.map +0 -1
  199. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.d.ts +0 -10
  200. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js +0 -168
  201. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js.map +0 -1
  202. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.d.ts +0 -9
  203. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js +0 -66
  204. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js.map +0 -1
  205. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.d.ts +0 -33
  206. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js +0 -204
  207. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js.map +0 -1
  208. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.d.ts +0 -74
  209. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js +0 -5
  210. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js.map +0 -1
  211. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.d.ts +0 -1
  212. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js +0 -14
  213. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js.map +0 -1
  214. package/dependencies-local/extension-kit/widgets/Workspace.d.ts +0 -38
  215. package/dependencies-local/extension-kit/widgets/Workspace.js +0 -99
  216. package/dependencies-local/extension-kit/widgets/Workspace.js.map +0 -1
  217. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.d.ts +0 -12
  218. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js +0 -57
  219. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js.map +0 -1
  220. package/dependencies-local/extension-kit/widgets/panels/index.d.ts +0 -28
  221. package/dependencies-local/extension-kit/widgets/panels/index.js +0 -169
  222. package/dependencies-local/extension-kit/widgets/panels/index.js.map +0 -1
  223. package/dist/common.d.ts +0 -1
  224. package/dist/common.js.map +0 -1
  225. package/dist/index.d.ts +0 -6
  226. package/dist/index.js.map +0 -1
  227. package/dist/migrations/initial.d.ts +0 -3
  228. package/dist/migrations/initial.js.map +0 -1
  229. package/dist/package.json +0 -56
  230. package/dist/types/cr.d.ts +0 -216
  231. package/dist/types/cr.js.map +0 -1
  232. package/dist/types/index.d.ts +0 -7
  233. package/dist/types/index.js.map +0 -1
  234. package/dist/types/item.d.ts +0 -59
  235. package/dist/types/item.js.map +0 -1
  236. package/dist/types/proposal.d.ts +0 -64
  237. package/dist/types/proposal.js.map +0 -1
  238. package/dist/types/register.d.ts +0 -18
  239. package/dist/types/register.js.map +0 -1
  240. package/dist/types/registry.d.ts +0 -15
  241. package/dist/types/registry.js.map +0 -1
  242. package/dist/types/stakeholder.d.ts +0 -58
  243. package/dist/types/stakeholder.js.map +0 -1
  244. package/dist/types/util.d.ts +0 -21
  245. package/dist/types/util.js.map +0 -1
  246. package/dist/types/views.d.ts +0 -157
  247. package/dist/types/views.js.map +0 -1
  248. package/dist/views/AnnotatedChange.d.ts +0 -7
  249. package/dist/views/AnnotatedChange.js.map +0 -1
  250. package/dist/views/BrowserCtx.d.ts +0 -73
  251. package/dist/views/BrowserCtx.js.map +0 -1
  252. package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -17
  253. package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -1
  254. package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.d.ts +0 -6
  255. package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -1
  256. package/dist/views/FilterCriteria/criteriaGroupToSummary.d.ts +0 -5
  257. package/dist/views/FilterCriteria/criteriaGroupToSummary.js.map +0 -1
  258. package/dist/views/FilterCriteria/criteriaToNodes.d.ts +0 -24
  259. package/dist/views/FilterCriteria/criteriaToNodes.js.map +0 -1
  260. package/dist/views/FilterCriteria/index.d.ts +0 -23
  261. package/dist/views/FilterCriteria/index.js.map +0 -1
  262. package/dist/views/FilterCriteria/models.d.ts +0 -68
  263. package/dist/views/FilterCriteria/models.js.map +0 -1
  264. package/dist/views/FilterCriteria/mutateGroup.d.ts +0 -17
  265. package/dist/views/FilterCriteria/mutateGroup.js.map +0 -1
  266. package/dist/views/GenericRelatedItemView.d.ts +0 -6
  267. package/dist/views/GenericRelatedItemView.js.map +0 -1
  268. package/dist/views/RegisterStakeholder.d.ts +0 -9
  269. package/dist/views/RegisterStakeholder.js.map +0 -1
  270. package/dist/views/RegisterVersion.d.ts +0 -9
  271. package/dist/views/RegisterVersion.js.map +0 -1
  272. package/dist/views/SearchQuery.d.ts +0 -13
  273. package/dist/views/SearchQuery.js.map +0 -1
  274. package/dist/views/change-request/ChangeRequestContext.d.ts +0 -20
  275. package/dist/views/change-request/ChangeRequestContext.js.map +0 -1
  276. package/dist/views/change-request/Proposals.d.ts +0 -21
  277. package/dist/views/change-request/Proposals.js.map +0 -1
  278. package/dist/views/change-request/objectChangeset.d.ts +0 -31
  279. package/dist/views/change-request/objectChangeset.js.map +0 -1
  280. package/dist/views/detail/ChangeRequest/Proposal.d.ts +0 -0
  281. package/dist/views/detail/ChangeRequest/Proposal.js.map +0 -1
  282. package/dist/views/detail/ChangeRequest/index.d.ts +0 -13
  283. package/dist/views/detail/ChangeRequest/index.js.map +0 -1
  284. package/dist/views/detail/ChangeRequest/transitions.d.ts +0 -28
  285. package/dist/views/detail/ChangeRequest/transitions.js.map +0 -1
  286. package/dist/views/detail/CustomView/index.d.ts +0 -13
  287. package/dist/views/detail/CustomView/index.js.map +0 -1
  288. package/dist/views/detail/RegisterHome/index.d.ts +0 -5
  289. package/dist/views/detail/RegisterHome/index.js.map +0 -1
  290. package/dist/views/detail/RegisterItem/RelatedItems.d.ts +0 -14
  291. package/dist/views/detail/RegisterItem/RelatedItems.js.map +0 -1
  292. package/dist/views/detail/RegisterItem/SupersedingItemMenu.d.ts +0 -13
  293. package/dist/views/detail/RegisterItem/SupersedingItemMenu.js.map +0 -1
  294. package/dist/views/detail/RegisterItem/index.d.ts +0 -13
  295. package/dist/views/detail/RegisterItem/index.js.map +0 -1
  296. package/dist/views/detail/RegisterMeta/RegisterMetaForm.d.ts +0 -10
  297. package/dist/views/detail/RegisterMeta/RegisterMetaForm.js.map +0 -1
  298. package/dist/views/detail/RegisterMeta/index.d.ts +0 -10
  299. package/dist/views/detail/RegisterMeta/index.js.map +0 -1
  300. package/dist/views/detail/index.d.ts +0 -1
  301. package/dist/views/detail/index.js.map +0 -1
  302. package/dist/views/diffing/InlineDiff.d.ts +0 -12
  303. package/dist/views/diffing/InlineDiff.js.map +0 -1
  304. package/dist/views/diffing/StructuredDiff.d.ts +0 -11
  305. package/dist/views/diffing/StructuredDiff.js.map +0 -1
  306. package/dist/views/hooks/useCustomView.d.ts +0 -3
  307. package/dist/views/hooks/useCustomView.js.map +0 -1
  308. package/dist/views/hooks/useItemClassConfig.d.ts +0 -3
  309. package/dist/views/hooks/useItemClassConfig.js.map +0 -1
  310. package/dist/views/hooks/useItemRef.d.ts +0 -3
  311. package/dist/views/hooks/useItemRef.js.map +0 -1
  312. package/dist/views/hooks/useSingleRegisterItemData.d.ts +0 -3
  313. package/dist/views/hooks/useSingleRegisterItemData.js.map +0 -1
  314. package/dist/views/index.d.ts +0 -7
  315. package/dist/views/index.js.map +0 -1
  316. package/dist/views/itemPathUtils.d.ts +0 -52
  317. package/dist/views/itemPathUtils.js.map +0 -1
  318. package/dist/views/itemQueryUtils.d.ts +0 -11
  319. package/dist/views/itemQueryUtils.js.map +0 -1
  320. package/dist/views/protocolRegistry.d.ts +0 -12
  321. package/dist/views/protocolRegistry.js.map +0 -1
  322. package/dist/views/sidebar/Browse/index.d.ts +0 -11
  323. package/dist/views/sidebar/Browse/index.js.map +0 -1
  324. package/dist/views/sidebar/Export/index.d.ts +0 -5
  325. package/dist/views/sidebar/Export/index.js.map +0 -1
  326. package/dist/views/sidebar/ListItem.d.ts +0 -10
  327. package/dist/views/sidebar/ListItem.js.map +0 -1
  328. package/dist/views/sidebar/Registration/index.d.ts +0 -5
  329. package/dist/views/sidebar/Registration/index.js.map +0 -1
  330. package/dist/views/sidebar/Search/index.d.ts +0 -18
  331. package/dist/views/sidebar/Search/index.js.map +0 -1
  332. package/dist/views/sidebar/index.d.ts +0 -6
  333. package/dist/views/sidebar/index.js.map +0 -1
  334. package/dist/views/util.d.ts +0 -36
  335. package/dist/views/util.js.map +0 -1
  336. package/react-visual-diff.d.ts +0 -9
  337. /package/{compiled/common.d.ts → common.d.ts} +0 -0
  338. /package/{dist/common.js → common.js} +0 -0
  339. /package/{compiled/common.js.map → common.js.map} +0 -0
  340. /package/{compiled/index.d.ts → index.d.ts} +0 -0
  341. /package/{dist/index.js → index.js} +0 -0
  342. /package/{compiled/index.js.map → index.js.map} +0 -0
  343. /package/{compiled/migrations → migrations}/initial.d.ts +0 -0
  344. /package/{dist/migrations → migrations}/initial.js +0 -0
  345. /package/{compiled/migrations → migrations}/initial.js.map +0 -0
  346. /package/{compiled/types → types}/cr.d.ts +0 -0
  347. /package/{dist/types → types}/cr.js +0 -0
  348. /package/{compiled/types → types}/cr.js.map +0 -0
  349. /package/{compiled/types → types}/index.d.ts +0 -0
  350. /package/{dist/types → types}/index.js +0 -0
  351. /package/{compiled/types → types}/index.js.map +0 -0
  352. /package/{compiled/types → types}/item.d.ts +0 -0
  353. /package/{dist/types → types}/item.js +0 -0
  354. /package/{compiled/types → types}/item.js.map +0 -0
  355. /package/{compiled/types → types}/proposal.d.ts +0 -0
  356. /package/{dist/types → types}/proposal.js +0 -0
  357. /package/{compiled/types → types}/proposal.js.map +0 -0
  358. /package/{compiled/types → types}/register.d.ts +0 -0
  359. /package/{dist/types → types}/register.js +0 -0
  360. /package/{compiled/types → types}/register.js.map +0 -0
  361. /package/{compiled/types → types}/registry.d.ts +0 -0
  362. /package/{dist/types → types}/registry.js +0 -0
  363. /package/{compiled/types → types}/registry.js.map +0 -0
  364. /package/{compiled/types → types}/stakeholder.d.ts +0 -0
  365. /package/{dist/types → types}/stakeholder.js +0 -0
  366. /package/{compiled/types → types}/stakeholder.js.map +0 -0
  367. /package/{compiled/types → types}/util.d.ts +0 -0
  368. /package/{dist/types → types}/util.js +0 -0
  369. /package/{compiled/types → types}/util.js.map +0 -0
  370. /package/{compiled/types → types}/views.d.ts +0 -0
  371. /package/{dist/types → types}/views.js +0 -0
  372. /package/{compiled/types → types}/views.js.map +0 -0
  373. /package/{compiled/views → views}/AnnotatedChange.d.ts +0 -0
  374. /package/{dist/views → views}/AnnotatedChange.js +0 -0
  375. /package/{compiled/views → views}/AnnotatedChange.js.map +0 -0
  376. /package/{compiled/views → views}/BrowserCtx.d.ts +0 -0
  377. /package/{dist/views → views}/BrowserCtx.js +0 -0
  378. /package/{compiled/views → views}/BrowserCtx.js.map +0 -0
  379. /package/{compiled/views → views}/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -0
  380. /package/{dist/views → views}/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -0
  381. /package/{compiled/views → views}/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -0
  382. /package/{compiled/views → views}/FilterCriteria/criteriaGroupToQueryExpression.d.ts +0 -0
  383. /package/{dist/views → views}/FilterCriteria/criteriaGroupToQueryExpression.js +0 -0
  384. /package/{compiled/views → views}/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -0
  385. /package/{compiled/views → views}/FilterCriteria/criteriaGroupToSummary.d.ts +0 -0
  386. /package/{dist/views → views}/FilterCriteria/criteriaGroupToSummary.js +0 -0
  387. /package/{compiled/views → views}/FilterCriteria/criteriaGroupToSummary.js.map +0 -0
  388. /package/{compiled/views → views}/FilterCriteria/criteriaToNodes.d.ts +0 -0
  389. /package/{dist/views → views}/FilterCriteria/criteriaToNodes.js +0 -0
  390. /package/{compiled/views → views}/FilterCriteria/criteriaToNodes.js.map +0 -0
  391. /package/{compiled/views → views}/FilterCriteria/index.d.ts +0 -0
  392. /package/{dist/views → views}/FilterCriteria/index.js +0 -0
  393. /package/{compiled/views → views}/FilterCriteria/index.js.map +0 -0
  394. /package/{compiled/views → views}/FilterCriteria/models.d.ts +0 -0
  395. /package/{dist/views → views}/FilterCriteria/models.js +0 -0
  396. /package/{compiled/views → views}/FilterCriteria/models.js.map +0 -0
  397. /package/{compiled/views → views}/FilterCriteria/mutateGroup.d.ts +0 -0
  398. /package/{dist/views → views}/FilterCriteria/mutateGroup.js +0 -0
  399. /package/{compiled/views → views}/FilterCriteria/mutateGroup.js.map +0 -0
  400. /package/{compiled/views → views}/GenericRelatedItemView.d.ts +0 -0
  401. /package/{dist/views → views}/GenericRelatedItemView.js +0 -0
  402. /package/{compiled/views → views}/GenericRelatedItemView.js.map +0 -0
  403. /package/{compiled/views → views}/RegisterStakeholder.d.ts +0 -0
  404. /package/{dist/views → views}/RegisterStakeholder.js +0 -0
  405. /package/{compiled/views → views}/RegisterStakeholder.js.map +0 -0
  406. /package/{compiled/views → views}/RegisterVersion.d.ts +0 -0
  407. /package/{dist/views → views}/RegisterVersion.js +0 -0
  408. /package/{compiled/views → views}/RegisterVersion.js.map +0 -0
  409. /package/{compiled/views → views}/SearchQuery.d.ts +0 -0
  410. /package/{dist/views → views}/SearchQuery.js +0 -0
  411. /package/{compiled/views → views}/SearchQuery.js.map +0 -0
  412. /package/{compiled/views → views}/change-request/ChangeRequestContext.d.ts +0 -0
  413. /package/{dist/views → views}/change-request/ChangeRequestContext.js +0 -0
  414. /package/{compiled/views → views}/change-request/ChangeRequestContext.js.map +0 -0
  415. /package/{compiled/views → views}/change-request/Proposals.d.ts +0 -0
  416. /package/{dist/views → views}/change-request/Proposals.js +0 -0
  417. /package/{compiled/views → views}/change-request/Proposals.js.map +0 -0
  418. /package/{compiled/views → views}/change-request/objectChangeset.d.ts +0 -0
  419. /package/{dist/views → views}/change-request/objectChangeset.js +0 -0
  420. /package/{compiled/views → views}/change-request/objectChangeset.js.map +0 -0
  421. /package/{compiled/views → views}/detail/ChangeRequest/Proposal.d.ts +0 -0
  422. /package/{dist/views → views}/detail/ChangeRequest/Proposal.js +0 -0
  423. /package/{compiled/views → views}/detail/ChangeRequest/Proposal.js.map +0 -0
  424. /package/{compiled/views → views}/detail/ChangeRequest/index.d.ts +0 -0
  425. /package/{dist/views → views}/detail/ChangeRequest/index.js +0 -0
  426. /package/{compiled/views → views}/detail/ChangeRequest/index.js.map +0 -0
  427. /package/{compiled/views → views}/detail/ChangeRequest/transitions.d.ts +0 -0
  428. /package/{dist/views → views}/detail/ChangeRequest/transitions.js +0 -0
  429. /package/{compiled/views → views}/detail/ChangeRequest/transitions.js.map +0 -0
  430. /package/{compiled/views → views}/detail/CustomView/index.d.ts +0 -0
  431. /package/{dist/views → views}/detail/CustomView/index.js +0 -0
  432. /package/{compiled/views → views}/detail/CustomView/index.js.map +0 -0
  433. /package/{compiled/views → views}/detail/RegisterHome/index.d.ts +0 -0
  434. /package/{dist/views → views}/detail/RegisterHome/index.js +0 -0
  435. /package/{compiled/views → views}/detail/RegisterHome/index.js.map +0 -0
  436. /package/{compiled/views → views}/detail/RegisterItem/RelatedItems.d.ts +0 -0
  437. /package/{dist/views → views}/detail/RegisterItem/RelatedItems.js +0 -0
  438. /package/{compiled/views → views}/detail/RegisterItem/RelatedItems.js.map +0 -0
  439. /package/{compiled/views → views}/detail/RegisterItem/SupersedingItemMenu.d.ts +0 -0
  440. /package/{dist/views → views}/detail/RegisterItem/SupersedingItemMenu.js +0 -0
  441. /package/{compiled/views → views}/detail/RegisterItem/SupersedingItemMenu.js.map +0 -0
  442. /package/{compiled/views → views}/detail/RegisterItem/index.d.ts +0 -0
  443. /package/{dist/views → views}/detail/RegisterItem/index.js +0 -0
  444. /package/{compiled/views → views}/detail/RegisterItem/index.js.map +0 -0
  445. /package/{compiled/views → views}/detail/RegisterMeta/RegisterMetaForm.d.ts +0 -0
  446. /package/{dist/views → views}/detail/RegisterMeta/RegisterMetaForm.js +0 -0
  447. /package/{compiled/views → views}/detail/RegisterMeta/RegisterMetaForm.js.map +0 -0
  448. /package/{compiled/views → views}/detail/RegisterMeta/index.d.ts +0 -0
  449. /package/{dist/views → views}/detail/RegisterMeta/index.js +0 -0
  450. /package/{compiled/views → views}/detail/RegisterMeta/index.js.map +0 -0
  451. /package/{compiled/views → views}/detail/index.d.ts +0 -0
  452. /package/{dist/views → views}/detail/index.js +0 -0
  453. /package/{compiled/views → views}/detail/index.js.map +0 -0
  454. /package/{compiled/views → views}/diffing/InlineDiff.d.ts +0 -0
  455. /package/{dist/views → views}/diffing/InlineDiff.js +0 -0
  456. /package/{compiled/views → views}/diffing/InlineDiff.js.map +0 -0
  457. /package/{compiled/views → views}/diffing/StructuredDiff.d.ts +0 -0
  458. /package/{dist/views → views}/diffing/StructuredDiff.js +0 -0
  459. /package/{compiled/views → views}/diffing/StructuredDiff.js.map +0 -0
  460. /package/{compiled/views → views}/hooks/useCustomView.d.ts +0 -0
  461. /package/{dist/views → views}/hooks/useCustomView.js +0 -0
  462. /package/{compiled/views → views}/hooks/useCustomView.js.map +0 -0
  463. /package/{compiled/views → views}/hooks/useItemClassConfig.d.ts +0 -0
  464. /package/{dist/views → views}/hooks/useItemClassConfig.js +0 -0
  465. /package/{compiled/views → views}/hooks/useItemClassConfig.js.map +0 -0
  466. /package/{compiled/views → views}/hooks/useItemRef.d.ts +0 -0
  467. /package/{dist/views → views}/hooks/useItemRef.js +0 -0
  468. /package/{compiled/views → views}/hooks/useItemRef.js.map +0 -0
  469. /package/{compiled/views → views}/hooks/useSingleRegisterItemData.d.ts +0 -0
  470. /package/{dist/views → views}/hooks/useSingleRegisterItemData.js +0 -0
  471. /package/{compiled/views → views}/hooks/useSingleRegisterItemData.js.map +0 -0
  472. /package/{compiled/views → views}/index.d.ts +0 -0
  473. /package/{compiled/views → views}/itemPathUtils.d.ts +0 -0
  474. /package/{dist/views → views}/itemPathUtils.js +0 -0
  475. /package/{compiled/views → views}/itemPathUtils.js.map +0 -0
  476. /package/{compiled/views → views}/itemQueryUtils.d.ts +0 -0
  477. /package/{dist/views → views}/itemQueryUtils.js +0 -0
  478. /package/{compiled/views → views}/itemQueryUtils.js.map +0 -0
  479. /package/{compiled/views → views}/protocolRegistry.d.ts +0 -0
  480. /package/{dist/views → views}/protocolRegistry.js +0 -0
  481. /package/{compiled/views → views}/protocolRegistry.js.map +0 -0
  482. /package/{compiled/views → views}/sidebar/Browse/index.d.ts +0 -0
  483. /package/{dist/views → views}/sidebar/Browse/index.js +0 -0
  484. /package/{compiled/views → views}/sidebar/Browse/index.js.map +0 -0
  485. /package/{compiled/views → views}/sidebar/Export/index.d.ts +0 -0
  486. /package/{dist/views → views}/sidebar/Export/index.js +0 -0
  487. /package/{compiled/views → views}/sidebar/Export/index.js.map +0 -0
  488. /package/{compiled/views → views}/sidebar/ListItem.d.ts +0 -0
  489. /package/{dist/views → views}/sidebar/ListItem.js +0 -0
  490. /package/{compiled/views → views}/sidebar/ListItem.js.map +0 -0
  491. /package/{compiled/views → views}/sidebar/Registration/index.d.ts +0 -0
  492. /package/{dist/views → views}/sidebar/Registration/index.js +0 -0
  493. /package/{compiled/views → views}/sidebar/Registration/index.js.map +0 -0
  494. /package/{compiled/views → views}/sidebar/Search/index.d.ts +0 -0
  495. /package/{dist/views → views}/sidebar/Search/index.js +0 -0
  496. /package/{compiled/views → views}/sidebar/Search/index.js.map +0 -0
  497. /package/{compiled/views → views}/sidebar/index.d.ts +0 -0
  498. /package/{dist/views → views}/sidebar/index.js +0 -0
  499. /package/{compiled/views → views}/sidebar/index.js.map +0 -0
  500. /package/{compiled/views → views}/util.d.ts +0 -0
  501. /package/{dist/views → views}/util.js +0 -0
  502. /package/{compiled/views → views}/util.js.map +0 -0
@@ -1,142 +0,0 @@
1
- /** @jsx jsx */
2
- /** @jsxFrag React.Fragment */
3
- import React, { useContext, useState, useMemo } from 'react';
4
- import { jsx, css } from '@emotion/react';
5
- import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
6
- import TabbedWorkspace from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace';
7
- import { makeContextProvider as makeTabbedWorkspaceContextProvider, TabbedWorkspaceContext, } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';
8
- import { isRegisterItem, isRegisterMetadata, isInternalItemReference, } from '../types';
9
- import { REGISTER_METADATA_FILENAME } from '../common';
10
- import GenericRelatedItemView from './GenericRelatedItemView';
11
- import { sidebarConfig, sidebarIDs } from './sidebar';
12
- import { BrowserCtx } from './BrowserCtx';
13
- import { _getRelatedClass } from './util';
14
- import RegisterHome from './detail/RegisterHome';
15
- import protocolRegistry, { Protocols } from './protocolRegistry';
16
- import { ChangeRequestContext, ChangeRequestContextProvider, } from './change-request/ChangeRequestContext';
17
- import { itemPathInCR, itemPathToItemRefLike } from './itemPathUtils';
18
- export { GenericRelatedItemView };
19
- const TabbedWorkspaceContextProvider = makeTabbedWorkspaceContextProvider('Browse', sidebarIDs, protocolRegistry);
20
- export const RegistryView = function (props) {
21
- return (jsx(TabbedWorkspaceContextProvider, { stateKey: "main-registry-view" },
22
- jsx(BrowserCtxProvider, { ...props },
23
- jsx(RegistryWorkspace, null))));
24
- };
25
- const RegistryWorkspace = function () {
26
- const { changeRequest: activeChangeRequest } = useContext(ChangeRequestContext);
27
- const { spawnTab } = useContext(TabbedWorkspaceContext);
28
- const globalMode = useMemo((() => activeChangeRequest
29
- ? {
30
- content: jsx(React.Fragment, null, "Viewing register as proposed\u2009\u2014\u2009contents shown may differ from version in effect"),
31
- intent: 'danger',
32
- onClick: () => spawnTab(`${Protocols.CHANGE_REQUEST}:/proposals/${activeChangeRequest.id}/main.yaml`),
33
- }
34
- : undefined), [activeChangeRequest?.id]);
35
- return jsx(TabbedWorkspace, { css: css `flex: 1 1 auto;`, sidebarConfig: sidebarConfig, sidebarIDs: sidebarIDs, newTabPrompt: jsx(RegisterHome, null), globalMode: globalMode });
36
- };
37
- const BrowserCtxProvider = function ({ itemClassConfiguration, subregisters, keyExpression, defaultSearchCriteria, customViews, children, }) {
38
- const { useObjectData, useRemoteUsername } = useContext(DatasetContext);
39
- const { focusedTabURI, spawnTab } = useContext(TabbedWorkspaceContext);
40
- const selectedItemPath = focusedTabURI && focusedTabURI.startsWith(`${Protocols.ITEM_DETAILS}:`)
41
- ? focusedTabURI.split(':')[1]
42
- : null;
43
- const selectedItemRef = selectedItemPath
44
- ? itemPathToItemRefLike(subregisters !== undefined, selectedItemPath)
45
- : null;
46
- const maybeSelectedRegisterItemData = useObjectData({
47
- objectPaths: selectedItemPath ? [selectedItemPath] : [],
48
- }).value.data[selectedItemPath ?? ''];
49
- const selectedRegisterItem = isInternalItemReference(selectedItemRef)
50
- ? maybeSelectedRegisterItemData &&
51
- isRegisterItem(maybeSelectedRegisterItemData)
52
- ? {
53
- item: maybeSelectedRegisterItemData,
54
- ref: selectedItemRef,
55
- itemClass: itemClassConfiguration[selectedItemRef.classID],
56
- }
57
- : undefined
58
- : null;
59
- // TODO: Confirm that end extensions using RegistryKit can’t just import hooks
60
- // from RegistryKit and we really have to pass this to them via context
61
- // TODO: Why not use useObjectData directly? Since register item paths
62
- // are just object paths. The casting here is optimistic, since an item at given path
63
- // may not be a RegisterItem.
64
- const useRegisterItemData = (opts) => {
65
- // Original item path mapped to its potential alternative path in current CR,
66
- // if the item is clarified or added in it.
67
- // TODO(perf): Access CR data and check whether the item is affected instead of blindly trying CR paths
68
- const pathsToRequest = {};
69
- const { changeRequest: activeChangeRequest } = useContext(ChangeRequestContext);
70
- for (const givenItemPath of opts.itemPaths) {
71
- pathsToRequest[givenItemPath] = givenItemPath;
72
- // Don’t use CR alternative path for any path that is already explicitly in-CR.
73
- // TODO(perf): move out of the loop what’s possible, use map-reduce maybe too
74
- if (!opts.ignoreActiveCR && !givenItemPath.startsWith('/proposals') && activeChangeRequest?.id) {
75
- pathsToRequest[itemPathInCR(givenItemPath, activeChangeRequest.id)] = givenItemPath;
76
- }
77
- }
78
- const result = useObjectData({
79
- objectPaths: Object.keys(pathsToRequest),
80
- });
81
- const itemData = {};
82
- for (const [alternativePath, itemPath] of Object.entries(pathsToRequest)) {
83
- const data = result.value.data[alternativePath]
84
- ?? result.value.data[itemPath]
85
- ?? null;
86
- if (isRegisterItem(data) || data === null) {
87
- itemData[itemPath] = data;
88
- }
89
- }
90
- // Convert dates
91
- // const parsedData: Record<string, RegisterItem<any> | null> = Object.entries(result.value.data).
92
- // map(([ path, data ]) => {
93
- // return {
94
- // [path]: data !== null
95
- // ? {
96
- // ...data,
97
- // dateAccepted: parseISO(data!.dateAccepted as unknown as string),
98
- // }
99
- // : null,
100
- // };
101
- // }).
102
- // reduce((p, c) => ({ ...p, ...c }), {});
103
- return {
104
- ...result,
105
- value: itemData,
106
- };
107
- };
108
- // Register data
109
- const registerMetadataReq = useObjectData({
110
- objectPaths: [REGISTER_METADATA_FILENAME],
111
- });
112
- const maybeRegisterMetadata = registerMetadataReq.value.data?.[REGISTER_METADATA_FILENAME] ??
113
- (registerMetadataReq.isUpdating ? undefined : null);
114
- const registerMetadata = !maybeRegisterMetadata || isRegisterMetadata(maybeRegisterMetadata)
115
- ? maybeRegisterMetadata
116
- : null;
117
- const remoteUsername = useRemoteUsername().value.username;
118
- const stakeholder = remoteUsername
119
- ? (registerMetadata?.stakeholders ?? []).
120
- find(s => s.gitServerUsername === remoteUsername)
121
- : undefined;
122
- // Active CR
123
- const [activeChangeRequestID, setActiveChangeRequestID] = useState(null);
124
- const getRelatedClass = _getRelatedClass(itemClassConfiguration);
125
- return (jsx(BrowserCtx.Provider, { value: {
126
- stakeholder,
127
- registerMetadata,
128
- subregisters,
129
- itemClasses: itemClassConfiguration,
130
- jumpTo: spawnTab,
131
- selectedRegisterItem,
132
- activeChangeRequestID,
133
- setActiveChangeRequestID,
134
- useRegisterItemData,
135
- getRelatedItemClassConfiguration: getRelatedClass,
136
- customViews: customViews ?? [],
137
- keyExpression,
138
- defaultSearchCriteria,
139
- } },
140
- jsx(ChangeRequestContextProvider, { changeRequestID: activeChangeRequestID }, children)));
141
- };
142
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/views/index.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useContext, useState, useMemo } from 'react';\nimport { jsx, css } from '@emotion/react';\n\nimport { ValueHook } from '@riboseinc/paneron-extension-kit/types';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport TabbedWorkspace, { TabbedWorkspaceProps } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace';\nimport {\n makeContextProvider as makeTabbedWorkspaceContextProvider,\n TabbedWorkspaceContext,\n} from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';\n\nimport {\n type RegisterItem,\n type RegisterItemDataHook,\n type RegisterStakeholder,\n type RegistryViewProps,\n isRegisterItem,\n isRegisterMetadata,\n isInternalItemReference,\n} from '../types';\n\nimport { REGISTER_METADATA_FILENAME } from '../common';\n\nimport GenericRelatedItemView from './GenericRelatedItemView';\nimport { sidebarConfig, SidebarID, sidebarIDs } from './sidebar';\nimport { BrowserCtx } from './BrowserCtx';\nimport { _getRelatedClass } from './util';\nimport RegisterHome from './detail/RegisterHome';\nimport protocolRegistry, { Protocols, type Protocol } from './protocolRegistry';\nimport {\n ChangeRequestContext,\n ChangeRequestContextProvider,\n} from './change-request/ChangeRequestContext';\nimport { itemPathInCR, itemPathToItemRefLike } from './itemPathUtils';\nexport { GenericRelatedItemView };\n\n\nconst TabbedWorkspaceContextProvider = makeTabbedWorkspaceContextProvider<Protocol, SidebarID>(\n 'Browse',\n sidebarIDs,\n protocolRegistry);\n\n\nexport const RegistryView: React.FC<RegistryViewProps> = function (props) {\n return (\n <TabbedWorkspaceContextProvider stateKey=\"main-registry-view\">\n <BrowserCtxProvider {...props}>\n <RegistryWorkspace />\n </BrowserCtxProvider>\n </TabbedWorkspaceContextProvider>\n );\n};\n\n\nconst RegistryWorkspace: React.FC<Record<never, never>> = function () {\n const { changeRequest: activeChangeRequest } = useContext(ChangeRequestContext);\n const { spawnTab } = useContext(TabbedWorkspaceContext);\n\n const globalMode: TabbedWorkspaceProps<any>['globalMode'] = useMemo(\n (() => activeChangeRequest\n ? {\n content: <>\n Viewing register as proposed — contents shown may differ from version in effect\n </>,\n intent: 'danger',\n onClick: () => spawnTab(`${Protocols.CHANGE_REQUEST}:/proposals/${activeChangeRequest.id}/main.yaml`),\n }\n : undefined),\n [activeChangeRequest?.id],\n );\n\n return <TabbedWorkspace\n css={css`flex: 1 1 auto;`}\n sidebarConfig={sidebarConfig}\n sidebarIDs={sidebarIDs}\n newTabPrompt={<RegisterHome />}\n globalMode={globalMode}\n />\n};\n\n\nconst BrowserCtxProvider: React.FC<RegistryViewProps> = function ({\n itemClassConfiguration,\n subregisters,\n keyExpression,\n defaultSearchCriteria,\n customViews,\n children,\n}) {\n\n const { useObjectData, useRemoteUsername } = useContext(DatasetContext);\n const { focusedTabURI, spawnTab } = useContext(TabbedWorkspaceContext);\n\n const selectedItemPath: string | null =\n focusedTabURI && focusedTabURI.startsWith(`${Protocols.ITEM_DETAILS}:`)\n ? focusedTabURI.split(':')[1]\n : null;\n\n const selectedItemRef: Record<string, string> | null =\n selectedItemPath\n ? itemPathToItemRefLike(subregisters !== undefined, selectedItemPath)\n : null;\n\n const maybeSelectedRegisterItemData: Record<string, any> | null = useObjectData({\n objectPaths: selectedItemPath ? [selectedItemPath] : [],\n }).value.data[selectedItemPath ?? ''];\n\n const selectedRegisterItem: BrowserCtx['selectedRegisterItem'] =\n isInternalItemReference(selectedItemRef)\n ? maybeSelectedRegisterItemData &&\n isRegisterItem(maybeSelectedRegisterItemData)\n ? {\n item: maybeSelectedRegisterItemData,\n ref: selectedItemRef,\n itemClass: itemClassConfiguration[selectedItemRef.classID],\n }\n : undefined\n : null;\n\n // TODO: Confirm that end extensions using RegistryKit can’t just import hooks\n // from RegistryKit and we really have to pass this to them via context\n // TODO: Why not use useObjectData directly? Since register item paths\n // are just object paths. The casting here is optimistic, since an item at given path\n // may not be a RegisterItem.\n const useRegisterItemData: RegisterItemDataHook = (opts) => {\n // Original item path mapped to its potential alternative path in current CR,\n // if the item is clarified or added in it.\n // TODO(perf): Access CR data and check whether the item is affected instead of blindly trying CR paths\n const pathsToRequest: Record<string, string> = {};\n\n const { changeRequest: activeChangeRequest } = useContext(ChangeRequestContext);\n\n\n for (const givenItemPath of opts.itemPaths) {\n pathsToRequest[givenItemPath] = givenItemPath;\n\n // Don’t use CR alternative path for any path that is already explicitly in-CR.\n // TODO(perf): move out of the loop what’s possible, use map-reduce maybe too\n if (!opts.ignoreActiveCR && !givenItemPath.startsWith('/proposals') && activeChangeRequest?.id) {\n pathsToRequest[itemPathInCR(givenItemPath, activeChangeRequest.id)] = givenItemPath;\n }\n }\n\n const result = useObjectData({\n objectPaths: Object.keys(pathsToRequest),\n }) as ValueHook<{ data: Record<string, Record<string, any> | null> }>;\n\n const itemData: Record<string, RegisterItem<any> | null> = {};\n for (const [alternativePath, itemPath] of Object.entries(pathsToRequest)) {\n const data = result.value.data[alternativePath]\n ?? result.value.data[itemPath]\n ?? null;\n if (isRegisterItem(data) || data === null) {\n itemData[itemPath] = data;\n }\n }\n\n // Convert dates\n // const parsedData: Record<string, RegisterItem<any> | null> = Object.entries(result.value.data).\n // map(([ path, data ]) => {\n // return {\n // [path]: data !== null\n // ? {\n // ...data,\n // dateAccepted: parseISO(data!.dateAccepted as unknown as string),\n // }\n // : null,\n // };\n // }).\n // reduce((p, c) => ({ ...p, ...c }), {});\n\n return {\n ...result,\n value: itemData,\n };\n };\n\n\n // Register data\n\n const registerMetadataReq = useObjectData({\n objectPaths: [REGISTER_METADATA_FILENAME],\n }) as ValueHook<{ data: Record<string, Record<string, any> | null> }>;\n const maybeRegisterMetadata =\n registerMetadataReq.value.data?.[REGISTER_METADATA_FILENAME] ??\n (registerMetadataReq.isUpdating ? undefined : null);\n const registerMetadata = !maybeRegisterMetadata || isRegisterMetadata(maybeRegisterMetadata)\n ? maybeRegisterMetadata\n : null;\n\n const remoteUsername: string | undefined = useRemoteUsername().value.username;\n\n const stakeholder: RegisterStakeholder | undefined = remoteUsername\n ? (registerMetadata?.stakeholders ?? []).\n find(s => s.gitServerUsername === remoteUsername)\n : undefined;\n\n\n // Active CR\n\n const [ activeChangeRequestID, setActiveChangeRequestID ] = useState<string | null>(null);\n\n const getRelatedClass = _getRelatedClass(itemClassConfiguration);\n\n return (\n <BrowserCtx.Provider\n value={{\n stakeholder,\n registerMetadata,\n\n subregisters,\n itemClasses: itemClassConfiguration,\n\n jumpTo: spawnTab,\n\n selectedRegisterItem,\n\n activeChangeRequestID,\n setActiveChangeRequestID,\n\n useRegisterItemData,\n getRelatedItemClassConfiguration: getRelatedClass,\n customViews: customViews ?? [],\n\n keyExpression,\n defaultSearchCriteria,\n }}>\n <ChangeRequestContextProvider changeRequestID={activeChangeRequestID}>\n {children}\n </ChangeRequestContextProvider>\n </BrowserCtx.Provider>\n );\n}\n"]}
@@ -1,115 +0,0 @@
1
- /**
2
- * Returns dataset-relative path to a register item,
3
- * given structured item reference.
4
- *
5
- * Optionally makes path include given change request contents.
6
- */
7
- export function itemRefToItemPath({ subregisterID, classID, itemID }, inCRWithID) {
8
- return `${incompleteItemRefToItemPathPrefix({ subregisterID, classID }, inCRWithID)}/${itemID}.yaml`;
9
- }
10
- /**
11
- * Returns dataset-relative prefix to a register item,
12
- * given structured item reference without `itemID`.
13
- *
14
- * Optionally makes path include given change request contents.
15
- */
16
- export function incompleteItemRefToItemPathPrefix({ subregisterID, classID }, inCRWithID) {
17
- const itemWithClass = `${classID}`;
18
- const fullPath = subregisterID
19
- ? `subregisters/${subregisterID}/${itemWithClass}`
20
- : itemWithClass;
21
- const maybeInCR = inCRWithID !== undefined
22
- ? `/proposals/${inCRWithID}/items/${fullPath}`
23
- : `/${fullPath}`;
24
- return maybeInCR;
25
- }
26
- /**
27
- * Attempts to return a structured register item reference
28
- * given a dataset-relative item path.
29
- * If some components are missing, returns an incomplete reference.
30
- */
31
- export function itemPathToItemRefLike(hasSubregisters, itemPath) {
32
- const pathNormalized = itemPath.trim()
33
- ? stripLeadingSlash(itemPathNotInCR(itemPath))
34
- : undefined;
35
- const pathParts = pathNormalized?.split('/') ?? [];
36
- const subregisterID = hasSubregisters && pathParts.length >= 1
37
- ? pathParts[1]
38
- : undefined;
39
- const classID = hasSubregisters
40
- ? pathParts.length >= 3
41
- ? pathParts[2]
42
- : undefined
43
- : pathParts.length >= 1
44
- ? pathParts[0]
45
- : undefined;
46
- const itemID = (hasSubregisters && pathParts.length === 4) ||
47
- (!hasSubregisters && pathParts.length === 2)
48
- ? pathParts[pathParts.length - 1].split('.')[0]
49
- : undefined;
50
- return { subregisterID, classID, itemID };
51
- }
52
- /** Returns just register item ID, given dataset-relative path. */
53
- export function itemPathToItemID(objPath) {
54
- const objPathComponents = objPath?.split('/');
55
- const selectedItemID = objPathComponents !== undefined
56
- ? objPathComponents[objPathComponents.length - 1].split('.')[0]
57
- : undefined;
58
- return selectedItemID;
59
- }
60
- /**
61
- * Attempts to return a structured register item reference
62
- * given a dataset-relative item path.
63
- * If some components are missing, throws an Error.
64
- */
65
- export function itemPathToItemRef(hasSubregisters, itemPath) {
66
- const maybeRef = itemPathToItemRefLike(hasSubregisters, itemPath);
67
- if (maybeRef.classID && maybeRef.itemID) {
68
- return maybeRef;
69
- }
70
- else {
71
- console.error("Internal item reference cannot be constructed from given item path, got", maybeRef, itemPath, hasSubregisters, "from", itemPath);
72
- throw new Error("Internal item reference cannot be constructed from given item path");
73
- }
74
- }
75
- const CR_ITEM_PREFIX_REGEX = /^proposals\/(?<crID>\p{Hex_Digit}{8}(?:-\p{Hex_Digit}{4}){3}-\p{Hex_Digit}{12})\/items\//u;
76
- /**
77
- * If given item path indicates that it is within any CR, returns respective CR ID.
78
- * Otherwise, returns `null`.
79
- */
80
- export function getCRIDFromProposedItemPath(givenItemPath) {
81
- return stripLeadingSlash(givenItemPath).match(CR_ITEM_PREFIX_REGEX)?.groups?.crID ?? null;
82
- }
83
- /**
84
- * Given an item path, returns path relative to specified CR ID
85
- * (even if the path is already relative to another CR ID).
86
- */
87
- export function itemPathInCR(givenItemPath, crID) {
88
- // Remove any CR prefix from given path
89
- // TODO(perf): Don’t do if prefix matches CR ID already specified?
90
- // TODO: Validate given path actually looks like a register item path and throw?
91
- const normalized = stripLeadingSlash(givenItemPath).replace(CR_ITEM_PREFIX_REGEX, '');
92
- return `/proposals/${crID}/items/${normalized}`;
93
- }
94
- /**
95
- * Returns given item path in register-relative form,
96
- * even if the path is given within proposal contents.
97
- */
98
- export function itemPathNotInCR(givenItemPath) {
99
- const normalized = stripLeadingSlash(givenItemPath).replace(CR_ITEM_PREFIX_REGEX, '');
100
- return `/${normalized}`;
101
- }
102
- function stripLeadingSlash(aPath) {
103
- return aPath.replace(/^\//, '');
104
- }
105
- /** Converts a change request ID to dataset-relative path to respective main.yaml. */
106
- export function crIDToCRPath(crID) {
107
- return `/proposals/${crID}/main.yaml`;
108
- }
109
- /** Extracts change request ID from dataset-relative path to its main.yaml. */
110
- export function crPathToCRID(crPath) {
111
- return (stripLeadingSlash(crPath).
112
- replace('proposals/', '').
113
- split('/')[0]);
114
- }
115
- //# sourceMappingURL=itemPathUtils.js.map
@@ -1,42 +0,0 @@
1
- import { itemPathInCR } from './itemPathUtils';
2
- // TODO: Should it be three path components? Probably four
3
- const REGISTER_ITEM_QUERY = `
4
- objPath.startsWith("/subregisters/") || (
5
- objPath.split("/").length === 3 &&
6
- !objPath.startsWith("/proposals/")
7
- )
8
- `;
9
- /**
10
- * Returns a query that matches given register item object path
11
- * depending on how it appears in given change request.
12
- *
13
- * For additions, object path would be full in-proposal path
14
- * (the item doesn’t exist in the register “normally”), so we want to match that.
15
- * For clarifications, object path we want to match is normal
16
- */
17
- function getItemInCRQuery(cr) {
18
- //const affectedItemPathsQuoted: string[] = Object.entries(withCR.items).
19
- // filter(([, proposal]) => proposal.type === 'clarification' || proposal.type === 'addition').
20
- // map(([itemPath, proposal]) => proposal.type === 'clarification' ? `"${itemPath}"` : `/proposals/${withCR.id}/items/${itemPath}`);
21
- const affectedItemPathsQuoted = Object.entries(cr.items).
22
- filter(([, proposal]) => proposal.type !== 'amendment').
23
- map(([itemPath,]) => `"${itemPathInCR(itemPath, cr.id)}"`);
24
- return `[${affectedItemPathsQuoted.join(',')}].indexOf(objPath) >= 0`;
25
- }
26
- /**
27
- * Returns a query criteria for use with filtered indexes
28
- * by combining given `queryExpression` with base query that matches only
29
- * objects corresponding to register items.
30
- *
31
- * `withCR` should be set to active CR, and would make the query
32
- * additionally match clarified/added register items that did not yet make it
33
- * into the register proper.
34
- */
35
- export function getRegisterItemQuery(queryExpression, withCR) {
36
- const baseQuery = withCR
37
- ? `(${getItemInCRQuery(withCR)}) || (${REGISTER_ITEM_QUERY})`
38
- : REGISTER_ITEM_QUERY;
39
- // console.debug("CR QUERY", baseQuery);
40
- return `return (${baseQuery}) && (${queryExpression.trim()})`;
41
- }
42
- //# sourceMappingURL=itemQueryUtils.js.map
@@ -1,24 +0,0 @@
1
- import RegisterItem from './detail/RegisterItem';
2
- import RegisterMeta from './detail/RegisterMeta';
3
- import ChangeRequest from './detail/ChangeRequest';
4
- import CustomView from './detail/CustomView';
5
- export const Protocols = {
6
- ITEM_DETAILS: 'itemdetails',
7
- REGISTER_META: 'registermeta',
8
- CHANGE_REQUEST: 'changerequest',
9
- CUSTOM_VIEW: 'customview',
10
- };
11
- export const protocols = Object.values(Protocols);
12
- export function isValidProtocol(val) {
13
- return protocols.indexOf(val) >= 0;
14
- }
15
- // TODO: Implement proper registration pattern rather than registering
16
- // these in a centralized manner.
17
- const protocolRegistry = {
18
- [Protocols.ITEM_DETAILS]: RegisterItem,
19
- [Protocols.REGISTER_META]: RegisterMeta,
20
- [Protocols.CHANGE_REQUEST]: ChangeRequest,
21
- [Protocols.CUSTOM_VIEW]: CustomView,
22
- };
23
- export default protocolRegistry;
24
- //# sourceMappingURL=protocolRegistry.js.map
@@ -1,278 +0,0 @@
1
- /** @jsx jsx */
2
- /** @jsxFrag React.Fragment */
3
- import React, { useContext, useEffect } from 'react';
4
- import { jsx, css } from '@emotion/react';
5
- import { Button, Menu, MenuItem, MenuDivider, Tree } from '@blueprintjs/core';
6
- import { Popover2 } from '@blueprintjs/popover2';
7
- import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
8
- import { TabbedWorkspaceContext } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';
9
- import makeSearchResultList from '@riboseinc/paneron-extension-kit/widgets/SearchResultList';
10
- import criteriaGroupToQueryExpression from '../../FilterCriteria/criteriaGroupToQueryExpression';
11
- import CRITERIA_CONFIGURATION from '../../FilterCriteria/CRITERIA_CONFIGURATION';
12
- import { itemRefToItemPath } from '../../itemPathUtils';
13
- import { getRegisterItemQuery } from '../../itemQueryUtils';
14
- import { ChangeRequestContext } from '../../change-request/ChangeRequestContext';
15
- import { updateCRObjectChangeset } from '../../change-request/objectChangeset';
16
- import { BrowserCtx } from '../../BrowserCtx';
17
- import ListItem from '../ListItem';
18
- import { Protocols } from '../../protocolRegistry';
19
- const Browse = function ({ stateName, onOpenItem, className, style }) {
20
- const { performOperation, updateObjects, makeRandomID, usePersistentDatasetStateReducer } = useContext(DatasetContext);
21
- const { spawnTab, focusedTabURI } = useContext(TabbedWorkspaceContext);
22
- const { keyExpression, itemClasses, subregisters } = useContext(BrowserCtx);
23
- const { changeRequest: activeCR, canEdit: activeCRIsEditable } = useContext(ChangeRequestContext);
24
- const [state, dispatch,] = usePersistentDatasetStateReducer(stateName ?? 'browse-sidebar', undefined, function valdateState(loadedValue) {
25
- function validateFolderID(foldID) {
26
- return foldID !== undefined &&
27
- (foldID === null || (foldID.startsWith('by-item-class/') ||
28
- foldID.startsWith('by-subregister/')));
29
- }
30
- return (validateFolderID(loadedValue.enteredFolderID) &&
31
- validateFolderID(loadedValue.selectedFolderID) &&
32
- loadedValue.selectedItemPath !== undefined);
33
- }, (prevState, action) => {
34
- switch (action.type) {
35
- case 'select-folder':
36
- if (prevState.enteredFolderID !== null) {
37
- return prevState;
38
- }
39
- else {
40
- return {
41
- ...prevState,
42
- selectedFolderID: action.payload.id,
43
- };
44
- }
45
- case 'enter-folder':
46
- if (prevState.enteredFolderID === null) {
47
- return {
48
- ...prevState,
49
- selectedFolderID: action.payload.id,
50
- enteredFolderID: action.payload.id,
51
- };
52
- }
53
- else {
54
- return prevState;
55
- }
56
- case 'exit-folder':
57
- if (prevState.enteredFolderID !== null) {
58
- return {
59
- ...prevState,
60
- enteredFolderID: null,
61
- selectedItemPath: null,
62
- };
63
- }
64
- else {
65
- return prevState;
66
- }
67
- case 'select-item':
68
- if (prevState.enteredFolderID && prevState.selectedFolderID) {
69
- return {
70
- ...prevState,
71
- selectedItemPath: action.payload.itemPath,
72
- };
73
- }
74
- else {
75
- return prevState;
76
- }
77
- default:
78
- throw new Error("Unexpected browse state");
79
- }
80
- }, {
81
- selectedFolderID: null,
82
- enteredFolderID: null,
83
- selectedItemPath: null,
84
- }, null);
85
- // If currently focused tab changed, select corresponding item in view
86
- useEffect(() => {
87
- if (focusedTabURI) {
88
- const [proto, itemPath] = focusedTabURI.split(':');
89
- // TODO: also check entered folder?
90
- if (proto === Protocols.ITEM_DETAILS) {
91
- dispatch({ type: 'select-item', payload: { itemPath } });
92
- }
93
- }
94
- }, [focusedTabURI]);
95
- async function handleAdd(classID, subregisterID) {
96
- if (!updateObjects || !makeRandomID || !activeCRIsEditable || !activeCR) {
97
- throw new Error("Unable to create item: likely current proposal is not editable or dataset is read-only");
98
- }
99
- if (subregisters && !subregisterID) {
100
- throw new Error("Unable to create item: register uses subregisters, but subregister ID was not provided");
101
- }
102
- const clsConfig = itemClasses[classID];
103
- if (!clsConfig) {
104
- throw new Error("Unable to generate new item data: item class configuration is missing");
105
- }
106
- const initialItemData = clsConfig?.defaults ?? {};
107
- const itemID = await makeRandomID();
108
- const ref = { classID, itemID, subregisterID };
109
- const registerItem = {
110
- id: itemID,
111
- dateAccepted: new Date(),
112
- status: 'valid',
113
- data: initialItemData,
114
- };
115
- const itemPath = itemRefToItemPath(ref);
116
- await updateObjects({
117
- commitMessage: `propose to add new ${ref.classID}`,
118
- objectChangeset: updateCRObjectChangeset(activeCR, { [itemPath]: { type: 'addition' } }, { [itemPath]: registerItem }),
119
- _dangerouslySkipValidation: true,
120
- });
121
- spawnTab(`${Protocols.ITEM_DETAILS}:${itemRefToItemPath(ref, activeCR.id)}`);
122
- }
123
- if (state.enteredFolderID !== null) {
124
- // If we are in a folder, show a tree with a single element
125
- // indicating currently entered folder
126
- // followed by windowed search result list
127
- // with query according to the folder (item class, subregister)
128
- let criteria;
129
- let folderInfo;
130
- if (state.enteredFolderID.startsWith('by-item-class/')) {
131
- const classID = state.enteredFolderID.split('/')[1];
132
- const clsConfig = itemClasses[classID];
133
- folderInfo = {
134
- title: clsConfig?.meta?.title ?? classID,
135
- moreMenu: clsConfig
136
- ? jsx(ItemClassMenu, { cfg: itemClasses[classID], onCreate: !subregisters && activeCRIsEditable && performOperation
137
- ? () => performOperation('generating new item', handleAdd)(classID)
138
- : undefined })
139
- : undefined,
140
- };
141
- criteria = {
142
- require: 'all',
143
- criteria: [
144
- {
145
- key: 'item-class',
146
- query: CRITERIA_CONFIGURATION['item-class'].toQuery({ classID }, { itemClasses, subregisters }),
147
- },
148
- ],
149
- };
150
- }
151
- else if (subregisters && state.enteredFolderID.startsWith('by-subregister/')) {
152
- const subregisterID = state.enteredFolderID.split('/')[1];
153
- const subregConfig = subregisters[subregisterID];
154
- folderInfo = {
155
- title: subregConfig?.title ?? subregisterID,
156
- moreMenu: subregConfig
157
- ? jsx(SubregisterMenu, { cfg: subregConfig, itemClasses: itemClasses, onCreate: activeCRIsEditable && performOperation
158
- ? (clsID) => performOperation('generating new item', handleAdd)(clsID, subregisterID)
159
- : undefined })
160
- : undefined,
161
- };
162
- criteria = {
163
- require: 'all',
164
- criteria: [
165
- {
166
- key: 'subregister',
167
- query: CRITERIA_CONFIGURATION['subregister'].toQuery({ subregisterID }, { itemClasses, subregisters }),
168
- },
169
- ],
170
- };
171
- }
172
- else {
173
- folderInfo = { title: '' };
174
- criteria = { require: 'all', criteria: [] };
175
- }
176
- const queryExpression = criteriaGroupToQueryExpression(criteria);
177
- return (jsx("div", { css: css `display: flex; flex-flow: column nowrap;`, className: className, style: style },
178
- jsx(Tree, { css: css `flex: 0;`, onNodeClick: () => dispatch({ type: 'select-item', payload: { itemPath: null } }), onNodeCollapse: () => dispatch({ type: 'exit-folder' }), onNodeDoubleClick: () => dispatch({ type: 'exit-folder' }), contents: [{
179
- id: 'opened-class',
180
- isSelected: state.selectedItemPath === null,
181
- isExpanded: true,
182
- hasCaret: true,
183
- icon: 'folder-open',
184
- label: folderInfo.title,
185
- secondaryLabel: folderInfo.moreMenu ? jsx(MoreMenu, null, folderInfo.moreMenu) : undefined,
186
- }] }),
187
- jsx("div", { css: css `flex: 1;` },
188
- jsx(SearchResultList, { queryExpression: getRegisterItemQuery(queryExpression, activeCR ?? undefined), keyExpression: keyExpression, selectedItemPath: state.selectedItemPath, onSelectItem: itemPath => dispatch({ type: 'select-item', payload: { itemPath } }), onOpenItem: onOpenItem ?? (itemPath => spawnTab(`${Protocols.ITEM_DETAILS}:${itemPath}`)) }))));
189
- }
190
- else {
191
- // If we are *not* in a folder, show a list of available folders/views
192
- // (item classes, subregisters)
193
- const contents = [{
194
- id: 'by-item-class',
195
- isExpanded: true,
196
- hasCaret: false,
197
- icon: 'filter',
198
- label: "By item class",
199
- disabled: true,
200
- nodeData: { folderID: null },
201
- }, ...Object.entries(itemClasses).map(([classID, classConfig]) => ({
202
- isSelected: state.selectedFolderID === `by-item-class/${classID}`,
203
- id: classID,
204
- isExpanded: false,
205
- icon: 'folder-close',
206
- hasCaret: true,
207
- label: classConfig.meta.title,
208
- nodeData: { folderID: `by-item-class/${classID}` },
209
- secondaryLabel: jsx(MoreMenu, null,
210
- jsx(ItemClassMenu, { cfg: classConfig, onCreate: !subregisters && activeCRIsEditable && performOperation
211
- ? () => performOperation('generating new item', handleAdd)(classID)
212
- : undefined })),
213
- })), ...(subregisters
214
- ? [{
215
- id: 'by-subregister',
216
- isExpanded: true,
217
- hasCaret: false,
218
- disabled: true,
219
- icon: 'filter',
220
- label: "By subregister",
221
- nodeData: { folderID: null },
222
- }, ...Object.entries(subregisters).map(([subregisterID, subregisterConfig]) => ({
223
- isSelected: state.selectedFolderID === `by-subregister/${subregisterID}`,
224
- id: subregisterID,
225
- isExpanded: false,
226
- icon: 'folder-close',
227
- hasCaret: true,
228
- label: subregisterConfig.title,
229
- nodeData: { folderID: `by-subregister/${subregisterID}` },
230
- secondaryLabel: jsx(MoreMenu, null,
231
- jsx(SubregisterMenu, { cfg: subregisterConfig, itemClasses: itemClasses, onCreate: activeCRIsEditable && performOperation
232
- ? (clsID) => performOperation('generating new item', handleAdd)(clsID, subregisterID)
233
- : undefined })),
234
- }))]
235
- : [])
236
- ];
237
- if (subregisters) {
238
- contents.push();
239
- }
240
- return (jsx(Tree, { css: css `flex: 1;`, className: className, onNodeClick: node => node.nodeData?.folderID
241
- ? dispatch({ type: 'select-folder', payload: { id: node.nodeData.folderID } })
242
- : void 0, onNodeExpand: node => node.nodeData?.folderID
243
- ? dispatch({ type: 'enter-folder', payload: { id: node.nodeData.folderID } })
244
- : void 0, onNodeDoubleClick: node => node.nodeData?.folderID
245
- ? dispatch({ type: 'enter-folder', payload: { id: node.nodeData.folderID } })
246
- : void 0, contents: contents }));
247
- }
248
- };
249
- const MoreMenu = function ({ children }) {
250
- return (jsx(Popover2, { minimal: true, content: jsx(React.Fragment, null, children) },
251
- jsx(Button, { icon: "more", small: true, minimal: true })));
252
- };
253
- const SubregisterMenu = function ({ cfg, itemClasses, onCreate }) {
254
- return (jsx(Menu, null,
255
- jsx(MenuDivider, { title: `Item classes in ${cfg.title}` }),
256
- cfg.itemClasses.map(classID => jsx(MenuItem, { text: itemClasses[classID]?.meta?.title ?? classID, key: classID },
257
- jsx(ItemClassMenu, { cfg: itemClasses[classID], onCreate: onCreate ? () => onCreate(classID) : undefined })))));
258
- };
259
- const ItemClassMenu = function ({ cfg, onCreate }) {
260
- return (jsx(Menu, null,
261
- jsx(MenuDivider, { title: "About this class" }),
262
- jsx(MenuItem, { multiline: true, disabled: true, css: css `max-width: 400px`, text: cfg.meta.description }),
263
- onCreate
264
- ? jsx(React.Fragment, null,
265
- jsx(MenuDivider, { title: "Quick actions" }),
266
- jsx(MenuItem, { text: "Propose new", intent: "primary", onClick: onCreate, icon: "plus" }))
267
- : null));
268
- };
269
- const SearchResultList = makeSearchResultList(ListItem, (objPath) => ({
270
- name: 'reg. item',
271
- iconProps: {
272
- icon: 'document',
273
- title: objPath,
274
- htmlTitle: `Icon for item at ${objPath}`
275
- }
276
- }));
277
- export default Browse;
278
- //# sourceMappingURL=index.js.map