@riboseinc/paneron-registry-kit 2.2.58 → 2.2.60

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 (735) hide show
  1. package/LICENSE +21 -0
  2. package/README.adoc +67 -0
  3. package/compiled/common.js +2 -0
  4. package/compiled/index.js +42 -0
  5. package/compiled/item-classes/Tree.js +61 -0
  6. package/compiled/item-classes/treeNodes.js +56 -0
  7. package/compiled/migrations/initial.js +28 -0
  8. package/compiled/proposals/ChangeRequestContext.js +121 -0
  9. package/compiled/proposals/HistoryDrawer.js +55 -0
  10. package/compiled/proposals/ListItem.js +22 -0
  11. package/compiled/proposals/MetaProperties.js +98 -0
  12. package/compiled/proposals/NewProposalMenu.js +53 -0
  13. package/compiled/proposals/ProposalBrowser.js +141 -0
  14. package/compiled/proposals/ProposalDetail.js +27 -0
  15. package/compiled/proposals/ProposalItem.js +24 -0
  16. package/compiled/proposals/ProposalSummary.js +28 -0
  17. package/compiled/proposals/ProposalTab.js +89 -0
  18. package/compiled/proposals/ProposalType.js +62 -0
  19. package/compiled/proposals/ProposalWorkspace.js +70 -0
  20. package/compiled/proposals/Search.js +106 -0
  21. package/compiled/proposals/TransitionHistory.js +271 -0
  22. package/compiled/proposals/TransitionOptions.js +432 -0
  23. package/compiled/proposals/actionableGroups/Tree.js +170 -0
  24. package/compiled/proposals/actionableGroups/queries.js +78 -0
  25. package/compiled/proposals/actionableGroups/treeNodes.js +90 -0
  26. package/compiled/proposals/actionableGroups/types.js +2 -0
  27. package/compiled/proposals/index.js +7 -0
  28. package/compiled/proposals/objectChangeset.js +331 -0
  29. package/compiled/proposals/queries.js +5 -0
  30. package/compiled/proposals/types.js +229 -0
  31. package/compiled/types/index.js +7 -0
  32. package/compiled/types/item.js +28 -0
  33. package/compiled/types/register.js +25 -0
  34. package/compiled/types/registry.js +10 -0
  35. package/compiled/types/stakeholder.js +81 -0
  36. package/compiled/types/util.js +3 -0
  37. package/compiled/types/views.js +2 -0
  38. package/compiled/views/AnnotatedChange.js +62 -0
  39. package/compiled/views/BrowserCtx.js +20 -0
  40. package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.js +121 -0
  41. package/compiled/views/FilterCriteria/criteriaGroupToQueryExpression.js +45 -0
  42. package/compiled/views/FilterCriteria/criteriaGroupToSummary.js +47 -0
  43. package/compiled/views/FilterCriteria/criteriaToNodes.js +92 -0
  44. package/compiled/views/FilterCriteria/index.js +75 -0
  45. package/compiled/views/FilterCriteria/models.js +45 -0
  46. package/compiled/views/FilterCriteria/mutateGroup.js +74 -0
  47. package/compiled/views/GenericRelatedItemView.js +179 -0
  48. package/compiled/views/ItemDetailsDrawer.js +21 -0
  49. package/compiled/views/ItemSearchDrawer.js +29 -0
  50. package/compiled/views/Party.js +156 -0
  51. package/compiled/views/RegisterStakeholder.js +22 -0
  52. package/compiled/views/RegisterVersion.js +20 -0
  53. package/compiled/views/SearchQuery.js +90 -0
  54. package/compiled/views/StatefulTree.js +95 -0
  55. package/compiled/views/detail/AllItems.js +31 -0
  56. package/compiled/views/detail/ChangeRequest/index.js +49 -0
  57. package/compiled/views/detail/CustomView/index.js +34 -0
  58. package/compiled/views/detail/ProposalWork.js +167 -0
  59. package/compiled/views/detail/RegisterHome/ActiveProposalDetails.js +64 -0
  60. package/compiled/views/detail/RegisterHome/Block.js +39 -0
  61. package/compiled/views/detail/RegisterHome/MetaSummary.js +27 -0
  62. package/compiled/views/detail/RegisterHome/Proposal.js +105 -0
  63. package/compiled/views/detail/RegisterHome/index.js +381 -0
  64. package/compiled/views/detail/RegisterHome2/index.js +36 -0
  65. package/compiled/views/detail/RegisterItem/RelatedItems.js +28 -0
  66. package/compiled/views/detail/RegisterItem/SupersedingItemMenu.js +27 -0
  67. package/compiled/views/detail/RegisterItem/index.js +576 -0
  68. package/compiled/views/detail/RegisterItem/index.js.map +1 -0
  69. package/compiled/views/detail/RegisterItemClass.js +59 -0
  70. package/compiled/views/detail/RegisterMeta/RegisterMetaForm.js +176 -0
  71. package/compiled/views/detail/RegisterMeta/index.js +73 -0
  72. package/compiled/views/detail/index.js +12 -0
  73. package/compiled/views/diffing/InlineDiff.js +117 -0
  74. package/compiled/views/diffing/StructuredDiff.js +38 -0
  75. package/compiled/views/hooks/useCustomView.js +14 -0
  76. package/compiled/views/hooks/useItemClassConfig.js +8 -0
  77. package/compiled/views/hooks/useItemRef.js +27 -0
  78. package/compiled/views/hooks/useLatestAcceptedProposal.js +39 -0
  79. package/compiled/views/hooks/useRegisterVersion.js +35 -0
  80. package/compiled/views/hooks/useSingleRegisterItemData.js +22 -0
  81. package/compiled/views/hooks/useStakeholder.js +2 -0
  82. package/compiled/views/index.js +247 -0
  83. package/compiled/views/itemPathUtils.js +139 -0
  84. package/compiled/views/itemQueryUtils.js +49 -0
  85. package/compiled/views/protocolRegistry.js +30 -0
  86. package/compiled/views/sidebar/Browse/index.js +291 -0
  87. package/compiled/views/sidebar/ExportImport/ExportOptions.js +56 -0
  88. package/compiled/views/sidebar/ExportImport/ImportOptions.js +9 -0
  89. package/compiled/views/sidebar/ExportImport/index.js +4 -0
  90. package/compiled/views/sidebar/ListItem.js +31 -0
  91. package/compiled/views/sidebar/Registration/index.js +89 -0
  92. package/compiled/views/sidebar/Search/index.js +129 -0
  93. package/{views → compiled/views}/sidebar/Search/index.js.map +1 -1
  94. package/compiled/views/sidebar/index.js +115 -0
  95. package/compiled/views/util.js +278 -0
  96. package/compiled/views/util.js.map +1 -0
  97. package/dependencies-local/extension-kit/SettingsContext.d.ts +8 -0
  98. package/dependencies-local/extension-kit/SettingsContext.js +19 -0
  99. package/dependencies-local/extension-kit/SettingsContext.js.map +1 -0
  100. package/dependencies-local/extension-kit/build_site.d.ts +1 -0
  101. package/dependencies-local/extension-kit/build_site.js +4 -0
  102. package/dependencies-local/extension-kit/build_site.js.map +1 -0
  103. package/dependencies-local/extension-kit/context.d.ts +18 -0
  104. package/dependencies-local/extension-kit/context.js +143 -0
  105. package/dependencies-local/extension-kit/context.js.map +1 -0
  106. package/dependencies-local/extension-kit/i18n/ContextProvider.d.ts +9 -0
  107. package/dependencies-local/extension-kit/i18n/ContextProvider.js +33 -0
  108. package/dependencies-local/extension-kit/i18n/ContextProvider.js.map +1 -0
  109. package/dependencies-local/extension-kit/i18n/context.d.ts +9 -0
  110. package/dependencies-local/extension-kit/i18n/context.js +23 -0
  111. package/dependencies-local/extension-kit/i18n/context.js.map +1 -0
  112. package/dependencies-local/extension-kit/i18n/types.d.ts +10 -0
  113. package/dependencies-local/extension-kit/i18n/types.js.map +1 -0
  114. package/dependencies-local/extension-kit/i18n/widgets.d.ts +16 -0
  115. package/dependencies-local/extension-kit/i18n/widgets.js +59 -0
  116. package/dependencies-local/extension-kit/i18n/widgets.js.map +1 -0
  117. package/dependencies-local/extension-kit/index.d.ts +16 -0
  118. package/dependencies-local/extension-kit/index.js +149 -0
  119. package/dependencies-local/extension-kit/index.js.map +1 -0
  120. package/dependencies-local/extension-kit/object-specs/index.d.ts +2 -0
  121. package/dependencies-local/extension-kit/object-specs/index.js +22 -0
  122. package/dependencies-local/extension-kit/object-specs/index.js.map +1 -0
  123. package/dependencies-local/extension-kit/object-specs/paneron-object.d.ts +7 -0
  124. package/dependencies-local/extension-kit/object-specs/paneron-object.js +159 -0
  125. package/dependencies-local/extension-kit/object-specs/paneron-object.js.map +1 -0
  126. package/dependencies-local/extension-kit/object-specs/ser-des.d.ts +32 -0
  127. package/dependencies-local/extension-kit/object-specs/ser-des.js +232 -0
  128. package/dependencies-local/extension-kit/object-specs/ser-des.js.map +1 -0
  129. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.d.ts +3 -0
  130. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js +42 -0
  131. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js.map +1 -0
  132. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.d.ts +3 -0
  133. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js +110 -0
  134. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js.map +1 -0
  135. package/dependencies-local/extension-kit/object-specs/yaml/index.d.ts +9 -0
  136. package/dependencies-local/extension-kit/object-specs/yaml/index.js +36 -0
  137. package/dependencies-local/extension-kit/object-specs/yaml/index.js.map +1 -0
  138. package/dependencies-local/extension-kit/object-specs/yaml/schema.d.ts +4 -0
  139. package/dependencies-local/extension-kit/object-specs/yaml/schema.js +26 -0
  140. package/dependencies-local/extension-kit/object-specs/yaml/schema.js.map +1 -0
  141. package/dependencies-local/extension-kit/settings.d.ts +9 -0
  142. package/dependencies-local/extension-kit/settings.js +17 -0
  143. package/dependencies-local/extension-kit/settings.js.map +1 -0
  144. package/dependencies-local/extension-kit/types/binary-invocation.d.ts +31 -0
  145. package/dependencies-local/extension-kit/types/binary-invocation.js.map +1 -0
  146. package/dependencies-local/extension-kit/types/buffers.d.ts +19 -0
  147. package/dependencies-local/extension-kit/types/buffers.js.map +1 -0
  148. package/dependencies-local/extension-kit/types/changes.d.ts +37 -0
  149. package/dependencies-local/extension-kit/types/changes.js +5 -0
  150. package/dependencies-local/extension-kit/types/changes.js.map +1 -0
  151. package/dependencies-local/extension-kit/types/data.d.ts +54 -0
  152. package/dependencies-local/extension-kit/types/data.js +5 -0
  153. package/dependencies-local/extension-kit/types/data.js.map +1 -0
  154. package/dependencies-local/extension-kit/types/dialogs.d.ts +21 -0
  155. package/dependencies-local/extension-kit/types/dialogs.js +5 -0
  156. package/dependencies-local/extension-kit/types/dialogs.js.map +1 -0
  157. package/dependencies-local/extension-kit/types/export-formats.d.ts +23 -0
  158. package/dependencies-local/extension-kit/types/export-formats.js +5 -0
  159. package/dependencies-local/extension-kit/types/export-formats.js.map +1 -0
  160. package/dependencies-local/extension-kit/types/extension-maker.d.ts +17 -0
  161. package/dependencies-local/extension-kit/types/extension-maker.js +5 -0
  162. package/dependencies-local/extension-kit/types/extension-maker.js.map +1 -0
  163. package/dependencies-local/extension-kit/types/extension.d.ts +40 -0
  164. package/dependencies-local/extension-kit/types/extension.js +5 -0
  165. package/dependencies-local/extension-kit/types/extension.js.map +1 -0
  166. package/dependencies-local/extension-kit/types/index.d.ts +3 -0
  167. package/dependencies-local/extension-kit/types/index.js +41 -0
  168. package/dependencies-local/extension-kit/types/index.js.map +1 -0
  169. package/dependencies-local/extension-kit/types/indexes.d.ts +6 -0
  170. package/dependencies-local/extension-kit/types/indexes.js +15 -0
  171. package/dependencies-local/extension-kit/types/indexes.js.map +1 -0
  172. package/dependencies-local/extension-kit/types/migrations.d.ts +35 -0
  173. package/dependencies-local/extension-kit/types/migrations.js +5 -0
  174. package/dependencies-local/extension-kit/types/migrations.js.map +1 -0
  175. package/dependencies-local/extension-kit/types/object-spec.d.ts +109 -0
  176. package/dependencies-local/extension-kit/types/object-spec.js +24 -0
  177. package/dependencies-local/extension-kit/types/object-spec.js.map +1 -0
  178. package/dependencies-local/extension-kit/types/objects.d.ts +18 -0
  179. package/dependencies-local/extension-kit/types/objects.js +5 -0
  180. package/dependencies-local/extension-kit/types/objects.js.map +1 -0
  181. package/dependencies-local/extension-kit/types/progress.d.ts +5 -0
  182. package/dependencies-local/extension-kit/types/progress.js +5 -0
  183. package/dependencies-local/extension-kit/types/progress.js.map +1 -0
  184. package/dependencies-local/extension-kit/types/renderer.d.ts +505 -0
  185. package/dependencies-local/extension-kit/types/renderer.js +16 -0
  186. package/dependencies-local/extension-kit/types/renderer.js.map +1 -0
  187. package/dependencies-local/extension-kit/useDebounce.d.ts +5 -0
  188. package/dependencies-local/extension-kit/useDebounce.js +25 -0
  189. package/dependencies-local/extension-kit/useDebounce.js.map +1 -0
  190. package/dependencies-local/extension-kit/usePersistentStateReducer.d.ts +39 -0
  191. package/dependencies-local/extension-kit/usePersistentStateReducer.js +133 -0
  192. package/dependencies-local/extension-kit/usePersistentStateReducer.js.map +1 -0
  193. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.d.ts +71 -0
  194. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js +107 -0
  195. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js.map +1 -0
  196. package/dependencies-local/extension-kit/util.d.ts +37 -0
  197. package/dependencies-local/extension-kit/util.js +179 -0
  198. package/dependencies-local/extension-kit/util.js.map +1 -0
  199. package/dependencies-local/extension-kit/widgets/DL.d.ts +44 -0
  200. package/dependencies-local/extension-kit/widgets/DL.js +89 -0
  201. package/dependencies-local/extension-kit/widgets/DL.js.map +1 -0
  202. package/dependencies-local/extension-kit/widgets/ErrorBoundary.d.ts +17 -0
  203. package/dependencies-local/extension-kit/widgets/ErrorBoundary.js +49 -0
  204. package/dependencies-local/extension-kit/widgets/ErrorBoundary.js.map +1 -0
  205. package/dependencies-local/extension-kit/widgets/ErrorState.d.ts +10 -0
  206. package/dependencies-local/extension-kit/widgets/ErrorState.js +54 -0
  207. package/dependencies-local/extension-kit/widgets/ErrorState.js.map +1 -0
  208. package/dependencies-local/extension-kit/widgets/Grid.d.ts +41 -0
  209. package/dependencies-local/extension-kit/widgets/Grid.js +213 -0
  210. package/dependencies-local/extension-kit/widgets/Grid.js.map +1 -0
  211. package/dependencies-local/extension-kit/widgets/HelpTooltip.d.ts +18 -0
  212. package/dependencies-local/extension-kit/widgets/HelpTooltip.js +72 -0
  213. package/dependencies-local/extension-kit/widgets/HelpTooltip.js.map +1 -0
  214. package/dependencies-local/extension-kit/widgets/ItemCount.d.ts +19 -0
  215. package/dependencies-local/extension-kit/widgets/ItemCount.js +79 -0
  216. package/dependencies-local/extension-kit/widgets/ItemCount.js.map +1 -0
  217. package/dependencies-local/extension-kit/widgets/List.d.ts +41 -0
  218. package/dependencies-local/extension-kit/widgets/List.js +210 -0
  219. package/dependencies-local/extension-kit/widgets/List.js.map +1 -0
  220. package/dependencies-local/extension-kit/widgets/Navbar.d.ts +20 -0
  221. package/dependencies-local/extension-kit/widgets/Navbar.js +76 -0
  222. package/dependencies-local/extension-kit/widgets/Navbar.js.map +1 -0
  223. package/dependencies-local/extension-kit/widgets/Navbar2.d.ts +17 -0
  224. package/dependencies-local/extension-kit/widgets/Navbar2.js +95 -0
  225. package/dependencies-local/extension-kit/widgets/Navbar2.js.map +1 -0
  226. package/dependencies-local/extension-kit/widgets/OperationQueue/context.d.ts +17 -0
  227. package/dependencies-local/extension-kit/widgets/OperationQueue/context.js +21 -0
  228. package/dependencies-local/extension-kit/widgets/OperationQueue/context.js.map +1 -0
  229. package/dependencies-local/extension-kit/widgets/OperationQueue/index.d.ts +8 -0
  230. package/dependencies-local/extension-kit/widgets/OperationQueue/index.js +159 -0
  231. package/dependencies-local/extension-kit/widgets/OperationQueue/index.js.map +1 -0
  232. package/dependencies-local/extension-kit/widgets/OperationQueue/types.d.ts +19 -0
  233. package/dependencies-local/extension-kit/widgets/OperationQueue/types.js +5 -0
  234. package/dependencies-local/extension-kit/widgets/OperationQueue/types.js.map +1 -0
  235. package/dependencies-local/extension-kit/widgets/SearchResultList.d.ts +31 -0
  236. package/dependencies-local/extension-kit/widgets/SearchResultList.js +203 -0
  237. package/dependencies-local/extension-kit/widgets/SearchResultList.js.map +1 -0
  238. package/dependencies-local/extension-kit/widgets/Sidebar/Block.d.ts +24 -0
  239. package/dependencies-local/extension-kit/widgets/Sidebar/Block.js +109 -0
  240. package/dependencies-local/extension-kit/widgets/Sidebar/Block.js.map +1 -0
  241. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.d.ts +6 -0
  242. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js +23 -0
  243. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js.map +1 -0
  244. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.d.ts +29 -0
  245. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js +157 -0
  246. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js.map +1 -0
  247. package/dependencies-local/extension-kit/widgets/Sidebar/index.d.ts +27 -0
  248. package/dependencies-local/extension-kit/widgets/Sidebar/index.js +197 -0
  249. package/dependencies-local/extension-kit/widgets/Sidebar/index.js.map +1 -0
  250. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.d.ts +29 -0
  251. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js +135 -0
  252. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js.map +1 -0
  253. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.d.ts +10 -0
  254. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js +205 -0
  255. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js.map +1 -0
  256. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.d.ts +9 -0
  257. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js +69 -0
  258. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js.map +1 -0
  259. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.d.ts +54 -0
  260. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js +301 -0
  261. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js.map +1 -0
  262. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.d.ts +102 -0
  263. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js +5 -0
  264. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js.map +1 -0
  265. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.d.ts +1 -0
  266. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js +14 -0
  267. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js.map +1 -0
  268. package/dependencies-local/extension-kit/widgets/Workspace.d.ts +40 -0
  269. package/dependencies-local/extension-kit/widgets/Workspace.js +96 -0
  270. package/dependencies-local/extension-kit/widgets/Workspace.js.map +1 -0
  271. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.d.ts +12 -0
  272. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js +60 -0
  273. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js.map +1 -0
  274. package/dependencies-local/extension-kit/widgets/panels/index.d.ts +28 -0
  275. package/dependencies-local/extension-kit/widgets/panels/index.js +169 -0
  276. package/dependencies-local/extension-kit/widgets/panels/index.js.map +1 -0
  277. package/dist/common.d.ts +1 -0
  278. package/dist/common.js.map +1 -0
  279. package/dist/index.d.ts +18 -0
  280. package/dist/index.js.map +1 -0
  281. package/dist/item-classes/Tree.d.ts +5 -0
  282. package/dist/item-classes/Tree.js.map +1 -0
  283. package/dist/item-classes/treeNodes.d.ts +12 -0
  284. package/dist/item-classes/treeNodes.js.map +1 -0
  285. package/dist/migrations/initial.d.ts +3 -0
  286. package/dist/migrations/initial.js.map +1 -0
  287. package/dist/proposals/ChangeRequestContext.d.ts +44 -0
  288. package/dist/proposals/ChangeRequestContext.js.map +1 -0
  289. package/dist/proposals/HistoryDrawer.d.ts +12 -0
  290. package/dist/proposals/HistoryDrawer.js.map +1 -0
  291. package/dist/proposals/ListItem.d.ts +9 -0
  292. package/dist/proposals/ListItem.js.map +1 -0
  293. package/dist/proposals/MetaProperties.d.ts +14 -0
  294. package/dist/proposals/MetaProperties.js.map +1 -0
  295. package/dist/proposals/NewProposalMenu.d.ts +10 -0
  296. package/dist/proposals/NewProposalMenu.js.map +1 -0
  297. package/dist/proposals/ProposalBrowser.d.ts +29 -0
  298. package/dist/proposals/ProposalBrowser.js.map +1 -0
  299. package/dist/proposals/ProposalDetail.d.ts +6 -0
  300. package/dist/proposals/ProposalDetail.js.map +1 -0
  301. package/dist/proposals/ProposalItem.d.ts +16 -0
  302. package/dist/proposals/ProposalItem.js.map +1 -0
  303. package/dist/proposals/ProposalSummary.d.ts +6 -0
  304. package/dist/proposals/ProposalSummary.js.map +1 -0
  305. package/dist/proposals/ProposalTab.d.ts +14 -0
  306. package/dist/proposals/ProposalTab.js.map +1 -0
  307. package/dist/proposals/ProposalType.d.ts +11 -0
  308. package/dist/proposals/ProposalType.js.map +1 -0
  309. package/dist/proposals/ProposalWorkspace.d.ts +15 -0
  310. package/dist/proposals/ProposalWorkspace.js.map +1 -0
  311. package/dist/proposals/Search.d.ts +26 -0
  312. package/dist/proposals/Search.js.map +1 -0
  313. package/dist/proposals/TransitionHistory.d.ts +31 -0
  314. package/dist/proposals/TransitionHistory.js.map +1 -0
  315. package/dist/proposals/TransitionOptions.d.ts +38 -0
  316. package/dist/proposals/TransitionOptions.js.map +1 -0
  317. package/dist/proposals/actionableGroups/Tree.d.ts +7 -0
  318. package/dist/proposals/actionableGroups/Tree.js.map +1 -0
  319. package/dist/proposals/actionableGroups/queries.d.ts +4 -0
  320. package/dist/proposals/actionableGroups/queries.js.map +1 -0
  321. package/dist/proposals/actionableGroups/treeNodes.d.ts +27 -0
  322. package/dist/proposals/actionableGroups/treeNodes.js.map +1 -0
  323. package/dist/proposals/actionableGroups/types.d.ts +6 -0
  324. package/dist/proposals/actionableGroups/types.js +5 -0
  325. package/dist/proposals/actionableGroups/types.js.map +1 -0
  326. package/dist/proposals/index.d.ts +6 -0
  327. package/dist/proposals/index.js.map +1 -0
  328. package/dist/proposals/objectChangeset.d.ts +72 -0
  329. package/dist/proposals/objectChangeset.js.map +1 -0
  330. package/dist/proposals/queries.d.ts +4 -0
  331. package/dist/proposals/queries.js.map +1 -0
  332. package/dist/proposals/types.d.ts +332 -0
  333. package/dist/proposals/types.js.map +1 -0
  334. package/dist/types/index.d.ts +6 -0
  335. package/dist/types/index.js.map +1 -0
  336. package/dist/types/item.d.ts +55 -0
  337. package/dist/types/item.js.map +1 -0
  338. package/dist/types/register.d.ts +21 -0
  339. package/dist/types/register.js.map +1 -0
  340. package/dist/types/registry.d.ts +15 -0
  341. package/dist/types/registry.js.map +1 -0
  342. package/dist/types/stakeholder.d.ts +43 -0
  343. package/dist/types/stakeholder.js.map +1 -0
  344. package/dist/types/util.d.ts +28 -0
  345. package/dist/types/util.js +5 -0
  346. package/dist/types/util.js.map +1 -0
  347. package/dist/types/views.d.ts +228 -0
  348. package/dist/types/views.js +5 -0
  349. package/dist/types/views.js.map +1 -0
  350. package/dist/views/AnnotatedChange.d.ts +7 -0
  351. package/dist/views/AnnotatedChange.js.map +1 -0
  352. package/dist/views/BrowserCtx.d.ts +69 -0
  353. package/dist/views/BrowserCtx.js.map +1 -0
  354. package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +17 -0
  355. package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +1 -0
  356. package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.d.ts +6 -0
  357. package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +1 -0
  358. package/dist/views/FilterCriteria/criteriaGroupToSummary.d.ts +5 -0
  359. package/dist/views/FilterCriteria/criteriaGroupToSummary.js.map +1 -0
  360. package/dist/views/FilterCriteria/criteriaToNodes.d.ts +24 -0
  361. package/dist/views/FilterCriteria/criteriaToNodes.js.map +1 -0
  362. package/dist/views/FilterCriteria/index.d.ts +23 -0
  363. package/dist/views/FilterCriteria/index.js.map +1 -0
  364. package/dist/views/FilterCriteria/models.d.ts +70 -0
  365. package/dist/views/FilterCriteria/models.js.map +1 -0
  366. package/dist/views/FilterCriteria/mutateGroup.d.ts +24 -0
  367. package/dist/views/FilterCriteria/mutateGroup.js.map +1 -0
  368. package/dist/views/GenericRelatedItemView.d.ts +9 -0
  369. package/dist/views/GenericRelatedItemView.js.map +1 -0
  370. package/dist/views/ItemDetailsDrawer.d.ts +12 -0
  371. package/dist/views/ItemDetailsDrawer.js.map +1 -0
  372. package/dist/views/ItemSearchDrawer.d.ts +11 -0
  373. package/dist/views/ItemSearchDrawer.js.map +1 -0
  374. package/dist/views/Party.d.ts +0 -0
  375. package/dist/views/Party.js.map +1 -0
  376. package/dist/views/RegisterStakeholder.d.ts +12 -0
  377. package/dist/views/RegisterStakeholder.js.map +1 -0
  378. package/dist/views/RegisterVersion.d.ts +9 -0
  379. package/dist/views/RegisterVersion.js.map +1 -0
  380. package/dist/views/SearchQuery.d.ts +19 -0
  381. package/dist/views/SearchQuery.js.map +1 -0
  382. package/dist/views/StatefulTree.d.ts +28 -0
  383. package/dist/views/StatefulTree.js.map +1 -0
  384. package/dist/views/detail/AllItems.d.ts +8 -0
  385. package/dist/views/detail/AllItems.js.map +1 -0
  386. package/dist/views/detail/ChangeRequest/index.d.ts +12 -0
  387. package/dist/views/detail/ChangeRequest/index.js.map +1 -0
  388. package/dist/views/detail/CustomView/index.d.ts +13 -0
  389. package/dist/views/detail/CustomView/index.js.map +1 -0
  390. package/dist/views/detail/ProposalWork.d.ts +8 -0
  391. package/dist/views/detail/ProposalWork.js.map +1 -0
  392. package/dist/views/detail/RegisterHome/ActiveProposalDetails.d.ts +15 -0
  393. package/dist/views/detail/RegisterHome/ActiveProposalDetails.js.map +1 -0
  394. package/dist/views/detail/RegisterHome/Block.d.ts +29 -0
  395. package/dist/views/detail/RegisterHome/Block.js.map +1 -0
  396. package/dist/views/detail/RegisterHome/MetaSummary.d.ts +9 -0
  397. package/dist/views/detail/RegisterHome/MetaSummary.js.map +1 -0
  398. package/dist/views/detail/RegisterHome/Proposal.d.ts +14 -0
  399. package/dist/views/detail/RegisterHome/Proposal.js.map +1 -0
  400. package/dist/views/detail/RegisterHome/index.d.ts +5 -0
  401. package/dist/views/detail/RegisterHome/index.js.map +1 -0
  402. package/dist/views/detail/RegisterHome2/index.d.ts +5 -0
  403. package/dist/views/detail/RegisterHome2/index.js.map +1 -0
  404. package/dist/views/detail/RegisterItem/RelatedItems.d.ts +14 -0
  405. package/dist/views/detail/RegisterItem/RelatedItems.js.map +1 -0
  406. package/dist/views/detail/RegisterItem/SupersedingItemMenu.d.ts +13 -0
  407. package/dist/views/detail/RegisterItem/SupersedingItemMenu.js.map +1 -0
  408. package/dist/views/detail/RegisterItem/index.d.ts +21 -0
  409. package/{views → dist/views}/detail/RegisterItem/index.js +1 -1
  410. package/dist/views/detail/RegisterItem/index.js.map +1 -0
  411. package/dist/views/detail/RegisterItemClass.d.ts +12 -0
  412. package/dist/views/detail/RegisterItemClass.js.map +1 -0
  413. package/dist/views/detail/RegisterMeta/RegisterMetaForm.d.ts +10 -0
  414. package/dist/views/detail/RegisterMeta/RegisterMetaForm.js.map +1 -0
  415. package/dist/views/detail/RegisterMeta/index.d.ts +10 -0
  416. package/dist/views/detail/RegisterMeta/index.js.map +1 -0
  417. package/dist/views/detail/index.d.ts +1 -0
  418. package/dist/views/detail/index.js.map +1 -0
  419. package/dist/views/diffing/InlineDiff.d.ts +38 -0
  420. package/dist/views/diffing/InlineDiff.js.map +1 -0
  421. package/dist/views/diffing/StructuredDiff.d.ts +11 -0
  422. package/dist/views/diffing/StructuredDiff.js.map +1 -0
  423. package/dist/views/hooks/useCustomView.d.ts +3 -0
  424. package/dist/views/hooks/useCustomView.js.map +1 -0
  425. package/dist/views/hooks/useItemClassConfig.d.ts +2 -0
  426. package/dist/views/hooks/useItemClassConfig.js.map +1 -0
  427. package/dist/views/hooks/useItemRef.d.ts +3 -0
  428. package/dist/views/hooks/useItemRef.js.map +1 -0
  429. package/dist/views/hooks/useLatestAcceptedProposal.d.ts +2 -0
  430. package/dist/views/hooks/useLatestAcceptedProposal.js.map +1 -0
  431. package/dist/views/hooks/useRegisterVersion.d.ts +5 -0
  432. package/dist/views/hooks/useRegisterVersion.js.map +1 -0
  433. package/dist/views/hooks/useSingleRegisterItemData.d.ts +3 -0
  434. package/dist/views/hooks/useSingleRegisterItemData.js.map +1 -0
  435. package/dist/views/hooks/useStakeholder.d.ts +0 -0
  436. package/dist/views/hooks/useStakeholder.js.map +1 -0
  437. package/dist/views/index.d.ts +8 -0
  438. package/dist/views/index.js.map +1 -0
  439. package/dist/views/itemPathUtils.d.ts +47 -0
  440. package/dist/views/itemPathUtils.js.map +1 -0
  441. package/dist/views/itemQueryUtils.d.ts +12 -0
  442. package/dist/views/itemQueryUtils.js.map +1 -0
  443. package/dist/views/protocolRegistry.d.ts +14 -0
  444. package/dist/views/protocolRegistry.js.map +1 -0
  445. package/dist/views/sidebar/Browse/index.d.ts +11 -0
  446. package/dist/views/sidebar/Browse/index.js.map +1 -0
  447. package/dist/views/sidebar/ExportImport/ExportOptions.d.ts +5 -0
  448. package/dist/views/sidebar/ExportImport/ExportOptions.js.map +1 -0
  449. package/dist/views/sidebar/ExportImport/ImportOptions.d.ts +4 -0
  450. package/dist/views/sidebar/ExportImport/ImportOptions.js.map +1 -0
  451. package/dist/views/sidebar/ExportImport/index.d.ts +3 -0
  452. package/dist/views/sidebar/ExportImport/index.js.map +1 -0
  453. package/dist/views/sidebar/ListItem.d.ts +10 -0
  454. package/dist/views/sidebar/ListItem.js.map +1 -0
  455. package/dist/views/sidebar/Registration/index.d.ts +9 -0
  456. package/dist/views/sidebar/Registration/index.js.map +1 -0
  457. package/dist/views/sidebar/Search/index.d.ts +29 -0
  458. package/{views → dist/views}/sidebar/Search/index.js +1 -1
  459. package/dist/views/sidebar/Search/index.js.map +1 -0
  460. package/dist/views/sidebar/index.d.ts +7 -0
  461. package/dist/views/sidebar/index.js.map +1 -0
  462. package/dist/views/util.d.ts +98 -0
  463. package/{views → dist/views}/util.js +33 -7
  464. package/dist/views/util.js.map +1 -0
  465. package/package.json +1 -1
  466. package/react-visual-diff.d.ts +9 -0
  467. package/views/detail/RegisterItem/index.js.map +0 -1
  468. package/views/util.js.map +0 -1
  469. /package/{common.d.ts → compiled/common.d.ts} +0 -0
  470. /package/{common.js.map → compiled/common.js.map} +0 -0
  471. /package/{index.d.ts → compiled/index.d.ts} +0 -0
  472. /package/{index.js.map → compiled/index.js.map} +0 -0
  473. /package/{item-classes → compiled/item-classes}/Tree.d.ts +0 -0
  474. /package/{item-classes → compiled/item-classes}/Tree.js.map +0 -0
  475. /package/{item-classes → compiled/item-classes}/treeNodes.d.ts +0 -0
  476. /package/{item-classes → compiled/item-classes}/treeNodes.js.map +0 -0
  477. /package/{migrations → compiled/migrations}/initial.d.ts +0 -0
  478. /package/{migrations → compiled/migrations}/initial.js.map +0 -0
  479. /package/{proposals → compiled/proposals}/ChangeRequestContext.d.ts +0 -0
  480. /package/{proposals → compiled/proposals}/ChangeRequestContext.js.map +0 -0
  481. /package/{proposals → compiled/proposals}/HistoryDrawer.d.ts +0 -0
  482. /package/{proposals → compiled/proposals}/HistoryDrawer.js.map +0 -0
  483. /package/{proposals → compiled/proposals}/ListItem.d.ts +0 -0
  484. /package/{proposals → compiled/proposals}/ListItem.js.map +0 -0
  485. /package/{proposals → compiled/proposals}/MetaProperties.d.ts +0 -0
  486. /package/{proposals → compiled/proposals}/MetaProperties.js.map +0 -0
  487. /package/{proposals → compiled/proposals}/NewProposalMenu.d.ts +0 -0
  488. /package/{proposals → compiled/proposals}/NewProposalMenu.js.map +0 -0
  489. /package/{proposals → compiled/proposals}/ProposalBrowser.d.ts +0 -0
  490. /package/{proposals → compiled/proposals}/ProposalBrowser.js.map +0 -0
  491. /package/{proposals → compiled/proposals}/ProposalDetail.d.ts +0 -0
  492. /package/{proposals → compiled/proposals}/ProposalDetail.js.map +0 -0
  493. /package/{proposals → compiled/proposals}/ProposalItem.d.ts +0 -0
  494. /package/{proposals → compiled/proposals}/ProposalItem.js.map +0 -0
  495. /package/{proposals → compiled/proposals}/ProposalSummary.d.ts +0 -0
  496. /package/{proposals → compiled/proposals}/ProposalSummary.js.map +0 -0
  497. /package/{proposals → compiled/proposals}/ProposalTab.d.ts +0 -0
  498. /package/{proposals → compiled/proposals}/ProposalTab.js.map +0 -0
  499. /package/{proposals → compiled/proposals}/ProposalType.d.ts +0 -0
  500. /package/{proposals → compiled/proposals}/ProposalType.js.map +0 -0
  501. /package/{proposals → compiled/proposals}/ProposalWorkspace.d.ts +0 -0
  502. /package/{proposals → compiled/proposals}/ProposalWorkspace.js.map +0 -0
  503. /package/{proposals → compiled/proposals}/Search.d.ts +0 -0
  504. /package/{proposals → compiled/proposals}/Search.js.map +0 -0
  505. /package/{proposals → compiled/proposals}/TransitionHistory.d.ts +0 -0
  506. /package/{proposals → compiled/proposals}/TransitionHistory.js.map +0 -0
  507. /package/{proposals → compiled/proposals}/TransitionOptions.d.ts +0 -0
  508. /package/{proposals → compiled/proposals}/TransitionOptions.js.map +0 -0
  509. /package/{proposals → compiled/proposals}/actionableGroups/Tree.d.ts +0 -0
  510. /package/{proposals → compiled/proposals}/actionableGroups/Tree.js.map +0 -0
  511. /package/{proposals → compiled/proposals}/actionableGroups/queries.d.ts +0 -0
  512. /package/{proposals → compiled/proposals}/actionableGroups/queries.js.map +0 -0
  513. /package/{proposals → compiled/proposals}/actionableGroups/treeNodes.d.ts +0 -0
  514. /package/{proposals → compiled/proposals}/actionableGroups/treeNodes.js.map +0 -0
  515. /package/{proposals → compiled/proposals}/actionableGroups/types.d.ts +0 -0
  516. /package/{proposals → compiled/proposals}/actionableGroups/types.js.map +0 -0
  517. /package/{proposals → compiled/proposals}/index.d.ts +0 -0
  518. /package/{proposals → compiled/proposals}/index.js.map +0 -0
  519. /package/{proposals → compiled/proposals}/objectChangeset.d.ts +0 -0
  520. /package/{proposals → compiled/proposals}/objectChangeset.js.map +0 -0
  521. /package/{proposals → compiled/proposals}/queries.d.ts +0 -0
  522. /package/{proposals → compiled/proposals}/queries.js.map +0 -0
  523. /package/{proposals → compiled/proposals}/types.d.ts +0 -0
  524. /package/{proposals → compiled/proposals}/types.js.map +0 -0
  525. /package/{types → compiled/types}/index.d.ts +0 -0
  526. /package/{types → compiled/types}/index.js.map +0 -0
  527. /package/{types → compiled/types}/item.d.ts +0 -0
  528. /package/{types → compiled/types}/item.js.map +0 -0
  529. /package/{types → compiled/types}/register.d.ts +0 -0
  530. /package/{types → compiled/types}/register.js.map +0 -0
  531. /package/{types → compiled/types}/registry.d.ts +0 -0
  532. /package/{types → compiled/types}/registry.js.map +0 -0
  533. /package/{types → compiled/types}/stakeholder.d.ts +0 -0
  534. /package/{types → compiled/types}/stakeholder.js.map +0 -0
  535. /package/{types → compiled/types}/util.d.ts +0 -0
  536. /package/{types → compiled/types}/util.js.map +0 -0
  537. /package/{types → compiled/types}/views.d.ts +0 -0
  538. /package/{types → compiled/types}/views.js.map +0 -0
  539. /package/{views → compiled/views}/AnnotatedChange.d.ts +0 -0
  540. /package/{views → compiled/views}/AnnotatedChange.js.map +0 -0
  541. /package/{views → compiled/views}/BrowserCtx.d.ts +0 -0
  542. /package/{views → compiled/views}/BrowserCtx.js.map +0 -0
  543. /package/{views → compiled/views}/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -0
  544. /package/{views → compiled/views}/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -0
  545. /package/{views → compiled/views}/FilterCriteria/criteriaGroupToQueryExpression.d.ts +0 -0
  546. /package/{views → compiled/views}/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -0
  547. /package/{views → compiled/views}/FilterCriteria/criteriaGroupToSummary.d.ts +0 -0
  548. /package/{views → compiled/views}/FilterCriteria/criteriaGroupToSummary.js.map +0 -0
  549. /package/{views → compiled/views}/FilterCriteria/criteriaToNodes.d.ts +0 -0
  550. /package/{views → compiled/views}/FilterCriteria/criteriaToNodes.js.map +0 -0
  551. /package/{views → compiled/views}/FilterCriteria/index.d.ts +0 -0
  552. /package/{views → compiled/views}/FilterCriteria/index.js.map +0 -0
  553. /package/{views → compiled/views}/FilterCriteria/models.d.ts +0 -0
  554. /package/{views → compiled/views}/FilterCriteria/models.js.map +0 -0
  555. /package/{views → compiled/views}/FilterCriteria/mutateGroup.d.ts +0 -0
  556. /package/{views → compiled/views}/FilterCriteria/mutateGroup.js.map +0 -0
  557. /package/{views → compiled/views}/GenericRelatedItemView.d.ts +0 -0
  558. /package/{views → compiled/views}/GenericRelatedItemView.js.map +0 -0
  559. /package/{views → compiled/views}/ItemDetailsDrawer.d.ts +0 -0
  560. /package/{views → compiled/views}/ItemDetailsDrawer.js.map +0 -0
  561. /package/{views → compiled/views}/ItemSearchDrawer.d.ts +0 -0
  562. /package/{views → compiled/views}/ItemSearchDrawer.js.map +0 -0
  563. /package/{views → compiled/views}/Party.d.ts +0 -0
  564. /package/{views → compiled/views}/Party.js.map +0 -0
  565. /package/{views → compiled/views}/RegisterStakeholder.d.ts +0 -0
  566. /package/{views → compiled/views}/RegisterStakeholder.js.map +0 -0
  567. /package/{views → compiled/views}/RegisterVersion.d.ts +0 -0
  568. /package/{views → compiled/views}/RegisterVersion.js.map +0 -0
  569. /package/{views → compiled/views}/SearchQuery.d.ts +0 -0
  570. /package/{views → compiled/views}/SearchQuery.js.map +0 -0
  571. /package/{views → compiled/views}/StatefulTree.d.ts +0 -0
  572. /package/{views → compiled/views}/StatefulTree.js.map +0 -0
  573. /package/{views → compiled/views}/detail/AllItems.d.ts +0 -0
  574. /package/{views → compiled/views}/detail/AllItems.js.map +0 -0
  575. /package/{views → compiled/views}/detail/ChangeRequest/index.d.ts +0 -0
  576. /package/{views → compiled/views}/detail/ChangeRequest/index.js.map +0 -0
  577. /package/{views → compiled/views}/detail/CustomView/index.d.ts +0 -0
  578. /package/{views → compiled/views}/detail/CustomView/index.js.map +0 -0
  579. /package/{views → compiled/views}/detail/ProposalWork.d.ts +0 -0
  580. /package/{views → compiled/views}/detail/ProposalWork.js.map +0 -0
  581. /package/{views → compiled/views}/detail/RegisterHome/ActiveProposalDetails.d.ts +0 -0
  582. /package/{views → compiled/views}/detail/RegisterHome/ActiveProposalDetails.js.map +0 -0
  583. /package/{views → compiled/views}/detail/RegisterHome/Block.d.ts +0 -0
  584. /package/{views → compiled/views}/detail/RegisterHome/Block.js.map +0 -0
  585. /package/{views → compiled/views}/detail/RegisterHome/MetaSummary.d.ts +0 -0
  586. /package/{views → compiled/views}/detail/RegisterHome/MetaSummary.js.map +0 -0
  587. /package/{views → compiled/views}/detail/RegisterHome/Proposal.d.ts +0 -0
  588. /package/{views → compiled/views}/detail/RegisterHome/Proposal.js.map +0 -0
  589. /package/{views → compiled/views}/detail/RegisterHome/index.d.ts +0 -0
  590. /package/{views → compiled/views}/detail/RegisterHome/index.js.map +0 -0
  591. /package/{views → compiled/views}/detail/RegisterHome2/index.d.ts +0 -0
  592. /package/{views → compiled/views}/detail/RegisterHome2/index.js.map +0 -0
  593. /package/{views → compiled/views}/detail/RegisterItem/RelatedItems.d.ts +0 -0
  594. /package/{views → compiled/views}/detail/RegisterItem/RelatedItems.js.map +0 -0
  595. /package/{views → compiled/views}/detail/RegisterItem/SupersedingItemMenu.d.ts +0 -0
  596. /package/{views → compiled/views}/detail/RegisterItem/SupersedingItemMenu.js.map +0 -0
  597. /package/{views → compiled/views}/detail/RegisterItem/index.d.ts +0 -0
  598. /package/{views → compiled/views}/detail/RegisterItemClass.d.ts +0 -0
  599. /package/{views → compiled/views}/detail/RegisterItemClass.js.map +0 -0
  600. /package/{views → compiled/views}/detail/RegisterMeta/RegisterMetaForm.d.ts +0 -0
  601. /package/{views → compiled/views}/detail/RegisterMeta/RegisterMetaForm.js.map +0 -0
  602. /package/{views → compiled/views}/detail/RegisterMeta/index.d.ts +0 -0
  603. /package/{views → compiled/views}/detail/RegisterMeta/index.js.map +0 -0
  604. /package/{views → compiled/views}/detail/index.d.ts +0 -0
  605. /package/{views → compiled/views}/detail/index.js.map +0 -0
  606. /package/{views → compiled/views}/diffing/InlineDiff.d.ts +0 -0
  607. /package/{views → compiled/views}/diffing/InlineDiff.js.map +0 -0
  608. /package/{views → compiled/views}/diffing/StructuredDiff.d.ts +0 -0
  609. /package/{views → compiled/views}/diffing/StructuredDiff.js.map +0 -0
  610. /package/{views → compiled/views}/hooks/useCustomView.d.ts +0 -0
  611. /package/{views → compiled/views}/hooks/useCustomView.js.map +0 -0
  612. /package/{views → compiled/views}/hooks/useItemClassConfig.d.ts +0 -0
  613. /package/{views → compiled/views}/hooks/useItemClassConfig.js.map +0 -0
  614. /package/{views → compiled/views}/hooks/useItemRef.d.ts +0 -0
  615. /package/{views → compiled/views}/hooks/useItemRef.js.map +0 -0
  616. /package/{views → compiled/views}/hooks/useLatestAcceptedProposal.d.ts +0 -0
  617. /package/{views → compiled/views}/hooks/useLatestAcceptedProposal.js.map +0 -0
  618. /package/{views → compiled/views}/hooks/useRegisterVersion.d.ts +0 -0
  619. /package/{views → compiled/views}/hooks/useRegisterVersion.js.map +0 -0
  620. /package/{views → compiled/views}/hooks/useSingleRegisterItemData.d.ts +0 -0
  621. /package/{views → compiled/views}/hooks/useSingleRegisterItemData.js.map +0 -0
  622. /package/{views → compiled/views}/hooks/useStakeholder.d.ts +0 -0
  623. /package/{views → compiled/views}/hooks/useStakeholder.js.map +0 -0
  624. /package/{views → compiled/views}/index.d.ts +0 -0
  625. /package/{views → compiled/views}/index.js.map +0 -0
  626. /package/{views → compiled/views}/itemPathUtils.d.ts +0 -0
  627. /package/{views → compiled/views}/itemPathUtils.js.map +0 -0
  628. /package/{views → compiled/views}/itemQueryUtils.d.ts +0 -0
  629. /package/{views → compiled/views}/itemQueryUtils.js.map +0 -0
  630. /package/{views → compiled/views}/protocolRegistry.d.ts +0 -0
  631. /package/{views → compiled/views}/protocolRegistry.js.map +0 -0
  632. /package/{views → compiled/views}/sidebar/Browse/index.d.ts +0 -0
  633. /package/{views → compiled/views}/sidebar/Browse/index.js.map +0 -0
  634. /package/{views → compiled/views}/sidebar/ExportImport/ExportOptions.d.ts +0 -0
  635. /package/{views → compiled/views}/sidebar/ExportImport/ExportOptions.js.map +0 -0
  636. /package/{views → compiled/views}/sidebar/ExportImport/ImportOptions.d.ts +0 -0
  637. /package/{views → compiled/views}/sidebar/ExportImport/ImportOptions.js.map +0 -0
  638. /package/{views → compiled/views}/sidebar/ExportImport/index.d.ts +0 -0
  639. /package/{views → compiled/views}/sidebar/ExportImport/index.js.map +0 -0
  640. /package/{views → compiled/views}/sidebar/ListItem.d.ts +0 -0
  641. /package/{views → compiled/views}/sidebar/ListItem.js.map +0 -0
  642. /package/{views → compiled/views}/sidebar/Registration/index.d.ts +0 -0
  643. /package/{views → compiled/views}/sidebar/Registration/index.js.map +0 -0
  644. /package/{views → compiled/views}/sidebar/Search/index.d.ts +0 -0
  645. /package/{views → compiled/views}/sidebar/index.d.ts +0 -0
  646. /package/{views → compiled/views}/sidebar/index.js.map +0 -0
  647. /package/{views → compiled/views}/util.d.ts +0 -0
  648. /package/{proposals/actionableGroups → dependencies-local/extension-kit/i18n}/types.js +0 -0
  649. /package/{types/util.js → dependencies-local/extension-kit/types/binary-invocation.js} +0 -0
  650. /package/{types/views.js → dependencies-local/extension-kit/types/buffers.js} +0 -0
  651. /package/{common.js → dist/common.js} +0 -0
  652. /package/{index.js → dist/index.js} +0 -0
  653. /package/{item-classes → dist/item-classes}/Tree.js +0 -0
  654. /package/{item-classes → dist/item-classes}/treeNodes.js +0 -0
  655. /package/{migrations → dist/migrations}/initial.js +0 -0
  656. /package/{proposals → dist/proposals}/ChangeRequestContext.js +0 -0
  657. /package/{proposals → dist/proposals}/HistoryDrawer.js +0 -0
  658. /package/{proposals → dist/proposals}/ListItem.js +0 -0
  659. /package/{proposals → dist/proposals}/MetaProperties.js +0 -0
  660. /package/{proposals → dist/proposals}/NewProposalMenu.js +0 -0
  661. /package/{proposals → dist/proposals}/ProposalBrowser.js +0 -0
  662. /package/{proposals → dist/proposals}/ProposalDetail.js +0 -0
  663. /package/{proposals → dist/proposals}/ProposalItem.js +0 -0
  664. /package/{proposals → dist/proposals}/ProposalSummary.js +0 -0
  665. /package/{proposals → dist/proposals}/ProposalTab.js +0 -0
  666. /package/{proposals → dist/proposals}/ProposalType.js +0 -0
  667. /package/{proposals → dist/proposals}/ProposalWorkspace.js +0 -0
  668. /package/{proposals → dist/proposals}/Search.js +0 -0
  669. /package/{proposals → dist/proposals}/TransitionHistory.js +0 -0
  670. /package/{proposals → dist/proposals}/TransitionOptions.js +0 -0
  671. /package/{proposals → dist/proposals}/actionableGroups/Tree.js +0 -0
  672. /package/{proposals → dist/proposals}/actionableGroups/queries.js +0 -0
  673. /package/{proposals → dist/proposals}/actionableGroups/treeNodes.js +0 -0
  674. /package/{proposals → dist/proposals}/index.js +0 -0
  675. /package/{proposals → dist/proposals}/objectChangeset.js +0 -0
  676. /package/{proposals → dist/proposals}/queries.js +0 -0
  677. /package/{proposals → dist/proposals}/types.js +0 -0
  678. /package/{types → dist/types}/index.js +0 -0
  679. /package/{types → dist/types}/item.js +0 -0
  680. /package/{types → dist/types}/register.js +0 -0
  681. /package/{types → dist/types}/registry.js +0 -0
  682. /package/{types → dist/types}/stakeholder.js +0 -0
  683. /package/{views → dist/views}/AnnotatedChange.js +0 -0
  684. /package/{views → dist/views}/BrowserCtx.js +0 -0
  685. /package/{views → dist/views}/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -0
  686. /package/{views → dist/views}/FilterCriteria/criteriaGroupToQueryExpression.js +0 -0
  687. /package/{views → dist/views}/FilterCriteria/criteriaGroupToSummary.js +0 -0
  688. /package/{views → dist/views}/FilterCriteria/criteriaToNodes.js +0 -0
  689. /package/{views → dist/views}/FilterCriteria/index.js +0 -0
  690. /package/{views → dist/views}/FilterCriteria/models.js +0 -0
  691. /package/{views → dist/views}/FilterCriteria/mutateGroup.js +0 -0
  692. /package/{views → dist/views}/GenericRelatedItemView.js +0 -0
  693. /package/{views → dist/views}/ItemDetailsDrawer.js +0 -0
  694. /package/{views → dist/views}/ItemSearchDrawer.js +0 -0
  695. /package/{views → dist/views}/Party.js +0 -0
  696. /package/{views → dist/views}/RegisterStakeholder.js +0 -0
  697. /package/{views → dist/views}/RegisterVersion.js +0 -0
  698. /package/{views → dist/views}/SearchQuery.js +0 -0
  699. /package/{views → dist/views}/StatefulTree.js +0 -0
  700. /package/{views → dist/views}/detail/AllItems.js +0 -0
  701. /package/{views → dist/views}/detail/ChangeRequest/index.js +0 -0
  702. /package/{views → dist/views}/detail/CustomView/index.js +0 -0
  703. /package/{views → dist/views}/detail/ProposalWork.js +0 -0
  704. /package/{views → dist/views}/detail/RegisterHome/ActiveProposalDetails.js +0 -0
  705. /package/{views → dist/views}/detail/RegisterHome/Block.js +0 -0
  706. /package/{views → dist/views}/detail/RegisterHome/MetaSummary.js +0 -0
  707. /package/{views → dist/views}/detail/RegisterHome/Proposal.js +0 -0
  708. /package/{views → dist/views}/detail/RegisterHome/index.js +0 -0
  709. /package/{views → dist/views}/detail/RegisterHome2/index.js +0 -0
  710. /package/{views → dist/views}/detail/RegisterItem/RelatedItems.js +0 -0
  711. /package/{views → dist/views}/detail/RegisterItem/SupersedingItemMenu.js +0 -0
  712. /package/{views → dist/views}/detail/RegisterItemClass.js +0 -0
  713. /package/{views → dist/views}/detail/RegisterMeta/RegisterMetaForm.js +0 -0
  714. /package/{views → dist/views}/detail/RegisterMeta/index.js +0 -0
  715. /package/{views → dist/views}/detail/index.js +0 -0
  716. /package/{views → dist/views}/diffing/InlineDiff.js +0 -0
  717. /package/{views → dist/views}/diffing/StructuredDiff.js +0 -0
  718. /package/{views → dist/views}/hooks/useCustomView.js +0 -0
  719. /package/{views → dist/views}/hooks/useItemClassConfig.js +0 -0
  720. /package/{views → dist/views}/hooks/useItemRef.js +0 -0
  721. /package/{views → dist/views}/hooks/useLatestAcceptedProposal.js +0 -0
  722. /package/{views → dist/views}/hooks/useRegisterVersion.js +0 -0
  723. /package/{views → dist/views}/hooks/useSingleRegisterItemData.js +0 -0
  724. /package/{views → dist/views}/hooks/useStakeholder.js +0 -0
  725. /package/{views → dist/views}/index.js +0 -0
  726. /package/{views → dist/views}/itemPathUtils.js +0 -0
  727. /package/{views → dist/views}/itemQueryUtils.js +0 -0
  728. /package/{views → dist/views}/protocolRegistry.js +0 -0
  729. /package/{views → dist/views}/sidebar/Browse/index.js +0 -0
  730. /package/{views → dist/views}/sidebar/ExportImport/ExportOptions.js +0 -0
  731. /package/{views → dist/views}/sidebar/ExportImport/ImportOptions.js +0 -0
  732. /package/{views → dist/views}/sidebar/ExportImport/index.js +0 -0
  733. /package/{views → dist/views}/sidebar/ListItem.js +0 -0
  734. /package/{views → dist/views}/sidebar/Registration/index.js +0 -0
  735. /package/{views → dist/views}/sidebar/index.js +0 -0
