@riboseinc/paneron-registry-kit 2.0.0-dev9 → 2.0.1

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 (558) hide show
  1. package/LICENSE +21 -0
  2. package/README.adoc +35 -0
  3. package/compiled/common.d.ts +1 -0
  4. package/compiled/common.js +2 -0
  5. package/{common.js.map → compiled/common.js.map} +1 -1
  6. package/{index.d.ts → compiled/index.d.ts} +3 -3
  7. package/compiled/index.js +21 -0
  8. package/compiled/index.js.map +1 -0
  9. package/compiled/migrations/initial.js +8 -0
  10. package/compiled/types/cr.d.ts +216 -0
  11. package/compiled/types/cr.js +131 -0
  12. package/compiled/types/cr.js.map +1 -0
  13. package/{types → compiled/types}/index.d.ts +1 -0
  14. package/compiled/types/index.js +8 -0
  15. package/compiled/types/index.js.map +1 -0
  16. package/{types → compiled/types}/item.d.ts +13 -3
  17. package/compiled/types/item.js +22 -0
  18. package/compiled/types/item.js.map +1 -0
  19. package/compiled/types/proposal.d.ts +64 -0
  20. package/compiled/types/proposal.js +21 -0
  21. package/compiled/types/proposal.js.map +1 -0
  22. package/{types → compiled/types}/register.d.ts +6 -5
  23. package/compiled/types/register.js +25 -0
  24. package/compiled/types/register.js.map +1 -0
  25. package/compiled/types/registry.d.ts +15 -0
  26. package/compiled/types/registry.js +10 -0
  27. package/compiled/types/registry.js.map +1 -0
  28. package/compiled/types/stakeholder.d.ts +58 -0
  29. package/compiled/types/stakeholder.js +34 -0
  30. package/compiled/types/stakeholder.js.map +1 -0
  31. package/compiled/types/util.js +3 -0
  32. package/compiled/types/views.d.ts +157 -0
  33. package/compiled/types/views.js +2 -0
  34. package/compiled/types/views.js.map +1 -0
  35. package/compiled/views/AnnotatedChange.d.ts +7 -0
  36. package/compiled/views/AnnotatedChange.js +57 -0
  37. package/compiled/views/AnnotatedChange.js.map +1 -0
  38. package/compiled/views/BrowserCtx.d.ts +73 -0
  39. package/compiled/views/BrowserCtx.js +19 -0
  40. package/compiled/views/BrowserCtx.js.map +1 -0
  41. package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +17 -0
  42. package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.js +110 -0
  43. package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +1 -0
  44. package/{views → compiled/views}/FilterCriteria/criteriaGroupToQueryExpression.d.ts +4 -0
  45. package/compiled/views/FilterCriteria/criteriaGroupToQueryExpression.js +40 -0
  46. package/compiled/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +1 -0
  47. package/compiled/views/FilterCriteria/criteriaGroupToSummary.js +47 -0
  48. package/compiled/views/FilterCriteria/criteriaGroupToSummary.js.map +1 -0
  49. package/{views → compiled/views}/FilterCriteria/criteriaToNodes.d.ts +9 -0
  50. package/compiled/views/FilterCriteria/criteriaToNodes.js +89 -0
  51. package/compiled/views/FilterCriteria/criteriaToNodes.js.map +1 -0
  52. package/{views → compiled/views}/FilterCriteria/index.d.ts +1 -0
  53. package/compiled/views/FilterCriteria/index.js +75 -0
  54. package/compiled/views/FilterCriteria/index.js.map +1 -0
  55. package/{views → compiled/views}/FilterCriteria/models.d.ts +29 -2
  56. package/compiled/views/FilterCriteria/models.js +28 -0
  57. package/compiled/views/FilterCriteria/models.js.map +1 -0
  58. package/{views → compiled/views}/FilterCriteria/mutateGroup.d.ts +4 -1
  59. package/compiled/views/FilterCriteria/mutateGroup.js +53 -0
  60. package/compiled/views/FilterCriteria/mutateGroup.js.map +1 -0
  61. package/{views → compiled/views}/GenericRelatedItemView.d.ts +1 -1
  62. package/compiled/views/GenericRelatedItemView.js +147 -0
  63. package/compiled/views/GenericRelatedItemView.js.map +1 -0
  64. package/compiled/views/RegisterStakeholder.d.ts +9 -0
  65. package/compiled/views/RegisterStakeholder.js +19 -0
  66. package/compiled/views/RegisterStakeholder.js.map +1 -0
  67. package/compiled/views/RegisterVersion.d.ts +9 -0
  68. package/compiled/views/RegisterVersion.js +20 -0
  69. package/compiled/views/RegisterVersion.js.map +1 -0
  70. package/compiled/views/SearchQuery.d.ts +13 -0
  71. package/compiled/views/SearchQuery.js +58 -0
  72. package/compiled/views/SearchQuery.js.map +1 -0
  73. package/compiled/views/change-request/ChangeRequestContext.d.ts +20 -0
  74. package/compiled/views/change-request/ChangeRequestContext.js +30 -0
  75. package/compiled/views/change-request/ChangeRequestContext.js.map +1 -0
  76. package/compiled/views/change-request/Proposals.d.ts +21 -0
  77. package/compiled/views/change-request/Proposals.js +185 -0
  78. package/compiled/views/change-request/Proposals.js.map +1 -0
  79. package/compiled/views/change-request/objectChangeset.d.ts +31 -0
  80. package/compiled/views/change-request/objectChangeset.js +189 -0
  81. package/compiled/views/change-request/objectChangeset.js.map +1 -0
  82. package/compiled/views/detail/ChangeRequest/Proposal.d.ts +0 -0
  83. package/compiled/views/detail/ChangeRequest/Proposal.js +144 -0
  84. package/compiled/views/detail/ChangeRequest/Proposal.js.map +1 -0
  85. package/compiled/views/detail/ChangeRequest/index.d.ts +13 -0
  86. package/compiled/views/detail/ChangeRequest/index.js +140 -0
  87. package/compiled/views/detail/ChangeRequest/index.js.map +1 -0
  88. package/compiled/views/detail/ChangeRequest/transitions.d.ts +28 -0
  89. package/compiled/views/detail/ChangeRequest/transitions.js +418 -0
  90. package/compiled/views/detail/ChangeRequest/transitions.js.map +1 -0
  91. package/compiled/views/detail/CustomView/index.d.ts +13 -0
  92. package/compiled/views/detail/CustomView/index.js +32 -0
  93. package/compiled/views/detail/CustomView/index.js.map +1 -0
  94. package/compiled/views/detail/RegisterHome/index.d.ts +5 -0
  95. package/compiled/views/detail/RegisterHome/index.js +70 -0
  96. package/compiled/views/detail/RegisterHome/index.js.map +1 -0
  97. package/compiled/views/detail/RegisterItem/RelatedItems.d.ts +14 -0
  98. package/compiled/views/detail/RegisterItem/RelatedItems.js +28 -0
  99. package/compiled/views/detail/RegisterItem/RelatedItems.js.map +1 -0
  100. package/compiled/views/detail/RegisterItem/SupersedingItemMenu.d.ts +13 -0
  101. package/compiled/views/detail/RegisterItem/SupersedingItemMenu.js +27 -0
  102. package/compiled/views/detail/RegisterItem/SupersedingItemMenu.js.map +1 -0
  103. package/compiled/views/detail/RegisterItem/index.d.ts +13 -0
  104. package/compiled/views/detail/RegisterItem/index.js +277 -0
  105. package/compiled/views/detail/RegisterItem/index.js.map +1 -0
  106. package/compiled/views/detail/RegisterMeta/RegisterMetaForm.d.ts +10 -0
  107. package/compiled/views/detail/RegisterMeta/RegisterMetaForm.js +135 -0
  108. package/compiled/views/detail/RegisterMeta/RegisterMetaForm.js.map +1 -0
  109. package/compiled/views/detail/RegisterMeta/index.d.ts +10 -0
  110. package/compiled/views/detail/RegisterMeta/index.js +61 -0
  111. package/compiled/views/detail/RegisterMeta/index.js.map +1 -0
  112. package/compiled/views/detail/index.d.ts +1 -0
  113. package/compiled/views/detail/index.js +11 -0
  114. package/compiled/views/detail/index.js.map +1 -0
  115. package/compiled/views/diffing/InlineDiff.d.ts +12 -0
  116. package/compiled/views/diffing/InlineDiff.js +20 -0
  117. package/compiled/views/diffing/InlineDiff.js.map +1 -0
  118. package/compiled/views/diffing/StructuredDiff.d.ts +11 -0
  119. package/compiled/views/diffing/StructuredDiff.js +38 -0
  120. package/compiled/views/diffing/StructuredDiff.js.map +1 -0
  121. package/compiled/views/hooks/useCustomView.d.ts +3 -0
  122. package/compiled/views/hooks/useCustomView.js +14 -0
  123. package/compiled/views/hooks/useCustomView.js.map +1 -0
  124. package/compiled/views/hooks/useItemClassConfig.d.ts +3 -0
  125. package/compiled/views/hooks/useItemClassConfig.js +14 -0
  126. package/compiled/views/hooks/useItemClassConfig.js.map +1 -0
  127. package/compiled/views/hooks/useItemRef.d.ts +3 -0
  128. package/compiled/views/hooks/useItemRef.js +26 -0
  129. package/compiled/views/hooks/useItemRef.js.map +1 -0
  130. package/compiled/views/hooks/useSingleRegisterItemData.d.ts +3 -0
  131. package/compiled/views/hooks/useSingleRegisterItemData.js +21 -0
  132. package/compiled/views/hooks/useSingleRegisterItemData.js.map +1 -0
  133. package/{views → compiled/views}/index.d.ts +2 -2
  134. package/compiled/views/index.js +142 -0
  135. package/compiled/views/index.js.map +1 -0
  136. package/compiled/views/itemPathUtils.d.ts +52 -0
  137. package/compiled/views/itemPathUtils.js +115 -0
  138. package/compiled/views/itemPathUtils.js.map +1 -0
  139. package/compiled/views/itemQueryUtils.d.ts +11 -0
  140. package/compiled/views/itemQueryUtils.js +42 -0
  141. package/compiled/views/itemQueryUtils.js.map +1 -0
  142. package/compiled/views/protocolRegistry.d.ts +12 -0
  143. package/compiled/views/protocolRegistry.js +24 -0
  144. package/compiled/views/protocolRegistry.js.map +1 -0
  145. package/compiled/views/sidebar/Browse/index.d.ts +11 -0
  146. package/compiled/views/sidebar/Browse/index.js +278 -0
  147. package/compiled/views/sidebar/Browse/index.js.map +1 -0
  148. package/compiled/views/sidebar/Export/index.d.ts +5 -0
  149. package/compiled/views/sidebar/Export/index.js +47 -0
  150. package/compiled/views/sidebar/Export/index.js.map +1 -0
  151. package/compiled/views/sidebar/ListItem.d.ts +10 -0
  152. package/compiled/views/sidebar/ListItem.js +23 -0
  153. package/compiled/views/sidebar/ListItem.js.map +1 -0
  154. package/compiled/views/sidebar/Registration/index.d.ts +5 -0
  155. package/compiled/views/sidebar/Registration/index.js +114 -0
  156. package/compiled/views/sidebar/Registration/index.js.map +1 -0
  157. package/compiled/views/sidebar/Search/index.d.ts +18 -0
  158. package/compiled/views/sidebar/Search/index.js +100 -0
  159. package/compiled/views/sidebar/Search/index.js.map +1 -0
  160. package/compiled/views/sidebar/index.d.ts +6 -0
  161. package/compiled/views/sidebar/index.js +73 -0
  162. package/compiled/views/sidebar/index.js.map +1 -0
  163. package/compiled/views/util.d.ts +36 -0
  164. package/compiled/views/util.js +63 -0
  165. package/compiled/views/util.js.map +1 -0
  166. package/dependencies-local/extension-kit/SettingsContext.d.ts +8 -0
  167. package/dependencies-local/extension-kit/SettingsContext.js +19 -0
  168. package/dependencies-local/extension-kit/SettingsContext.js.map +1 -0
  169. package/dependencies-local/extension-kit/context.d.ts +11 -0
  170. package/dependencies-local/extension-kit/context.js +133 -0
  171. package/dependencies-local/extension-kit/context.js.map +1 -0
  172. package/dependencies-local/extension-kit/i18n/ContextProvider.d.ts +9 -0
  173. package/dependencies-local/extension-kit/i18n/ContextProvider.js +33 -0
  174. package/dependencies-local/extension-kit/i18n/ContextProvider.js.map +1 -0
  175. package/dependencies-local/extension-kit/i18n/context.d.ts +9 -0
  176. package/dependencies-local/extension-kit/i18n/context.js +23 -0
  177. package/dependencies-local/extension-kit/i18n/context.js.map +1 -0
  178. package/dependencies-local/extension-kit/i18n/types.d.ts +10 -0
  179. package/dependencies-local/extension-kit/i18n/types.js.map +1 -0
  180. package/dependencies-local/extension-kit/i18n/widgets.d.ts +16 -0
  181. package/dependencies-local/extension-kit/i18n/widgets.js +56 -0
  182. package/dependencies-local/extension-kit/i18n/widgets.js.map +1 -0
  183. package/dependencies-local/extension-kit/index.d.ts +3 -0
  184. package/dependencies-local/extension-kit/index.js +78 -0
  185. package/dependencies-local/extension-kit/index.js.map +1 -0
  186. package/dependencies-local/extension-kit/object-specs/index.d.ts +2 -0
  187. package/dependencies-local/extension-kit/object-specs/index.js +22 -0
  188. package/dependencies-local/extension-kit/object-specs/index.js.map +1 -0
  189. package/dependencies-local/extension-kit/object-specs/paneron-object.d.ts +6 -0
  190. package/dependencies-local/extension-kit/object-specs/paneron-object.js +161 -0
  191. package/dependencies-local/extension-kit/object-specs/paneron-object.js.map +1 -0
  192. package/dependencies-local/extension-kit/object-specs/ser-des.d.ts +31 -0
  193. package/dependencies-local/extension-kit/object-specs/ser-des.js +187 -0
  194. package/dependencies-local/extension-kit/object-specs/ser-des.js.map +1 -0
  195. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.d.ts +2 -0
  196. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js +42 -0
  197. package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js.map +1 -0
  198. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.d.ts +3 -0
  199. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js +110 -0
  200. package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js.map +1 -0
  201. package/dependencies-local/extension-kit/object-specs/yaml/index.d.ts +9 -0
  202. package/dependencies-local/extension-kit/object-specs/yaml/index.js +36 -0
  203. package/dependencies-local/extension-kit/object-specs/yaml/index.js.map +1 -0
  204. package/dependencies-local/extension-kit/object-specs/yaml/schema.d.ts +3 -0
  205. package/{index.js → dependencies-local/extension-kit/object-specs/yaml/schema.js} +11 -30
  206. package/dependencies-local/extension-kit/object-specs/yaml/schema.js.map +1 -0
  207. package/dependencies-local/extension-kit/package.json +53 -0
  208. package/dependencies-local/extension-kit/settings.d.ts +6 -0
  209. package/dependencies-local/extension-kit/settings.js +11 -0
  210. package/dependencies-local/extension-kit/settings.js.map +1 -0
  211. package/dependencies-local/extension-kit/types/binary-invocation.d.ts +31 -0
  212. package/dependencies-local/extension-kit/types/binary-invocation.js.map +1 -0
  213. package/dependencies-local/extension-kit/types/buffers.d.ts +17 -0
  214. package/dependencies-local/extension-kit/types/buffers.js.map +1 -0
  215. package/dependencies-local/extension-kit/types/changes.d.ts +37 -0
  216. package/dependencies-local/extension-kit/types/changes.js +5 -0
  217. package/dependencies-local/extension-kit/types/changes.js.map +1 -0
  218. package/dependencies-local/extension-kit/types/data.d.ts +54 -0
  219. package/dependencies-local/extension-kit/types/data.js +5 -0
  220. package/dependencies-local/extension-kit/types/data.js.map +1 -0
  221. package/dependencies-local/extension-kit/types/dialogs.d.ts +15 -0
  222. package/dependencies-local/extension-kit/types/dialogs.js +5 -0
  223. package/dependencies-local/extension-kit/types/dialogs.js.map +1 -0
  224. package/dependencies-local/extension-kit/types/extension-maker.d.ts +17 -0
  225. package/dependencies-local/extension-kit/types/extension-maker.js +5 -0
  226. package/dependencies-local/extension-kit/types/extension-maker.js.map +1 -0
  227. package/dependencies-local/extension-kit/types/extension.d.ts +27 -0
  228. package/dependencies-local/extension-kit/types/extension.js +5 -0
  229. package/dependencies-local/extension-kit/types/extension.js.map +1 -0
  230. package/dependencies-local/extension-kit/types/index.d.ts +3 -0
  231. package/dependencies-local/extension-kit/types/index.js +41 -0
  232. package/dependencies-local/extension-kit/types/index.js.map +1 -0
  233. package/dependencies-local/extension-kit/types/indexes.d.ts +6 -0
  234. package/dependencies-local/extension-kit/types/indexes.js +15 -0
  235. package/dependencies-local/extension-kit/types/indexes.js.map +1 -0
  236. package/dependencies-local/extension-kit/types/migrations.d.ts +15 -0
  237. package/dependencies-local/extension-kit/types/migrations.js +5 -0
  238. package/dependencies-local/extension-kit/types/migrations.js.map +1 -0
  239. package/dependencies-local/extension-kit/types/object-spec.d.ts +108 -0
  240. package/dependencies-local/extension-kit/types/object-spec.js +23 -0
  241. package/dependencies-local/extension-kit/types/object-spec.js.map +1 -0
  242. package/dependencies-local/extension-kit/types/objects.d.ts +18 -0
  243. package/dependencies-local/extension-kit/types/objects.js +5 -0
  244. package/dependencies-local/extension-kit/types/objects.js.map +1 -0
  245. package/dependencies-local/extension-kit/types/progress.d.ts +5 -0
  246. package/dependencies-local/extension-kit/types/progress.js +5 -0
  247. package/dependencies-local/extension-kit/types/progress.js.map +1 -0
  248. package/dependencies-local/extension-kit/types/renderer.d.ts +495 -0
  249. package/dependencies-local/extension-kit/types/renderer.js +5 -0
  250. package/dependencies-local/extension-kit/types/renderer.js.map +1 -0
  251. package/dependencies-local/extension-kit/useDebounce.d.ts +2 -0
  252. package/dependencies-local/extension-kit/useDebounce.js +27 -0
  253. package/dependencies-local/extension-kit/useDebounce.js.map +1 -0
  254. package/dependencies-local/extension-kit/usePersistentStateReducer.d.ts +35 -0
  255. package/dependencies-local/extension-kit/usePersistentStateReducer.js +91 -0
  256. package/dependencies-local/extension-kit/usePersistentStateReducer.js.map +1 -0
  257. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.d.ts +48 -0
  258. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js +116 -0
  259. package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js.map +1 -0
  260. package/dependencies-local/extension-kit/util.d.ts +8 -0
  261. package/dependencies-local/extension-kit/util.js +21 -0
  262. package/dependencies-local/extension-kit/util.js.map +1 -0
  263. package/dependencies-local/extension-kit/widgets/ErrorState.d.ts +8 -0
  264. package/dependencies-local/extension-kit/widgets/ErrorState.js +44 -0
  265. package/dependencies-local/extension-kit/widgets/ErrorState.js.map +1 -0
  266. package/dependencies-local/extension-kit/widgets/Grid.d.ts +41 -0
  267. package/dependencies-local/extension-kit/widgets/Grid.js +213 -0
  268. package/dependencies-local/extension-kit/widgets/Grid.js.map +1 -0
  269. package/dependencies-local/extension-kit/widgets/HelpTooltip.d.ts +18 -0
  270. package/dependencies-local/extension-kit/widgets/HelpTooltip.js +84 -0
  271. package/dependencies-local/extension-kit/widgets/HelpTooltip.js.map +1 -0
  272. package/dependencies-local/extension-kit/widgets/ItemCount.d.ts +19 -0
  273. package/dependencies-local/extension-kit/widgets/ItemCount.js +78 -0
  274. package/dependencies-local/extension-kit/widgets/ItemCount.js.map +1 -0
  275. package/dependencies-local/extension-kit/widgets/List.d.ts +40 -0
  276. package/dependencies-local/extension-kit/widgets/List.js +191 -0
  277. package/dependencies-local/extension-kit/widgets/List.js.map +1 -0
  278. package/dependencies-local/extension-kit/widgets/Navbar.d.ts +20 -0
  279. package/dependencies-local/extension-kit/widgets/Navbar.js +75 -0
  280. package/dependencies-local/extension-kit/widgets/Navbar.js.map +1 -0
  281. package/dependencies-local/extension-kit/widgets/SearchResultList.d.ts +24 -0
  282. package/dependencies-local/extension-kit/widgets/SearchResultList.js +201 -0
  283. package/dependencies-local/extension-kit/widgets/SearchResultList.js.map +1 -0
  284. package/dependencies-local/extension-kit/widgets/Sidebar/Block.d.ts +21 -0
  285. package/dependencies-local/extension-kit/widgets/Sidebar/Block.js +94 -0
  286. package/dependencies-local/extension-kit/widgets/Sidebar/Block.js.map +1 -0
  287. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.d.ts +6 -0
  288. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js +22 -0
  289. package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js.map +1 -0
  290. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.d.ts +28 -0
  291. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js +148 -0
  292. package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js.map +1 -0
  293. package/dependencies-local/extension-kit/widgets/Sidebar/index.d.ts +27 -0
  294. package/dependencies-local/extension-kit/widgets/Sidebar/index.js +178 -0
  295. package/dependencies-local/extension-kit/widgets/Sidebar/index.js.map +1 -0
  296. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.d.ts +13 -0
  297. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js +82 -0
  298. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js.map +1 -0
  299. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.d.ts +10 -0
  300. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js +168 -0
  301. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js.map +1 -0
  302. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.d.ts +9 -0
  303. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js +66 -0
  304. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js.map +1 -0
  305. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.d.ts +33 -0
  306. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js +204 -0
  307. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js.map +1 -0
  308. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.d.ts +74 -0
  309. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js +5 -0
  310. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js.map +1 -0
  311. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.d.ts +1 -0
  312. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js +14 -0
  313. package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js.map +1 -0
  314. package/dependencies-local/extension-kit/widgets/Workspace.d.ts +38 -0
  315. package/dependencies-local/extension-kit/widgets/Workspace.js +99 -0
  316. package/dependencies-local/extension-kit/widgets/Workspace.js.map +1 -0
  317. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.d.ts +12 -0
  318. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js +57 -0
  319. package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js.map +1 -0
  320. package/dependencies-local/extension-kit/widgets/panels/index.d.ts +28 -0
  321. package/dependencies-local/extension-kit/widgets/panels/index.js +169 -0
  322. package/dependencies-local/extension-kit/widgets/panels/index.js.map +1 -0
  323. package/dist/common.d.ts +1 -0
  324. package/{common.js → dist/common.js} +1 -1
  325. package/dist/common.js.map +1 -0
  326. package/dist/index.d.ts +6 -0
  327. package/dist/index.js +45 -0
  328. package/dist/index.js.map +1 -0
  329. package/dist/migrations/initial.d.ts +3 -0
  330. package/dist/migrations/initial.js.map +1 -0
  331. package/dist/package.json +56 -0
  332. package/dist/types/cr.d.ts +216 -0
  333. package/dist/types/cr.js +175 -0
  334. package/dist/types/cr.js.map +1 -0
  335. package/dist/types/index.d.ts +7 -0
  336. package/{types → dist/types}/index.js +19 -0
  337. package/dist/types/index.js.map +1 -0
  338. package/dist/types/item.d.ts +59 -0
  339. package/dist/types/item.js +16 -0
  340. package/dist/types/item.js.map +1 -0
  341. package/dist/types/proposal.d.ts +64 -0
  342. package/{types → dist/types}/proposal.js +1 -1
  343. package/dist/types/proposal.js.map +1 -0
  344. package/dist/types/register.d.ts +18 -0
  345. package/dist/types/register.js +23 -0
  346. package/dist/types/register.js.map +1 -0
  347. package/dist/types/registry.d.ts +15 -0
  348. package/dist/types/registry.js +14 -0
  349. package/dist/types/registry.js.map +1 -0
  350. package/dist/types/stakeholder.d.ts +58 -0
  351. package/dist/types/stakeholder.js +53 -0
  352. package/dist/types/stakeholder.js.map +1 -0
  353. package/dist/types/util.d.ts +21 -0
  354. package/dist/types/util.js +5 -0
  355. package/dist/types/util.js.map +1 -0
  356. package/dist/types/views.d.ts +157 -0
  357. package/dist/types/views.js +5 -0
  358. package/dist/types/views.js.map +1 -0
  359. package/dist/views/AnnotatedChange.d.ts +7 -0
  360. package/dist/views/AnnotatedChange.js +91 -0
  361. package/dist/views/AnnotatedChange.js.map +1 -0
  362. package/dist/views/BrowserCtx.d.ts +73 -0
  363. package/dist/views/BrowserCtx.js +31 -0
  364. package/dist/views/BrowserCtx.js.map +1 -0
  365. package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +17 -0
  366. package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.js +202 -0
  367. package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +1 -0
  368. package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.d.ts +6 -0
  369. package/{views → dist/views}/FilterCriteria/criteriaGroupToQueryExpression.js +10 -3
  370. package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +1 -0
  371. package/dist/views/FilterCriteria/criteriaGroupToSummary.d.ts +5 -0
  372. package/{views → dist/views}/FilterCriteria/criteriaGroupToSummary.js +7 -7
  373. package/dist/views/FilterCriteria/criteriaGroupToSummary.js.map +1 -0
  374. package/dist/views/FilterCriteria/criteriaToNodes.d.ts +24 -0
  375. package/{views → dist/views}/FilterCriteria/criteriaToNodes.js +42 -28
  376. package/dist/views/FilterCriteria/criteriaToNodes.js.map +1 -0
  377. package/dist/views/FilterCriteria/index.d.ts +23 -0
  378. package/{views → dist/views}/FilterCriteria/index.js +29 -21
  379. package/dist/views/FilterCriteria/index.js.map +1 -0
  380. package/dist/views/FilterCriteria/models.d.ts +68 -0
  381. package/dist/views/FilterCriteria/models.js +34 -0
  382. package/dist/views/FilterCriteria/models.js.map +1 -0
  383. package/dist/views/FilterCriteria/mutateGroup.d.ts +17 -0
  384. package/{views → dist/views}/FilterCriteria/mutateGroup.js +4 -3
  385. package/dist/views/FilterCriteria/mutateGroup.js.map +1 -0
  386. package/dist/views/GenericRelatedItemView.d.ts +6 -0
  387. package/dist/views/GenericRelatedItemView.js +242 -0
  388. package/dist/views/GenericRelatedItemView.js.map +1 -0
  389. package/dist/views/RegisterStakeholder.d.ts +9 -0
  390. package/dist/views/RegisterStakeholder.js +40 -0
  391. package/dist/views/RegisterStakeholder.js.map +1 -0
  392. package/dist/views/RegisterVersion.d.ts +9 -0
  393. package/dist/views/RegisterVersion.js +41 -0
  394. package/dist/views/RegisterVersion.js.map +1 -0
  395. package/dist/views/SearchQuery.d.ts +13 -0
  396. package/dist/views/SearchQuery.js +137 -0
  397. package/dist/views/SearchQuery.js.map +1 -0
  398. package/dist/views/change-request/ChangeRequestContext.d.ts +20 -0
  399. package/dist/views/change-request/ChangeRequestContext.js +56 -0
  400. package/dist/views/change-request/ChangeRequestContext.js.map +1 -0
  401. package/dist/views/change-request/Proposals.d.ts +21 -0
  402. package/dist/views/change-request/Proposals.js +331 -0
  403. package/dist/views/change-request/Proposals.js.map +1 -0
  404. package/dist/views/change-request/objectChangeset.d.ts +31 -0
  405. package/dist/views/change-request/objectChangeset.js +229 -0
  406. package/dist/views/change-request/objectChangeset.js.map +1 -0
  407. package/dist/views/detail/ChangeRequest/Proposal.d.ts +0 -0
  408. package/dist/views/detail/ChangeRequest/Proposal.js +142 -0
  409. package/dist/views/detail/ChangeRequest/Proposal.js.map +1 -0
  410. package/dist/views/detail/ChangeRequest/index.d.ts +13 -0
  411. package/dist/views/detail/ChangeRequest/index.js +207 -0
  412. package/dist/views/detail/ChangeRequest/index.js.map +1 -0
  413. package/dist/views/detail/ChangeRequest/transitions.d.ts +28 -0
  414. package/dist/views/detail/ChangeRequest/transitions.js +530 -0
  415. package/dist/views/detail/ChangeRequest/transitions.js.map +1 -0
  416. package/dist/views/detail/CustomView/index.d.ts +13 -0
  417. package/dist/views/detail/CustomView/index.js +68 -0
  418. package/dist/views/detail/CustomView/index.js.map +1 -0
  419. package/dist/views/detail/RegisterHome/index.d.ts +5 -0
  420. package/dist/views/detail/RegisterHome/index.js +128 -0
  421. package/dist/views/detail/RegisterHome/index.js.map +1 -0
  422. package/dist/views/detail/RegisterItem/RelatedItems.d.ts +14 -0
  423. package/dist/views/detail/RegisterItem/RelatedItems.js +61 -0
  424. package/dist/views/detail/RegisterItem/RelatedItems.js.map +1 -0
  425. package/dist/views/detail/RegisterItem/SupersedingItemMenu.d.ts +13 -0
  426. package/dist/views/detail/RegisterItem/SupersedingItemMenu.js +56 -0
  427. package/dist/views/detail/RegisterItem/SupersedingItemMenu.js.map +1 -0
  428. package/dist/views/detail/RegisterItem/index.d.ts +13 -0
  429. package/dist/views/detail/RegisterItem/index.js +357 -0
  430. package/dist/views/detail/RegisterItem/index.js.map +1 -0
  431. package/dist/views/detail/RegisterMeta/RegisterMetaForm.d.ts +10 -0
  432. package/dist/views/detail/RegisterMeta/RegisterMetaForm.js +331 -0
  433. package/dist/views/detail/RegisterMeta/RegisterMetaForm.js.map +1 -0
  434. package/dist/views/detail/RegisterMeta/index.d.ts +10 -0
  435. package/dist/views/detail/RegisterMeta/index.js +111 -0
  436. package/dist/views/detail/RegisterMeta/index.js.map +1 -0
  437. package/dist/views/detail/index.d.ts +1 -0
  438. package/dist/views/detail/index.js +24 -0
  439. package/dist/views/detail/index.js.map +1 -0
  440. package/dist/views/diffing/InlineDiff.d.ts +12 -0
  441. package/dist/views/diffing/InlineDiff.js +58 -0
  442. package/dist/views/diffing/InlineDiff.js.map +1 -0
  443. package/dist/views/diffing/StructuredDiff.d.ts +11 -0
  444. package/dist/views/diffing/StructuredDiff.js +65 -0
  445. package/dist/views/diffing/StructuredDiff.js.map +1 -0
  446. package/dist/views/hooks/useCustomView.d.ts +3 -0
  447. package/dist/views/hooks/useCustomView.js +24 -0
  448. package/dist/views/hooks/useCustomView.js.map +1 -0
  449. package/dist/views/hooks/useItemClassConfig.d.ts +3 -0
  450. package/dist/views/hooks/useItemClassConfig.js +24 -0
  451. package/dist/views/hooks/useItemClassConfig.js.map +1 -0
  452. package/dist/views/hooks/useItemRef.d.ts +3 -0
  453. package/dist/views/hooks/useItemRef.js +39 -0
  454. package/dist/views/hooks/useItemRef.js.map +1 -0
  455. package/dist/views/hooks/useSingleRegisterItemData.d.ts +3 -0
  456. package/dist/views/hooks/useSingleRegisterItemData.js +32 -0
  457. package/dist/views/hooks/useSingleRegisterItemData.js.map +1 -0
  458. package/dist/views/index.d.ts +7 -0
  459. package/dist/views/index.js +197 -0
  460. package/dist/views/index.js.map +1 -0
  461. package/dist/views/itemPathUtils.d.ts +52 -0
  462. package/dist/views/itemPathUtils.js +144 -0
  463. package/dist/views/itemPathUtils.js.map +1 -0
  464. package/dist/views/itemQueryUtils.d.ts +11 -0
  465. package/dist/views/itemQueryUtils.js +48 -0
  466. package/dist/views/itemQueryUtils.js.map +1 -0
  467. package/dist/views/protocolRegistry.d.ts +12 -0
  468. package/dist/views/protocolRegistry.js +42 -0
  469. package/dist/views/protocolRegistry.js.map +1 -0
  470. package/dist/views/sidebar/Browse/index.d.ts +11 -0
  471. package/dist/views/sidebar/Browse/index.js +453 -0
  472. package/dist/views/sidebar/Browse/index.js.map +1 -0
  473. package/dist/views/sidebar/Export/index.d.ts +5 -0
  474. package/dist/views/sidebar/Export/index.js +94 -0
  475. package/dist/views/sidebar/Export/index.js.map +1 -0
  476. package/dist/views/sidebar/ListItem.d.ts +10 -0
  477. package/dist/views/sidebar/ListItem.js +43 -0
  478. package/dist/views/sidebar/ListItem.js.map +1 -0
  479. package/dist/views/sidebar/Registration/index.d.ts +5 -0
  480. package/dist/views/sidebar/Registration/index.js +163 -0
  481. package/dist/views/sidebar/Registration/index.js.map +1 -0
  482. package/dist/views/sidebar/Search/index.d.ts +18 -0
  483. package/dist/views/sidebar/Search/index.js +177 -0
  484. package/dist/views/sidebar/Search/index.js.map +1 -0
  485. package/dist/views/sidebar/index.d.ts +6 -0
  486. package/dist/views/sidebar/index.js +104 -0
  487. package/dist/views/sidebar/index.js.map +1 -0
  488. package/dist/views/util.d.ts +36 -0
  489. package/dist/views/util.js +135 -0
  490. package/dist/views/util.js.map +1 -0
  491. package/package.json +27 -19
  492. package/react-visual-diff.d.ts +9 -0
  493. package/common.d.ts +0 -1
  494. package/index.js.map +0 -1
  495. package/types/index.js.map +0 -1
  496. package/types/item.js +0 -6
  497. package/types/item.js.map +0 -1
  498. package/types/proposal.d.ts +0 -47
  499. package/types/proposal.js.map +0 -1
  500. package/types/register.js.map +0 -1
  501. package/types/registry.d.ts +0 -10
  502. package/types/registry.js +0 -7
  503. package/types/registry.js.map +0 -1
  504. package/types/stakeholder.d.ts +0 -34
  505. package/types/stakeholder.js +0 -9
  506. package/types/stakeholder.js.map +0 -1
  507. package/types/views.d.ts +0 -83
  508. package/types/views.js.map +0 -1
  509. package/views/BrowserCtx.d.ts +0 -9
  510. package/views/BrowserCtx.js +0 -20
  511. package/views/BrowserCtx.js.map +0 -1
  512. package/views/ChangeRequest.d.ts +0 -12
  513. package/views/ChangeRequest.js +0 -689
  514. package/views/ChangeRequest.js.map +0 -1
  515. package/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -5
  516. package/views/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -109
  517. package/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -1
  518. package/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -1
  519. package/views/FilterCriteria/criteriaGroupToSummary.js.map +0 -1
  520. package/views/FilterCriteria/criteriaToNodes.js.map +0 -1
  521. package/views/FilterCriteria/index.js.map +0 -1
  522. package/views/FilterCriteria/models.js +0 -27
  523. package/views/FilterCriteria/models.js.map +0 -1
  524. package/views/FilterCriteria/mutateGroup.js.map +0 -1
  525. package/views/GenericRelatedItemView.js +0 -202
  526. package/views/GenericRelatedItemView.js.map +0 -1
  527. package/views/ItemBrowser.d.ts +0 -12
  528. package/views/ItemBrowser.js +0 -258
  529. package/views/ItemBrowser.js.map +0 -1
  530. package/views/ItemDetails.d.ts +0 -14
  531. package/views/ItemDetails.js +0 -128
  532. package/views/ItemDetails.js.map +0 -1
  533. package/views/MainView.d.ts +0 -8
  534. package/views/MainView.js +0 -34
  535. package/views/MainView.js.map +0 -1
  536. package/views/RegisterInformation.d.ts +0 -7
  537. package/views/RegisterInformation.js +0 -264
  538. package/views/RegisterInformation.js.map +0 -1
  539. package/views/RegisterItemGrid.d.ts +0 -25
  540. package/views/RegisterItemGrid.js +0 -276
  541. package/views/RegisterItemGrid.js.map +0 -1
  542. package/views/index.js +0 -166
  543. package/views/index.js.map +0 -1
  544. package/views/itemPathUtils.d.ts +0 -9
  545. package/views/itemPathUtils.js +0 -57
  546. package/views/itemPathUtils.js.map +0 -1
  547. package/views/util.d.ts +0 -12
  548. package/views/util.js +0 -49
  549. package/views/util.js.map +0 -1
  550. /package/{migrations → compiled/migrations}/initial.d.ts +0 -0
  551. /package/{migrations → compiled/migrations}/initial.js.map +0 -0
  552. /package/{types → compiled/types}/util.d.ts +0 -0
  553. /package/{types → compiled/types}/util.js.map +0 -0
  554. /package/{views → compiled/views}/FilterCriteria/criteriaGroupToSummary.d.ts +0 -0
  555. /package/{types/register.js → dependencies-local/extension-kit/i18n/types.js} +0 -0
  556. /package/{types/util.js → dependencies-local/extension-kit/types/binary-invocation.js} +0 -0
  557. /package/{types/views.js → dependencies-local/extension-kit/types/buffers.js} +0 -0
  558. /package/{migrations → dist/migrations}/initial.js +0 -0
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _react2 = require("@emotion/react");
11
+
12
+ var _core = require("@blueprintjs/core");
13
+
14
+ var _FilterCriteria = _interopRequireDefault(require("./FilterCriteria"));
15
+
16
+ var _CRITERIA_CONFIGURATION = require("./FilterCriteria/CRITERIA_CONFIGURATION");
17
+
18
+ var _criteriaGroupToQueryExpression = _interopRequireDefault(require("./FilterCriteria/criteriaGroupToQueryExpression"));
19
+
20
+ var _BrowserCtx = require("./BrowserCtx");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ /** @jsx jsx */
29
+
30
+ /** @jsxFrag React.Fragment */
31
+ //import criteriaGroupToSummary from './FilterCriteria/criteriaGroupToSummary';
32
+ const SearchQuery = function ({
33
+ rootCriteria,
34
+ onCriteriaChange,
35
+ quickSearchString,
36
+ onQuickSearchStringChange,
37
+ availableClassIDs,
38
+ className
39
+ }) {
40
+ const {
41
+ itemClasses,
42
+ subregisters
43
+ } = (0, _react.useContext)(_BrowserCtx.BrowserCtx);
44
+ const [editingAdvanced, toggleEditingAdvanced] = (0, _react.useState)(false);
45
+ const classIDs = availableClassIDs ?? Object.keys(itemClasses);
46
+ const hasAdvancedQuery = rootCriteria.criteria.length > 0;
47
+
48
+ function makeDefaultCriteria() {
49
+ if (quickSearchString) {
50
+ return {
51
+ key: 'raw-substring',
52
+ query: _CRITERIA_CONFIGURATION.RAW_SUBSTRING.toQuery({
53
+ substring: quickSearchString
54
+ }, {
55
+ itemClasses,
56
+ subregisters
57
+ })
58
+ };
59
+ } else {
60
+ return {
61
+ key: 'custom',
62
+ query: _CRITERIA_CONFIGURATION.CUSTOM_CONDITION.toQuery({
63
+ customExpression: 'false'
64
+ }, {
65
+ itemClasses,
66
+ subregisters
67
+ })
68
+ };
69
+ }
70
+ }
71
+
72
+ return (0, _react2.jsx)(_core.ControlGroup, {
73
+ fill: true,
74
+ vertical: true,
75
+ className: className
76
+ }, (0, _react2.jsx)(_core.InputGroup, {
77
+ fill: true,
78
+ small: true,
79
+ disabled: !onQuickSearchStringChange || hasAdvancedQuery,
80
+ value: hasAdvancedQuery ? '' : quickSearchString,
81
+ leftIcon: "search",
82
+ placeholder: "Quick search",
83
+ title: !hasAdvancedQuery ? "Search for a substring occurring anywhere within serialized item data." : "Advanced query overrides quick search.",
84
+ css: (0, _react2.css)`width: 200px; ${quickSearchString !== '' && !hasAdvancedQuery ? 'input { font-weight: bold; }' : ''}`,
85
+ rightElement: (0, _react2.jsx)(_core.Button, {
86
+ disabled: !onQuickSearchStringChange || quickSearchString === '' || hasAdvancedQuery,
87
+ onClick: () => onQuickSearchStringChange === null || onQuickSearchStringChange === void 0 ? void 0 : onQuickSearchStringChange(''),
88
+ small: true,
89
+ minimal: true,
90
+ icon: "cross",
91
+ title: "Clear quick search"
92
+ }),
93
+ onChange: evt => onQuickSearchStringChange === null || onQuickSearchStringChange === void 0 ? void 0 : onQuickSearchStringChange(evt.currentTarget.value)
94
+ }), (0, _react2.jsx)(_core.ButtonGroup, {
95
+ fill: true
96
+ }, (0, _react2.jsx)(_core.Button, {
97
+ fill: true,
98
+ small: true,
99
+ title: "Edit advanced search query",
100
+ icon: 'filter',
101
+ onClick: !hasAdvancedQuery ? () => {
102
+ onCriteriaChange({
103
+ criteria: [makeDefaultCriteria()],
104
+ require: 'all'
105
+ });
106
+ toggleEditingAdvanced(true);
107
+ } : () => toggleEditingAdvanced(v => !v),
108
+ active: editingAdvanced && hasAdvancedQuery,
109
+ disabled: !hasAdvancedQuery && !onCriteriaChange,
110
+ rightIcon: rootCriteria.criteria.length > 0 ? (0, _react2.jsx)(_core.Tag, {
111
+ intent: "success",
112
+ round: true
113
+ }, "on") : (0, _react2.jsx)(_core.Tag, {
114
+ round: true
115
+ }, "off")
116
+ }, "Advanced")), hasAdvancedQuery && editingAdvanced ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_FilterCriteria.default, {
117
+ key: "tree",
118
+ criteria: rootCriteria,
119
+ onChange: onCriteriaChange,
120
+ itemClasses: itemClasses,
121
+ availableClassIDs: classIDs,
122
+ subregisters: subregisters,
123
+ css: (0, _react2.css)`max-height: 50vh; overflow-y: auto;`
124
+ }), (0, _react2.jsx)("div", {
125
+ key: "query",
126
+ css: (0, _react2.css)`
127
+ margin-top: 5px;
128
+ padding: 0 10px 10px 10px;
129
+ color: ${_core.Colors.GRAY3};
130
+ font-size: 90%;
131
+ overflow-wrap: break-word;
132
+ `
133
+ }, "Query used: ", (0, _react2.jsx)("code", null, (0, _criteriaGroupToQueryExpression.default)(rootCriteria)))) : null);
134
+ };
135
+
136
+ var _default = SearchQuery;
137
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchQuery.js","sourceRoot":"","sources":["../../src/views/SearchQuery.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE1F,OAAO,8BAA8B,MAAM,iDAAiD,CAAC;AAC7F,+EAA+E;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,MAAM,WAAW,GASZ,UAAU,EACb,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,SAAS,GACV;IACG,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAE7D,MAAM,CAAE,eAAe,EAAE,qBAAqB,CAAE,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAG,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE/D,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1D,SAAS,mBAAmB;QAC1B,IAAI,iBAAiB,EAAE;YACrB,OAAO;gBACL,GAAG,EAAE,eAAe;gBACpB,KAAK,EAAE,aAAa,CAAC,OAAO,CAC1B,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAChC,EAAE,WAAW,EAAE,YAAY,EAAE,CAC9B;aACF,CAAA;SACF;aAAM;YACL,OAAO;gBACL,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAC7B,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAC7B,EAAE,WAAW,EAAE,YAAY,EAAE,CAC9B;aACF,CAAA;SACF;IACH,CAAC;IAED,OAAO,CACL,IAAC,YAAY,IAAC,IAAI,QAAC,QAAQ,QAAC,SAAS,EAAE,SAAS;QAC9C,IAAC,UAAU,IACT,IAAI,QACJ,KAAK,QACL,QAAQ,EAAE,CAAC,yBAAyB,IAAI,gBAAgB,EACxD,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAChD,QAAQ,EAAC,QAAQ,EACjB,WAAW,EAAC,cAAc,EAC1B,KAAK,EAAE,CAAC,gBAAgB;gBACtB,CAAC,CAAC,wEAAwE;gBAC1E,CAAC,CAAC,wCAAwC,EAC5C,GAAG,EAAE,GAAG,CAAA,iBAAiB,iBAAiB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAC9G,YAAY,EAAE,IAAC,MAAM,IACnB,QAAQ,EAAE,CAAC,yBAAyB,IAAI,iBAAiB,KAAK,EAAE,IAAI,gBAAgB,EACpF,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAyB,EAAE,CAAC,EAAE,CAAC,EAC9C,KAAK,QACL,OAAO,QACP,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,oBAAoB,GAAG,EAC/B,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAI;QAC3E,IAAC,WAAW,IAAC,IAAI;YACf,IAAC,MAAM,IACL,IAAI,QACJ,KAAK,QACL,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,CAAC,gBAAgB;oBACxB,CAAC,CAAC,CAAC,GAAG,EAAE;wBACJ,gBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;wBACzE,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC,CAAC;oBACJ,CAAC,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACxC,MAAM,EAAE,eAAe,IAAI,gBAAgB,EAC3C,QAAQ,EAAE,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAChD,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACzC,CAAC,CAAC,IAAC,GAAG,IAAC,MAAM,EAAC,SAAS,EAAC,KAAK,eAAS;oBACtC,CAAC,CAAC,IAAC,GAAG,IAAC,KAAK,gBAAU,eAEjB,CACG;QACb,gBAAgB,IAAI,eAAe;YAClC,CAAC,CAAC;gBACE,IAAC,YAAY,IACX,GAAG,EAAC,MAAM,EACV,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,QAAQ,EAC3B,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,GAAG,CAAA,qCAAqC,GAAI;gBACnD,aACI,GAAG,EAAC,OAAO,EACX,GAAG,EAAE,GAAG,CAAA;;;6BAGG,MAAM,CAAC,KAAK;;;mBAGtB;;oBACS,kBAAO,8BAA8B,CAAC,YAAY,CAAC,CAAQ,CACnE,CACL;YACL,CAAC,CAAC,IAAI,CACK,CAChB,CAAC;AACJ,CAAC,CAAC;AAEJ,eAAe,WAAW,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useState, useContext } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport { Button, ControlGroup, Colors, InputGroup, Tag, ButtonGroup } from '@blueprintjs/core';\nimport CriteriaTree from './FilterCriteria';\nimport { CUSTOM_CONDITION, RAW_SUBSTRING } from './FilterCriteria/CRITERIA_CONFIGURATION';\nimport { CriteriaGroup, Criterion } from './FilterCriteria/models';\nimport criteriaGroupToQueryExpression from './FilterCriteria/criteriaGroupToQueryExpression';\n//import criteriaGroupToSummary from './FilterCriteria/criteriaGroupToSummary';\nimport { BrowserCtx } from './BrowserCtx';\n\n\n\nconst SearchQuery: React.FC<{\n rootCriteria: CriteriaGroup;\n onCriteriaChange?: (rootCriteria: CriteriaGroup) => void;\n\n quickSearchString: string;\n onQuickSearchStringChange?: (searchString: string) => void;\n\n availableClassIDs?: string[];\n className?: string;\n}> = function ({\n rootCriteria,\n onCriteriaChange,\n quickSearchString,\n onQuickSearchStringChange,\n availableClassIDs,\n className,\n}) {\n const { itemClasses, subregisters } = useContext(BrowserCtx);\n\n const [ editingAdvanced, toggleEditingAdvanced ] = useState<boolean>(false);\n\n const classIDs = availableClassIDs ?? Object.keys(itemClasses);\n\n const hasAdvancedQuery = rootCriteria.criteria.length > 0;\n\n function makeDefaultCriteria(): Criterion {\n if (quickSearchString) {\n return {\n key: 'raw-substring',\n query: RAW_SUBSTRING.toQuery(\n { substring: quickSearchString },\n { itemClasses, subregisters },\n ),\n }\n } else {\n return {\n key: 'custom',\n query: CUSTOM_CONDITION.toQuery(\n { customExpression: 'false' },\n { itemClasses, subregisters },\n ),\n }\n }\n }\n\n return (\n <ControlGroup fill vertical className={className}>\n <InputGroup\n fill\n small\n disabled={!onQuickSearchStringChange || hasAdvancedQuery}\n value={hasAdvancedQuery ? '' : quickSearchString}\n leftIcon=\"search\"\n placeholder=\"Quick search\"\n title={!hasAdvancedQuery\n ? \"Search for a substring occurring anywhere within serialized item data.\"\n : \"Advanced query overrides quick search.\"}\n css={css`width: 200px; ${quickSearchString !== '' && !hasAdvancedQuery ? 'input { font-weight: bold; }' : ''}`}\n rightElement={<Button\n disabled={!onQuickSearchStringChange || quickSearchString === '' || hasAdvancedQuery}\n onClick={() => onQuickSearchStringChange?.('')}\n small\n minimal\n icon=\"cross\"\n title=\"Clear quick search\" />}\n onChange={evt => onQuickSearchStringChange?.(evt.currentTarget.value)} />\n <ButtonGroup fill>\n <Button\n fill\n small\n title=\"Edit advanced search query\"\n icon='filter'\n onClick={!hasAdvancedQuery\n ? (() => {\n onCriteriaChange!({ criteria: [makeDefaultCriteria()], require: 'all' });\n toggleEditingAdvanced(true);\n })\n : () => toggleEditingAdvanced(v => !v)}\n active={editingAdvanced && hasAdvancedQuery}\n disabled={!hasAdvancedQuery && !onCriteriaChange}\n rightIcon={rootCriteria.criteria.length > 0\n ? <Tag intent=\"success\" round>on</Tag>\n : <Tag round>off</Tag>}>\n Advanced\n </Button>\n </ButtonGroup>\n {hasAdvancedQuery && editingAdvanced\n ? <>\n <CriteriaTree\n key=\"tree\"\n criteria={rootCriteria}\n onChange={onCriteriaChange}\n itemClasses={itemClasses}\n availableClassIDs={classIDs}\n subregisters={subregisters}\n css={css`max-height: 50vh; overflow-y: auto;`} />\n <div\n key=\"query\"\n css={css`\n margin-top: 5px;\n padding: 0 10px 10px 10px;\n color: ${Colors.GRAY3};\n font-size: 90%;\n overflow-wrap: break-word;\n `}>\n Query used: <code>{criteriaGroupToQueryExpression(rootCriteria)}</code>\n </div>\n </>\n : null}\n </ControlGroup>\n );\n };\n\nexport default SearchQuery;\n"]}
@@ -0,0 +1,20 @@
1
+ /** @jsx jsx */
2
+ /** @jsxFrag React.Fragment */
3
+ import React from 'react';
4
+ import { type SomeCR as CR } from '../../types/cr';
5
+ export interface ChangeRequestContextSpec {
6
+ /**
7
+ * Change request object, undefined if not available/loading,
8
+ * null if not expected (i.e. changeRequestID is not given).
9
+ */
10
+ changeRequest?: CR | null;
11
+ /**
12
+ * Current user can edit the contents of this CR.
13
+ * Always false if `changeRequest` is not defined or `null`.
14
+ */
15
+ canEdit: boolean;
16
+ }
17
+ export declare const ChangeRequestContext: React.Context<ChangeRequestContextSpec>;
18
+ export declare const ChangeRequestContextProvider: React.FC<{
19
+ changeRequestID: string | null;
20
+ }>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ChangeRequestContextProvider = exports.ChangeRequestContext = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _react2 = _interopRequireWildcard(require("react"));
11
+
12
+ var _context = require("@riboseinc/paneron-extension-kit/context");
13
+
14
+ var _cr = require("../../types/cr");
15
+
16
+ var _BrowserCtx = require("../BrowserCtx");
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ /** @jsx jsx */
23
+
24
+ /** @jsxFrag React.Fragment */
25
+ const ChangeRequestContext = _react2.default.createContext({
26
+ changeRequest: null,
27
+ canEdit: false
28
+ });
29
+
30
+ exports.ChangeRequestContext = ChangeRequestContext;
31
+
32
+ const ChangeRequestContextProvider = function ({
33
+ changeRequestID,
34
+ children
35
+ }) {
36
+ var _useObjectData$value;
37
+
38
+ const {
39
+ useObjectData
40
+ } = (0, _react2.useContext)(_context.DatasetContext);
41
+ const {
42
+ stakeholder
43
+ } = (0, _react2.useContext)(_BrowserCtx.BrowserCtx);
44
+ const crPath = changeRequestID ? `/proposals/${changeRequestID}/main.yaml` : null;
45
+ const changeRequest = ((_useObjectData$value = useObjectData({
46
+ objectPaths: crPath ? [crPath] : []
47
+ }).value) === null || _useObjectData$value === void 0 ? void 0 : _useObjectData$value.data[crPath ?? '']) ?? (crPath ? undefined : null);
48
+ return (0, _react.jsx)(ChangeRequestContext.Provider, {
49
+ value: {
50
+ changeRequest,
51
+ canEdit: changeRequest && stakeholder && (0, _cr.canBeEditedBy)(stakeholder, changeRequest) ? true : false
52
+ }
53
+ }, children);
54
+ };
55
+
56
+ exports.ChangeRequestContextProvider = ChangeRequestContextProvider;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangeRequestContext.js","sourceRoot":"","sources":["../../../src/views/change-request/ChangeRequestContext.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAqB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiB3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAA2B;IAChF,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,KAAK;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAEpC,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE;IAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAErD,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,eAAe;QAC5B,CAAC,CAAC,cAAc,eAAe,YAAY;QAC3C,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,aAAa,GAAG,aAAa,CAAC;QAClC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;KACpC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAElE,OAAO,CACL,IAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE;YACpC,aAAa;YACb,OAAO,EACL,aAAa;mBACV,WAAW;mBACX,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC;gBAC1C,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,KAAK;SACZ,IACE,QAAQ,CACqB,CACjC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport { jsx } from '@emotion/react';\nimport React, { useContext } from 'react';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport { type SomeCR as CR, canBeEditedBy } from '../../types/cr';\nimport { BrowserCtx } from '../BrowserCtx';\n\n\nexport interface ChangeRequestContextSpec {\n /**\n * Change request object, undefined if not available/loading,\n * null if not expected (i.e. changeRequestID is not given).\n */\n changeRequest?: CR | null\n\n /**\n * Current user can edit the contents of this CR.\n * Always false if `changeRequest` is not defined or `null`.\n */\n canEdit: boolean\n}\n\nexport const ChangeRequestContext = React.createContext<ChangeRequestContextSpec>({\n changeRequest: null,\n canEdit: false,\n});\n\nexport const ChangeRequestContextProvider: React.FC<{\n changeRequestID: string | null\n}> = function ({ changeRequestID, children }) {\n const { useObjectData } = useContext(DatasetContext);\n\n const { stakeholder } = useContext(BrowserCtx);\n\n const crPath = changeRequestID\n ? `/proposals/${changeRequestID}/main.yaml`\n : null;\n\n const changeRequest = useObjectData({\n objectPaths: crPath ? [crPath] : [],\n }).value?.data[crPath ?? ''] as CR ?? (crPath ? undefined : null);\n\n return (\n <ChangeRequestContext.Provider value={{\n changeRequest,\n canEdit:\n changeRequest\n && stakeholder\n && canBeEditedBy(stakeholder, changeRequest)\n ? true\n : false,\n }}>\n {children}\n </ChangeRequestContext.Provider>\n );\n};\n"]}
@@ -0,0 +1,21 @@
1
+ /** @jsx jsx */
2
+ /** @jsxFrag React.Fragment */
3
+ import React from 'react';
4
+ import type { ChangeProposal, Clarification, InternalItemReference, Payload } from '../../types';
5
+ import type { Drafted } from '../../types/cr';
6
+ declare const Proposals: React.FC<{
7
+ proposals: Drafted['items'];
8
+ className?: string;
9
+ }>;
10
+ interface ProposalProps<P extends ChangeProposal> {
11
+ proposal: P;
12
+ showDiff?: boolean;
13
+ showOnlyChanged?: boolean;
14
+ itemRef: InternalItemReference;
15
+ itemData: Payload;
16
+ itemDataBefore: P extends Clarification ? Payload : undefined;
17
+ onChange?: (newProposal: P) => void;
18
+ }
19
+ export declare const ProposalDetail: React.FC<ProposalProps<ChangeProposal>>;
20
+ export declare const ProposalSummary: React.FC<ProposalProps<ChangeProposal>>;
21
+ export default Proposals;
@@ -0,0 +1,331 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.ProposalSummary = exports.ProposalDetail = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _react2 = require("@emotion/react");
11
+
12
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
13
+
14
+ var _core = require("@blueprintjs/core");
15
+
16
+ var _select = require("@blueprintjs/select");
17
+
18
+ var _HelpTooltip = _interopRequireDefault(require("@riboseinc/paneron-extension-kit/widgets/HelpTooltip"));
19
+
20
+ var _protocolRegistry = require("../protocolRegistry");
21
+
22
+ var _BrowserCtx = require("../BrowserCtx");
23
+
24
+ var _itemPathUtils = require("../itemPathUtils");
25
+
26
+ var _StructuredDiff = _interopRequireDefault(require("../diffing/StructuredDiff"));
27
+
28
+ var _RegisterItem = _interopRequireDefault(require("../detail/RegisterItem"));
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
32
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
+
34
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
36
+ /** @jsx jsx */
37
+
38
+ /** @jsxFrag React.Fragment */
39
+ const Proposals = function ({
40
+ proposals,
41
+ className
42
+ }) {
43
+ const [_selectedProposal, selectProposal] = (0, _react.useState)(null);
44
+ const [showDiff, setShowDiff] = (0, _react.useState)(false);
45
+ const [showOnlyChanged, setShowOnlyChanged] = (0, _react.useState)(true);
46
+ const outerBrowserCtx = (0, _react.useContext)(_BrowserCtx.BrowserCtx);
47
+ const {
48
+ jumpTo,
49
+ subregisters,
50
+ useRegisterItemData
51
+ } = outerBrowserCtx;
52
+ const proposalBrowserCtx = { ...outerBrowserCtx,
53
+ jumpTo: handleCRJump
54
+ };
55
+ /**
56
+ * When jumping to an item affected by current CR,
57
+ * jump in-CR instead of spawning tab.
58
+ */
59
+
60
+ function handleCRJump(uri) {
61
+ if (uri.startsWith(_protocolRegistry.Protocols.ITEM_DETAILS)) {
62
+ const itemPath = uri.split(':')[1];
63
+
64
+ if (proposals[itemPath]) {
65
+ selectProposal(itemPath);
66
+ } else {
67
+ jumpTo === null || jumpTo === void 0 ? void 0 : jumpTo(uri);
68
+ }
69
+ }
70
+ }
71
+
72
+ const firstProposal = Object.keys(proposals)[0]; // Effective selected proposal
73
+
74
+ const selectedProposal = (_selectedProposal && proposals[_selectedProposal] ? _selectedProposal : null) ?? firstProposal ?? undefined; // Force select available proposal
75
+
76
+ (0, _react.useEffect)(() => {
77
+ if (firstProposal && (_selectedProposal === null || !proposals[_selectedProposal])) {
78
+ selectProposal(firstProposal);
79
+ }
80
+ }, [firstProposal, _selectedProposal, JSON.stringify(proposals)]);
81
+ const selectedItemRef = selectedProposal ? (0, _itemPathUtils.itemPathToItemRef)(subregisters !== undefined, selectedProposal) : null; // Data for proposed items
82
+
83
+ const proposedItemPaths = Object.entries(proposals).map(([itemPath, proposal]) => {
84
+ if (proposal.type === 'clarification' || proposal.type === 'addition') {
85
+ return itemPath;
86
+ } else {
87
+ return undefined;
88
+ }
89
+ }).filter(s => s !== undefined);
90
+ const proposedItemDataReq = useRegisterItemData({
91
+ itemPaths: proposedItemPaths
92
+ }); // Data for pre-existing items
93
+
94
+ const currentItemDataReq = useRegisterItemData({
95
+ itemPaths: Object.keys(proposals),
96
+ ignoreActiveCR: true
97
+ });
98
+
99
+ const getCurrentItemData = itemPath => {
100
+ var _currentItemDataReq$v;
101
+
102
+ return ((_currentItemDataReq$v = currentItemDataReq.value[itemPath]) === null || _currentItemDataReq$v === void 0 ? void 0 : _currentItemDataReq$v.data) ?? null;
103
+ };
104
+
105
+ const getProposedItemData = itemPath => {
106
+ var _proposedItemDataReq$;
107
+
108
+ return ((_proposedItemDataReq$ = proposedItemDataReq.value[itemPath]) === null || _proposedItemDataReq$ === void 0 ? void 0 : _proposedItemDataReq$.data) ?? null;
109
+ };
110
+
111
+ const selectedItemCurrentData = getCurrentItemData(selectedProposal);
112
+ const selectedItemProposedData = getProposedItemData(selectedProposal);
113
+
114
+ if (selectedProposal && selectedItemRef && proposals[selectedProposal] && !currentItemDataReq.isUpdating && !proposedItemDataReq.isUpdating) {
115
+ if (selectedItemCurrentData || selectedItemProposedData) {
116
+ var _proposals$selectedPr;
117
+
118
+ const selectedItemSummary = (0, _react2.jsx)(ProposalSummary, {
119
+ itemRef: selectedItemRef,
120
+ itemData: selectedItemProposedData ?? selectedItemCurrentData,
121
+ itemDataBefore: selectedItemCurrentData ?? undefined,
122
+ proposal: proposals[selectedProposal]
123
+ });
124
+ return (0, _react2.jsx)("div", {
125
+ css: (0, _react2.css)`display: flex; flex-flow: column nowrap;`,
126
+ className: className
127
+ }, (0, _react2.jsx)("div", null, (0, _react2.jsx)(_core.ControlGroup, null, (0, _react2.jsx)(_core.Switch, {
128
+ checked: showDiff,
129
+ onChange: evt => setShowDiff(evt.currentTarget.checked),
130
+ label: "View source",
131
+ css: (0, _react2.css)`margin-right: 1em !important`
132
+ }), (0, _react2.jsx)(_core.Switch, {
133
+ checked: showDiff && showOnlyChanged,
134
+ disabled: !showDiff,
135
+ onChange: evt => setShowOnlyChanged(evt.currentTarget.checked),
136
+ label: "Show clarified properties only"
137
+ })), (0, _react2.jsx)(_core.ButtonGroup, null, (0, _react2.jsx)(_core.Button, {
138
+ disabled: !jumpTo || ((_proposals$selectedPr = proposals[selectedProposal]) === null || _proposals$selectedPr === void 0 ? void 0 : _proposals$selectedPr.type) === 'addition',
139
+ icon: 'locate',
140
+ onClick: () => jumpTo === null || jumpTo === void 0 ? void 0 : jumpTo(`${_protocolRegistry.Protocols.ITEM_DETAILS}:${selectedProposal}`),
141
+ title: "Open selected item in a new tab (not applicable to proposed additions)"
142
+ }, "Reveal in registry"), Object.keys(proposals).length > 1 ? (0, _react2.jsx)(_select.Select2, {
143
+ filterable: false,
144
+ itemsEqual: (i1, i2) => JSON.stringify(i1) === JSON.stringify(i2),
145
+ activeItem: {
146
+ itemPath: selectedProposal,
147
+ proposal: proposals[selectedProposal],
148
+ itemData: selectedItemProposedData ?? selectedItemCurrentData,
149
+ itemDataBefore: selectedItemCurrentData ?? undefined,
150
+ itemRef: (0, _itemPathUtils.itemPathToItemRef)(subregisters !== undefined, selectedProposal)
151
+ },
152
+ items: Object.entries(proposals).map(([itemPath, proposal]) => ({
153
+ itemPath,
154
+ proposal,
155
+ itemData: getProposedItemData(itemPath) ?? getCurrentItemData(itemPath) ?? null,
156
+ itemDataBefore: undefined,
157
+ itemRef: (0, _itemPathUtils.itemPathToItemRef)(subregisters !== undefined, itemPath)
158
+ })).filter(item => item.itemData !== null),
159
+ popoverProps: {
160
+ minimal: true
161
+ },
162
+ fill: true,
163
+ itemRenderer: ChangeProposalItemView,
164
+ onItemSelect: item => selectProposal(item.itemPath)
165
+ }, (0, _react2.jsx)(_core.Button, {
166
+ rightIcon: "chevron-down",
167
+ icon: getProposalIcon(proposals[selectedProposal])
168
+ }, selectedItemSummary)) : (0, _react2.jsx)(_core.Button, {
169
+ fill: true,
170
+ alignText: "left",
171
+ icon: getProposalIcon(proposals[selectedProposal]),
172
+ rightIcon: "chevron-down"
173
+ }, selectedItemSummary))), (0, _react2.jsx)("div", {
174
+ css: (0, _react2.css)`position: relative; flex: 1;`
175
+ }, (0, _react2.jsx)(_BrowserCtx.BrowserCtx.Provider, {
176
+ value: proposalBrowserCtx
177
+ }, (0, _react2.jsx)(ProposalDetail, {
178
+ itemRef: selectedItemRef,
179
+ showDiff: showDiff,
180
+ showOnlyChanged: showOnlyChanged,
181
+ itemData: selectedItemProposedData ?? selectedItemCurrentData,
182
+ itemDataBefore: selectedItemCurrentData ?? undefined,
183
+ proposal: proposals[selectedProposal]
184
+ }))));
185
+ } else {
186
+ return (0, _react2.jsx)(_core.NonIdealState, {
187
+ icon: 'warning-sign',
188
+ className: className,
189
+ title: "Unable to retrieve proposed item data",
190
+ description: (0, _react2.jsx)("div", {
191
+ css: (0, _react2.css)`text-align: left;`
192
+ }, "There appears to be a data integrity issue.", (0, _react2.jsx)("br", null), "This might be caused by a problem in the application, or repository contents having been edited outside of the application.", (0, _react2.jsx)("br", null), "The data should be recoverable by inspecting version control system commit history.")
193
+ });
194
+ }
195
+ } else {
196
+ return (0, _react2.jsx)(_core.NonIdealState, {
197
+ icon: 'clean',
198
+ className: className,
199
+ title: "Nothing is proposed here yet."
200
+ });
201
+ }
202
+ };
203
+
204
+ const ChangeProposalItemView = (item, {
205
+ handleClick,
206
+ modifiers,
207
+ query
208
+ }) => {
209
+ const proposalConfig = item.proposal.type === 'amendment' ? PROPOSAL_VIEWS[item.proposal.amendmentType] : PROPOSAL_VIEWS[item.proposal.type];
210
+ const ProposalTypeLabel = proposalConfig.summary;
211
+ return (0, _react2.jsx)(_core.MenuItem, {
212
+ active: modifiers.active,
213
+ disabled: modifiers.disabled,
214
+ labelElement: (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(ProposalTypeLabel, { ...item
215
+ }), " ", (0, _react2.jsx)(_HelpTooltip.default, {
216
+ content: (0, _react2.jsx)(_react.default.Fragment, null, "Proposed to be ", proposalConfig.hint)
217
+ })),
218
+ key: item.itemPath,
219
+ onClick: handleClick,
220
+ icon: getProposalIcon(item.proposal),
221
+ text: (0, _react2.jsx)(ProposalSummary, { ...item
222
+ })
223
+ });
224
+ };
225
+
226
+ const ProposalDetail = function ({
227
+ proposal,
228
+ showDiff,
229
+ showOnlyChanged,
230
+ itemRef,
231
+ itemData,
232
+ itemDataBefore,
233
+ onChange
234
+ }) {
235
+ const ItemView = _RegisterItem.default.main;
236
+ const view = showDiff ? (0, _react2.jsx)(MaximizedStructuredDiff, {
237
+ item1: itemDataBefore ?? {},
238
+ item2: itemData,
239
+ showUnchanged: !showOnlyChanged,
240
+ css: (0, _react2.css)`background: white; border-radius: 2.5px; padding: 10px 0; margin: 10px 0;`,
241
+ className: _core.Classes.ELEVATION_2
242
+ }) : (0, _react2.jsx)(ItemView, {
243
+ uri: (0, _itemPathUtils.itemRefToItemPath)(itemRef),
244
+ key: JSON.stringify(itemRef)
245
+ });
246
+ return (0, _react2.jsx)("div", {
247
+ css: (0, _react2.css)`position: absolute; inset: 0; display: flex; flex-flow: column;`
248
+ }, view);
249
+ };
250
+
251
+ exports.ProposalDetail = ProposalDetail;
252
+
253
+ const ProposalSummary = function ({
254
+ proposal,
255
+ itemRef,
256
+ itemData,
257
+ itemDataBefore,
258
+ onChange
259
+ }) {
260
+ const {
261
+ itemClasses
262
+ } = (0, _react.useContext)(_BrowserCtx.BrowserCtx);
263
+ const {
264
+ classID
265
+ } = itemRef;
266
+ const ListItemView = itemClasses[classID].views.listItemView;
267
+ return (0, _react2.jsx)(ListItemView, {
268
+ itemRef: itemRef,
269
+ itemData: itemData
270
+ });
271
+ };
272
+
273
+ exports.ProposalSummary = ProposalSummary;
274
+ const clarification = {
275
+ hint: (0, _react2.jsx)(_react.default.Fragment, null, "altered to represent the same concept more clearly."),
276
+ summary: ({
277
+ proposal,
278
+ itemData,
279
+ itemRef
280
+ }) => (0, _react2.jsx)(_react.default.Fragment, null, "Clarification")
281
+ };
282
+ const addition = {
283
+ hint: (0, _react2.jsx)(_react.default.Fragment, null, "added to this register."),
284
+ summary: ({
285
+ proposal,
286
+ itemData,
287
+ itemRef
288
+ }) => (0, _react2.jsx)(_react.default.Fragment, null, "Addition")
289
+ };
290
+ const retirement = {
291
+ hint: (0, _react2.jsx)(_react.default.Fragment, null, "marked as no longer current. (Note that this register is append-only, so the item cannot be removed altogether.)"),
292
+ summary: ({
293
+ proposal,
294
+ itemRef,
295
+ itemData
296
+ }) => (0, _react2.jsx)(_react.default.Fragment, null, "Retirement")
297
+ };
298
+ const supersession = {
299
+ hint: (0, _react2.jsx)(_react.default.Fragment, null, "removed from the register with another item recommended for use in its place. A relation between the superseding and superseded item will be created, though the exact semantics of that relation depend on the register."),
300
+ summary: ({
301
+ proposal,
302
+ itemRef,
303
+ itemData
304
+ }) => (0, _react2.jsx)(_react.default.Fragment, null, "Supersession")
305
+ };
306
+ const invalidation = {
307
+ hint: (0, _react2.jsx)(_react.default.Fragment, null, "marked as invalid. The exact semantics of invalidation depend on the register."),
308
+ summary: ({
309
+ proposal,
310
+ itemRef,
311
+ itemData
312
+ }) => (0, _react2.jsx)(_react.default.Fragment, null, "Invalidation")
313
+ };
314
+ const MaximizedStructuredDiff = (0, _styled.default)(_StructuredDiff.default)`
315
+ position: absolute;
316
+ inset: 0;
317
+ `;
318
+ const PROPOSAL_VIEWS = {
319
+ clarification,
320
+ addition,
321
+ retirement,
322
+ supersession,
323
+ invalidation
324
+ };
325
+
326
+ function getProposalIcon(proposal) {
327
+ return proposal.type === 'addition' ? 'add' : proposal.type === 'clarification' ? 'edit' : 'ban-circle';
328
+ }
329
+
330
+ var _default = Proposals;
331
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Proposals.js","sourceRoot":"","sources":["../../../src/views/change-request/Proposals.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useContext, useEffect, useState } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n ControlGroup,\n ButtonGroup,\n Switch,\n Button,\n Classes,\n MenuItem,\n NonIdealState,\n IconName,\n} from '@blueprintjs/core';\nimport { ItemRenderer, Select2 as Select } from '@blueprintjs/select';\nimport HelpTooltip from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';\nimport type {\n Addition,\n ChangeProposal,\n Clarification,\n InternalItemReference,\n Retirement,\n Supersession,\n Invalidation,\n Payload,\n} from '../../types';\nimport type { Drafted } from '../../types/cr';\nimport { Protocols, type Protocol } from '../protocolRegistry';\nimport { PROPOSAL_TYPES, AMENDMENT_TYPES } from '../../types/proposal';\nimport { BrowserCtx, type BrowserCtx as BrowserCtxType } from '../BrowserCtx';\nimport { itemPathToItemRef, itemRefToItemPath } from '../itemPathUtils';\nimport StructuredDiff from '../diffing/StructuredDiff';\nimport registerItemDetailView from '../detail/RegisterItem';\n\n\ninterface ChangeProposalItem {\n itemPath: string\n itemRef: InternalItemReference\n proposal: ChangeProposal\n itemData: Payload\n itemDataBefore: Payload | undefined\n}\n\n\nconst Proposals: React.FC<{\n proposals: Drafted['items']\n className?: string\n}> = function ({ proposals, className }) {\n const [ _selectedProposal, selectProposal ] = useState<string | null>(null);\n const [ showDiff, setShowDiff ] = useState(false);\n const [ showOnlyChanged, setShowOnlyChanged ] = useState(true);\n\n const outerBrowserCtx = useContext(BrowserCtx);\n const { jumpTo, subregisters, useRegisterItemData } = outerBrowserCtx;\n const proposalBrowserCtx: BrowserCtxType = {\n ...outerBrowserCtx,\n jumpTo: handleCRJump,\n };\n\n /**\n * When jumping to an item affected by current CR,\n * jump in-CR instead of spawning tab.\n */\n function handleCRJump(uri: `${Protocol}:${string}`): void {\n if (uri.startsWith(Protocols.ITEM_DETAILS)) {\n const itemPath = uri.split(':')[1];\n if (proposals[itemPath]) {\n selectProposal(itemPath);\n } else {\n jumpTo?.(uri);\n }\n }\n }\n\n const firstProposal: string | undefined = Object.keys(proposals)[0];\n\n // Effective selected proposal\n const selectedProposal: string | undefined =\n ((_selectedProposal && proposals[_selectedProposal]) ? _selectedProposal : null)\n ?? firstProposal\n ?? undefined;\n\n // Force select available proposal\n useEffect(() => {\n if (firstProposal && (_selectedProposal === null || !proposals[_selectedProposal])) {\n selectProposal(firstProposal);\n }\n }, [firstProposal, _selectedProposal, JSON.stringify(proposals)]);\n\n const selectedItemRef = selectedProposal\n ? itemPathToItemRef(subregisters !== undefined, selectedProposal)\n : null;\n\n\n // Data for proposed items\n const proposedItemPaths = Object.entries(proposals).map(([itemPath, proposal]) => {\n if (proposal.type === 'clarification' || proposal.type === 'addition') {\n return itemPath;\n } else {\n return undefined;\n }\n }).filter(s => s !== undefined) as string[];\n const proposedItemDataReq = useRegisterItemData({\n itemPaths: proposedItemPaths,\n });\n\n // Data for pre-existing items\n const currentItemDataReq = useRegisterItemData({\n itemPaths: Object.keys(proposals),\n ignoreActiveCR: true,\n });\n\n const getCurrentItemData = (itemPath: string) => currentItemDataReq.value[itemPath]?.data ?? null;\n const getProposedItemData = (itemPath: string) => proposedItemDataReq.value[itemPath]?.data ?? null;\n\n const selectedItemCurrentData = getCurrentItemData(selectedProposal);\n const selectedItemProposedData = getProposedItemData(selectedProposal);\n\n if (\n selectedProposal\n && selectedItemRef\n && proposals[selectedProposal]\n && !currentItemDataReq.isUpdating\n && !proposedItemDataReq.isUpdating\n ) {\n if (selectedItemCurrentData || selectedItemProposedData) {\n const selectedItemSummary = <ProposalSummary\n itemRef={selectedItemRef}\n itemData={(selectedItemProposedData ?? selectedItemCurrentData)!}\n itemDataBefore={selectedItemCurrentData ?? undefined}\n proposal={proposals[selectedProposal]}\n />\n\n return (\n <div css={css`display: flex; flex-flow: column nowrap;`} className={className}>\n <div>\n <ControlGroup>\n <Switch\n checked={showDiff}\n onChange={evt => setShowDiff(evt.currentTarget.checked)}\n label=\"View source\"\n css={css`margin-right: 1em !important`}\n />\n <Switch\n checked={showDiff && showOnlyChanged}\n disabled={!showDiff}\n onChange={evt => setShowOnlyChanged(evt.currentTarget.checked)}\n label=\"Show clarified properties only\"\n />\n </ControlGroup>\n <ButtonGroup>\n <Button\n disabled={!jumpTo || proposals[selectedProposal]?.type === 'addition'}\n icon='locate'\n onClick={() => jumpTo?.(`${Protocols.ITEM_DETAILS}:${selectedProposal}`)}\n title=\"Open selected item in a new tab (not applicable to proposed additions)\">\n Reveal in registry\n </Button>\n {Object.keys(proposals).length > 1\n ? <Select<ChangeProposalItem>\n filterable={false}\n itemsEqual={(i1, i2) => JSON.stringify(i1) === JSON.stringify(i2)}\n activeItem={{\n itemPath: selectedProposal,\n proposal: proposals[selectedProposal],\n itemData: (selectedItemProposedData ?? selectedItemCurrentData)!,\n itemDataBefore: selectedItemCurrentData ?? undefined,\n itemRef: itemPathToItemRef(subregisters !== undefined, selectedProposal),\n }} // TODO: First time selection is broken\n items={\n Object.entries(proposals).map(([itemPath, proposal]) => ({\n itemPath,\n proposal,\n itemData: (getProposedItemData(itemPath) ?? getCurrentItemData(itemPath))! ?? null,\n itemDataBefore: undefined,\n itemRef: itemPathToItemRef(subregisters !== undefined, itemPath),\n })).filter(item => item.itemData !== null)}\n popoverProps={{ minimal: true }}\n fill\n itemRenderer={ChangeProposalItemView}\n onItemSelect={(item) => selectProposal(item.itemPath)}>\n <Button rightIcon=\"chevron-down\" icon={getProposalIcon(proposals[selectedProposal])}>\n {selectedItemSummary}\n </Button>\n </Select>\n : <Button\n fill\n alignText=\"left\"\n icon={getProposalIcon(proposals[selectedProposal])}\n rightIcon=\"chevron-down\">\n {selectedItemSummary}\n </Button>}\n </ButtonGroup>\n </div>\n <div css={css`position: relative; flex: 1;`}>\n <BrowserCtx.Provider value={proposalBrowserCtx}>\n <ProposalDetail\n itemRef={selectedItemRef}\n showDiff={showDiff}\n showOnlyChanged={showOnlyChanged}\n itemData={(selectedItemProposedData ?? selectedItemCurrentData)!}\n itemDataBefore={selectedItemCurrentData ?? undefined}\n proposal={proposals[selectedProposal]}\n />\n </BrowserCtx.Provider>\n </div>\n </div>\n );\n } else {\n return <NonIdealState\n icon='warning-sign'\n className={className}\n title=\"Unable to retrieve proposed item data\"\n description={<div css={css`text-align: left;`}>\n There appears to be a data integrity issue.\n <br />\n This might be caused by a problem in the application, or repository contents having been edited outside of the application.\n <br />\n The data should be recoverable by inspecting version control system commit history.\n </div>}\n />;\n }\n } else {\n return <NonIdealState\n icon='clean'\n className={className}\n title=\"Nothing is proposed here yet.\"\n />;\n }\n};\n\n\nconst ChangeProposalItemView: ItemRenderer<ChangeProposalItem> =\n(item, { handleClick, modifiers, query }) => {\n const proposalConfig = \n item.proposal.type === 'amendment'\n ? PROPOSAL_VIEWS[item.proposal.amendmentType]\n : PROPOSAL_VIEWS[item.proposal.type];\n const ProposalTypeLabel: React.FC<ProposalProps<any>> = proposalConfig.summary;\n return (\n <MenuItem\n active={modifiers.active}\n disabled={modifiers.disabled}\n labelElement={<>\n <ProposalTypeLabel {...item} />\n {\" \"}\n <HelpTooltip content={<>Proposed to be {proposalConfig.hint}</>} />\n </>}\n key={item.itemPath}\n onClick={handleClick}\n icon={getProposalIcon(item.proposal)}\n text={<ProposalSummary {...item} />} />\n );\n}\n\n\ninterface ProposalProps<P extends ChangeProposal> {\n proposal: P\n showDiff?: boolean\n showOnlyChanged?: boolean\n itemRef: InternalItemReference\n itemData: Payload\n itemDataBefore: P extends Clarification ? Payload : undefined\n onChange?: (newProposal: P) => void\n}\nexport const ProposalDetail: React.FC<ProposalProps<ChangeProposal>> =\nfunction ({ proposal, showDiff, showOnlyChanged, itemRef, itemData, itemDataBefore, onChange }) {\n const ItemView = registerItemDetailView.main;\n\n const view: JSX.Element = showDiff\n ? <MaximizedStructuredDiff\n item1={itemDataBefore ?? {}}\n item2={itemData}\n showUnchanged={!showOnlyChanged}\n css={css`background: white; border-radius: 2.5px; padding: 10px 0; margin: 10px 0;`}\n className={Classes.ELEVATION_2}\n />\n : <ItemView uri={itemRefToItemPath(itemRef)} key={JSON.stringify(itemRef)} />\n\n return <div css={css`position: absolute; inset: 0; display: flex; flex-flow: column;`}>\n {view}\n </div>;\n};\nexport const ProposalSummary: React.FC<ProposalProps<ChangeProposal>> =\nfunction ({ proposal, itemRef, itemData, itemDataBefore, onChange }) {\n const { itemClasses } = useContext(BrowserCtx);\n const { classID } = itemRef;\n const ListItemView = itemClasses[classID].views.listItemView;\n\n return <ListItemView\n itemRef={itemRef}\n itemData={itemData}\n />;\n};\n\n\ninterface ProposalViewConfig<P extends ChangeProposal> {\n summary: React.FC<ProposalProps<P>>\n hint: JSX.Element | string\n}\n\n\nconst clarification: ProposalViewConfig<Clarification> = {\n hint: <>\n altered to represent the same concept more clearly.\n </>,\n summary: ({ proposal, itemData, itemRef }) => <>Clarification</>,\n};\n\n\nconst addition: ProposalViewConfig<Addition> = {\n hint: <>added to this register.</>,\n summary: ({ proposal, itemData, itemRef }) => <>Addition</>,\n};\n\n\nconst retirement: ProposalViewConfig<Retirement> = {\n hint: <>\n marked as no longer current.\n (Note that this register is append-only, so the item cannot be removed altogether.)\n </>,\n summary: ({ proposal, itemRef, itemData }) => <>Retirement</>,\n};\n\n\nconst supersession: ProposalViewConfig<Supersession> = {\n hint: <>\n removed from the register with another item recommended for use in its place.\n A relation between the superseding and superseded item will be created,\n though the exact semantics of that relation depend on the register.\n </>,\n summary: ({ proposal, itemRef, itemData }) => <>Supersession</>,\n};\n\n\nconst invalidation: ProposalViewConfig<Invalidation> = {\n hint: <>\n marked as invalid. The exact semantics of invalidation depend on the register.\n </>,\n summary: ({ proposal, itemRef, itemData }) => <>Invalidation</>,\n}\n\n\nconst MaximizedStructuredDiff = styled(StructuredDiff)`\n position: absolute;\n inset: 0;\n`;\n\n\ntype ProposalOrAmendmentType =\n | Exclude<typeof PROPOSAL_TYPES[number], 'amendment'>\n | typeof AMENDMENT_TYPES[number];\n\n\nconst PROPOSAL_VIEWS: { [type in ProposalOrAmendmentType]: ProposalViewConfig<any> } = {\n clarification,\n addition,\n retirement,\n supersession,\n invalidation,\n};\n\n\nfunction getProposalIcon(proposal: ChangeProposal): IconName {\n return proposal.type === 'addition'\n ? 'add'\n : proposal.type === 'clarification'\n ? 'edit'\n : 'ban-circle'\n}\n\n\nexport default Proposals;\n"]}