@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.
- package/LICENSE +21 -0
- package/README.adoc +35 -0
- package/compiled/common.d.ts +1 -0
- package/compiled/common.js +2 -0
- package/{common.js.map → compiled/common.js.map} +1 -1
- package/{index.d.ts → compiled/index.d.ts} +3 -3
- package/compiled/index.js +21 -0
- package/compiled/index.js.map +1 -0
- package/compiled/migrations/initial.js +8 -0
- package/compiled/types/cr.d.ts +216 -0
- package/compiled/types/cr.js +131 -0
- package/compiled/types/cr.js.map +1 -0
- package/{types → compiled/types}/index.d.ts +1 -0
- package/compiled/types/index.js +8 -0
- package/compiled/types/index.js.map +1 -0
- package/{types → compiled/types}/item.d.ts +13 -3
- package/compiled/types/item.js +22 -0
- package/compiled/types/item.js.map +1 -0
- package/compiled/types/proposal.d.ts +64 -0
- package/compiled/types/proposal.js +21 -0
- package/compiled/types/proposal.js.map +1 -0
- package/{types → compiled/types}/register.d.ts +6 -5
- package/compiled/types/register.js +25 -0
- package/compiled/types/register.js.map +1 -0
- package/compiled/types/registry.d.ts +15 -0
- package/compiled/types/registry.js +10 -0
- package/compiled/types/registry.js.map +1 -0
- package/compiled/types/stakeholder.d.ts +58 -0
- package/compiled/types/stakeholder.js +34 -0
- package/compiled/types/stakeholder.js.map +1 -0
- package/compiled/types/util.js +3 -0
- package/compiled/types/views.d.ts +157 -0
- package/compiled/types/views.js +2 -0
- package/compiled/types/views.js.map +1 -0
- package/compiled/views/AnnotatedChange.d.ts +7 -0
- package/compiled/views/AnnotatedChange.js +57 -0
- package/compiled/views/AnnotatedChange.js.map +1 -0
- package/compiled/views/BrowserCtx.d.ts +73 -0
- package/compiled/views/BrowserCtx.js +19 -0
- package/compiled/views/BrowserCtx.js.map +1 -0
- package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +17 -0
- package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.js +110 -0
- package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +1 -0
- package/{views → compiled/views}/FilterCriteria/criteriaGroupToQueryExpression.d.ts +4 -0
- package/compiled/views/FilterCriteria/criteriaGroupToQueryExpression.js +40 -0
- package/compiled/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +1 -0
- package/compiled/views/FilterCriteria/criteriaGroupToSummary.js +47 -0
- package/compiled/views/FilterCriteria/criteriaGroupToSummary.js.map +1 -0
- package/{views → compiled/views}/FilterCriteria/criteriaToNodes.d.ts +9 -0
- package/compiled/views/FilterCriteria/criteriaToNodes.js +89 -0
- package/compiled/views/FilterCriteria/criteriaToNodes.js.map +1 -0
- package/{views → compiled/views}/FilterCriteria/index.d.ts +1 -0
- package/compiled/views/FilterCriteria/index.js +75 -0
- package/compiled/views/FilterCriteria/index.js.map +1 -0
- package/{views → compiled/views}/FilterCriteria/models.d.ts +29 -2
- package/compiled/views/FilterCriteria/models.js +28 -0
- package/compiled/views/FilterCriteria/models.js.map +1 -0
- package/{views → compiled/views}/FilterCriteria/mutateGroup.d.ts +4 -1
- package/compiled/views/FilterCriteria/mutateGroup.js +53 -0
- package/compiled/views/FilterCriteria/mutateGroup.js.map +1 -0
- package/{views → compiled/views}/GenericRelatedItemView.d.ts +1 -1
- package/compiled/views/GenericRelatedItemView.js +147 -0
- package/compiled/views/GenericRelatedItemView.js.map +1 -0
- package/compiled/views/RegisterStakeholder.d.ts +9 -0
- package/compiled/views/RegisterStakeholder.js +19 -0
- package/compiled/views/RegisterStakeholder.js.map +1 -0
- package/compiled/views/RegisterVersion.d.ts +9 -0
- package/compiled/views/RegisterVersion.js +20 -0
- package/compiled/views/RegisterVersion.js.map +1 -0
- package/compiled/views/SearchQuery.d.ts +13 -0
- package/compiled/views/SearchQuery.js +58 -0
- package/compiled/views/SearchQuery.js.map +1 -0
- package/compiled/views/change-request/ChangeRequestContext.d.ts +20 -0
- package/compiled/views/change-request/ChangeRequestContext.js +30 -0
- package/compiled/views/change-request/ChangeRequestContext.js.map +1 -0
- package/compiled/views/change-request/Proposals.d.ts +21 -0
- package/compiled/views/change-request/Proposals.js +185 -0
- package/compiled/views/change-request/Proposals.js.map +1 -0
- package/compiled/views/change-request/objectChangeset.d.ts +31 -0
- package/compiled/views/change-request/objectChangeset.js +189 -0
- package/compiled/views/change-request/objectChangeset.js.map +1 -0
- package/compiled/views/detail/ChangeRequest/Proposal.d.ts +0 -0
- package/compiled/views/detail/ChangeRequest/Proposal.js +144 -0
- package/compiled/views/detail/ChangeRequest/Proposal.js.map +1 -0
- package/compiled/views/detail/ChangeRequest/index.d.ts +13 -0
- package/compiled/views/detail/ChangeRequest/index.js +140 -0
- package/compiled/views/detail/ChangeRequest/index.js.map +1 -0
- package/compiled/views/detail/ChangeRequest/transitions.d.ts +28 -0
- package/compiled/views/detail/ChangeRequest/transitions.js +418 -0
- package/compiled/views/detail/ChangeRequest/transitions.js.map +1 -0
- package/compiled/views/detail/CustomView/index.d.ts +13 -0
- package/compiled/views/detail/CustomView/index.js +32 -0
- package/compiled/views/detail/CustomView/index.js.map +1 -0
- package/compiled/views/detail/RegisterHome/index.d.ts +5 -0
- package/compiled/views/detail/RegisterHome/index.js +70 -0
- package/compiled/views/detail/RegisterHome/index.js.map +1 -0
- package/compiled/views/detail/RegisterItem/RelatedItems.d.ts +14 -0
- package/compiled/views/detail/RegisterItem/RelatedItems.js +28 -0
- package/compiled/views/detail/RegisterItem/RelatedItems.js.map +1 -0
- package/compiled/views/detail/RegisterItem/SupersedingItemMenu.d.ts +13 -0
- package/compiled/views/detail/RegisterItem/SupersedingItemMenu.js +27 -0
- package/compiled/views/detail/RegisterItem/SupersedingItemMenu.js.map +1 -0
- package/compiled/views/detail/RegisterItem/index.d.ts +13 -0
- package/compiled/views/detail/RegisterItem/index.js +277 -0
- package/compiled/views/detail/RegisterItem/index.js.map +1 -0
- package/compiled/views/detail/RegisterMeta/RegisterMetaForm.d.ts +10 -0
- package/compiled/views/detail/RegisterMeta/RegisterMetaForm.js +135 -0
- package/compiled/views/detail/RegisterMeta/RegisterMetaForm.js.map +1 -0
- package/compiled/views/detail/RegisterMeta/index.d.ts +10 -0
- package/compiled/views/detail/RegisterMeta/index.js +61 -0
- package/compiled/views/detail/RegisterMeta/index.js.map +1 -0
- package/compiled/views/detail/index.d.ts +1 -0
- package/compiled/views/detail/index.js +11 -0
- package/compiled/views/detail/index.js.map +1 -0
- package/compiled/views/diffing/InlineDiff.d.ts +12 -0
- package/compiled/views/diffing/InlineDiff.js +20 -0
- package/compiled/views/diffing/InlineDiff.js.map +1 -0
- package/compiled/views/diffing/StructuredDiff.d.ts +11 -0
- package/compiled/views/diffing/StructuredDiff.js +38 -0
- package/compiled/views/diffing/StructuredDiff.js.map +1 -0
- package/compiled/views/hooks/useCustomView.d.ts +3 -0
- package/compiled/views/hooks/useCustomView.js +14 -0
- package/compiled/views/hooks/useCustomView.js.map +1 -0
- package/compiled/views/hooks/useItemClassConfig.d.ts +3 -0
- package/compiled/views/hooks/useItemClassConfig.js +14 -0
- package/compiled/views/hooks/useItemClassConfig.js.map +1 -0
- package/compiled/views/hooks/useItemRef.d.ts +3 -0
- package/compiled/views/hooks/useItemRef.js +26 -0
- package/compiled/views/hooks/useItemRef.js.map +1 -0
- package/compiled/views/hooks/useSingleRegisterItemData.d.ts +3 -0
- package/compiled/views/hooks/useSingleRegisterItemData.js +21 -0
- package/compiled/views/hooks/useSingleRegisterItemData.js.map +1 -0
- package/{views → compiled/views}/index.d.ts +2 -2
- package/compiled/views/index.js +142 -0
- package/compiled/views/index.js.map +1 -0
- package/compiled/views/itemPathUtils.d.ts +52 -0
- package/compiled/views/itemPathUtils.js +115 -0
- package/compiled/views/itemPathUtils.js.map +1 -0
- package/compiled/views/itemQueryUtils.d.ts +11 -0
- package/compiled/views/itemQueryUtils.js +42 -0
- package/compiled/views/itemQueryUtils.js.map +1 -0
- package/compiled/views/protocolRegistry.d.ts +12 -0
- package/compiled/views/protocolRegistry.js +24 -0
- package/compiled/views/protocolRegistry.js.map +1 -0
- package/compiled/views/sidebar/Browse/index.d.ts +11 -0
- package/compiled/views/sidebar/Browse/index.js +278 -0
- package/compiled/views/sidebar/Browse/index.js.map +1 -0
- package/compiled/views/sidebar/Export/index.d.ts +5 -0
- package/compiled/views/sidebar/Export/index.js +47 -0
- package/compiled/views/sidebar/Export/index.js.map +1 -0
- package/compiled/views/sidebar/ListItem.d.ts +10 -0
- package/compiled/views/sidebar/ListItem.js +23 -0
- package/compiled/views/sidebar/ListItem.js.map +1 -0
- package/compiled/views/sidebar/Registration/index.d.ts +5 -0
- package/compiled/views/sidebar/Registration/index.js +114 -0
- package/compiled/views/sidebar/Registration/index.js.map +1 -0
- package/compiled/views/sidebar/Search/index.d.ts +18 -0
- package/compiled/views/sidebar/Search/index.js +100 -0
- package/compiled/views/sidebar/Search/index.js.map +1 -0
- package/compiled/views/sidebar/index.d.ts +6 -0
- package/compiled/views/sidebar/index.js +73 -0
- package/compiled/views/sidebar/index.js.map +1 -0
- package/compiled/views/util.d.ts +36 -0
- package/compiled/views/util.js +63 -0
- package/compiled/views/util.js.map +1 -0
- package/dependencies-local/extension-kit/SettingsContext.d.ts +8 -0
- package/dependencies-local/extension-kit/SettingsContext.js +19 -0
- package/dependencies-local/extension-kit/SettingsContext.js.map +1 -0
- package/dependencies-local/extension-kit/context.d.ts +11 -0
- package/dependencies-local/extension-kit/context.js +133 -0
- package/dependencies-local/extension-kit/context.js.map +1 -0
- package/dependencies-local/extension-kit/i18n/ContextProvider.d.ts +9 -0
- package/dependencies-local/extension-kit/i18n/ContextProvider.js +33 -0
- package/dependencies-local/extension-kit/i18n/ContextProvider.js.map +1 -0
- package/dependencies-local/extension-kit/i18n/context.d.ts +9 -0
- package/dependencies-local/extension-kit/i18n/context.js +23 -0
- package/dependencies-local/extension-kit/i18n/context.js.map +1 -0
- package/dependencies-local/extension-kit/i18n/types.d.ts +10 -0
- package/dependencies-local/extension-kit/i18n/types.js.map +1 -0
- package/dependencies-local/extension-kit/i18n/widgets.d.ts +16 -0
- package/dependencies-local/extension-kit/i18n/widgets.js +56 -0
- package/dependencies-local/extension-kit/i18n/widgets.js.map +1 -0
- package/dependencies-local/extension-kit/index.d.ts +3 -0
- package/dependencies-local/extension-kit/index.js +78 -0
- package/dependencies-local/extension-kit/index.js.map +1 -0
- package/dependencies-local/extension-kit/object-specs/index.d.ts +2 -0
- package/dependencies-local/extension-kit/object-specs/index.js +22 -0
- package/dependencies-local/extension-kit/object-specs/index.js.map +1 -0
- package/dependencies-local/extension-kit/object-specs/paneron-object.d.ts +6 -0
- package/dependencies-local/extension-kit/object-specs/paneron-object.js +161 -0
- package/dependencies-local/extension-kit/object-specs/paneron-object.js.map +1 -0
- package/dependencies-local/extension-kit/object-specs/ser-des.d.ts +31 -0
- package/dependencies-local/extension-kit/object-specs/ser-des.js +187 -0
- package/dependencies-local/extension-kit/object-specs/ser-des.js.map +1 -0
- package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.d.ts +2 -0
- package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js +42 -0
- package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js.map +1 -0
- package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.d.ts +3 -0
- package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js +110 -0
- package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js.map +1 -0
- package/dependencies-local/extension-kit/object-specs/yaml/index.d.ts +9 -0
- package/dependencies-local/extension-kit/object-specs/yaml/index.js +36 -0
- package/dependencies-local/extension-kit/object-specs/yaml/index.js.map +1 -0
- package/dependencies-local/extension-kit/object-specs/yaml/schema.d.ts +3 -0
- package/{index.js → dependencies-local/extension-kit/object-specs/yaml/schema.js} +11 -30
- package/dependencies-local/extension-kit/object-specs/yaml/schema.js.map +1 -0
- package/dependencies-local/extension-kit/package.json +53 -0
- package/dependencies-local/extension-kit/settings.d.ts +6 -0
- package/dependencies-local/extension-kit/settings.js +11 -0
- package/dependencies-local/extension-kit/settings.js.map +1 -0
- package/dependencies-local/extension-kit/types/binary-invocation.d.ts +31 -0
- package/dependencies-local/extension-kit/types/binary-invocation.js.map +1 -0
- package/dependencies-local/extension-kit/types/buffers.d.ts +17 -0
- package/dependencies-local/extension-kit/types/buffers.js.map +1 -0
- package/dependencies-local/extension-kit/types/changes.d.ts +37 -0
- package/dependencies-local/extension-kit/types/changes.js +5 -0
- package/dependencies-local/extension-kit/types/changes.js.map +1 -0
- package/dependencies-local/extension-kit/types/data.d.ts +54 -0
- package/dependencies-local/extension-kit/types/data.js +5 -0
- package/dependencies-local/extension-kit/types/data.js.map +1 -0
- package/dependencies-local/extension-kit/types/dialogs.d.ts +15 -0
- package/dependencies-local/extension-kit/types/dialogs.js +5 -0
- package/dependencies-local/extension-kit/types/dialogs.js.map +1 -0
- package/dependencies-local/extension-kit/types/extension-maker.d.ts +17 -0
- package/dependencies-local/extension-kit/types/extension-maker.js +5 -0
- package/dependencies-local/extension-kit/types/extension-maker.js.map +1 -0
- package/dependencies-local/extension-kit/types/extension.d.ts +27 -0
- package/dependencies-local/extension-kit/types/extension.js +5 -0
- package/dependencies-local/extension-kit/types/extension.js.map +1 -0
- package/dependencies-local/extension-kit/types/index.d.ts +3 -0
- package/dependencies-local/extension-kit/types/index.js +41 -0
- package/dependencies-local/extension-kit/types/index.js.map +1 -0
- package/dependencies-local/extension-kit/types/indexes.d.ts +6 -0
- package/dependencies-local/extension-kit/types/indexes.js +15 -0
- package/dependencies-local/extension-kit/types/indexes.js.map +1 -0
- package/dependencies-local/extension-kit/types/migrations.d.ts +15 -0
- package/dependencies-local/extension-kit/types/migrations.js +5 -0
- package/dependencies-local/extension-kit/types/migrations.js.map +1 -0
- package/dependencies-local/extension-kit/types/object-spec.d.ts +108 -0
- package/dependencies-local/extension-kit/types/object-spec.js +23 -0
- package/dependencies-local/extension-kit/types/object-spec.js.map +1 -0
- package/dependencies-local/extension-kit/types/objects.d.ts +18 -0
- package/dependencies-local/extension-kit/types/objects.js +5 -0
- package/dependencies-local/extension-kit/types/objects.js.map +1 -0
- package/dependencies-local/extension-kit/types/progress.d.ts +5 -0
- package/dependencies-local/extension-kit/types/progress.js +5 -0
- package/dependencies-local/extension-kit/types/progress.js.map +1 -0
- package/dependencies-local/extension-kit/types/renderer.d.ts +495 -0
- package/dependencies-local/extension-kit/types/renderer.js +5 -0
- package/dependencies-local/extension-kit/types/renderer.js.map +1 -0
- package/dependencies-local/extension-kit/useDebounce.d.ts +2 -0
- package/dependencies-local/extension-kit/useDebounce.js +27 -0
- package/dependencies-local/extension-kit/useDebounce.js.map +1 -0
- package/dependencies-local/extension-kit/usePersistentStateReducer.d.ts +35 -0
- package/dependencies-local/extension-kit/usePersistentStateReducer.js +91 -0
- package/dependencies-local/extension-kit/usePersistentStateReducer.js.map +1 -0
- package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.d.ts +48 -0
- package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js +116 -0
- package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js.map +1 -0
- package/dependencies-local/extension-kit/util.d.ts +8 -0
- package/dependencies-local/extension-kit/util.js +21 -0
- package/dependencies-local/extension-kit/util.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/ErrorState.d.ts +8 -0
- package/dependencies-local/extension-kit/widgets/ErrorState.js +44 -0
- package/dependencies-local/extension-kit/widgets/ErrorState.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/Grid.d.ts +41 -0
- package/dependencies-local/extension-kit/widgets/Grid.js +213 -0
- package/dependencies-local/extension-kit/widgets/Grid.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/HelpTooltip.d.ts +18 -0
- package/dependencies-local/extension-kit/widgets/HelpTooltip.js +84 -0
- package/dependencies-local/extension-kit/widgets/HelpTooltip.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/ItemCount.d.ts +19 -0
- package/dependencies-local/extension-kit/widgets/ItemCount.js +78 -0
- package/dependencies-local/extension-kit/widgets/ItemCount.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/List.d.ts +40 -0
- package/dependencies-local/extension-kit/widgets/List.js +191 -0
- package/dependencies-local/extension-kit/widgets/List.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/Navbar.d.ts +20 -0
- package/dependencies-local/extension-kit/widgets/Navbar.js +75 -0
- package/dependencies-local/extension-kit/widgets/Navbar.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/SearchResultList.d.ts +24 -0
- package/dependencies-local/extension-kit/widgets/SearchResultList.js +201 -0
- package/dependencies-local/extension-kit/widgets/SearchResultList.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/Block.d.ts +21 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/Block.js +94 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/Block.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.d.ts +6 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js +22 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.d.ts +28 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js +148 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/index.d.ts +27 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/index.js +178 -0
- package/dependencies-local/extension-kit/widgets/Sidebar/index.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.d.ts +13 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js +82 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.d.ts +10 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js +168 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.d.ts +9 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js +66 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.d.ts +33 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js +204 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.d.ts +74 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js +5 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.d.ts +1 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js +14 -0
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/Workspace.d.ts +38 -0
- package/dependencies-local/extension-kit/widgets/Workspace.js +99 -0
- package/dependencies-local/extension-kit/widgets/Workspace.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.d.ts +12 -0
- package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js +57 -0
- package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js.map +1 -0
- package/dependencies-local/extension-kit/widgets/panels/index.d.ts +28 -0
- package/dependencies-local/extension-kit/widgets/panels/index.js +169 -0
- package/dependencies-local/extension-kit/widgets/panels/index.js.map +1 -0
- package/dist/common.d.ts +1 -0
- package/{common.js → dist/common.js} +1 -1
- package/dist/common.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/initial.d.ts +3 -0
- package/dist/migrations/initial.js.map +1 -0
- package/dist/package.json +56 -0
- package/dist/types/cr.d.ts +216 -0
- package/dist/types/cr.js +175 -0
- package/dist/types/cr.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/{types → dist/types}/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/item.d.ts +59 -0
- package/dist/types/item.js +16 -0
- package/dist/types/item.js.map +1 -0
- package/dist/types/proposal.d.ts +64 -0
- package/{types → dist/types}/proposal.js +1 -1
- package/dist/types/proposal.js.map +1 -0
- package/dist/types/register.d.ts +18 -0
- package/dist/types/register.js +23 -0
- package/dist/types/register.js.map +1 -0
- package/dist/types/registry.d.ts +15 -0
- package/dist/types/registry.js +14 -0
- package/dist/types/registry.js.map +1 -0
- package/dist/types/stakeholder.d.ts +58 -0
- package/dist/types/stakeholder.js +53 -0
- package/dist/types/stakeholder.js.map +1 -0
- package/dist/types/util.d.ts +21 -0
- package/dist/types/util.js +5 -0
- package/dist/types/util.js.map +1 -0
- package/dist/types/views.d.ts +157 -0
- package/dist/types/views.js +5 -0
- package/dist/types/views.js.map +1 -0
- package/dist/views/AnnotatedChange.d.ts +7 -0
- package/dist/views/AnnotatedChange.js +91 -0
- package/dist/views/AnnotatedChange.js.map +1 -0
- package/dist/views/BrowserCtx.d.ts +73 -0
- package/dist/views/BrowserCtx.js +31 -0
- package/dist/views/BrowserCtx.js.map +1 -0
- package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +17 -0
- package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.js +202 -0
- package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +1 -0
- package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.d.ts +6 -0
- package/{views → dist/views}/FilterCriteria/criteriaGroupToQueryExpression.js +10 -3
- package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +1 -0
- package/dist/views/FilterCriteria/criteriaGroupToSummary.d.ts +5 -0
- package/{views → dist/views}/FilterCriteria/criteriaGroupToSummary.js +7 -7
- package/dist/views/FilterCriteria/criteriaGroupToSummary.js.map +1 -0
- package/dist/views/FilterCriteria/criteriaToNodes.d.ts +24 -0
- package/{views → dist/views}/FilterCriteria/criteriaToNodes.js +42 -28
- package/dist/views/FilterCriteria/criteriaToNodes.js.map +1 -0
- package/dist/views/FilterCriteria/index.d.ts +23 -0
- package/{views → dist/views}/FilterCriteria/index.js +29 -21
- package/dist/views/FilterCriteria/index.js.map +1 -0
- package/dist/views/FilterCriteria/models.d.ts +68 -0
- package/dist/views/FilterCriteria/models.js +34 -0
- package/dist/views/FilterCriteria/models.js.map +1 -0
- package/dist/views/FilterCriteria/mutateGroup.d.ts +17 -0
- package/{views → dist/views}/FilterCriteria/mutateGroup.js +4 -3
- package/dist/views/FilterCriteria/mutateGroup.js.map +1 -0
- package/dist/views/GenericRelatedItemView.d.ts +6 -0
- package/dist/views/GenericRelatedItemView.js +242 -0
- package/dist/views/GenericRelatedItemView.js.map +1 -0
- package/dist/views/RegisterStakeholder.d.ts +9 -0
- package/dist/views/RegisterStakeholder.js +40 -0
- package/dist/views/RegisterStakeholder.js.map +1 -0
- package/dist/views/RegisterVersion.d.ts +9 -0
- package/dist/views/RegisterVersion.js +41 -0
- package/dist/views/RegisterVersion.js.map +1 -0
- package/dist/views/SearchQuery.d.ts +13 -0
- package/dist/views/SearchQuery.js +137 -0
- package/dist/views/SearchQuery.js.map +1 -0
- package/dist/views/change-request/ChangeRequestContext.d.ts +20 -0
- package/dist/views/change-request/ChangeRequestContext.js +56 -0
- package/dist/views/change-request/ChangeRequestContext.js.map +1 -0
- package/dist/views/change-request/Proposals.d.ts +21 -0
- package/dist/views/change-request/Proposals.js +331 -0
- package/dist/views/change-request/Proposals.js.map +1 -0
- package/dist/views/change-request/objectChangeset.d.ts +31 -0
- package/dist/views/change-request/objectChangeset.js +229 -0
- package/dist/views/change-request/objectChangeset.js.map +1 -0
- package/dist/views/detail/ChangeRequest/Proposal.d.ts +0 -0
- package/dist/views/detail/ChangeRequest/Proposal.js +142 -0
- package/dist/views/detail/ChangeRequest/Proposal.js.map +1 -0
- package/dist/views/detail/ChangeRequest/index.d.ts +13 -0
- package/dist/views/detail/ChangeRequest/index.js +207 -0
- package/dist/views/detail/ChangeRequest/index.js.map +1 -0
- package/dist/views/detail/ChangeRequest/transitions.d.ts +28 -0
- package/dist/views/detail/ChangeRequest/transitions.js +530 -0
- package/dist/views/detail/ChangeRequest/transitions.js.map +1 -0
- package/dist/views/detail/CustomView/index.d.ts +13 -0
- package/dist/views/detail/CustomView/index.js +68 -0
- package/dist/views/detail/CustomView/index.js.map +1 -0
- package/dist/views/detail/RegisterHome/index.d.ts +5 -0
- package/dist/views/detail/RegisterHome/index.js +128 -0
- package/dist/views/detail/RegisterHome/index.js.map +1 -0
- package/dist/views/detail/RegisterItem/RelatedItems.d.ts +14 -0
- package/dist/views/detail/RegisterItem/RelatedItems.js +61 -0
- package/dist/views/detail/RegisterItem/RelatedItems.js.map +1 -0
- package/dist/views/detail/RegisterItem/SupersedingItemMenu.d.ts +13 -0
- package/dist/views/detail/RegisterItem/SupersedingItemMenu.js +56 -0
- package/dist/views/detail/RegisterItem/SupersedingItemMenu.js.map +1 -0
- package/dist/views/detail/RegisterItem/index.d.ts +13 -0
- package/dist/views/detail/RegisterItem/index.js +357 -0
- package/dist/views/detail/RegisterItem/index.js.map +1 -0
- package/dist/views/detail/RegisterMeta/RegisterMetaForm.d.ts +10 -0
- package/dist/views/detail/RegisterMeta/RegisterMetaForm.js +331 -0
- package/dist/views/detail/RegisterMeta/RegisterMetaForm.js.map +1 -0
- package/dist/views/detail/RegisterMeta/index.d.ts +10 -0
- package/dist/views/detail/RegisterMeta/index.js +111 -0
- package/dist/views/detail/RegisterMeta/index.js.map +1 -0
- package/dist/views/detail/index.d.ts +1 -0
- package/dist/views/detail/index.js +24 -0
- package/dist/views/detail/index.js.map +1 -0
- package/dist/views/diffing/InlineDiff.d.ts +12 -0
- package/dist/views/diffing/InlineDiff.js +58 -0
- package/dist/views/diffing/InlineDiff.js.map +1 -0
- package/dist/views/diffing/StructuredDiff.d.ts +11 -0
- package/dist/views/diffing/StructuredDiff.js +65 -0
- package/dist/views/diffing/StructuredDiff.js.map +1 -0
- package/dist/views/hooks/useCustomView.d.ts +3 -0
- package/dist/views/hooks/useCustomView.js +24 -0
- package/dist/views/hooks/useCustomView.js.map +1 -0
- package/dist/views/hooks/useItemClassConfig.d.ts +3 -0
- package/dist/views/hooks/useItemClassConfig.js +24 -0
- package/dist/views/hooks/useItemClassConfig.js.map +1 -0
- package/dist/views/hooks/useItemRef.d.ts +3 -0
- package/dist/views/hooks/useItemRef.js +39 -0
- package/dist/views/hooks/useItemRef.js.map +1 -0
- package/dist/views/hooks/useSingleRegisterItemData.d.ts +3 -0
- package/dist/views/hooks/useSingleRegisterItemData.js +32 -0
- package/dist/views/hooks/useSingleRegisterItemData.js.map +1 -0
- package/dist/views/index.d.ts +7 -0
- package/dist/views/index.js +197 -0
- package/dist/views/index.js.map +1 -0
- package/dist/views/itemPathUtils.d.ts +52 -0
- package/dist/views/itemPathUtils.js +144 -0
- package/dist/views/itemPathUtils.js.map +1 -0
- package/dist/views/itemQueryUtils.d.ts +11 -0
- package/dist/views/itemQueryUtils.js +48 -0
- package/dist/views/itemQueryUtils.js.map +1 -0
- package/dist/views/protocolRegistry.d.ts +12 -0
- package/dist/views/protocolRegistry.js +42 -0
- package/dist/views/protocolRegistry.js.map +1 -0
- package/dist/views/sidebar/Browse/index.d.ts +11 -0
- package/dist/views/sidebar/Browse/index.js +453 -0
- package/dist/views/sidebar/Browse/index.js.map +1 -0
- package/dist/views/sidebar/Export/index.d.ts +5 -0
- package/dist/views/sidebar/Export/index.js +94 -0
- package/dist/views/sidebar/Export/index.js.map +1 -0
- package/dist/views/sidebar/ListItem.d.ts +10 -0
- package/dist/views/sidebar/ListItem.js +43 -0
- package/dist/views/sidebar/ListItem.js.map +1 -0
- package/dist/views/sidebar/Registration/index.d.ts +5 -0
- package/dist/views/sidebar/Registration/index.js +163 -0
- package/dist/views/sidebar/Registration/index.js.map +1 -0
- package/dist/views/sidebar/Search/index.d.ts +18 -0
- package/dist/views/sidebar/Search/index.js +177 -0
- package/dist/views/sidebar/Search/index.js.map +1 -0
- package/dist/views/sidebar/index.d.ts +6 -0
- package/dist/views/sidebar/index.js +104 -0
- package/dist/views/sidebar/index.js.map +1 -0
- package/dist/views/util.d.ts +36 -0
- package/dist/views/util.js +135 -0
- package/dist/views/util.js.map +1 -0
- package/package.json +27 -19
- package/react-visual-diff.d.ts +9 -0
- package/common.d.ts +0 -1
- package/index.js.map +0 -1
- package/types/index.js.map +0 -1
- package/types/item.js +0 -6
- package/types/item.js.map +0 -1
- package/types/proposal.d.ts +0 -47
- package/types/proposal.js.map +0 -1
- package/types/register.js.map +0 -1
- package/types/registry.d.ts +0 -10
- package/types/registry.js +0 -7
- package/types/registry.js.map +0 -1
- package/types/stakeholder.d.ts +0 -34
- package/types/stakeholder.js +0 -9
- package/types/stakeholder.js.map +0 -1
- package/types/views.d.ts +0 -83
- package/types/views.js.map +0 -1
- package/views/BrowserCtx.d.ts +0 -9
- package/views/BrowserCtx.js +0 -20
- package/views/BrowserCtx.js.map +0 -1
- package/views/ChangeRequest.d.ts +0 -12
- package/views/ChangeRequest.js +0 -689
- package/views/ChangeRequest.js.map +0 -1
- package/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -5
- package/views/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -109
- package/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -1
- package/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -1
- package/views/FilterCriteria/criteriaGroupToSummary.js.map +0 -1
- package/views/FilterCriteria/criteriaToNodes.js.map +0 -1
- package/views/FilterCriteria/index.js.map +0 -1
- package/views/FilterCriteria/models.js +0 -27
- package/views/FilterCriteria/models.js.map +0 -1
- package/views/FilterCriteria/mutateGroup.js.map +0 -1
- package/views/GenericRelatedItemView.js +0 -202
- package/views/GenericRelatedItemView.js.map +0 -1
- package/views/ItemBrowser.d.ts +0 -12
- package/views/ItemBrowser.js +0 -258
- package/views/ItemBrowser.js.map +0 -1
- package/views/ItemDetails.d.ts +0 -14
- package/views/ItemDetails.js +0 -128
- package/views/ItemDetails.js.map +0 -1
- package/views/MainView.d.ts +0 -8
- package/views/MainView.js +0 -34
- package/views/MainView.js.map +0 -1
- package/views/RegisterInformation.d.ts +0 -7
- package/views/RegisterInformation.js +0 -264
- package/views/RegisterInformation.js.map +0 -1
- package/views/RegisterItemGrid.d.ts +0 -25
- package/views/RegisterItemGrid.js +0 -276
- package/views/RegisterItemGrid.js.map +0 -1
- package/views/index.js +0 -166
- package/views/index.js.map +0 -1
- package/views/itemPathUtils.d.ts +0 -9
- package/views/itemPathUtils.js +0 -57
- package/views/itemPathUtils.js.map +0 -1
- package/views/util.d.ts +0 -12
- package/views/util.js +0 -49
- package/views/util.js.map +0 -1
- /package/{migrations → compiled/migrations}/initial.d.ts +0 -0
- /package/{migrations → compiled/migrations}/initial.js.map +0 -0
- /package/{types → compiled/types}/util.d.ts +0 -0
- /package/{types → compiled/types}/util.js.map +0 -0
- /package/{views → compiled/views}/FilterCriteria/criteriaGroupToSummary.d.ts +0 -0
- /package/{types/register.js → dependencies-local/extension-kit/i18n/types.js} +0 -0
- /package/{types/util.js → dependencies-local/extension-kit/types/binary-invocation.js} +0 -0
- /package/{types/views.js → dependencies-local/extension-kit/types/buffers.js} +0 -0
- /package/{migrations → dist/migrations}/initial.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterMeta/index.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useState, useContext } from 'react';\nimport { jsx } from '@emotion/react';\nimport { Button, ButtonGroup, NonIdealState, Spinner } from '@blueprintjs/core';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport { BrowserCtx } from '../../BrowserCtx';\nimport { isRegisterMetadata, type Register } from '../../../types';\nimport { isOwner } from '../../../types/stakeholder';\nimport { REGISTER_METADATA_FILENAME } from '../../../common';\nimport { TabContentsWithActions } from '../../util';\nimport RegisterMetaForm from './RegisterMetaForm';\n\n\nconst RegisterMeta: React.FC<Record<never, never>> = function () {\n const { updateObjects, performOperation } = useContext(DatasetContext);\n const { registerMetadata, stakeholder } = useContext(BrowserCtx);\n\n const [ editedMetadata, setEditedMetadata ] = useState<Register | null>(null);\n\n const canChange = updateObjects ? true : false;\n const didChange = registerMetadata && editedMetadata && JSON.stringify(editedMetadata) !== JSON.stringify(registerMetadata);\n\n function handleClear() {\n setEditedMetadata(null);\n }\n async function handleSave() {\n if (!updateObjects) {\n throw new Error(\"Dataset is read-only\");\n }\n if (!stakeholder || !isOwner(stakeholder)) {\n throw new Error(\"Register meta is only meant to be edited by owner\");\n }\n if (!isRegisterMetadata(editedMetadata)) {\n throw new Error(\"Invalid register metadata\");\n }\n await performOperation('saving register meta', updateObjects)({\n commitMessage: \"edited register metadata\",\n objectChangeset: {\n [REGISTER_METADATA_FILENAME]: {\n oldValue: registerMetadata,\n newValue: editedMetadata,\n },\n },\n });\n setEditedMetadata(null);\n }\n\n if (registerMetadata) {\n return (\n <TabContentsWithActions\n actions={<>\n <ButtonGroup>\n <Button\n onClick={handleSave}\n disabled={!didChange || !canChange}\n intent={didChange && canChange ? \"primary\" : undefined}>\n Save\n </Button>\n <Button\n onClick={handleClear}\n disabled={!didChange || !canChange}>\n Clear changes\n </Button>\n </ButtonGroup>\n </>}\n main={\n <RegisterMetaForm\n value={editedMetadata ?? registerMetadata}\n onChange={updateObjects ? setEditedMetadata : undefined}\n />\n }\n />\n );\n } else if (registerMetadata === undefined) {\n return <NonIdealState icon={<Spinner />} />\n } else {\n return <NonIdealState icon=\"heart-broken\" description=\"Failed to read registry metadata.\" />\n }\n};\n\nexport default {\n main: RegisterMeta,\n title: () => <>Register Metadata</>,\n plainTitle: async () => \"register metadata\",\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getPlainTitle(uri: string): Promise<string>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import protocolRegistry, { isValidProtocol } from '../protocolRegistry';
|
|
2
|
+
export async function getPlainTitle(uri) {
|
|
3
|
+
const [proto, _path] = uri.split(':');
|
|
4
|
+
if (isValidProtocol(proto)) {
|
|
5
|
+
return await protocolRegistry[proto].plainTitle?.(_path) ?? 'N/A';
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
throw new Error("Invalid protocol");
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/detail/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,EAAE,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;KACnE;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;AACH,CAAC","sourcesContent":["import protocolRegistry, { isValidProtocol } from '../protocolRegistry';\n\nexport async function getPlainTitle(uri: string): Promise<string> {\n const [proto, _path] = uri.split(':');\n if (isValidProtocol(proto)) {\n return await protocolRegistry[proto].plainTitle?.(_path) ?? 'N/A';\n } else {\n throw new Error(\"Invalid protocol\");\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { InternalItemReference, RegisterItem, Payload } from '../../types/item';
|
|
5
|
+
import { ItemDetailView } from '../../types/views';
|
|
6
|
+
declare const InlineDiff: React.FC<{
|
|
7
|
+
DetailView: ItemDetailView<Payload>;
|
|
8
|
+
sharedRefComponents: Omit<InternalItemReference, 'itemID'>;
|
|
9
|
+
item1: RegisterItem<any>["data"];
|
|
10
|
+
item2: RegisterItem<any>["data"];
|
|
11
|
+
}>;
|
|
12
|
+
export default InlineDiff;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import ReactDOM from 'react-dom/server';
|
|
6
|
+
import VisualDiff from 'react-visual-diff';
|
|
7
|
+
import AnnotatedChange from '../AnnotatedChange';
|
|
8
|
+
const InlineDiff = React.memo(({ DetailView, sharedRefComponents, item1, item2 }) => {
|
|
9
|
+
// TODO: Make VisualDiff work. Currently, it doesn’t apparently when item detail views use hooks.
|
|
10
|
+
// Which is often. Either make item views hook-free
|
|
11
|
+
// (which means primarily eliminating useRegisterItemData() by inferring and pre-fetching
|
|
12
|
+
// related item data), or work out another way to diff two React elements.
|
|
13
|
+
console.debug(item1.description, item2.description);
|
|
14
|
+
const left = jsx("div", { dangerouslySetInnerHTML: { __html: ReactDOM.renderToString(jsx(DetailView, { itemRef: sharedRefComponents, itemData: item1 })) } });
|
|
15
|
+
const right = jsx("div", { dangerouslySetInnerHTML: { __html: ReactDOM.renderToString(jsx(DetailView, { itemRef: sharedRefComponents, itemData: item2 })) } });
|
|
16
|
+
return jsx(VisualDiff, { left: left, right: right, renderChange: AnnotatedChange });
|
|
17
|
+
}, (prevProps, nextProps) => JSON.stringify(prevProps.item2) === JSON.stringify(nextProps.item2) &&
|
|
18
|
+
JSON.stringify(prevProps.item1) === JSON.stringify(nextProps.item1));
|
|
19
|
+
export default InlineDiff;
|
|
20
|
+
//# sourceMappingURL=InlineDiff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineDiff.js","sourceRoot":"","sources":["../../../src/views/diffing/InlineDiff.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAG3C,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAGjD,MAAM,UAAU,GAKX,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IACpE,iGAAiG;IACjG,mDAAmD;IACnD,yFAAyF;IACzF,0EAA0E;IAE1E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAEpD,MAAM,IAAI,GAAG,aAAK,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAC,UAAU,IACpF,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,KAAK,GACf,CAAC,EAAE,GAAI,CAAA;IACX,MAAM,KAAK,GAAG,aAAK,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAC,UAAU,IACrF,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,KAAK,GACf,CAAC,EAAE,GAAI,CAAA;IAEX,OAAO,IAAC,UAAU,IAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,eAAe,GAAI,CAAC;AACtC,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;IACnE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CACpE,CAAC;AAGF,eAAe,UAAU,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport { jsx } from '@emotion/react';\nimport React from 'react';\nimport ReactDOM from 'react-dom/server';\nimport VisualDiff from 'react-visual-diff';\nimport { InternalItemReference, RegisterItem, Payload } from '../../types/item';\nimport { ItemDetailView } from '../../types/views';\nimport AnnotatedChange from '../AnnotatedChange';\n\n\nconst InlineDiff: React.FC<{\n DetailView: ItemDetailView<Payload>\n sharedRefComponents: Omit<InternalItemReference, 'itemID'>\n item1: RegisterItem<any>[\"data\"]\n item2: RegisterItem<any>[\"data\"]\n}> = React.memo(({ DetailView, sharedRefComponents, item1, item2 }) => {\n // TODO: Make VisualDiff work. Currently, it doesn’t apparently when item detail views use hooks.\n // Which is often. Either make item views hook-free\n // (which means primarily eliminating useRegisterItemData() by inferring and pre-fetching\n // related item data), or work out another way to diff two React elements.\n\n console.debug(item1.description, item2.description);\n \n const left = <div dangerouslySetInnerHTML={{ __html: ReactDOM.renderToString(<DetailView\n itemRef={sharedRefComponents}\n itemData={item1}\n />) }} />\n const right = <div dangerouslySetInnerHTML={{ __html: ReactDOM.renderToString(<DetailView\n itemRef={sharedRefComponents}\n itemData={item2}\n />) }} />\n\n return <VisualDiff\n left={left}\n right={right}\n renderChange={AnnotatedChange} />;\n}, (prevProps, nextProps) =>\n JSON.stringify(prevProps.item2) === JSON.stringify(nextProps.item2) &&\n JSON.stringify(prevProps.item1) === JSON.stringify(nextProps.item1)\n);\n\n\nexport default InlineDiff;\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { RegisterItem } from '../../types/item';
|
|
5
|
+
declare const StructuredDiff: React.FC<{
|
|
6
|
+
item1: RegisterItem<any>["data"];
|
|
7
|
+
item2: RegisterItem<any>["data"];
|
|
8
|
+
showUnchanged?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
}>;
|
|
11
|
+
export default StructuredDiff;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import { diff, formatters } from 'jsondiffpatch';
|
|
4
|
+
import { jsx, css } from '@emotion/react';
|
|
5
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
6
|
+
import { Switch } from '@blueprintjs/core';
|
|
7
|
+
const StructuredDiff = React.memo(({ item1, item2, showUnchanged, className }) => {
|
|
8
|
+
const diffContainerRef = useRef(null);
|
|
9
|
+
// Is ignored if managed via prop.
|
|
10
|
+
const [_showUnchanged, setShowUnchanged] = useState(false);
|
|
11
|
+
const item1json = JSON.stringify(item1);
|
|
12
|
+
const item2json = JSON.stringify(item2);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (diffContainerRef.current) {
|
|
15
|
+
const delta = diff(item1, item2);
|
|
16
|
+
formatters.html.showUnchanged(showUnchanged ?? _showUnchanged);
|
|
17
|
+
if (delta) {
|
|
18
|
+
diffContainerRef.current.innerHTML = formatters.html.format(delta, item1);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
diffContainerRef.current.innerHTML = formatters.html.format({}, item1);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}, [item1json, item2json, diffContainerRef.current, showUnchanged, _showUnchanged]);
|
|
25
|
+
// TODO: Make VisualDiff work. Currently, it doesn’t apparently when item detail views use hooks.
|
|
26
|
+
// Which is often. Either make item views hook-free
|
|
27
|
+
// (which means primarily eliminating useRegisterItemData() by inferring and pre-fetching
|
|
28
|
+
// related item data), or work out another way to diff two React elements.
|
|
29
|
+
return jsx("div", { css: css `display: flex; flex-flow: column nowrap;`, className: className },
|
|
30
|
+
showUnchanged === undefined
|
|
31
|
+
? jsx(Switch, { checked: _showUnchanged, onChange: evt => setShowUnchanged(evt.currentTarget.checked), label: "Show unchanged properties" })
|
|
32
|
+
: null,
|
|
33
|
+
jsx("div", { ref: diffContainerRef, css: css `flex: 1; overflow: auto;` }));
|
|
34
|
+
}, (prevProps, nextProps) => JSON.stringify(prevProps.item2) === JSON.stringify(nextProps.item2) &&
|
|
35
|
+
JSON.stringify(prevProps.item1) === JSON.stringify(nextProps.item1) &&
|
|
36
|
+
prevProps.showUnchanged === nextProps.showUnchanged);
|
|
37
|
+
export default StructuredDiff;
|
|
38
|
+
//# sourceMappingURL=StructuredDiff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StructuredDiff.js","sourceRoot":"","sources":["../../../src/views/diffing/StructuredDiff.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,cAAc,GAKf,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;IAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEtD,kCAAkC;IAClC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,gBAAgB,CAAC,OAAO,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,cAAc,CAAC,CAAC;YAC/D,IAAI,KAAK,EAAE;gBACT,gBAAgB,CAAC,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC3E;iBAAM;gBACL,gBAAgB,CAAC,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aACxE;SACF;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAEpF,iGAAiG;IACjG,mDAAmD;IACnD,yFAAyF;IACzF,0EAA0E;IAE1E,OAAO,aAAK,GAAG,EAAE,GAAG,CAAA,0CAA0C,EAAE,SAAS,EAAE,SAAS;QACjF,aAAa,KAAK,SAAS;YAC1B,CAAC,CAAC,IAAC,MAAM,IACL,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAC5D,KAAK,EAAC,2BAA2B,GACjC;YACJ,CAAC,CAAC,IAAI;QACR,aAAK,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,CAAA,0BAA0B,GAAQ,CAClE,CAAA;AACR,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;IACnE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;IACnE,SAAS,CAAC,aAAa,KAAK,SAAS,CAAC,aAAa,CACpD,CAAC;AAGF,eAAe,cAAc,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport { diff, formatters } from 'jsondiffpatch';\nimport { jsx, css } from '@emotion/react';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Switch } from '@blueprintjs/core';\nimport { RegisterItem } from '../../types/item';\n\n\nconst StructuredDiff: React.FC<{\n item1: RegisterItem<any>[\"data\"]\n item2: RegisterItem<any>[\"data\"]\n showUnchanged?: boolean\n className?: string\n}> = React.memo(({ item1, item2, showUnchanged, className }) => {\n const diffContainerRef = useRef<HTMLDivElement>(null);\n\n // Is ignored if managed via prop.\n const [_showUnchanged, setShowUnchanged] = useState(false);\n\n const item1json = JSON.stringify(item1);\n const item2json = JSON.stringify(item2);\n\n useEffect(() => {\n if (diffContainerRef.current) {\n const delta = diff(item1, item2);\n formatters.html.showUnchanged(showUnchanged ?? _showUnchanged);\n if (delta) {\n diffContainerRef.current.innerHTML = formatters.html.format(delta, item1);\n } else {\n diffContainerRef.current.innerHTML = formatters.html.format({}, item1);\n }\n }\n }, [item1json, item2json, diffContainerRef.current, showUnchanged, _showUnchanged]);\n\n // TODO: Make VisualDiff work. Currently, it doesn’t apparently when item detail views use hooks.\n // Which is often. Either make item views hook-free\n // (which means primarily eliminating useRegisterItemData() by inferring and pre-fetching\n // related item data), or work out another way to diff two React elements.\n\n return <div css={css`display: flex; flex-flow: column nowrap;`} className={className}>\n {showUnchanged === undefined\n ? <Switch\n checked={_showUnchanged}\n onChange={evt => setShowUnchanged(evt.currentTarget.checked)}\n label=\"Show unchanged properties\"\n />\n : null}\n <div ref={diffContainerRef} css={css`flex: 1; overflow: auto;`}></div>\n </div>\n}, (prevProps, nextProps) =>\n JSON.stringify(prevProps.item2) === JSON.stringify(nextProps.item2) &&\n JSON.stringify(prevProps.item1) === JSON.stringify(nextProps.item1) &&\n prevProps.showUnchanged === nextProps.showUnchanged\n);\n\n\nexport default StructuredDiff;\n\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { BrowserCtx } from '../BrowserCtx';
|
|
3
|
+
export default function useCustomView(viewID) {
|
|
4
|
+
const { customViews } = useContext(BrowserCtx);
|
|
5
|
+
const view = customViews.find(v => v.id === viewID);
|
|
6
|
+
return {
|
|
7
|
+
value: view,
|
|
8
|
+
errors: [],
|
|
9
|
+
refresh: () => void 0,
|
|
10
|
+
isUpdating: false,
|
|
11
|
+
_reqCounter: 0,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=useCustomView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCustomView.js","sourceRoot":"","sources":["../../../src/views/hooks/useCustomView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,MAAc;IAElD,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACpD,OAAO;QACL,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;QACrB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,CAAC;KACf,CAAC;AACJ,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { ValueHook } from '@riboseinc/paneron-extension-kit/types';\nimport { BrowserCtx } from '../BrowserCtx';\nimport { CustomViewConfiguration } from '../../types';\n\n\nexport default function useCustomView(viewID: string):\nValueHook<CustomViewConfiguration | undefined> {\n const { customViews } = useContext(BrowserCtx);\n const view = customViews.find(v => v.id === viewID);\n return {\n value: view,\n errors: [],\n refresh: () => void 0,\n isUpdating: false,\n _reqCounter: 0,\n };\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { BrowserCtx } from '../BrowserCtx';
|
|
3
|
+
export default function useItemClassConfig(clsID) {
|
|
4
|
+
const { itemClasses } = useContext(BrowserCtx);
|
|
5
|
+
const clsConfig = itemClasses[clsID];
|
|
6
|
+
return {
|
|
7
|
+
value: clsConfig,
|
|
8
|
+
errors: [],
|
|
9
|
+
refresh: () => void 0,
|
|
10
|
+
isUpdating: false,
|
|
11
|
+
_reqCounter: 0,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=useItemClassConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useItemClassConfig.js","sourceRoot":"","sources":["../../../src/views/hooks/useItemClassConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAa;IAEtD,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;QACrB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,CAAC;KACf,CAAC;AACJ,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { ValueHook } from '@riboseinc/paneron-extension-kit/types';\nimport { BrowserCtx } from '../BrowserCtx';\nimport { ItemClassConfiguration } from '../../types';\n\n\nexport default function useItemClassConfig(clsID: string):\nValueHook<ItemClassConfiguration<any> | undefined> {\n const { itemClasses } = useContext(BrowserCtx);\n const clsConfig = itemClasses[clsID];\n return {\n value: clsConfig,\n errors: [],\n refresh: () => void 0,\n isUpdating: false,\n _reqCounter: 0,\n };\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { BrowserCtx } from '../BrowserCtx';
|
|
3
|
+
import { itemPathToItemRef } from '../itemPathUtils';
|
|
4
|
+
export default function useItemRef(itemPath) {
|
|
5
|
+
const { subregisters } = useContext(BrowserCtx);
|
|
6
|
+
try {
|
|
7
|
+
const value = itemPathToItemRef(subregisters !== undefined, itemPath);
|
|
8
|
+
return {
|
|
9
|
+
value,
|
|
10
|
+
isUpdating: false,
|
|
11
|
+
refresh: () => void 0,
|
|
12
|
+
_reqCounter: 0,
|
|
13
|
+
errors: [],
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
return {
|
|
18
|
+
value: undefined,
|
|
19
|
+
isUpdating: false,
|
|
20
|
+
refresh: () => void 0,
|
|
21
|
+
_reqCounter: 0,
|
|
22
|
+
errors: [`${e.toString?.() ?? e}`],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=useItemRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useItemRef.js","sourceRoot":"","sources":["../../../src/views/hooks/useItemRef.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,QAAgB;IAEjD,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI;QACF,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,KAAK,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtE,OAAO;YACL,KAAK;YACL,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;YACrB,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,EAAE;SACX,CAAC;KACH;IAAC,OAAO,CAAM,EAAE;QACf,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;YACrB,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;SACnC,CAAC;KACH;AACH,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { ValueHook } from '@riboseinc/paneron-extension-kit/types';\nimport { BrowserCtx } from '../BrowserCtx';\nimport { itemPathToItemRef } from '../itemPathUtils';\nimport { InternalItemReference } from '../../types';\n\n\nexport default function useItemRef(itemPath: string):\nValueHook<InternalItemReference | undefined> {\n const { subregisters } = useContext(BrowserCtx);\n try {\n const value = itemPathToItemRef(subregisters !== undefined, itemPath);\n return {\n value,\n isUpdating: false,\n refresh: () => void 0,\n _reqCounter: 0,\n errors: [],\n };\n } catch (e: any) {\n return {\n value: undefined,\n isUpdating: false,\n refresh: () => void 0,\n _reqCounter: 0,\n errors: [`${e.toString?.() ?? e}`],\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { BrowserCtx } from '../BrowserCtx';
|
|
3
|
+
import { itemRefToItemPath } from '../itemPathUtils';
|
|
4
|
+
export default function useSingleRegisterItemData(ref) {
|
|
5
|
+
const { useRegisterItemData } = useContext(BrowserCtx);
|
|
6
|
+
const itemPath = ref ? itemRefToItemPath(ref) : 'NONEXISTENT_ITEM';
|
|
7
|
+
const itemResponse = useRegisterItemData({ itemPaths: [itemPath] });
|
|
8
|
+
const itemResponseValue = itemResponse.value[itemPath];
|
|
9
|
+
const itemData = itemResponseValue?.data ?? null;
|
|
10
|
+
const errMsg = "Item data cannot be loaded";
|
|
11
|
+
return {
|
|
12
|
+
value: itemData,
|
|
13
|
+
errors: itemData === null
|
|
14
|
+
? [errMsg, ...itemResponse.errors]
|
|
15
|
+
: itemResponse.errors,
|
|
16
|
+
isUpdating: itemResponse.isUpdating,
|
|
17
|
+
_reqCounter: itemResponse._reqCounter,
|
|
18
|
+
refresh: itemResponse.refresh,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=useSingleRegisterItemData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSingleRegisterItemData.js","sourceRoot":"","sources":["../../../src/views/hooks/useSingleRegisterItemData.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAChD,GAAsC;IAErC,MAAM,EAAE,mBAAmB,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACnE,MAAM,YAAY,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpE,MAAM,iBAAiB,GACrB,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE/B,MAAM,QAAQ,GAAG,iBAAiB,EAAE,IAAI,IAAI,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,4BAA4B,CAAC;IAC5C,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ,KAAK,IAAI;YACvB,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,YAAY,CAAC,MAAM;QACvB,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,OAAO,EAAE,YAAY,CAAC,OAAO;KAC9B,CAAC;AACJ,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { ValueHook } from '@riboseinc/paneron-extension-kit/types';\nimport { BrowserCtx } from '../BrowserCtx';\nimport { itemRefToItemPath } from '../itemPathUtils';\nimport { InternalItemReference, RegisterItem } from '../../types';\n\n\nexport default function useSingleRegisterItemData\n(ref: InternalItemReference | undefined):\nValueHook<RegisterItem<any> | null> {\n const { useRegisterItemData } = useContext(BrowserCtx);\n const itemPath = ref ? itemRefToItemPath(ref) : 'NONEXISTENT_ITEM';\n const itemResponse = useRegisterItemData({ itemPaths: [itemPath] });\n const itemResponseValue: RegisterItem<any> | null =\n itemResponse.value[itemPath];\n\n const itemData = itemResponseValue?.data ?? null;\n const errMsg = \"Item data cannot be loaded\";\n return {\n value: itemData,\n errors: itemData === null\n ? [errMsg, ...itemResponse.errors]\n : itemResponse.errors,\n isUpdating: itemResponse.isUpdating,\n _reqCounter: itemResponse._reqCounter,\n refresh: itemResponse.refresh,\n };\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
2
3
|
import React from 'react';
|
|
3
|
-
import { RegistryViewProps } from '../types';
|
|
4
|
+
import { type RegistryViewProps } from '../types';
|
|
4
5
|
import GenericRelatedItemView from './GenericRelatedItemView';
|
|
5
6
|
export { GenericRelatedItemView };
|
|
6
7
|
export declare const RegistryView: React.FC<RegistryViewProps>;
|
|
7
|
-
export declare const nonIdeal: JSX.Element;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import React, { useContext, useState, useMemo } from 'react';
|
|
4
|
+
import { jsx, css } from '@emotion/react';
|
|
5
|
+
import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
|
|
6
|
+
import TabbedWorkspace from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace';
|
|
7
|
+
import { makeContextProvider as makeTabbedWorkspaceContextProvider, TabbedWorkspaceContext, } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';
|
|
8
|
+
import { isRegisterItem, isRegisterMetadata, isInternalItemReference, } from '../types';
|
|
9
|
+
import { REGISTER_METADATA_FILENAME } from '../common';
|
|
10
|
+
import GenericRelatedItemView from './GenericRelatedItemView';
|
|
11
|
+
import { sidebarConfig, sidebarIDs } from './sidebar';
|
|
12
|
+
import { BrowserCtx } from './BrowserCtx';
|
|
13
|
+
import { _getRelatedClass } from './util';
|
|
14
|
+
import RegisterHome from './detail/RegisterHome';
|
|
15
|
+
import protocolRegistry, { Protocols } from './protocolRegistry';
|
|
16
|
+
import { ChangeRequestContext, ChangeRequestContextProvider, } from './change-request/ChangeRequestContext';
|
|
17
|
+
import { itemPathInCR, itemPathToItemRefLike } from './itemPathUtils';
|
|
18
|
+
export { GenericRelatedItemView };
|
|
19
|
+
const TabbedWorkspaceContextProvider = makeTabbedWorkspaceContextProvider('Browse', sidebarIDs, protocolRegistry);
|
|
20
|
+
export const RegistryView = function (props) {
|
|
21
|
+
return (jsx(TabbedWorkspaceContextProvider, { stateKey: "main-registry-view" },
|
|
22
|
+
jsx(BrowserCtxProvider, { ...props },
|
|
23
|
+
jsx(RegistryWorkspace, null))));
|
|
24
|
+
};
|
|
25
|
+
const RegistryWorkspace = function () {
|
|
26
|
+
const { changeRequest: activeChangeRequest } = useContext(ChangeRequestContext);
|
|
27
|
+
const { spawnTab } = useContext(TabbedWorkspaceContext);
|
|
28
|
+
const globalMode = useMemo((() => activeChangeRequest
|
|
29
|
+
? {
|
|
30
|
+
content: jsx(React.Fragment, null, "Viewing register as proposed\u2009\u2014\u2009contents shown may differ from version in effect"),
|
|
31
|
+
intent: 'danger',
|
|
32
|
+
onClick: () => spawnTab(`${Protocols.CHANGE_REQUEST}:/proposals/${activeChangeRequest.id}/main.yaml`),
|
|
33
|
+
}
|
|
34
|
+
: undefined), [activeChangeRequest?.id]);
|
|
35
|
+
return jsx(TabbedWorkspace, { css: css `flex: 1 1 auto;`, sidebarConfig: sidebarConfig, sidebarIDs: sidebarIDs, newTabPrompt: jsx(RegisterHome, null), globalMode: globalMode });
|
|
36
|
+
};
|
|
37
|
+
const BrowserCtxProvider = function ({ itemClassConfiguration, subregisters, keyExpression, defaultSearchCriteria, customViews, children, }) {
|
|
38
|
+
const { useObjectData, useRemoteUsername } = useContext(DatasetContext);
|
|
39
|
+
const { focusedTabURI, spawnTab } = useContext(TabbedWorkspaceContext);
|
|
40
|
+
const selectedItemPath = focusedTabURI && focusedTabURI.startsWith(`${Protocols.ITEM_DETAILS}:`)
|
|
41
|
+
? focusedTabURI.split(':')[1]
|
|
42
|
+
: null;
|
|
43
|
+
const selectedItemRef = selectedItemPath
|
|
44
|
+
? itemPathToItemRefLike(subregisters !== undefined, selectedItemPath)
|
|
45
|
+
: null;
|
|
46
|
+
const maybeSelectedRegisterItemData = useObjectData({
|
|
47
|
+
objectPaths: selectedItemPath ? [selectedItemPath] : [],
|
|
48
|
+
}).value.data[selectedItemPath ?? ''];
|
|
49
|
+
const selectedRegisterItem = isInternalItemReference(selectedItemRef)
|
|
50
|
+
? maybeSelectedRegisterItemData &&
|
|
51
|
+
isRegisterItem(maybeSelectedRegisterItemData)
|
|
52
|
+
? {
|
|
53
|
+
item: maybeSelectedRegisterItemData,
|
|
54
|
+
ref: selectedItemRef,
|
|
55
|
+
itemClass: itemClassConfiguration[selectedItemRef.classID],
|
|
56
|
+
}
|
|
57
|
+
: undefined
|
|
58
|
+
: null;
|
|
59
|
+
// TODO: Confirm that end extensions using RegistryKit can’t just import hooks
|
|
60
|
+
// from RegistryKit and we really have to pass this to them via context
|
|
61
|
+
// TODO: Why not use useObjectData directly? Since register item paths
|
|
62
|
+
// are just object paths. The casting here is optimistic, since an item at given path
|
|
63
|
+
// may not be a RegisterItem.
|
|
64
|
+
const useRegisterItemData = (opts) => {
|
|
65
|
+
// Original item path mapped to its potential alternative path in current CR,
|
|
66
|
+
// if the item is clarified or added in it.
|
|
67
|
+
// TODO(perf): Access CR data and check whether the item is affected instead of blindly trying CR paths
|
|
68
|
+
const pathsToRequest = {};
|
|
69
|
+
const { changeRequest: activeChangeRequest } = useContext(ChangeRequestContext);
|
|
70
|
+
for (const givenItemPath of opts.itemPaths) {
|
|
71
|
+
pathsToRequest[givenItemPath] = givenItemPath;
|
|
72
|
+
// Don’t use CR alternative path for any path that is already explicitly in-CR.
|
|
73
|
+
// TODO(perf): move out of the loop what’s possible, use map-reduce maybe too
|
|
74
|
+
if (!opts.ignoreActiveCR && !givenItemPath.startsWith('/proposals') && activeChangeRequest?.id) {
|
|
75
|
+
pathsToRequest[itemPathInCR(givenItemPath, activeChangeRequest.id)] = givenItemPath;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const result = useObjectData({
|
|
79
|
+
objectPaths: Object.keys(pathsToRequest),
|
|
80
|
+
});
|
|
81
|
+
const itemData = {};
|
|
82
|
+
for (const [alternativePath, itemPath] of Object.entries(pathsToRequest)) {
|
|
83
|
+
const data = result.value.data[alternativePath]
|
|
84
|
+
?? result.value.data[itemPath]
|
|
85
|
+
?? null;
|
|
86
|
+
if (isRegisterItem(data) || data === null) {
|
|
87
|
+
itemData[itemPath] = data;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Convert dates
|
|
91
|
+
// const parsedData: Record<string, RegisterItem<any> | null> = Object.entries(result.value.data).
|
|
92
|
+
// map(([ path, data ]) => {
|
|
93
|
+
// return {
|
|
94
|
+
// [path]: data !== null
|
|
95
|
+
// ? {
|
|
96
|
+
// ...data,
|
|
97
|
+
// dateAccepted: parseISO(data!.dateAccepted as unknown as string),
|
|
98
|
+
// }
|
|
99
|
+
// : null,
|
|
100
|
+
// };
|
|
101
|
+
// }).
|
|
102
|
+
// reduce((p, c) => ({ ...p, ...c }), {});
|
|
103
|
+
return {
|
|
104
|
+
...result,
|
|
105
|
+
value: itemData,
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
// Register data
|
|
109
|
+
const registerMetadataReq = useObjectData({
|
|
110
|
+
objectPaths: [REGISTER_METADATA_FILENAME],
|
|
111
|
+
});
|
|
112
|
+
const maybeRegisterMetadata = registerMetadataReq.value.data?.[REGISTER_METADATA_FILENAME] ??
|
|
113
|
+
(registerMetadataReq.isUpdating ? undefined : null);
|
|
114
|
+
const registerMetadata = !maybeRegisterMetadata || isRegisterMetadata(maybeRegisterMetadata)
|
|
115
|
+
? maybeRegisterMetadata
|
|
116
|
+
: null;
|
|
117
|
+
const remoteUsername = useRemoteUsername().value.username;
|
|
118
|
+
const stakeholder = remoteUsername
|
|
119
|
+
? (registerMetadata?.stakeholders ?? []).
|
|
120
|
+
find(s => s.gitServerUsername === remoteUsername)
|
|
121
|
+
: undefined;
|
|
122
|
+
// Active CR
|
|
123
|
+
const [activeChangeRequestID, setActiveChangeRequestID] = useState(null);
|
|
124
|
+
const getRelatedClass = _getRelatedClass(itemClassConfiguration);
|
|
125
|
+
return (jsx(BrowserCtx.Provider, { value: {
|
|
126
|
+
stakeholder,
|
|
127
|
+
registerMetadata,
|
|
128
|
+
subregisters,
|
|
129
|
+
itemClasses: itemClassConfiguration,
|
|
130
|
+
jumpTo: spawnTab,
|
|
131
|
+
selectedRegisterItem,
|
|
132
|
+
activeChangeRequestID,
|
|
133
|
+
setActiveChangeRequestID,
|
|
134
|
+
useRegisterItemData,
|
|
135
|
+
getRelatedItemClassConfiguration: getRelatedClass,
|
|
136
|
+
customViews: customViews ?? [],
|
|
137
|
+
keyExpression,
|
|
138
|
+
defaultSearchCriteria,
|
|
139
|
+
} },
|
|
140
|
+
jsx(ChangeRequestContextProvider, { changeRequestID: activeChangeRequestID }, children)));
|
|
141
|
+
};
|
|
142
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/views/index.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useContext, useState, useMemo } from 'react';\nimport { jsx, css } from '@emotion/react';\n\nimport { ValueHook } from '@riboseinc/paneron-extension-kit/types';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport TabbedWorkspace, { TabbedWorkspaceProps } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace';\nimport {\n makeContextProvider as makeTabbedWorkspaceContextProvider,\n TabbedWorkspaceContext,\n} from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';\n\nimport {\n type RegisterItem,\n type RegisterItemDataHook,\n type RegisterStakeholder,\n type RegistryViewProps,\n isRegisterItem,\n isRegisterMetadata,\n isInternalItemReference,\n} from '../types';\n\nimport { REGISTER_METADATA_FILENAME } from '../common';\n\nimport GenericRelatedItemView from './GenericRelatedItemView';\nimport { sidebarConfig, SidebarID, sidebarIDs } from './sidebar';\nimport { BrowserCtx } from './BrowserCtx';\nimport { _getRelatedClass } from './util';\nimport RegisterHome from './detail/RegisterHome';\nimport protocolRegistry, { Protocols, type Protocol } from './protocolRegistry';\nimport {\n ChangeRequestContext,\n ChangeRequestContextProvider,\n} from './change-request/ChangeRequestContext';\nimport { itemPathInCR, itemPathToItemRefLike } from './itemPathUtils';\nexport { GenericRelatedItemView };\n\n\nconst TabbedWorkspaceContextProvider = makeTabbedWorkspaceContextProvider<Protocol, SidebarID>(\n 'Browse',\n sidebarIDs,\n protocolRegistry);\n\n\nexport const RegistryView: React.FC<RegistryViewProps> = function (props) {\n return (\n <TabbedWorkspaceContextProvider stateKey=\"main-registry-view\">\n <BrowserCtxProvider {...props}>\n <RegistryWorkspace />\n </BrowserCtxProvider>\n </TabbedWorkspaceContextProvider>\n );\n};\n\n\nconst RegistryWorkspace: React.FC<Record<never, never>> = function () {\n const { changeRequest: activeChangeRequest } = useContext(ChangeRequestContext);\n const { spawnTab } = useContext(TabbedWorkspaceContext);\n\n const globalMode: TabbedWorkspaceProps<any>['globalMode'] = useMemo(\n (() => activeChangeRequest\n ? {\n content: <>\n Viewing register as proposed — contents shown may differ from version in effect\n </>,\n intent: 'danger',\n onClick: () => spawnTab(`${Protocols.CHANGE_REQUEST}:/proposals/${activeChangeRequest.id}/main.yaml`),\n }\n : undefined),\n [activeChangeRequest?.id],\n );\n\n return <TabbedWorkspace\n css={css`flex: 1 1 auto;`}\n sidebarConfig={sidebarConfig}\n sidebarIDs={sidebarIDs}\n newTabPrompt={<RegisterHome />}\n globalMode={globalMode}\n />\n};\n\n\nconst BrowserCtxProvider: React.FC<RegistryViewProps> = function ({\n itemClassConfiguration,\n subregisters,\n keyExpression,\n defaultSearchCriteria,\n customViews,\n children,\n}) {\n\n const { useObjectData, useRemoteUsername } = useContext(DatasetContext);\n const { focusedTabURI, spawnTab } = useContext(TabbedWorkspaceContext);\n\n const selectedItemPath: string | null =\n focusedTabURI && focusedTabURI.startsWith(`${Protocols.ITEM_DETAILS}:`)\n ? focusedTabURI.split(':')[1]\n : null;\n\n const selectedItemRef: Record<string, string> | null =\n selectedItemPath\n ? itemPathToItemRefLike(subregisters !== undefined, selectedItemPath)\n : null;\n\n const maybeSelectedRegisterItemData: Record<string, any> | null = useObjectData({\n objectPaths: selectedItemPath ? [selectedItemPath] : [],\n }).value.data[selectedItemPath ?? ''];\n\n const selectedRegisterItem: BrowserCtx['selectedRegisterItem'] =\n isInternalItemReference(selectedItemRef)\n ? maybeSelectedRegisterItemData &&\n isRegisterItem(maybeSelectedRegisterItemData)\n ? {\n item: maybeSelectedRegisterItemData,\n ref: selectedItemRef,\n itemClass: itemClassConfiguration[selectedItemRef.classID],\n }\n : undefined\n : null;\n\n // TODO: Confirm that end extensions using RegistryKit can’t just import hooks\n // from RegistryKit and we really have to pass this to them via context\n // TODO: Why not use useObjectData directly? Since register item paths\n // are just object paths. The casting here is optimistic, since an item at given path\n // may not be a RegisterItem.\n const useRegisterItemData: RegisterItemDataHook = (opts) => {\n // Original item path mapped to its potential alternative path in current CR,\n // if the item is clarified or added in it.\n // TODO(perf): Access CR data and check whether the item is affected instead of blindly trying CR paths\n const pathsToRequest: Record<string, string> = {};\n\n const { changeRequest: activeChangeRequest } = useContext(ChangeRequestContext);\n\n\n for (const givenItemPath of opts.itemPaths) {\n pathsToRequest[givenItemPath] = givenItemPath;\n\n // Don’t use CR alternative path for any path that is already explicitly in-CR.\n // TODO(perf): move out of the loop what’s possible, use map-reduce maybe too\n if (!opts.ignoreActiveCR && !givenItemPath.startsWith('/proposals') && activeChangeRequest?.id) {\n pathsToRequest[itemPathInCR(givenItemPath, activeChangeRequest.id)] = givenItemPath;\n }\n }\n\n const result = useObjectData({\n objectPaths: Object.keys(pathsToRequest),\n }) as ValueHook<{ data: Record<string, Record<string, any> | null> }>;\n\n const itemData: Record<string, RegisterItem<any> | null> = {};\n for (const [alternativePath, itemPath] of Object.entries(pathsToRequest)) {\n const data = result.value.data[alternativePath]\n ?? result.value.data[itemPath]\n ?? null;\n if (isRegisterItem(data) || data === null) {\n itemData[itemPath] = data;\n }\n }\n\n // Convert dates\n // const parsedData: Record<string, RegisterItem<any> | null> = Object.entries(result.value.data).\n // map(([ path, data ]) => {\n // return {\n // [path]: data !== null\n // ? {\n // ...data,\n // dateAccepted: parseISO(data!.dateAccepted as unknown as string),\n // }\n // : null,\n // };\n // }).\n // reduce((p, c) => ({ ...p, ...c }), {});\n\n return {\n ...result,\n value: itemData,\n };\n };\n\n\n // Register data\n\n const registerMetadataReq = useObjectData({\n objectPaths: [REGISTER_METADATA_FILENAME],\n }) as ValueHook<{ data: Record<string, Record<string, any> | null> }>;\n const maybeRegisterMetadata =\n registerMetadataReq.value.data?.[REGISTER_METADATA_FILENAME] ??\n (registerMetadataReq.isUpdating ? undefined : null);\n const registerMetadata = !maybeRegisterMetadata || isRegisterMetadata(maybeRegisterMetadata)\n ? maybeRegisterMetadata\n : null;\n\n const remoteUsername: string | undefined = useRemoteUsername().value.username;\n\n const stakeholder: RegisterStakeholder | undefined = remoteUsername\n ? (registerMetadata?.stakeholders ?? []).\n find(s => s.gitServerUsername === remoteUsername)\n : undefined;\n\n\n // Active CR\n\n const [ activeChangeRequestID, setActiveChangeRequestID ] = useState<string | null>(null);\n\n const getRelatedClass = _getRelatedClass(itemClassConfiguration);\n\n return (\n <BrowserCtx.Provider\n value={{\n stakeholder,\n registerMetadata,\n\n subregisters,\n itemClasses: itemClassConfiguration,\n\n jumpTo: spawnTab,\n\n selectedRegisterItem,\n\n activeChangeRequestID,\n setActiveChangeRequestID,\n\n useRegisterItemData,\n getRelatedItemClassConfiguration: getRelatedClass,\n customViews: customViews ?? [],\n\n keyExpression,\n defaultSearchCriteria,\n }}>\n <ChangeRequestContextProvider changeRequestID={activeChangeRequestID}>\n {children}\n </ChangeRequestContextProvider>\n </BrowserCtx.Provider>\n );\n}\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { InternalItemReference } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns dataset-relative path to a register item,
|
|
4
|
+
* given structured item reference.
|
|
5
|
+
*
|
|
6
|
+
* Optionally makes path include given change request contents.
|
|
7
|
+
*/
|
|
8
|
+
export declare function itemRefToItemPath({ subregisterID, classID, itemID }: InternalItemReference, inCRWithID?: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Returns dataset-relative prefix to a register item,
|
|
11
|
+
* given structured item reference without `itemID`.
|
|
12
|
+
*
|
|
13
|
+
* Optionally makes path include given change request contents.
|
|
14
|
+
*/
|
|
15
|
+
export declare function incompleteItemRefToItemPathPrefix({ subregisterID, classID }: Omit<InternalItemReference, 'itemID'>, inCRWithID?: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Attempts to return a structured register item reference
|
|
18
|
+
* given a dataset-relative item path.
|
|
19
|
+
* If some components are missing, returns an incomplete reference.
|
|
20
|
+
*/
|
|
21
|
+
export declare function itemPathToItemRefLike(hasSubregisters: boolean, itemPath: string): {
|
|
22
|
+
itemID?: string;
|
|
23
|
+
classID?: string;
|
|
24
|
+
subregisterID?: string;
|
|
25
|
+
};
|
|
26
|
+
/** Returns just register item ID, given dataset-relative path. */
|
|
27
|
+
export declare function itemPathToItemID(objPath: string): string | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Attempts to return a structured register item reference
|
|
30
|
+
* given a dataset-relative item path.
|
|
31
|
+
* If some components are missing, throws an Error.
|
|
32
|
+
*/
|
|
33
|
+
export declare function itemPathToItemRef(hasSubregisters: boolean, itemPath: string): InternalItemReference;
|
|
34
|
+
/**
|
|
35
|
+
* If given item path indicates that it is within any CR, returns respective CR ID.
|
|
36
|
+
* Otherwise, returns `null`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function getCRIDFromProposedItemPath(givenItemPath: string): string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Given an item path, returns path relative to specified CR ID
|
|
41
|
+
* (even if the path is already relative to another CR ID).
|
|
42
|
+
*/
|
|
43
|
+
export declare function itemPathInCR(givenItemPath: string, crID: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Returns given item path in register-relative form,
|
|
46
|
+
* even if the path is given within proposal contents.
|
|
47
|
+
*/
|
|
48
|
+
export declare function itemPathNotInCR(givenItemPath: string): string;
|
|
49
|
+
/** Converts a change request ID to dataset-relative path to respective main.yaml. */
|
|
50
|
+
export declare function crIDToCRPath(crID: string): string;
|
|
51
|
+
/** Extracts change request ID from dataset-relative path to its main.yaml. */
|
|
52
|
+
export declare function crPathToCRID(crPath: string): string;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns dataset-relative path to a register item,
|
|
3
|
+
* given structured item reference.
|
|
4
|
+
*
|
|
5
|
+
* Optionally makes path include given change request contents.
|
|
6
|
+
*/
|
|
7
|
+
export function itemRefToItemPath({ subregisterID, classID, itemID }, inCRWithID) {
|
|
8
|
+
return `${incompleteItemRefToItemPathPrefix({ subregisterID, classID }, inCRWithID)}/${itemID}.yaml`;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Returns dataset-relative prefix to a register item,
|
|
12
|
+
* given structured item reference without `itemID`.
|
|
13
|
+
*
|
|
14
|
+
* Optionally makes path include given change request contents.
|
|
15
|
+
*/
|
|
16
|
+
export function incompleteItemRefToItemPathPrefix({ subregisterID, classID }, inCRWithID) {
|
|
17
|
+
const itemWithClass = `${classID}`;
|
|
18
|
+
const fullPath = subregisterID
|
|
19
|
+
? `subregisters/${subregisterID}/${itemWithClass}`
|
|
20
|
+
: itemWithClass;
|
|
21
|
+
const maybeInCR = inCRWithID !== undefined
|
|
22
|
+
? `/proposals/${inCRWithID}/items/${fullPath}`
|
|
23
|
+
: `/${fullPath}`;
|
|
24
|
+
return maybeInCR;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Attempts to return a structured register item reference
|
|
28
|
+
* given a dataset-relative item path.
|
|
29
|
+
* If some components are missing, returns an incomplete reference.
|
|
30
|
+
*/
|
|
31
|
+
export function itemPathToItemRefLike(hasSubregisters, itemPath) {
|
|
32
|
+
const pathNormalized = itemPath.trim()
|
|
33
|
+
? stripLeadingSlash(itemPathNotInCR(itemPath))
|
|
34
|
+
: undefined;
|
|
35
|
+
const pathParts = pathNormalized?.split('/') ?? [];
|
|
36
|
+
const subregisterID = hasSubregisters && pathParts.length >= 1
|
|
37
|
+
? pathParts[1]
|
|
38
|
+
: undefined;
|
|
39
|
+
const classID = hasSubregisters
|
|
40
|
+
? pathParts.length >= 3
|
|
41
|
+
? pathParts[2]
|
|
42
|
+
: undefined
|
|
43
|
+
: pathParts.length >= 1
|
|
44
|
+
? pathParts[0]
|
|
45
|
+
: undefined;
|
|
46
|
+
const itemID = (hasSubregisters && pathParts.length === 4) ||
|
|
47
|
+
(!hasSubregisters && pathParts.length === 2)
|
|
48
|
+
? pathParts[pathParts.length - 1].split('.')[0]
|
|
49
|
+
: undefined;
|
|
50
|
+
return { subregisterID, classID, itemID };
|
|
51
|
+
}
|
|
52
|
+
/** Returns just register item ID, given dataset-relative path. */
|
|
53
|
+
export function itemPathToItemID(objPath) {
|
|
54
|
+
const objPathComponents = objPath?.split('/');
|
|
55
|
+
const selectedItemID = objPathComponents !== undefined
|
|
56
|
+
? objPathComponents[objPathComponents.length - 1].split('.')[0]
|
|
57
|
+
: undefined;
|
|
58
|
+
return selectedItemID;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Attempts to return a structured register item reference
|
|
62
|
+
* given a dataset-relative item path.
|
|
63
|
+
* If some components are missing, throws an Error.
|
|
64
|
+
*/
|
|
65
|
+
export function itemPathToItemRef(hasSubregisters, itemPath) {
|
|
66
|
+
const maybeRef = itemPathToItemRefLike(hasSubregisters, itemPath);
|
|
67
|
+
if (maybeRef.classID && maybeRef.itemID) {
|
|
68
|
+
return maybeRef;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.error("Internal item reference cannot be constructed from given item path, got", maybeRef, itemPath, hasSubregisters, "from", itemPath);
|
|
72
|
+
throw new Error("Internal item reference cannot be constructed from given item path");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const CR_ITEM_PREFIX_REGEX = /^proposals\/(?<crID>\p{Hex_Digit}{8}(?:-\p{Hex_Digit}{4}){3}-\p{Hex_Digit}{12})\/items\//u;
|
|
76
|
+
/**
|
|
77
|
+
* If given item path indicates that it is within any CR, returns respective CR ID.
|
|
78
|
+
* Otherwise, returns `null`.
|
|
79
|
+
*/
|
|
80
|
+
export function getCRIDFromProposedItemPath(givenItemPath) {
|
|
81
|
+
return stripLeadingSlash(givenItemPath).match(CR_ITEM_PREFIX_REGEX)?.groups?.crID ?? null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Given an item path, returns path relative to specified CR ID
|
|
85
|
+
* (even if the path is already relative to another CR ID).
|
|
86
|
+
*/
|
|
87
|
+
export function itemPathInCR(givenItemPath, crID) {
|
|
88
|
+
// Remove any CR prefix from given path
|
|
89
|
+
// TODO(perf): Don’t do if prefix matches CR ID already specified?
|
|
90
|
+
// TODO: Validate given path actually looks like a register item path and throw?
|
|
91
|
+
const normalized = stripLeadingSlash(givenItemPath).replace(CR_ITEM_PREFIX_REGEX, '');
|
|
92
|
+
return `/proposals/${crID}/items/${normalized}`;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Returns given item path in register-relative form,
|
|
96
|
+
* even if the path is given within proposal contents.
|
|
97
|
+
*/
|
|
98
|
+
export function itemPathNotInCR(givenItemPath) {
|
|
99
|
+
const normalized = stripLeadingSlash(givenItemPath).replace(CR_ITEM_PREFIX_REGEX, '');
|
|
100
|
+
return `/${normalized}`;
|
|
101
|
+
}
|
|
102
|
+
function stripLeadingSlash(aPath) {
|
|
103
|
+
return aPath.replace(/^\//, '');
|
|
104
|
+
}
|
|
105
|
+
/** Converts a change request ID to dataset-relative path to respective main.yaml. */
|
|
106
|
+
export function crIDToCRPath(crID) {
|
|
107
|
+
return `/proposals/${crID}/main.yaml`;
|
|
108
|
+
}
|
|
109
|
+
/** Extracts change request ID from dataset-relative path to its main.yaml. */
|
|
110
|
+
export function crPathToCRID(crPath) {
|
|
111
|
+
return (stripLeadingSlash(crPath).
|
|
112
|
+
replace('proposals/', '').
|
|
113
|
+
split('/')[0]);
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=itemPathUtils.js.map
|