@@ -0,0 +1,98 @@
1
+ /** @jsx jsx */
2
+ /** @jsxFrag React.Fragment */
3
+ import React from 'react';
4
+ import { type HelmetProps } from 'react-helmet';
5
+ import { type CardProps, type FormGroupProps, type ButtonProps, type TagProps } from '@blueprintjs/core';
6
+ import { type HelpTooltipProps } from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';
7
+ import type { ItemClassConfiguration, RelatedItemClassConfiguration } from '../types';
8
+ export { GenericRelatedItemView } from './GenericRelatedItemView';
9
+ /**
10
+ * Get give string truncated & with ellipsis appended
11
+ * if its length exceeds given number of characters.
12
+ */
13
+ export declare function maybeEllipsizeString(str: string, maxLength?: number): string;
14
+ export declare const RegisterHelmet: React.FC<HelmetProps>;
15
+ /**
16
+ * A wrapper to show property data with its label(s).
17
+ */
18
+ export declare const PropertyDetailView: React.FC<FormGroupProps & {
19
+ /** @deprecated use `label` instead */
20
+ title?: FormGroupProps["label"];
21
+ /** @deprecated use `labelInfo` instead */
22
+ secondaryTitle?: FormGroupProps["labelInfo"];
23
+ }>;
24
+ /** Formats given date as a span with tooltip set to full ISO date & time. */
25
+ export declare const Datestamp: React.FC<{
26
+ date: Date;
27
+ /** See formatDate(). */
28
+ useUTC?: boolean;
29
+ /** See formatDate(). */
30
+ showTime?: boolean;
31
+ /** See formatDate(). */
32
+ showTimeIfNonZero?: boolean;
33
+ title?: string;
34
+ className?: string;
35
+ }>;
36
+ /** Foramts given date as plain text. */
37
+ export declare function formatDate(date: Date, opts?: {
38
+ /** Show time in UTC. Will add the “UTC”, unless time is shown. */
39
+ useUTC?: boolean;
40
+ /** Show date along with full time, to seconds. */
41
+ showTime?: boolean;
42
+ /** Show time, unless it’s 00:00:00 on the day. */
43
+ showTimeIfNonZero?: boolean;
44
+ }): string;
45
+ export declare const _getRelatedClass: (classes: Record<string, ItemClassConfiguration<any>>) => (clsID: string) => RelatedItemClassConfiguration;
46
+ export declare type ClassificationEntry = TagProps & {
47
+ tooltip?: HelpTooltipProps;
48
+ };
49
+ export interface TabContentsWithHeaderProps {
50
+ title: JSX.Element | string;
51
+ smallTitle?: boolean;
52
+ classification?: ClassificationEntry[];
53
+ actions?: (ActionProps | ActionProps[])[];
54
+ tooltip?: HelpTooltipProps;
55
+ className?: string;
56
+ /**
57
+ * CSS to apply to child contents wrapper div.
58
+ *
59
+ * If 'card-grid', children would be expected to be cards
60
+ * (e.g., `FormGroupAsCardInGrid` or `CardInGrid`)
61
+ *
62
+ * 'card-grid' implies 'scrollable'.
63
+ */
64
+ layout?: undefined | 'card-grid' | 'scrollable';
65
+ layoutOptions?: Record<string, unknown>;
66
+ }
67
+ interface Grid extends TabContentsWithHeaderProps {
68
+ layout: 'card-grid';
69
+ layoutOptions?: {
70
+ gapPx?: number;
71
+ stretch?: boolean;
72
+ };
73
+ }
74
+ interface Scrollable extends TabContentsWithHeaderProps {
75
+ layout: 'scrollable';
76
+ layoutOptions?: never;
77
+ }
78
+ interface NoLayout extends TabContentsWithHeaderProps {
79
+ layout?: undefined;
80
+ layoutOptions?: never;
81
+ }
82
+ export declare const TabContentsWithHeader: React.FC<Grid | Scrollable | NoLayout>;
83
+ export declare type ActionProps = ButtonProps & ({
84
+ popup?: JSX.Element;
85
+ tooltip?: string;
86
+ });
87
+ export declare const CardInGrid: React.FC<{
88
+ description: string;
89
+ } & CardProps>;
90
+ /** Useful in case of tab “card-grid” layout. */
91
+ export declare const FormGroupAsCardInGrid: React.FC<FormGroupProps & {
92
+ paddingPx?: number;
93
+ }>;
94
+ export declare const MoreMenu: React.FC<Record<never, never>>;
95
+ export declare const ItemClassMenu: React.FC<{
96
+ cfg: ItemClassConfiguration<any>;
97
+ onCreate?: () => void;
98
+ }>;
@@ -29,8 +29,6 @@ var _popover = require("@blueprintjs/popover2");
29
29
 
30
30
  var _context = require("@riboseinc/paneron-extension-kit/context");
31
31
 
32
- var _HelpTooltip = _interopRequireDefault(require("@riboseinc/paneron-extension-kit/widgets/HelpTooltip"));
33
-
34
32
  var _BrowserCtx = require("./BrowserCtx");
35
33
 
36
34
  var _GenericRelatedItemView = require("./GenericRelatedItemView");
@@ -219,14 +217,42 @@ const TabContentsWithHeader = function ({
219
217
  flex-flow: row wrap;
220
218
  gap: ${paddingPx}px;
221
219
  `
222
- }, classification.map((p, idx) => (0, _react2.jsx)(_core.Tag, {
220
+ }, classification.map((p, idx) => (0, _react2.jsx)(_react.default.Fragment, null, p.tooltip ? (0, _react2.jsx)(_react2.ClassNames, null, ({
221
+ css: css2,
222
+ cx
223
+ }) => (0, _react2.jsx)(_popover.Tooltip2, {
224
+ popoverClassName: `${css2`
225
+ .bp4-popover2-content {
226
+ min-width: 500px;
227
+ a {
228
+ color: black !important;
229
+ }
230
+ }
231
+ `}`,
232
+ hoverCloseDelay: 600,
233
+ hoverOpenDelay: 600,
234
+ interactionKind: _popover.Popover2InteractionKind.HOVER,
235
+ intent: p.tooltip.intent,
236
+ ...p.tooltip,
237
+ css: (0, _react2.css)`
238
+ cursor: help;
239
+ `,
240
+ content: p.tooltip.content
241
+ }, (0, _react2.jsx)(_core.Tag, {
242
+ key: idx,
243
+ minimal: true,
244
+ ...p,
245
+ large: !smallTitle
246
+ }, p.children, "\u2002", (0, _react2.jsx)(_core.Icon, {
247
+ icon: "help",
248
+ css: (0, _react2.css)`margin-bottom: 1px; opacity: .5`,
249
+ size: 12
250
+ })))) : (0, _react2.jsx)(_core.Tag, {
223
251
  key: idx,
224
252
  minimal: true,
225
253
  ...p,
226
- large: !smallTitle,
227
- rightIcon: p.tooltip ? (0, _react2.jsx)(_HelpTooltip.default, { ...p.tooltip
228
- }) : undefined
229
- }))) : null, (0, _react2.jsx)("div", {
254
+ large: !smallTitle
255
+ })))) : null, (0, _react2.jsx)("div", {
230
256
  css: (0, _react2.css)`
231
257
  position: relative;
232
258
  flex: 1;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/views/util.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\n//import log from 'electron-log';\nimport format from 'date-fns/format';\nimport { format as formatTZ, utcToZonedTime } from 'date-fns-tz';\n\nimport React, { memo, useContext } from 'react';\nimport { Helmet, type HelmetProps } from 'react-helmet';\nimport { ClassNames, css, jsx } from '@emotion/react';\nimport {\n Card, type CardProps,\n Icon,\n Classes,\n FormGroup, type FormGroupProps,\n H3, H4,\n Button as BaseButton, type ButtonProps,\n Menu, MenuDivider, MenuItem,\n ButtonGroup,\n Tag, type TagProps,\n Colors,\n} from '@blueprintjs/core';\nimport { Popover2InteractionKind, Tooltip2 } from '@blueprintjs/popover2';\nimport { Popover2 as Popover } from '@blueprintjs/popover2';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport { type HelpTooltipProps } from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';\nimport { BrowserCtx } from './BrowserCtx';\nimport type { ItemClassConfiguration, RelatedItemClassConfiguration } from '../types';\nexport { GenericRelatedItemView } from './GenericRelatedItemView';\n\n\n/**\n * Get give string truncated & with ellipsis appended\n * if its length exceeds given number of characters.\n */\nexport function maybeEllipsizeString(\n str: string,\n maxLength: number = 20,\n): string {\n return str.length > maxLength\n ? `${str.slice(0, maxLength)}…`\n : str;\n}\n\n\nexport const RegisterHelmet: React.FC<HelmetProps> = memo(function (props) {\n const { title: datasetTitle } = useContext(DatasetContext);\n const { registerMetadata } = useContext(BrowserCtx);\n\n return (\n <Helmet\n titleTemplate={`%s in ${registerMetadata?.name ?? datasetTitle}`}\n defaultTitle={`${registerMetadata?.name ?? datasetTitle}`}>\n {props.children}\n </Helmet>\n );\n});\n\n\n/**\n * A wrapper to show property data with its label(s).\n */\nexport const PropertyDetailView: React.FC<FormGroupProps & {\n /** @deprecated use `label` instead */\n title?: FormGroupProps[\"label\"]\n /** @deprecated use `labelInfo` instead */\n secondaryTitle?: FormGroupProps[\"labelInfo\"]\n}> = function ({\n label, labelInfo,\n title, secondaryTitle,\n ...props }) {\n return (\n <FormGroup\n label={label || title ? `${label ?? title}:` : undefined}\n labelInfo={labelInfo ?? secondaryTitle}\n css={css`\n &, &.bp4-inline {\n label.bp4-label {\n /*\n * Since it’s in flex container, label expands to fill its width,\n * and due to the mechanics of how labels work (?)\n * any button (e.g., for deletion) within labelInfo\n * would responds to events of the entire label\n * (meaning you can hover space to the right of the label and labelInfo\n * and the button would still be clickable).\n * This makes the label not fill flex container width.\n */\n align-self: flex-start;\n\n font-weight: bold;\n line-height: unset;\n text-transform: capitalize;\n .bp4-text-muted {\n text-transform: none;\n }\n }\n }\n `}\n {...props}\n />\n );\n};\n\n\n/** Formats given date as a span with tooltip set to full ISO date & time. */\nexport const Datestamp: React.FC<{\n date: Date\n /** See formatDate(). */\n useUTC?: boolean\n /** See formatDate(). */\n showTime?: boolean\n /** See formatDate(). */\n showTimeIfNonZero?: boolean\n title?: string\n className?: string\n}> = function ({ date, useUTC, showTime, showTimeIfNonZero, title, className }) {\n const asString = formatDate(date, { useUTC, showTime, showTimeIfNonZero });\n return <span\n className={className}\n title={`${title ? `${title}: ` : ''}${date?.toString() ?? 'N/A'}`}>\n {asString}\n </span>;\n};\n\n\nfunction formatInTimeZone(date: Date, fmt: string, tz: string) {\n return formatTZ(\n utcToZonedTime(date, tz),\n fmt,\n { timeZone: tz });\n}\n\nfunction timeIsNonZero(date: Date): boolean {\n return (\n date.getMilliseconds() === 0 &&\n date.getSeconds() === 0 &&\n date.getMinutes() === 0 &&\n date.getHours() === 0);\n}\n\n\n/** Foramts given date as plain text. */\nexport function formatDate(\n date: Date,\n opts?: {\n /** Show time in UTC. Will add the “UTC”, unless time is shown. */\n useUTC?: boolean\n /** Show date along with full time, to seconds. */\n showTime?: boolean\n /** Show time, unless it’s 00:00:00 on the day. */\n showTimeIfNonZero?: boolean\n },\n): string {\n const showTime = opts?.showTime || (opts?.showTimeIfNonZero && timeIsNonZero(date));\n const fmt = showTime\n ? 'yyyy-MM-dd HH:mm:ss'\n : 'yyyy-MM-dd';\n try {\n return opts?.useUTC\n ? `${formatInTimeZone(date, fmt, 'UTC')}${showTime ? ' UTC' : ''}`\n : format(date, fmt);\n } catch (e) {\n console.error(\"Failed to format date\", date, typeof date);\n return `Invalid date (${e})`;\n }\n}\n\n\nexport const _getRelatedClass = (classes: Record<string, ItemClassConfiguration<any>>) => {\n return (clsID: string): RelatedItemClassConfiguration => {\n const cfg = classes[clsID];\n return {\n title: cfg.meta.title,\n // TODO: The itemView/listItemView inconsistency is annoying\n itemView: cfg.views.listItemView,\n };\n };\n};\n\n\n// /**\n// * Suitable for use as tab contents for TabbedWorkspace.\n// * Provides top bar with actions and main content.\n// */\n// export const TabContentsWithActions: React.FC<{\n// actions: JSX.Element;\n// main: JSX.Element;\n// gapPx?: number;\n// className?: string;\n// }> = function ({ actions, gapPx: _gapPx, main, className }) {\n// const gapPx = _gapPx ?? 10;\n// return (\n// <div css={css`\n// position: absolute; inset: 0;\n// display: flex; flex-flow: column nowrap;\n// `} className={className}>\n// <div css={css`flex: 0; padding: ${gapPx}px; display: flex; flex-flow: row wrap; gap: ${gapPx}px;`}>\n// {actions}\n// </div>\n// <div css={css`\n// position: relative;\n// flex: 1;\n// padding: ${gapPx}px;\n// overflow-y: auto;\n// background: ${Colors.GRAY5};\n// .bp4-dark & { background: ${Colors.DARK_GRAY2}; }\n// `}>\n// {main}\n// </div>\n// </div>\n// );\n// };\n\n\nexport type ClassificationEntry = TagProps & { tooltip?: HelpTooltipProps };\nexport interface TabContentsWithHeaderProps {\n title: JSX.Element | string\n smallTitle?: boolean\n classification?: ClassificationEntry[]\n actions?: (ActionProps | ActionProps[])[]\n tooltip?: HelpTooltipProps\n className?: string\n\n /**\n * CSS to apply to child contents wrapper div.\n *\n * If 'card-grid', children would be expected to be cards\n * (e.g., `FormGroupAsCardInGrid` or `CardInGrid`)\n *\n * 'card-grid' implies 'scrollable'.\n */\n layout?: undefined | 'card-grid' | 'scrollable'\n layoutOptions?: Record<string, unknown>\n}\ninterface Grid extends TabContentsWithHeaderProps {\n layout: 'card-grid'\n layoutOptions?: {\n gapPx?: number\n stretch?: boolean\n }\n}\ninterface Scrollable extends TabContentsWithHeaderProps {\n layout: 'scrollable'\n layoutOptions?: never\n}\ninterface NoLayout extends TabContentsWithHeaderProps {\n layout?: undefined\n layoutOptions?: never\n}\nconst paddingPx = 11;\nfunction findEnabledActions\n<T extends ButtonProps | ButtonProps[] = ButtonProps | ButtonProps[]>\n(props: T[]): ButtonProps[] {\n return props.map(props =>\n (props as ButtonProps[]).length !== undefined\n ? (props as ButtonProps[]).filter(p => !p.disabled)\n : !(props as ButtonProps).disabled\n ? props\n : []\n ).flat();\n}\nexport const TabContentsWithHeader: React.FC<Grid | Scrollable | NoLayout> =\nfunction ({ title, smallTitle, classification, actions, layout, layoutOptions, className, children }) {\n const hasClassification = (classification ?? []).length > 0;\n\n const enabledActions = actions ? findEnabledActions(actions) : [];\n const hasActions = enabledActions.length > 0;\n\n // if (enabledActions.length === 1 && !enabledActions[0].intent) {\n // enabledActions[0].intent = 'primary';\n // }\n\n return (\n <div css={css`\n position: absolute; inset: 0;\n padding-top: ${paddingPx}px;\n ${hasActions ? `padding-bottom: ${paddingPx}px;` : ''}\n display: flex; flex-flow: column nowrap;\n gap: ${paddingPx}px;\n `} className={className}>\n {smallTitle\n ? <H4 css={css`margin: 0 ${paddingPx}px;`}>{title}</H4>\n : <H3 css={css`margin: 0 ${paddingPx}px;`}>{title}</H3>}\n {hasClassification\n ? <div css={css`\n flex: 0;\n margin: 0 ${paddingPx}px;\n display: flex;\n flex-flow: row wrap;\n gap: ${paddingPx}px;\n `}>\n {classification!.map((p, idx) =>\n <>\n {p.tooltip\n ? <ClassNames>\n {({ css: css2, cx }) => (\n <Tooltip2\n popoverClassName={`${css2`\n .bp4-popover2-content {\n min-width: 500px;\n a {\n color: black !important;\n }\n }\n `}`}\n hoverCloseDelay={600}\n hoverOpenDelay={600}\n interactionKind={Popover2InteractionKind.HOVER}\n intent={p.tooltip!.intent}\n {...p.tooltip}\n css={css`\n cursor: help;\n `}\n content={p.tooltip!.content}>\n <Tag\n key={idx}\n minimal\n {...p}\n large={!smallTitle}\n >\n {p.children}\n &ensp;\n <Icon\n icon=\"help\"\n css={css`margin-bottom: 1px; opacity: .5`}\n size={12}\n />\n </Tag>\n </Tooltip2>\n )}\n </ClassNames>\n : <Tag\n key={idx}\n minimal\n {...p}\n large={!smallTitle}\n />}\n </>\n )}\n </div>\n : null}\n <div css={css`\n position: relative;\n flex: 1;\n overflow-y: auto;\n\n ${layout === undefined\n ? `\n > :only-child { position: absolute; inset: 0 }\n box-shadow: black 0 0 20px -10px;\n `\n : `\n padding: 0 10px;\n &::after, &::before {\n pointer-events: none;\n content: \" \";\n display: block;\n position: sticky;\n width: 100%;\n height: 1px;\n background: ${Colors.GRAY5};\n .bp4-dark & { background: ${Colors.DARK_GRAY2}; }\n z-index: 10;\n }\n &::before {\n top: 0;\n box-shadow: ${Colors.GRAY5} 0 -20px 20px 20px;\n .bp4-dark & {\n box-shadow: ${Colors.DARK_GRAY2} 0 -20px 20px 20px;\n }\n }\n &::after {\n bottom: 0;\n box-shadow: ${Colors.GRAY5} 0 20px 20px 20px;\n .bp4-dark & {\n box-shadow: ${Colors.DARK_GRAY2} 0 20px 20px 20px;\n }\n }\n `}\n\n ${layout === 'scrollable' || layout === 'card-grid'\n ? `\n background: ${Colors.GRAY5};\n .bp4-dark & { background: ${Colors.DARK_GRAY2}; }\n `\n : ''}\n\n ${layout === 'card-grid'\n ? `\n display: flex;\n flex-flow: row wrap;\n align-content: flex-start;\n ${layoutOptions?.stretch\n ? 'align-items: stretch;'\n : 'align-items: flex-start;'}\n gap: ${layoutOptions?.gapPx ?? 10}px;\n `\n : ''}\n `}>\n {children}\n </div>\n\n {hasActions\n ? <div css={css`\n margin: 0 ${paddingPx}px;\n flex: 0; display: flex; flex-flow: row wrap; gap: ${paddingPx}px;\n `}>\n {actions!.map((props, idx) => {\n if (props.hasOwnProperty('length') && (props as ButtonProps[]).length !== undefined) {\n return (\n <ButtonGroup key={idx}>\n {(props as ButtonProps[]).map((p, idx) =>\n <Action {...p} key={idx} />\n )}\n </ButtonGroup>\n );\n } else {\n return <Action key={idx} {...(props as ButtonProps)} />;\n }\n })}\n </div>\n : null}\n </div>\n );\n};\n\n\nexport type ActionProps = ButtonProps & ({ popup?: JSX.Element, tooltip?: string });\n/** Mostly a button, but with an optional popup. */\nconst Action: React.FC<ActionProps & { key?: number | string }> = function ({ popup, tooltip, ...props }) {\n const btn = <BaseButton\n {...props}\n intent={props.disabled ? undefined : props.intent}\n onClick={props.disabled ? undefined : props.onClick}\n disabled={props.active ? false : props.disabled}\n title={tooltip}\n rightIcon={popup ? 'more' : undefined}\n />;\n\n if (popup && !props.disabled) {\n return (\n <Popover key={props.key} content={popup} placement=\"top\" minimal interactionKind=\"click\">\n {btn}\n </Popover>\n );\n } else {\n return btn;\n }\n};\n\n\nexport const CardInGrid: React.FC<{ description: string } & CardProps> =\nfunction ({ description, className, ...props }) {\n return (\n <Card\n css={css`border-radius: 5px;`}\n title={description}\n className={!props.interactive\n ? `${Classes.ELEVATION_3} ${className ?? ''}`\n : className}\n {...props}\n />\n );\n};\n\n\n/** Useful in case of tab “card-grid” layout. */\nexport const FormGroupAsCardInGrid: React.FC<FormGroupProps & { paddingPx?: number }> =\nfunction ({ paddingPx, ...props }) {\n const paddingPx_ = paddingPx ?? 11;\n return (\n <FormGroup\n {...props}\n css={css`\n margin: 0;\n\n border-radius: 5px;\n padding: ${paddingPx_}px;\n\n > label.bp4-label {\n font-weight: bold;\n margin-bottom: ${paddingPx_}px;\n }\n > .bp4-form-content {\n display: flex;\n flex-flow: column nowrap;\n gap: ${paddingPx_}px;\n\n > .bp4-form-group {\n margin: 0;\n }\n }\n\n /* Note: these colors are picked to work with some form widgets, date input widget specifically. */\n background: ${Colors.WHITE};\n .bp4-dark & { background: ${Colors.DARK_GRAY3}; }\n `}\n className={`${Classes.ELEVATION_3} ${props.className}`}\n />\n );\n};\n\n\nexport const MoreMenu: React.FC<Record<never, never>> = memo(function ({ children }) {\n return (\n <Popover minimal content={<>{children}</>}>\n <BaseButton icon=\"more\" small minimal />\n </Popover>\n );\n});\n\n\nexport const ItemClassMenu: React.FC<{\n cfg: ItemClassConfiguration<any>;\n onCreate?: () => void;\n}> = memo(function ({ cfg, onCreate }) {\n return (\n <Menu>\n <MenuDivider title=\"About this class\" />\n <MenuItem multiline disabled css={css`max-width: 400px`} text={cfg.meta.description} />\n {onCreate\n ? <>\n <MenuDivider title=\"Quick actions\" />\n <MenuItem\n text=\"Propose new\"\n intent=\"primary\"\n onClick={onCreate} icon=\"plus\"\n />\n </>\n : null}\n </Menu>\n );\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riboseinc/paneron-registry-kit",
3
- "version": "2.2.58",
3
+ "version": "2.2.60",
4
4
  "main": "index.js",
5
5
  "author": "Ribose Inc. <open.source@ribose.com>",
6
6
  "scripts": {
@@ -0,0 +1,9 @@
1
+ declare module "react-visual-diff" {
2
+ const VisualDiff: React.FC<{
3
+ left: JSX.Element
4
+ right: JSX.Element
5
+ renderChange?: React.FC<{ type: 'added' | 'removed' }>
6
+ diffProps?: string[]
7
+ }>
8
+ export = VisualDiff
9
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterItem/index.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useContext, useState, useMemo, useRef, useLayoutEffect, memo, useCallback } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport {\n Button, type ButtonProps,\n Card,\n Classes,\n NonIdealState,\n UL,\n Colors,\n} from '@blueprintjs/core';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport { normalizeObject } from '@riboseinc/paneron-extension-kit/util';\nimport type { HelpTooltipProps } from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';\nimport useSingleRegisterItemData from '../../hooks/useSingleRegisterItemData';\nimport useItemClassConfig from '../../hooks/useItemClassConfig';\nimport { Protocols } from '../../protocolRegistry';\nimport {\n type ChangeProposal,\n type Supersession,\n} from '../../../proposals/types';\nimport {\n type InternalItemReference,\n type ItemClassConfiguration,\n type RegisterItem,\n isRegisterItem,\n DUMMY_REF,\n} from '../../../types';\nimport { InlineDiffGeneric } from '../../diffing/InlineDiff';\nimport type { Drafted } from '../../../proposals/types';\nimport { BrowserCtx } from '../../BrowserCtx';\nimport {\n RegisterHelmet as Helmet,\n maybeEllipsizeString,\n TabContentsWithHeader,\n type TabContentsWithHeaderProps,\n type ActionProps,\n} from '../../util';\nimport { proposalToTagProps } from '../../../proposals/ProposalType';\nimport ProposalHistoryDrawer from '../../../proposals/HistoryDrawer';\nimport { useItemRef, itemRefToItemPath, crIDToCRPath, getCRIDFromProposedItemPath } from '../../itemPathUtils';\nimport { updateCRObjectChangeset, } from '../../../proposals/objectChangeset';\nimport { ChangeRequestContext } from '../../../proposals/ChangeRequestContext';\nimport { RelatedItems } from './RelatedItems';\n\n\n/**\n * Main register item view.\n *\n * NOTE: while generally intended as tab content handler,\n * is also reused within change request view.\n */\nconst MaybeItemDetail: React.VoidFunctionComponent<{ uri: string }> =\nmemo(function ({ uri }) {\n //const { value: itemData } = useSingleRegisterItemData(ref);\n const { jumpTo, subregisters, useRegisterItemData } = useContext(BrowserCtx);\n const { changeRequest: activeCR } = useContext(ChangeRequestContext);\n const ref = useItemRef(subregisters !== undefined, uri);\n const itemClass = useItemClassConfig(ref?.classID ?? 'NONEXISTENT_CLASS_ID');\n\n const itemClassID = itemClass?.meta?.id;\n const itemRef = ref ?? DUMMY_REF;\n const { itemID, subregisterID } = itemRef;\n\n const _itemPath = `${itemClassID ?? 'NONEXISTENT_CLASS'}/${itemID}.yaml`;\n const itemPath = subregisterID\n ? `/subregisters/${subregisterID}/${_itemPath}`\n : `/${_itemPath}`;\n const itemRequest = useMemo(() => ({\n itemPaths: [itemPath],\n }), [itemPath]);\n const itemResponse = useRegisterItemData(itemRequest);\n const itemData = itemResponse.value[itemPath];\n const previousItemResponse = useRegisterItemData({\n itemPaths: [itemPath],\n ignoreActiveCR: true,\n });\n const itemDataBefore = previousItemResponse.value[itemPath] ?? undefined;\n\n if (!itemClass) {\n return <NonIdealState\n icon=\"heart-broken\"\n title=\"Unable to show item\"\n description={`View for ${ref?.itemID ?? uri} cannot be retrieved from item class configuration`}\n />;\n\n } else if (isRegisterItem(itemData)) {\n return <ItemDetail\n item={itemData}\n itemBefore={itemDataBefore}\n itemRef={itemRef}\n itemClass={itemClass}\n />;\n\n } else if (itemResponse.isUpdating) {\n return <div className={Classes.SKELETON}>\n Loading\n </div>;\n\n } else {\n // Opened using URI that points within a proposal.\n // The item may or may not have been accepted.\n const inCRWithID = getCRIDFromProposedItemPath(uri);\n if (inCRWithID !== null && activeCR?.id !== inCRWithID) {\n return <NonIdealState\n icon=\"help\"\n title=\"This item does not exist…\"\n description={\n <>\n …but it might be proposed.\n <br />\n {jumpTo\n ? <Button\n css={css`margin: 10px;`}\n intent=\"primary\"\n onClick={() => jumpTo?.(`${Protocols.CHANGE_REQUEST}:${crIDToCRPath(inCRWithID)}`)}>\n Go to proposal\n </Button>\n : null}\n </>\n }\n />;\n } else {\n const desc = itemData === null || itemData === undefined\n ? \"does not exist or could not be deserialized\"\n : \"may use unexpected data format\";\n return <NonIdealState\n icon=\"heart-broken\"\n title=\"Unable to show item\"\n description={`Item at ${itemPath} ${desc}`}\n />;\n }\n }\n});\n\nconst EMPTY_OBJECT = {} as const;\n\n\nexport const ItemDetail: React.VoidFunctionComponent<{\n item: RegisterItem\n itemBefore?: RegisterItem\n itemRef: InternalItemReference\n itemClass: ItemClassConfiguration<any>\n className?: string\n compactHeader?: boolean\n}> = memo(function ({ item, itemBefore, itemRef, itemClass, className, compactHeader }) {\n const { subregisters, useRegisterItemData, activeChangeRequestID: globallyActiveCRID } = useContext(BrowserCtx);\n\n const { changeRequest: activeCR, canEdit: activeCRIsEditable } = useContext(ChangeRequestContext);\n const { updateObjects, makeRandomID, performOperation, isBusy } = useContext(DatasetContext);\n\n const [ editedItemData, setEditedItemData ] = useState<RegisterItem[\"data\"] | null>(null);\n const itemDataHasChanges = JSON.stringify(editedItemData) !== JSON.stringify(item.data);\n\n const [ isEditingProposal, setIsEditingProposal ] = useState(false);\n\n //const [ diffMode, setDiffMode ] = useState<boolean>(false);\n // TODO: Implement diff mode\n const diffMode = false;\n\n const itemPath = itemRefToItemPath(itemRef);\n\n /** Proposal for the current item. */\n const proposal = ((activeCR && activeCR.items[itemPath])\n ? activeCR.items[itemPath]\n : null) ?? null;\n\n const [ preferredComparison, setPreferredComparison ] =\n useState<'prior' | 'diff' | null>(null);\n const canCompare = proposal?.type === 'clarification' && itemBefore;\n const showDiff = preferredComparison === 'diff' && canCompare;\n const showBefore = preferredComparison === 'prior' && canCompare;\n\n // Gather views\n const ListItemView = itemClass.views.listItemView;\n let details: JSX.Element;\n if (editedItemData !== null && activeCRIsEditable) {\n const EditView = itemClass.views.editView;\n details = (\n <EditView\n itemData={editedItemData}\n itemRef={itemRef}\n onChange={!isBusy ? setEditedItemData : undefined}\n // TODO: make importing context from registry-kit work in new-style extension\n useRegisterItemData={useRegisterItemData}\n />\n );\n } else if (showDiff) {\n details = <InlineDiffGeneric\n item1={itemBefore ?? EMPTY_OBJECT}\n item2={item}\n css={css`\n position: absolute; inset: 0; padding: 10px; overflow: auto;\n background-color: white;\n .bp4-dark & {\n background-color: ${Colors.DARK_GRAY2};\n }\n `}\n className={`${Classes.ELEVATION_2} ${Classes.RUNNING_TEXT}`}\n />\n } else {\n const DetailView = itemClass.views.detailView ?? itemClass.views.editView;\n details = (\n <DetailView\n itemRef={itemRef}\n itemData={showBefore ? itemBefore.data : item.data}\n // TODO: make importing context from registry-kit work in new-style extension\n useRegisterItemData={useRegisterItemData}\n />\n );\n }\n\n const proposedSupersedingItemRefs =\n proposal?.type === 'amendment' && proposal.amendmentType === 'supersession'\n ? proposal.supersedingItemIDs.\n map(id => ({\n itemID: id,\n // Superseding items are always of the same class\n classID: itemClass.meta.id,\n // Superseding items are always in the same subregister\n subregisterID: itemRef.subregisterID,\n }))\n : undefined;\n\n const supersedingItemRefs = proposedSupersedingItemRefs ?? item.supersededBy ?? [];\n const supersedingItemRefsCacheKey = supersedingItemRefs.map(i => JSON.stringify(i)).toString();\n\n // It’s superseded (whether in current proposal or not)\n const isSuperseded = /* item.status === 'superseded'; nuh-uh */ supersedingItemRefs.length > 0;\n // Item is valid, proposal is editable, and no change to this item is proposed yet\n const canBeSuperseded = (activeCRIsEditable && !proposal && !editedItemData && item.status === 'valid');\n // This item is being superseded in active proposal\n // XXX: May be redundant with `isSuperseded`?\n const isBeingSuperseded = (proposal?.type === 'amendment' && proposal.amendmentType === 'supersession');\n\n // Editing is possible for additions and clarifications.\n //const itemDataCanBeEdited = activeCRIsEditable && proposal && proposal.type !== 'amendment';\n\n const handleClearProposal = () => performProposalOperation('clearing draft proposal', null);\n const handleRetire = () => performProposalOperation('proposing retirement of an item', {\n type: 'amendment',\n amendmentType: 'retirement',\n });\n const handleInvalidate = () => performProposalOperation('proposing invalidation', {\n type: 'amendment',\n amendmentType: 'invalidation',\n });\n const handleSupersedeWith = (items: string[]) => performProposalOperation('proposing supersession', {\n type: 'amendment',\n amendmentType: 'supersession',\n supersedingItemIDs: items,\n });\n const handleClarify = async () => {\n await performProposalOperation('proposing clarification', {\n type: 'clarification',\n });\n setEditedItemData(null); // XXX: Redundant?\n };\n const handleEditAddition = async () => {\n await performProposalOperation('editing proposed addition', {\n type: 'addition',\n });\n setEditedItemData(null); // XXX: Redundant?\n };\n\n async function performProposalOperation(summary: string, proposal: ChangeProposal | null) {\n return await performOperation(summary, handleSetProposal)(summary, proposal);\n }\n\n const handleSetProposal = useCallback(async function _handleSetProposal(\n summary: string,\n proposal: ChangeProposal | null,\n ): Promise<void> {\n if (!activeCRIsEditable || !updateObjects || !isRegisterItem(item)) {\n throw new Error(\"Proposal isn’t editable\")\n }\n if (proposal && proposal?.type !== 'amendment' && !editedItemData) {\n throw new Error(\"Missing item data\");\n }\n await updateObjects({\n commitMessage: `${summary} for ${itemPath}`,\n objectChangeset: updateCRObjectChangeset(\n // TODO: We are sure it’s editable already, but casting should be avoided\n activeCR as any,\n { [itemPath]: proposal },\n ((proposal && proposal?.type !== 'amendment') && editedItemData)\n ? { [itemPath]: { ...item, data: editedItemData } }\n : {},\n ),\n // We need this because updateCRObjectChangeset\n // omits oldValue for item data payloads.\n _dangerouslySkipValidation: true,\n });\n setEditedItemData(null);\n setIsEditingProposal(false);\n }, [\n editedItemData,\n activeCRIsEditable,\n itemPath,\n item,\n activeCR,\n updateObjects,\n ]);\n\n // TODO: Very similar to `handleAdd()` in Browse sidebar menu; refactor?\n const handleProposeLikeThis = useCallback(async function _handleProposeLikeThis(): Promise<void> {\n if (!updateObjects || !makeRandomID || !activeCRIsEditable || !activeCR) {\n throw new Error(\"Unable to create item: likely current proposal is not editable or dataset is read-only\");\n }\n const { classID, subregisterID } = itemRef;\n const itemID = await makeRandomID();\n const newRef = { classID, subregisterID, itemID };\n const newItem: RegisterItem<any> = {\n id: itemID,\n dateAccepted: new Date(),\n status: 'valid',\n data: { ...item.data },\n };\n if (isRegisterItem(newItem)) {\n const newPath = itemRefToItemPath(newRef);\n await updateObjects({\n commitMessage: `clone ${itemRef.itemID} to propose a new item`,\n objectChangeset: updateCRObjectChangeset(\n activeCR as Drafted,\n { [newPath]: { type: 'addition' } },\n { [newPath]: newItem },\n ),\n _dangerouslySkipValidation: true,\n });\n } else {\n throw new Error(\"Newly created item did not pass validation (this is likely a bug in RegistryKit)\");\n }\n }, [\n updateObjects,\n activeCRIsEditable,\n itemPath,\n activeCR?.id,\n activeCR?.state,\n Object.entries(activeCR?.items ?? {}).flat().map(i => JSON.stringify(i)).toString(),\n item ? JSON.stringify(normalizeObject(item)) : item,\n ]);\n\n const supersedingItemsTooltip: HelpTooltipProps = useMemo(() => ({\n icon: 'info-sign',\n content: \n <RelatedItems\n css={css`background-color: ${Colors.LIGHT_GRAY3}; padding: 5px;`}\n availableClassIDs={[itemClass.meta.id]}\n itemRefs={supersedingItemRefs}\n />,\n }), [supersedingItemRefsCacheKey, itemClass.meta.id]);\n\n const classification: TabContentsWithHeaderProps['classification'] = useMemo(() => {\n const classification: TabContentsWithHeaderProps['classification'] = [{\n icon: 'document',\n children: <>\n Register item\n {itemRef.subregisterID\n ? <span title=\"Subregister\"> in {subregisters?.[itemRef.subregisterID]?.title ?? itemRef.subregisterID}</span>\n : null}\n </>,\n tooltip: {\n icon: 'info-sign',\n content: <>\n <UL css={css`margin: 0;`}>\n <li>Class ID: {itemClass.meta.id}</li>\n <li>Subregister ID: {itemRef.subregisterID ?? 'N/A'}</li>\n <li>UUID: {itemRef.itemID}</li>\n </UL>\n </>,\n },\n }, {\n children: itemClass.meta.title,\n tooltip: {\n icon: 'info-sign',\n content: <>\n {itemClass.meta.description ?? \"No description is provided for this register item class.\"}\n </>,\n },\n }];\n\n classification.push({\n children: item.status,\n intent: item.status === 'valid'\n ? 'success'\n : undefined,\n icon: item.status === 'invalid'\n ? 'ban-circle'\n : item.status === 'retired'\n ? 'warning-sign'\n : 'tick',\n tooltip: isSuperseded\n ? supersedingItemsTooltip\n : undefined,\n });\n\n if (proposal) {\n const tagProps = proposalToTagProps(proposal);\n classification.push({\n ...tagProps,\n children: <>{tagProps.children} proposed</>,\n icon: 'lightbulb',\n minimal: false,\n tooltip: canBeSuperseded || isBeingSuperseded\n ? supersedingItemsTooltip\n : undefined,\n });\n }\n\n return classification;\n }, [\n proposal?.type,\n itemClass.meta.id,\n item.status,\n isSuperseded, canBeSuperseded, isBeingSuperseded,\n supersedingItemsTooltip,\n ]);\n\n const [ historyDrawerOpenState, setHistoryDrawerOpenState ] = useState(false);\n\n const actions = useMemo(() => {\n const actions: TabContentsWithHeaderProps['actions'] = [{\n children: \"View history\",\n active: historyDrawerOpenState,\n icon: 'history',\n disabled: isBusy,\n onClick: () => setHistoryDrawerOpenState(true),\n }];\n\n const isEditingItemData = editedItemData !== null;\n const itemHasProposal = proposal !== null;\n //const canPropose = activeCRIsEditable && item.status === 'valid' && !isBusy;\n const itemIsProposable = item.status === 'valid';\n\n if (activeCRIsEditable) {\n actions.push({\n children: \"Propose another item like this\",\n icon: 'duplicate',\n disabled: isBusy,\n onClick: performOperation(\n 'adding duplicate item to current propposal',\n handleProposeLikeThis),\n //title=\"Propose a new item in current proposal, using this item as template.\"\n });\n\n const saveEditedItemDataButton: ButtonProps = {\n intent: 'primary',\n disabled: isBusy || !itemDataHasChanges,\n onClick: (!proposal || proposal.type === 'clarification')\n ? handleClarify\n : handleEditAddition,\n children: \"Save changes\",\n };\n\n const supersedingItemRefs =\n proposal?.type === 'amendment' && proposal.amendmentType === 'supersession'\n ? proposal.supersedingItemIDs.\n map(id => ({\n itemID: id,\n // Superseding items are always of the same class\n classID: itemClass.meta.id,\n // Superseding items are always in the same subregister\n subregisterID: itemRef.subregisterID,\n }))\n : [];\n const supersedingItems = (\n <RelatedItems\n availableClassIDs={[itemClass.meta.id]}\n itemRefs={supersedingItemRefs}\n onChange={!isBusy\n ? (items) => items.length > 0\n ? handleSupersedeWith(items.map(ref => ref.itemID))\n : handleClearProposal()\n : undefined}\n />\n );\n\n if (itemIsProposable) {\n if (itemHasProposal) {\n const proposeBtn: ButtonProps = {\n children: `Edit ${proposal.type === 'amendment' ? proposal.amendmentType : proposal.type} proposal for this item`,\n icon: 'edit',\n active: isEditingProposal,\n disabled: isBusy,\n onClick: () => {\n if (isEditingProposal) {\n setIsEditingProposal(false);\n setEditedItemData(null);\n if (proposal && proposal.type !== 'amendment') {\n }\n } else {\n setIsEditingProposal(true);\n if (proposal && proposal.type !== 'amendment') {\n setEditedItemData(item.data);\n }\n }\n },\n };\n if (isEditingProposal) {\n const editActions: ActionProps[] = [{\n disabled: isBusy || (itemDataHasChanges && proposal.type !== 'amendment'),\n onClick: handleClearProposal,\n icon: 'trash',\n children: \"Remove\",\n tooltip: [\n `NOTE: Discarding this proposal `,\n `will discard ${proposal.type === 'addition' ? \"new\" : \"changes to\"} item’s data `,\n 'you provided as part of the proposal.',\n ].join(''),\n intent: proposal.type !== 'amendment' ? 'danger' : 'warning',\n }];\n if (isEditingItemData) {\n editActions.push(saveEditedItemDataButton);\n } else if (proposal.type === 'amendment' && proposal.amendmentType === 'supersession') {\n editActions.push({\n disabled: isBusy,\n children: \"Specify superseding items\",\n popup: <div css={css`padding: 10px;`}>{supersedingItems}</div>,\n });\n }\n actions.push([proposeBtn, ...editActions]);\n } else {\n actions.push(proposeBtn);\n if (canCompare) {\n actions.push([{\n disabled: isBusy,\n children: \"Prior version\",\n active: preferredComparison === 'prior',\n onClick: preferredComparison === 'prior'\n ? () => setPreferredComparison(null)\n : () => setPreferredComparison('prior'),\n }, {\n disabled: isBusy,\n children: \"Diff\",\n active: preferredComparison === 'diff',\n onClick: preferredComparison === 'diff'\n ? () => setPreferredComparison(null)\n : () => setPreferredComparison('diff'),\n }]);\n }\n }\n } else {\n const proposeBtn: ButtonProps = {\n children: \"Propose to change this item\",\n icon: 'lightbulb',\n active: isEditingProposal,\n disabled: isBusy,\n onClick: () => setIsEditingProposal(v => !v),\n };\n if (isEditingProposal) {\n const proposalGroup = [proposeBtn, {\n disabled: isBusy || itemHasProposal,\n onClick: handleRetire,\n children: \"Retire\",\n }, {\n disabled: isBusy || itemHasProposal,\n onClick: handleInvalidate,\n children: \"Invalidate\",\n }, {\n disabled: isBusy || itemHasProposal || isEditingItemData,\n popup: supersedingItems,\n children: \"Supersede\",\n }, {\n disabled: isBusy || diffMode,\n active: isEditingItemData,\n onClick: () => setEditedItemData(d => d === null ? item.data : null),\n children: \"Clarify\",\n }];\n if (isEditingItemData && itemDataHasChanges) {\n proposalGroup.push(saveEditedItemDataButton);\n }\n actions.push(proposalGroup);\n } else {\n actions.push(proposeBtn);\n }\n }\n }\n }\n // TODO: diff view\n\n return actions;\n }, [\n isBusy,\n itemClass.meta.id,\n\n proposal === null,\n proposal?.type,\n (proposal as Supersession)?.supersedingItemIDs?.toString(),\n\n activeCRIsEditable,\n\n editedItemData === null,\n itemDataHasChanges,\n\n isEditingProposal,\n performOperation, handleSetProposal,\n historyDrawerOpenState,\n\n canCompare, preferredComparison, setPreferredComparison,\n ]);\n\n // If there’s a CR context without active CR,\n // or active CR isn’t the same as the one in CR context,\n // then we can assume that the item is shown in proposal window\n // and we’d set window title to proposal’s title rather than item’s.\n // If there’s a CR context and active CR and they’re the same\n // then it *could* be that the item is shown in its own tab;\n // we will render proposal’s title if the item appears in the change request\n // (makes sense because the user *is* technically viewing a proposal then).\n const windowTitle: string = (\n activeCR && (\n !globallyActiveCRID\n || activeCR.id !== globallyActiveCRID\n || activeCR.items[itemPath]\n )\n ) ? `Proposal ${maybeEllipsizeString(activeCR.justification, 20)}…`\n : `${itemClass.meta.title ?? 'register item'} #${item.id}`;\n\n const detailsDivRef = useRef<HTMLDivElement | null>(null);\n\n useLayoutEffect(() => {\n if (itemBefore?.data && detailsDivRef.current && proposal !== null) {\n //console.debug(\"observing\", detailsDivRef.current, observer, itemBefore.data);\n OBSERVER.observe(detailsDivRef.current, {\n attributeFilter: ['value'],\n attributes: true,\n subtree: true,\n childList: true,\n });\n }\n return function cleanUp() {\n //console.debug(\"disconnecting observer\");\n OBSERVER.disconnect();\n };\n }, [detailsDivRef.current, itemBefore?.data, proposal === null]);\n\n return (\n <TabContentsWithHeader\n smallTitle={compactHeader}\n title={<ListItemView itemRef={itemRef} itemData={item.data} />}\n classification={classification}\n actions={actions}>\n <Card css={css`position: absolute; border-radius: 0; inset: ${compactHeader ? '0' : '10px'}; overflow-y: auto;`}>\n <Helmet><title>{windowTitle}</title></Helmet>\n <ProposalHistoryDrawer\n isOpen={historyDrawerOpenState}\n onClose={() => setHistoryDrawerOpenState(false)}\n itemPath={itemPath}\n />\n <div id=\"detailsDiv\" ref={detailsDivRef} data-observer-root=\"true\">\n {details}\n </div>\n </Card>\n </TabContentsWithHeader>\n );\n});\n\n\nconst ItemTitle: React.FC<{ uri: string }> = function ({ uri }) {\n const { subregisters } = useContext(BrowserCtx);\n const ref = useItemRef(subregisters !== undefined, uri);\n const clsConfig = useItemClassConfig(ref?.classID ?? 'NONEXISTENT_CLASS_ID');\n const { value: itemData } = useSingleRegisterItemData(ref);\n const fallbackView = useCallback((() => <>{ref?.itemID ?? uri}</>), [uri]);\n const View = itemData\n ? (clsConfig?.views.listItemView ?? fallbackView)\n : fallbackView;\n return <View\n itemRef={ref ?? DUMMY_REF}\n itemData={itemData}\n />;\n};\n\n\nexport default {\n main: MaybeItemDetail,\n title: ItemTitle,\n} as const;\n\n\nconst CHANGED_ITEM_HIGHLIGHT_MS = 1000;\nconst OBSERVER = new MutationObserver((mutationList: MutationRecord[]) => {\n const changed: [HTMLElement, 'added' | 'removed' | 'changed'][] = [];\n\n function maybeAddChanged(el: HTMLElement, changeType: 'added' | 'changed') {\n if (!el.parentElement?.getAttribute('data-observer-root')) {\n changed.push([el, changeType]);\n }\n }\n\n mutationList.forEach((mutation) => {\n switch (mutation.type) {\n case 'childList':\n mutation.addedNodes.forEach((node) => {\n maybeAddChanged(node as HTMLElement, 'added')\n });\n //mutation.removedNodes.forEach((node) => {\n // //changedNodes.push([node as HTMLElement, 'removed']);\n // console.log('node removed', node);\n //});\n break;\n case 'attributes':\n maybeAddChanged(mutation.target as HTMLElement, 'changed')\n break;\n }\n });\n const nodesWithBackground: [HTMLElement, string, string, string][] = [];\n for (const [_el, change] of changed) {\n // FIXME: Walk parent elements until one that actually exists?\n const el = change === 'removed' ? _el.parentElement! : _el;\n nodesWithBackground.push([el, el.style.transition, el.style.backgroundColor, el.style.color]);\n el.style.transition = 'none';\n el.style.color = 'white';\n if (change === 'removed') {\n el.style.backgroundColor = Colors.RED2;\n } else {\n el.style.backgroundColor = change === 'added'\n ? Colors.GREEN2\n : Colors.INDIGO2;\n }\n }\n setTimeout(() => {\n for (const [el, , bgc, tc] of nodesWithBackground) {\n el.style.transition = 'background-color linear 1s, color linear 1s';\n el.style.backgroundColor = bgc;\n el.style.color = tc;\n }\n setTimeout(() => {\n for (const [el, tr] of nodesWithBackground) {\n el.style.transition = tr;\n }\n }, CHANGED_ITEM_HIGHLIGHT_MS);\n }, 1);\n});\n"]}
package/views/util.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/views/util.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,iCAAiC;AACjC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,MAAM,EAAoB,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,EAAE,EAAE,EAAE,EACN,MAAM,IAAI,UAAU,EACpB,IAAI,EAAE,WAAW,EAAE,QAAQ,EAC3B,WAAW,EACX,GAAG,EACH,MAAM,GACP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,WAAsC,MAAM,sDAAsD,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAW,EACX,YAAoB,EAAE;IAEtB,OAAO,GAAG,CAAC,MAAM,GAAG,SAAS;QAC3B,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG;QAC/B,CAAC,CAAC,GAAG,CAAC;AACV,CAAC;AAGD,MAAM,CAAC,MAAM,cAAc,GAA0B,IAAI,CAAC,UAAU,KAAK;;IACvE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEpD,OAAO,CACL,IAAC,MAAM,IACH,aAAa,EAAE,SAAS,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,mCAAI,YAAY,EAAE,EAChE,YAAY,EAAE,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,mCAAI,YAAY,EAAE,IAC1D,KAAK,CAAC,QAAQ,CACR,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAK1B,UAAU,EACX,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,cAAc,EACrB,GAAG,KAAK,EAAE;IACZ,OAAO,CACL,IAAC,SAAS,IACR,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,EACxD,SAAS,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,cAAc,EACtC,GAAG,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;OAsBP,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC;AAGF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,SAAS,GAUjB,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE;;IAC5E,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC3E,OAAO,cACH,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,mCAAI,KAAK,EAAE,IAClE,QAAQ,CACJ,CAAC;AACV,CAAC,CAAC;AAGF,SAAS,gBAAgB,CAAC,IAAU,EAAE,GAAW,EAAE,EAAU;IAC3D,OAAO,QAAQ,CACb,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EACxB,GAAG,EACH,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,IAAU;IAC/B,OAAO,CACL,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3B,CAAC;AAGD,wCAAwC;AACxC,MAAM,UAAU,UAAU,CACxB,IAAU,EACV,IAOC;IAED,MAAM,QAAQ,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,KAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,KAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACpF,MAAM,GAAG,GAAG,QAAQ;QAClB,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,YAAY,CAAC;IACjB,IAAI;QACF,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM;YACjB,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAClE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACvB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;QAC1D,OAAO,iBAAiB,CAAC,GAAG,CAAC;KAC9B;AACH,CAAC;AAGD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAoD,EAAE,EAAE;IACvF,OAAO,CAAC,KAAa,EAAiC,EAAE;QACtD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;YACrB,4DAA4D;YAC5D,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY;SACjC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAwEF,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,SAAS,kBAAkB,CAE1B,KAAU;IACT,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACtB,KAAuB,CAAC,MAAM,KAAK,SAAS;QAC3C,CAAC,CAAE,KAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnD,CAAC,CAAC,CAAE,KAAqB,CAAC,QAAQ;YAChC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,EAAE,CACT,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AACD,MAAM,CAAC,MAAM,qBAAqB,GAClC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE;;IAClG,MAAM,iBAAiB,GAAG,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,kEAAkE;IAClE,0CAA0C;IAC1C,IAAI;IAEJ,OAAO,CACL,aAAK,GAAG,EAAE,GAAG,CAAA;;qBAEI,SAAS;QACtB,UAAU,CAAC,CAAC,CAAC,mBAAmB,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE;;aAE9C,SAAS;KACjB,EAAE,SAAS,EAAE,SAAS;QACpB,UAAU;YACT,CAAC,CAAC,IAAC,EAAE,IAAC,GAAG,EAAE,GAAG,CAAA,aAAa,SAAS,KAAK,IAAG,KAAK,CAAM;YACvD,CAAC,CAAC,IAAC,EAAE,IAAC,GAAG,EAAE,GAAG,CAAA,aAAa,SAAS,KAAK,IAAG,KAAK,CAAM;QACxD,iBAAiB;YAChB,CAAC,CAAC,aAAK,GAAG,EAAE,GAAG,CAAA;;wBAEC,SAAS;;;mBAGd,SAAS;WACjB,IACE,cAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAC9B,IAAC,GAAG,IACF,GAAG,EAAE,GAAG,EACR,OAAO,WACH,CAAC,EACL,KAAK,EAAE,CAAC,UAAU,EAClB,SAAS,EAAE,CAAC,CAAC,OAAO;oBAClB,CAAC,CAAC,IAAC,WAAW,OAAK,CAAC,CAAC,OAAO,GAAI;oBAChC,CAAC,CAAC,SAAS,GACb,CACH,CACG;YACR,CAAC,CAAC,IAAI;QACR,aAAK,GAAG,EAAE,GAAG,CAAA;;;;;UAKT,MAAM,KAAK,SAAS;gBACpB,CAAC,CAAC;;;aAGC;gBACH,CAAC,CAAC;;;;;;;;;8BASkB,MAAM,CAAC,KAAK;4CACE,MAAM,CAAC,UAAU;;;;;8BAK/B,MAAM,CAAC,KAAK;;gCAEV,MAAM,CAAC,UAAU;;;;;8BAKnB,MAAM,CAAC,KAAK;;gCAEV,MAAM,CAAC,UAAU;;;aAGpC;;UAEH,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,WAAW;gBACjD,CAAC,CAAC;4BACgB,MAAM,CAAC,KAAK;0CACE,MAAM,CAAC,UAAU;aAC9C;gBACH,CAAC,CAAC,EAAE;;UAEJ,MAAM,KAAK,WAAW;gBACtB,CAAC,CAAC;;;;gBAII,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO;oBACtB,CAAC,CAAC,uBAAuB;oBACzB,CAAC,CAAC,0BAA0B;qBACvB,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,mCAAI,EAAE;aAClC;gBACH,CAAC,CAAC,EAAE;OACP,IACE,QAAQ,CACL;QAEL,UAAU;YACT,CAAC,CAAC,aAAK,GAAG,EAAE,GAAG,CAAA;wBACC,SAAS;gEAC+B,SAAS;WAC9D,IACE,OAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAK,KAAuB,CAAC,MAAM,KAAK,SAAS,EAAE;oBACnF,OAAO,CACL,IAAC,WAAW,IAAC,GAAG,EAAE,GAAG,IACjB,KAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACvC,IAAC,MAAM,OAAK,CAAC,EAAE,GAAG,EAAE,GAAG,GAAI,CAC5B,CACW,CACf,CAAC;iBACH;qBAAM;oBACL,OAAO,IAAC,MAAM,IAAC,GAAG,EAAE,GAAG,KAAO,KAAqB,GAAI,CAAC;iBACzD;YACH,CAAC,CAAC,CACE;YACR,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;AACJ,CAAC,CAAC;AAIF,mDAAmD;AACnD,MAAM,MAAM,GAAsD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE;IACtG,MAAM,GAAG,GAAG,IAAC,UAAU,OACjB,KAAK,EACT,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EACjD,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EACnD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAC/C,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GACrC,CAAC;IAEH,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC5B,OAAO,CACL,IAAC,OAAO,IAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAC,KAAK,EAAC,OAAO,QAAC,eAAe,EAAC,OAAO,IACrF,GAAG,CACI,CACX,CAAC;KACH;SAAM;QACL,OAAO,GAAG,CAAC;KACZ;AACH,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,UAAU,GACvB,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE;IAC5C,OAAO,CACL,IAAC,IAAI,IACH,GAAG,EAAE,GAAG,CAAA,qBAAqB,EAC7B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,CAAC,KAAK,CAAC,WAAW;YAC3B,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,IAAI,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,EAAE;YAC7C,CAAC,CAAC,SAAS,KACT,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC;AAGF,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAClC,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE;IAC/B,MAAM,UAAU,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;IACnC,OAAO,CACL,IAAC,SAAS,OACJ,KAAK,EACT,GAAG,EAAE,GAAG,CAAA;;;;mBAIK,UAAU;;;;2BAIF,UAAU;;;;;iBAKpB,UAAU;;;;;;;;sBAQL,MAAM,CAAC,KAAK;oCACE,MAAM,CAAC,UAAU;OAC9C,EACD,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE,GACtD,CACH,CAAC;AACJ,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,QAAQ,GAAmC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE;IACjF,OAAO,CACL,IAAC,OAAO,IAAC,OAAO,QAAC,OAAO,EAAE,0BAAG,QAAQ,CAAI;QACvC,IAAC,UAAU,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,QAAC,OAAO,SAAG,CAChC,CACX,CAAC;AACJ,CAAC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAGrB,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;IACnC,OAAO,CACL,IAAC,IAAI;QACH,IAAC,WAAW,IAAC,KAAK,EAAC,kBAAkB,GAAG;QACxC,IAAC,QAAQ,IAAC,SAAS,QAAC,QAAQ,QAAC,GAAG,EAAE,GAAG,CAAA,kBAAkB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,GAAI;QACtF,QAAQ;YACP,CAAC,CAAC;gBACE,IAAC,WAAW,IAAC,KAAK,EAAC,eAAe,GAAG;gBACrC,IAAC,QAAQ,IACP,IAAI,EAAC,aAAa,EAClB,MAAM,EAAC,SAAS,EAChB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,GAC9B,CACD;YACL,CAAC,CAAC,IAAI,CACH,CACR,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\n//import log from 'electron-log';\nimport format from 'date-fns/format';\nimport { format as formatTZ, utcToZonedTime } from 'date-fns-tz';\n\nimport React, { memo, useContext } from 'react';\nimport { Helmet, type HelmetProps } from 'react-helmet';\nimport { css, jsx } from '@emotion/react';\nimport {\n Card, type CardProps,\n Classes,\n FormGroup, type FormGroupProps,\n H3, H4,\n Button as BaseButton, type ButtonProps,\n Menu, MenuDivider, MenuItem,\n ButtonGroup,\n Tag, type TagProps,\n Colors,\n} from '@blueprintjs/core';\nimport { Popover2 as Popover } from '@blueprintjs/popover2';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport HelpTooltip, { type HelpTooltipProps } from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';\nimport { BrowserCtx } from './BrowserCtx';\nimport type { ItemClassConfiguration, RelatedItemClassConfiguration } from '../types';\nexport { GenericRelatedItemView } from './GenericRelatedItemView';\n\n\n/**\n * Get give string truncated & with ellipsis appended\n * if its length exceeds given number of characters.\n */\nexport function maybeEllipsizeString(\n str: string,\n maxLength: number = 20,\n): string {\n return str.length > maxLength\n ? `${str.slice(0, maxLength)}…`\n : str;\n}\n\n\nexport const RegisterHelmet: React.FC<HelmetProps> = memo(function (props) {\n const { title: datasetTitle } = useContext(DatasetContext);\n const { registerMetadata } = useContext(BrowserCtx);\n\n return (\n <Helmet\n titleTemplate={`%s in ${registerMetadata?.name ?? datasetTitle}`}\n defaultTitle={`${registerMetadata?.name ?? datasetTitle}`}>\n {props.children}\n </Helmet>\n );\n});\n\n\n/**\n * A wrapper to show property data with its label(s).\n */\nexport const PropertyDetailView: React.FC<FormGroupProps & {\n /** @deprecated use `label` instead */\n title?: FormGroupProps[\"label\"]\n /** @deprecated use `labelInfo` instead */\n secondaryTitle?: FormGroupProps[\"labelInfo\"]\n}> = function ({\n label, labelInfo,\n title, secondaryTitle,\n ...props }) {\n return (\n <FormGroup\n label={label || title ? `${label ?? title}:` : undefined}\n labelInfo={labelInfo ?? secondaryTitle}\n css={css`\n &, &.bp4-inline {\n label.bp4-label {\n /*\n * Since it’s in flex container, label expands to fill its width,\n * and due to the mechanics of how labels work (?)\n * any button (e.g., for deletion) within labelInfo\n * would responds to events of the entire label\n * (meaning you can hover space to the right of the label and labelInfo\n * and the button would still be clickable).\n * This makes the label not fill flex container width.\n */\n align-self: flex-start;\n\n font-weight: bold;\n line-height: unset;\n text-transform: capitalize;\n .bp4-text-muted {\n text-transform: none;\n }\n }\n }\n `}\n {...props}\n />\n );\n};\n\n\n/** Formats given date as a span with tooltip set to full ISO date & time. */\nexport const Datestamp: React.FC<{\n date: Date\n /** See formatDate(). */\n useUTC?: boolean\n /** See formatDate(). */\n showTime?: boolean\n /** See formatDate(). */\n showTimeIfNonZero?: boolean\n title?: string\n className?: string\n}> = function ({ date, useUTC, showTime, showTimeIfNonZero, title, className }) {\n const asString = formatDate(date, { useUTC, showTime, showTimeIfNonZero });\n return <span\n className={className}\n title={`${title ? `${title}: ` : ''}${date?.toString() ?? 'N/A'}`}>\n {asString}\n </span>;\n};\n\n\nfunction formatInTimeZone(date: Date, fmt: string, tz: string) {\n return formatTZ(\n utcToZonedTime(date, tz), \n fmt, \n { timeZone: tz });\n}\n\nfunction timeIsNonZero(date: Date): boolean {\n return (\n date.getMilliseconds() === 0 &&\n date.getSeconds() === 0 &&\n date.getMinutes() === 0 &&\n date.getHours() === 0);\n}\n\n\n/** Foramts given date as plain text. */\nexport function formatDate(\n date: Date,\n opts?: {\n /** Show time in UTC. Will add the “UTC”, unless time is shown. */\n useUTC?: boolean\n /** Show date along with full time, to seconds. */\n showTime?: boolean\n /** Show time, unless it’s 00:00:00 on the day. */\n showTimeIfNonZero?: boolean\n },\n): string {\n const showTime = opts?.showTime || (opts?.showTimeIfNonZero && timeIsNonZero(date));\n const fmt = showTime\n ? 'yyyy-MM-dd HH:mm:ss'\n : 'yyyy-MM-dd';\n try {\n return opts?.useUTC\n ? `${formatInTimeZone(date, fmt, 'UTC')}${showTime ? ' UTC' : ''}`\n : format(date, fmt);\n } catch (e) {\n console.error(\"Failed to format date\", date, typeof date);\n return `Invalid date (${e})`;\n }\n}\n\n\nexport const _getRelatedClass = (classes: Record<string, ItemClassConfiguration<any>>) => {\n return (clsID: string): RelatedItemClassConfiguration => {\n const cfg = classes[clsID];\n return {\n title: cfg.meta.title,\n // TODO: The itemView/listItemView inconsistency is annoying\n itemView: cfg.views.listItemView,\n };\n };\n};\n\n\n// /**\n// * Suitable for use as tab contents for TabbedWorkspace.\n// * Provides top bar with actions and main content.\n// */\n// export const TabContentsWithActions: React.FC<{\n// actions: JSX.Element;\n// main: JSX.Element;\n// gapPx?: number;\n// className?: string;\n// }> = function ({ actions, gapPx: _gapPx, main, className }) {\n// const gapPx = _gapPx ?? 10;\n// return (\n// <div css={css`\n// position: absolute; inset: 0;\n// display: flex; flex-flow: column nowrap;\n// `} className={className}>\n// <div css={css`flex: 0; padding: ${gapPx}px; display: flex; flex-flow: row wrap; gap: ${gapPx}px;`}>\n// {actions}\n// </div>\n// <div css={css`\n// position: relative;\n// flex: 1;\n// padding: ${gapPx}px;\n// overflow-y: auto;\n// background: ${Colors.GRAY5};\n// .bp4-dark & { background: ${Colors.DARK_GRAY2}; }\n// `}>\n// {main}\n// </div>\n// </div>\n// );\n// };\n\n\nexport type ClassificationEntry = TagProps & { tooltip?: HelpTooltipProps };\nexport interface TabContentsWithHeaderProps {\n title: JSX.Element | string\n smallTitle?: boolean\n classification?: ClassificationEntry[]\n actions?: (ActionProps | ActionProps[])[]\n tooltip?: HelpTooltipProps\n className?: string\n\n /**\n * CSS to apply to child contents wrapper div.\n *\n * If 'card-grid', children would be expected to be cards\n * (e.g., `FormGroupAsCardInGrid` or `CardInGrid`)\n *\n * 'card-grid' implies 'scrollable'.\n */\n layout?: undefined | 'card-grid' | 'scrollable'\n layoutOptions?: Record<string, unknown>\n}\ninterface Grid extends TabContentsWithHeaderProps {\n layout: 'card-grid'\n layoutOptions?: {\n gapPx?: number\n stretch?: boolean\n }\n}\ninterface Scrollable extends TabContentsWithHeaderProps {\n layout: 'scrollable'\n layoutOptions?: never\n}\ninterface NoLayout extends TabContentsWithHeaderProps {\n layout?: undefined\n layoutOptions?: never\n}\nconst paddingPx = 11;\nfunction findEnabledActions\n<T extends ButtonProps | ButtonProps[] = ButtonProps | ButtonProps[]>\n(props: T[]): ButtonProps[] {\n return props.map(props =>\n (props as ButtonProps[]).length !== undefined\n ? (props as ButtonProps[]).filter(p => !p.disabled)\n : !(props as ButtonProps).disabled\n ? props\n : []\n ).flat();\n}\nexport const TabContentsWithHeader: React.FC<Grid | Scrollable | NoLayout> =\nfunction ({ title, smallTitle, classification, actions, layout, layoutOptions, className, children }) {\n const hasClassification = (classification ?? []).length > 0;\n\n const enabledActions = actions ? findEnabledActions(actions) : [];\n const hasActions = enabledActions.length > 0;\n\n // if (enabledActions.length === 1 && !enabledActions[0].intent) {\n // enabledActions[0].intent = 'primary';\n // }\n\n return (\n <div css={css`\n position: absolute; inset: 0;\n padding-top: ${paddingPx}px;\n ${hasActions ? `padding-bottom: ${paddingPx}px;` : ''}\n display: flex; flex-flow: column nowrap;\n gap: ${paddingPx}px;\n `} className={className}>\n {smallTitle\n ? <H4 css={css`margin: 0 ${paddingPx}px;`}>{title}</H4>\n : <H3 css={css`margin: 0 ${paddingPx}px;`}>{title}</H3>}\n {hasClassification\n ? <div css={css`\n flex: 0;\n margin: 0 ${paddingPx}px;\n display: flex;\n flex-flow: row wrap;\n gap: ${paddingPx}px;\n `}>\n {classification!.map((p, idx) =>\n <Tag\n key={idx}\n minimal\n {...p}\n large={!smallTitle}\n rightIcon={p.tooltip\n ? <HelpTooltip {...p.tooltip} />\n : undefined}\n />\n )}\n </div>\n : null}\n <div css={css`\n position: relative;\n flex: 1;\n overflow-y: auto;\n\n ${layout === undefined\n ? `\n > :only-child { position: absolute; inset: 0 }\n box-shadow: black 0 0 20px -10px;\n `\n : `\n padding: 0 10px;\n &::after, &::before {\n pointer-events: none;\n content: \" \";\n display: block;\n position: sticky;\n width: 100%;\n height: 1px;\n background: ${Colors.GRAY5};\n .bp4-dark & { background: ${Colors.DARK_GRAY2}; }\n z-index: 10;\n }\n &::before {\n top: 0;\n box-shadow: ${Colors.GRAY5} 0 -20px 20px 20px;\n .bp4-dark & {\n box-shadow: ${Colors.DARK_GRAY2} 0 -20px 20px 20px;\n }\n }\n &::after {\n bottom: 0;\n box-shadow: ${Colors.GRAY5} 0 20px 20px 20px;\n .bp4-dark & {\n box-shadow: ${Colors.DARK_GRAY2} 0 20px 20px 20px;\n }\n }\n `}\n\n ${layout === 'scrollable' || layout === 'card-grid'\n ? `\n background: ${Colors.GRAY5};\n .bp4-dark & { background: ${Colors.DARK_GRAY2}; }\n `\n : ''}\n\n ${layout === 'card-grid'\n ? `\n display: flex;\n flex-flow: row wrap;\n align-content: flex-start;\n ${layoutOptions?.stretch\n ? 'align-items: stretch;'\n : 'align-items: flex-start;'}\n gap: ${layoutOptions?.gapPx ?? 10}px;\n `\n : ''}\n `}>\n {children}\n </div>\n\n {hasActions\n ? <div css={css`\n margin: 0 ${paddingPx}px;\n flex: 0; display: flex; flex-flow: row wrap; gap: ${paddingPx}px;\n `}>\n {actions!.map((props, idx) => {\n if (props.hasOwnProperty('length') && (props as ButtonProps[]).length !== undefined) {\n return (\n <ButtonGroup key={idx}>\n {(props as ButtonProps[]).map((p, idx) =>\n <Action {...p} key={idx} />\n )}\n </ButtonGroup>\n );\n } else {\n return <Action key={idx} {...(props as ButtonProps)} />;\n }\n })}\n </div>\n : null}\n </div>\n );\n};\n\n\nexport type ActionProps = ButtonProps & ({ popup?: JSX.Element, tooltip?: string });\n/** Mostly a button, but with an optional popup. */\nconst Action: React.FC<ActionProps & { key?: number | string }> = function ({ popup, tooltip, ...props }) {\n const btn = <BaseButton\n {...props}\n intent={props.disabled ? undefined : props.intent}\n onClick={props.disabled ? undefined : props.onClick}\n disabled={props.active ? false : props.disabled}\n title={tooltip}\n rightIcon={popup ? 'more' : undefined}\n />;\n\n if (popup && !props.disabled) {\n return (\n <Popover key={props.key} content={popup} placement=\"top\" minimal interactionKind=\"click\">\n {btn}\n </Popover>\n );\n } else {\n return btn;\n }\n};\n\n\nexport const CardInGrid: React.FC<{ description: string } & CardProps> =\nfunction ({ description, className, ...props }) {\n return (\n <Card\n css={css`border-radius: 5px;`}\n title={description}\n className={!props.interactive\n ? `${Classes.ELEVATION_3} ${className ?? ''}`\n : className}\n {...props}\n />\n );\n};\n\n\n/** Useful in case of tab “card-grid” layout. */\nexport const FormGroupAsCardInGrid: React.FC<FormGroupProps & { paddingPx?: number }> =\nfunction ({ paddingPx, ...props }) {\n const paddingPx_ = paddingPx ?? 11;\n return (\n <FormGroup\n {...props}\n css={css`\n margin: 0;\n\n border-radius: 5px;\n padding: ${paddingPx_}px;\n\n > label.bp4-label {\n font-weight: bold;\n margin-bottom: ${paddingPx_}px;\n }\n > .bp4-form-content {\n display: flex;\n flex-flow: column nowrap;\n gap: ${paddingPx_}px;\n\n > .bp4-form-group {\n margin: 0;\n }\n }\n\n /* Note: these colors are picked to work with some form widgets, date input widget specifically. */\n background: ${Colors.WHITE};\n .bp4-dark & { background: ${Colors.DARK_GRAY3}; }\n `}\n className={`${Classes.ELEVATION_3} ${props.className}`}\n />\n );\n};\n\n\nexport const MoreMenu: React.FC<Record<never, never>> = memo(function ({ children }) {\n return (\n <Popover minimal content={<>{children}</>}>\n <BaseButton icon=\"more\" small minimal />\n </Popover>\n );\n});\n\n\nexport const ItemClassMenu: React.FC<{\n cfg: ItemClassConfiguration<any>;\n onCreate?: () => void;\n}> = memo(function ({ cfg, onCreate }) {\n return (\n <Menu>\n <MenuDivider title=\"About this class\" />\n <MenuItem multiline disabled css={css`max-width: 400px`} text={cfg.meta.description} />\n {onCreate\n ? <>\n <MenuDivider title=\"Quick actions\" />\n <MenuItem\n text=\"Propose new\"\n intent=\"primary\"\n onClick={onCreate} icon=\"plus\"\n />\n </>\n : null}\n </Menu>\n );\n});\n"]}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes