@riboseinc/paneron-registry-kit 2.0.0 → 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.js +2 -0
- package/compiled/index.js +21 -0
- package/compiled/migrations/initial.js +8 -0
- package/compiled/types/cr.js +131 -0
- package/compiled/types/index.js +8 -0
- package/compiled/types/item.js +22 -0
- package/compiled/types/proposal.js +21 -0
- package/compiled/types/register.js +25 -0
- package/compiled/types/registry.js +10 -0
- package/compiled/types/stakeholder.js +34 -0
- package/compiled/types/util.js +3 -0
- package/compiled/types/views.js +2 -0
- package/compiled/views/AnnotatedChange.js +57 -0
- package/compiled/views/BrowserCtx.js +19 -0
- package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.js +110 -0
- package/compiled/views/FilterCriteria/criteriaGroupToQueryExpression.js +40 -0
- package/compiled/views/FilterCriteria/criteriaGroupToSummary.js +47 -0
- package/compiled/views/FilterCriteria/criteriaToNodes.js +89 -0
- package/compiled/views/FilterCriteria/index.js +75 -0
- package/compiled/views/FilterCriteria/models.js +28 -0
- package/compiled/views/FilterCriteria/mutateGroup.js +53 -0
- package/compiled/views/GenericRelatedItemView.js +147 -0
- package/compiled/views/RegisterStakeholder.js +19 -0
- package/compiled/views/RegisterVersion.js +20 -0
- package/compiled/views/SearchQuery.js +58 -0
- package/compiled/views/change-request/ChangeRequestContext.js +30 -0
- package/compiled/views/change-request/Proposals.js +185 -0
- package/compiled/views/change-request/objectChangeset.js +189 -0
- package/compiled/views/detail/ChangeRequest/Proposal.js +144 -0
- package/compiled/views/detail/ChangeRequest/index.js +140 -0
- package/compiled/views/detail/ChangeRequest/transitions.js +418 -0
- package/compiled/views/detail/CustomView/index.js +32 -0
- package/compiled/views/detail/RegisterHome/index.js +70 -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.js +27 -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.js +135 -0
- package/compiled/views/detail/RegisterMeta/index.js +61 -0
- package/compiled/views/detail/index.js +11 -0
- package/compiled/views/diffing/InlineDiff.js +20 -0
- package/compiled/views/diffing/StructuredDiff.js +38 -0
- package/compiled/views/hooks/useCustomView.js +14 -0
- package/compiled/views/hooks/useItemClassConfig.js +14 -0
- package/compiled/views/hooks/useItemRef.js +26 -0
- package/compiled/views/hooks/useSingleRegisterItemData.js +21 -0
- package/compiled/views/index.js +142 -0
- package/compiled/views/itemPathUtils.js +115 -0
- package/compiled/views/itemQueryUtils.js +42 -0
- package/compiled/views/protocolRegistry.js +24 -0
- package/compiled/views/sidebar/Browse/index.js +278 -0
- package/compiled/views/sidebar/Export/index.js +47 -0
- package/compiled/views/sidebar/ListItem.js +23 -0
- package/compiled/views/sidebar/Registration/index.js +114 -0
- package/compiled/views/sidebar/Search/index.js +100 -0
- package/compiled/views/sidebar/index.js +73 -0
- package/compiled/views/util.js +63 -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/dependencies-local/extension-kit/object-specs/yaml/schema.js +26 -0
- 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 +5 -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/dist/common.js.map +1 -0
- package/dist/index.d.ts +6 -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.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/item.d.ts +59 -0
- package/dist/types/item.js.map +1 -0
- package/dist/types/proposal.d.ts +64 -0
- package/dist/types/proposal.js.map +1 -0
- package/dist/types/register.d.ts +18 -0
- package/dist/types/register.js.map +1 -0
- package/dist/types/registry.d.ts +15 -0
- package/dist/types/registry.js.map +1 -0
- package/dist/types/stakeholder.d.ts +58 -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.map +1 -0
- package/dist/views/BrowserCtx.d.ts +73 -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.map +1 -0
- package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.d.ts +6 -0
- package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +1 -0
- package/dist/views/FilterCriteria/criteriaGroupToSummary.d.ts +5 -0
- package/dist/views/FilterCriteria/criteriaGroupToSummary.js.map +1 -0
- package/dist/views/FilterCriteria/criteriaToNodes.d.ts +24 -0
- package/dist/views/FilterCriteria/criteriaToNodes.js.map +1 -0
- package/dist/views/FilterCriteria/index.d.ts +23 -0
- package/dist/views/FilterCriteria/index.js.map +1 -0
- package/dist/views/FilterCriteria/models.d.ts +68 -0
- package/dist/views/FilterCriteria/models.js.map +1 -0
- package/dist/views/FilterCriteria/mutateGroup.d.ts +17 -0
- package/dist/views/FilterCriteria/mutateGroup.js.map +1 -0
- package/dist/views/GenericRelatedItemView.d.ts +6 -0
- package/dist/views/GenericRelatedItemView.js.map +1 -0
- package/dist/views/RegisterStakeholder.d.ts +9 -0
- package/dist/views/RegisterStakeholder.js.map +1 -0
- package/dist/views/RegisterVersion.d.ts +9 -0
- package/dist/views/RegisterVersion.js.map +1 -0
- package/dist/views/SearchQuery.d.ts +13 -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.map +1 -0
- package/dist/views/change-request/Proposals.d.ts +21 -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.map +1 -0
- package/dist/views/detail/ChangeRequest/Proposal.d.ts +0 -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.map +1 -0
- package/dist/views/detail/ChangeRequest/transitions.d.ts +28 -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.map +1 -0
- package/dist/views/detail/RegisterHome/index.d.ts +5 -0
- package/dist/views/detail/RegisterHome/index.js.map +1 -0
- package/dist/views/detail/RegisterItem/RelatedItems.d.ts +14 -0
- package/{views → dist/views}/detail/RegisterItem/RelatedItems.js +5 -5
- package/dist/views/detail/RegisterItem/RelatedItems.js.map +1 -0
- package/dist/views/detail/RegisterItem/SupersedingItemMenu.js.map +1 -0
- package/dist/views/detail/RegisterItem/index.d.ts +13 -0
- package/{views → dist/views}/detail/RegisterItem/index.js +3 -2
- 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.map +1 -0
- package/dist/views/detail/RegisterMeta/index.d.ts +10 -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.map +1 -0
- package/dist/views/diffing/InlineDiff.d.ts +12 -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.map +1 -0
- package/dist/views/hooks/useCustomView.d.ts +3 -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.map +1 -0
- package/dist/views/hooks/useItemRef.d.ts +3 -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.map +1 -0
- package/dist/views/index.d.ts +7 -0
- package/dist/views/index.js.map +1 -0
- package/dist/views/itemPathUtils.d.ts +52 -0
- package/dist/views/itemPathUtils.js.map +1 -0
- package/dist/views/itemQueryUtils.d.ts +11 -0
- package/dist/views/itemQueryUtils.js.map +1 -0
- package/dist/views/protocolRegistry.d.ts +12 -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.map +1 -0
- package/dist/views/sidebar/Export/index.d.ts +5 -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.map +1 -0
- package/dist/views/sidebar/Registration/index.d.ts +5 -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.map +1 -0
- package/dist/views/sidebar/index.d.ts +6 -0
- package/dist/views/sidebar/index.js.map +1 -0
- package/dist/views/util.d.ts +36 -0
- package/dist/views/util.js.map +1 -0
- package/package.json +2 -1
- package/react-visual-diff.d.ts +9 -0
- package/views/detail/RegisterItem/RelatedItems.js.map +0 -1
- package/views/detail/RegisterItem/index.js.map +0 -1
- /package/{common.d.ts → compiled/common.d.ts} +0 -0
- /package/{common.js.map → compiled/common.js.map} +0 -0
- /package/{index.d.ts → compiled/index.d.ts} +0 -0
- /package/{index.js.map → compiled/index.js.map} +0 -0
- /package/{migrations → compiled/migrations}/initial.d.ts +0 -0
- /package/{migrations → compiled/migrations}/initial.js.map +0 -0
- /package/{types → compiled/types}/cr.d.ts +0 -0
- /package/{types → compiled/types}/cr.js.map +0 -0
- /package/{types → compiled/types}/index.d.ts +0 -0
- /package/{types → compiled/types}/index.js.map +0 -0
- /package/{types → compiled/types}/item.d.ts +0 -0
- /package/{types → compiled/types}/item.js.map +0 -0
- /package/{types → compiled/types}/proposal.d.ts +0 -0
- /package/{types → compiled/types}/proposal.js.map +0 -0
- /package/{types → compiled/types}/register.d.ts +0 -0
- /package/{types → compiled/types}/register.js.map +0 -0
- /package/{types → compiled/types}/registry.d.ts +0 -0
- /package/{types → compiled/types}/registry.js.map +0 -0
- /package/{types → compiled/types}/stakeholder.d.ts +0 -0
- /package/{types → compiled/types}/stakeholder.js.map +0 -0
- /package/{types → compiled/types}/util.d.ts +0 -0
- /package/{types → compiled/types}/util.js.map +0 -0
- /package/{types → compiled/types}/views.d.ts +0 -0
- /package/{types → compiled/types}/views.js.map +0 -0
- /package/{views → compiled/views}/AnnotatedChange.d.ts +0 -0
- /package/{views → compiled/views}/AnnotatedChange.js.map +0 -0
- /package/{views → compiled/views}/BrowserCtx.d.ts +0 -0
- /package/{views → compiled/views}/BrowserCtx.js.map +0 -0
- /package/{views → compiled/views}/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -0
- /package/{views → compiled/views}/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -0
- /package/{views → compiled/views}/FilterCriteria/criteriaGroupToQueryExpression.d.ts +0 -0
- /package/{views → compiled/views}/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -0
- /package/{views → compiled/views}/FilterCriteria/criteriaGroupToSummary.d.ts +0 -0
- /package/{views → compiled/views}/FilterCriteria/criteriaGroupToSummary.js.map +0 -0
- /package/{views → compiled/views}/FilterCriteria/criteriaToNodes.d.ts +0 -0
- /package/{views → compiled/views}/FilterCriteria/criteriaToNodes.js.map +0 -0
- /package/{views → compiled/views}/FilterCriteria/index.d.ts +0 -0
- /package/{views → compiled/views}/FilterCriteria/index.js.map +0 -0
- /package/{views → compiled/views}/FilterCriteria/models.d.ts +0 -0
- /package/{views → compiled/views}/FilterCriteria/models.js.map +0 -0
- /package/{views → compiled/views}/FilterCriteria/mutateGroup.d.ts +0 -0
- /package/{views → compiled/views}/FilterCriteria/mutateGroup.js.map +0 -0
- /package/{views → compiled/views}/GenericRelatedItemView.d.ts +0 -0
- /package/{views → compiled/views}/GenericRelatedItemView.js.map +0 -0
- /package/{views → compiled/views}/RegisterStakeholder.d.ts +0 -0
- /package/{views → compiled/views}/RegisterStakeholder.js.map +0 -0
- /package/{views → compiled/views}/RegisterVersion.d.ts +0 -0
- /package/{views → compiled/views}/RegisterVersion.js.map +0 -0
- /package/{views → compiled/views}/SearchQuery.d.ts +0 -0
- /package/{views → compiled/views}/SearchQuery.js.map +0 -0
- /package/{views → compiled/views}/change-request/ChangeRequestContext.d.ts +0 -0
- /package/{views → compiled/views}/change-request/ChangeRequestContext.js.map +0 -0
- /package/{views → compiled/views}/change-request/Proposals.d.ts +0 -0
- /package/{views → compiled/views}/change-request/Proposals.js.map +0 -0
- /package/{views → compiled/views}/change-request/objectChangeset.d.ts +0 -0
- /package/{views → compiled/views}/change-request/objectChangeset.js.map +0 -0
- /package/{views → compiled/views}/detail/ChangeRequest/Proposal.d.ts +0 -0
- /package/{views → compiled/views}/detail/ChangeRequest/Proposal.js.map +0 -0
- /package/{views → compiled/views}/detail/ChangeRequest/index.d.ts +0 -0
- /package/{views → compiled/views}/detail/ChangeRequest/index.js.map +0 -0
- /package/{views → compiled/views}/detail/ChangeRequest/transitions.d.ts +0 -0
- /package/{views → compiled/views}/detail/ChangeRequest/transitions.js.map +0 -0
- /package/{views → compiled/views}/detail/CustomView/index.d.ts +0 -0
- /package/{views → compiled/views}/detail/CustomView/index.js.map +0 -0
- /package/{views → compiled/views}/detail/RegisterHome/index.d.ts +0 -0
- /package/{views → compiled/views}/detail/RegisterHome/index.js.map +0 -0
- /package/{views → compiled/views}/detail/RegisterItem/SupersedingItemMenu.d.ts +0 -0
- /package/{views → compiled/views}/detail/RegisterItem/SupersedingItemMenu.js.map +0 -0
- /package/{views → compiled/views}/detail/RegisterItem/index.d.ts +0 -0
- /package/{views → compiled/views}/detail/RegisterMeta/RegisterMetaForm.d.ts +0 -0
- /package/{views → compiled/views}/detail/RegisterMeta/RegisterMetaForm.js.map +0 -0
- /package/{views → compiled/views}/detail/RegisterMeta/index.d.ts +0 -0
- /package/{views → compiled/views}/detail/RegisterMeta/index.js.map +0 -0
- /package/{views → compiled/views}/detail/index.d.ts +0 -0
- /package/{views → compiled/views}/detail/index.js.map +0 -0
- /package/{views → compiled/views}/diffing/InlineDiff.d.ts +0 -0
- /package/{views → compiled/views}/diffing/InlineDiff.js.map +0 -0
- /package/{views → compiled/views}/diffing/StructuredDiff.d.ts +0 -0
- /package/{views → compiled/views}/diffing/StructuredDiff.js.map +0 -0
- /package/{views → compiled/views}/hooks/useCustomView.d.ts +0 -0
- /package/{views → compiled/views}/hooks/useCustomView.js.map +0 -0
- /package/{views → compiled/views}/hooks/useItemClassConfig.d.ts +0 -0
- /package/{views → compiled/views}/hooks/useItemClassConfig.js.map +0 -0
- /package/{views → compiled/views}/hooks/useItemRef.d.ts +0 -0
- /package/{views → compiled/views}/hooks/useItemRef.js.map +0 -0
- /package/{views → compiled/views}/hooks/useSingleRegisterItemData.d.ts +0 -0
- /package/{views → compiled/views}/hooks/useSingleRegisterItemData.js.map +0 -0
- /package/{views → compiled/views}/index.d.ts +0 -0
- /package/{views → compiled/views}/index.js.map +0 -0
- /package/{views → compiled/views}/itemPathUtils.d.ts +0 -0
- /package/{views → compiled/views}/itemPathUtils.js.map +0 -0
- /package/{views → compiled/views}/itemQueryUtils.d.ts +0 -0
- /package/{views → compiled/views}/itemQueryUtils.js.map +0 -0
- /package/{views → compiled/views}/protocolRegistry.d.ts +0 -0
- /package/{views → compiled/views}/protocolRegistry.js.map +0 -0
- /package/{views → compiled/views}/sidebar/Browse/index.d.ts +0 -0
- /package/{views → compiled/views}/sidebar/Browse/index.js.map +0 -0
- /package/{views → compiled/views}/sidebar/Export/index.d.ts +0 -0
- /package/{views → compiled/views}/sidebar/Export/index.js.map +0 -0
- /package/{views → compiled/views}/sidebar/ListItem.d.ts +0 -0
- /package/{views → compiled/views}/sidebar/ListItem.js.map +0 -0
- /package/{views → compiled/views}/sidebar/Registration/index.d.ts +0 -0
- /package/{views → compiled/views}/sidebar/Registration/index.js.map +0 -0
- /package/{views → compiled/views}/sidebar/Search/index.d.ts +0 -0
- /package/{views → compiled/views}/sidebar/Search/index.js.map +0 -0
- /package/{views → compiled/views}/sidebar/index.d.ts +0 -0
- /package/{views → compiled/views}/sidebar/index.js.map +0 -0
- /package/{views → compiled/views}/util.d.ts +0 -0
- /package/{views → compiled/views}/util.js.map +0 -0
- /package/{types/util.js → dependencies-local/extension-kit/i18n/types.js} +0 -0
- /package/{types/views.js → dependencies-local/extension-kit/types/binary-invocation.js} +0 -0
- /package/{common.js → dist/common.js} +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /package/{migrations → dist/migrations}/initial.js +0 -0
- /package/{types → dist/types}/cr.js +0 -0
- /package/{types → dist/types}/index.js +0 -0
- /package/{types → dist/types}/item.js +0 -0
- /package/{types → dist/types}/proposal.js +0 -0
- /package/{types → dist/types}/register.js +0 -0
- /package/{types → dist/types}/registry.js +0 -0
- /package/{types → dist/types}/stakeholder.js +0 -0
- /package/{views → dist/views}/AnnotatedChange.js +0 -0
- /package/{views → dist/views}/BrowserCtx.js +0 -0
- /package/{views → dist/views}/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -0
- /package/{views → dist/views}/FilterCriteria/criteriaGroupToQueryExpression.js +0 -0
- /package/{views → dist/views}/FilterCriteria/criteriaGroupToSummary.js +0 -0
- /package/{views → dist/views}/FilterCriteria/criteriaToNodes.js +0 -0
- /package/{views → dist/views}/FilterCriteria/index.js +0 -0
- /package/{views → dist/views}/FilterCriteria/models.js +0 -0
- /package/{views → dist/views}/FilterCriteria/mutateGroup.js +0 -0
- /package/{views → dist/views}/GenericRelatedItemView.js +0 -0
- /package/{views → dist/views}/RegisterStakeholder.js +0 -0
- /package/{views → dist/views}/RegisterVersion.js +0 -0
- /package/{views → dist/views}/SearchQuery.js +0 -0
- /package/{views → dist/views}/change-request/ChangeRequestContext.js +0 -0
- /package/{views → dist/views}/change-request/Proposals.js +0 -0
- /package/{views → dist/views}/change-request/objectChangeset.js +0 -0
- /package/{views → dist/views}/detail/ChangeRequest/Proposal.js +0 -0
- /package/{views → dist/views}/detail/ChangeRequest/index.js +0 -0
- /package/{views → dist/views}/detail/ChangeRequest/transitions.js +0 -0
- /package/{views → dist/views}/detail/CustomView/index.js +0 -0
- /package/{views → dist/views}/detail/RegisterHome/index.js +0 -0
- /package/{views/detail/RegisterItem/RelatedItems.d.ts → dist/views/detail/RegisterItem/SupersedingItemMenu.d.ts} +0 -0
- /package/{views → dist/views}/detail/RegisterItem/SupersedingItemMenu.js +0 -0
- /package/{views → dist/views}/detail/RegisterMeta/RegisterMetaForm.js +0 -0
- /package/{views → dist/views}/detail/RegisterMeta/index.js +0 -0
- /package/{views → dist/views}/detail/index.js +0 -0
- /package/{views → dist/views}/diffing/InlineDiff.js +0 -0
- /package/{views → dist/views}/diffing/StructuredDiff.js +0 -0
- /package/{views → dist/views}/hooks/useCustomView.js +0 -0
- /package/{views → dist/views}/hooks/useItemClassConfig.js +0 -0
- /package/{views → dist/views}/hooks/useItemRef.js +0 -0
- /package/{views → dist/views}/hooks/useSingleRegisterItemData.js +0 -0
- /package/{views → dist/views}/index.js +0 -0
- /package/{views → dist/views}/itemPathUtils.js +0 -0
- /package/{views → dist/views}/itemQueryUtils.js +0 -0
- /package/{views → dist/views}/protocolRegistry.js +0 -0
- /package/{views → dist/views}/sidebar/Browse/index.js +0 -0
- /package/{views → dist/views}/sidebar/Export/index.js +0 -0
- /package/{views → dist/views}/sidebar/ListItem.js +0 -0
- /package/{views → dist/views}/sidebar/Registration/index.js +0 -0
- /package/{views → dist/views}/sidebar/Search/index.js +0 -0
- /package/{views → dist/views}/sidebar/index.js +0 -0
- /package/{views → dist/views}/util.js +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import React, { useContext } from 'react';
|
|
4
|
+
import { jsx } from '@emotion/react';
|
|
5
|
+
import { Button, ButtonGroup } from '@blueprintjs/core';
|
|
6
|
+
import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
|
|
7
|
+
import { BrowserCtx } from '../../BrowserCtx';
|
|
8
|
+
export const ExportSidebarBlock = function () {
|
|
9
|
+
const { writeFileToFilesystem, getObjectData, getBlob } = useContext(DatasetContext);
|
|
10
|
+
const { selectedRegisterItem } = useContext(BrowserCtx);
|
|
11
|
+
async function handleExport(bufferData) {
|
|
12
|
+
if (!writeFileToFilesystem) {
|
|
13
|
+
throw new Error("Unable to export: filesystem write function unavailable");
|
|
14
|
+
}
|
|
15
|
+
await writeFileToFilesystem({
|
|
16
|
+
dialogOpts: {
|
|
17
|
+
prompt: "Choose location to export to",
|
|
18
|
+
filters: [{ name: 'All files', extensions: ['*'] }],
|
|
19
|
+
},
|
|
20
|
+
bufferData,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async function getExportedData(formatConfig) {
|
|
24
|
+
if (!selectedRegisterItem) {
|
|
25
|
+
throw new Error("Unable to export item: current item data not available");
|
|
26
|
+
}
|
|
27
|
+
if (!getBlob) {
|
|
28
|
+
throw new Error("Unable to export item: no blob helper");
|
|
29
|
+
}
|
|
30
|
+
if (formatConfig) {
|
|
31
|
+
return await formatConfig.exportItem(selectedRegisterItem.item, { getObjectData, getBlob });
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return await getBlob(JSON.stringify(selectedRegisterItem.item));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (!selectedRegisterItem) {
|
|
38
|
+
return jsx(React.Fragment, null);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return (jsx(ButtonGroup, { vertical: true, fill: true },
|
|
42
|
+
(selectedRegisterItem?.itemClass?.exportFormats ?? []).map((exportFormat, idx) => jsx(Button, { fill: true, key: idx, alignText: "left", onClick: async () => await handleExport(await getExportedData(exportFormat)) }, exportFormat.label)),
|
|
43
|
+
jsx(Button, { fill: true, alignText: "left", onClick: async () => await handleExport(await getExportedData()) }, "JSON")));
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
export default ExportSidebarBlock;
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import { useContext } from 'react';
|
|
4
|
+
import { jsx, css } from '@emotion/react';
|
|
5
|
+
import { BrowserCtx } from '../BrowserCtx';
|
|
6
|
+
import { itemPathToItemRef } from '../itemPathUtils';
|
|
7
|
+
/** Register item list view. */
|
|
8
|
+
const ListItem = function ({ objectData, objectPath }) {
|
|
9
|
+
const { subregisters, getRelatedItemClassConfiguration } = useContext(BrowserCtx);
|
|
10
|
+
const itemRef = itemPathToItemRef(subregisters !== undefined, objectPath);
|
|
11
|
+
const clsConfig = getRelatedItemClassConfiguration(itemRef.classID);
|
|
12
|
+
const ListItemView = clsConfig.itemView;
|
|
13
|
+
const itemPayload = objectData?.data;
|
|
14
|
+
const itemView = itemPayload
|
|
15
|
+
? jsx(ListItemView, { itemData: itemPayload, itemRef: itemRef })
|
|
16
|
+
: jsx("span", { css: css `opacity: .4` },
|
|
17
|
+
"(missing item data at ",
|
|
18
|
+
objectPath,
|
|
19
|
+
")");
|
|
20
|
+
return itemView;
|
|
21
|
+
};
|
|
22
|
+
export default ListItem;
|
|
23
|
+
//# sourceMappingURL=ListItem.js.map
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import React, { useEffect, useContext } from 'react';
|
|
4
|
+
import { jsx, css } from '@emotion/react';
|
|
5
|
+
import { Icon } from '@blueprintjs/core';
|
|
6
|
+
import { TabbedWorkspaceContext } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';
|
|
7
|
+
import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
|
|
8
|
+
//import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
|
|
9
|
+
import makeSearchResultList from '@riboseinc/paneron-extension-kit/widgets/SearchResultList';
|
|
10
|
+
import { hasSubmitterInput, isDisposed, hadBeenProposed } from '../../../types/cr';
|
|
11
|
+
import { BrowserCtx } from '../../BrowserCtx';
|
|
12
|
+
import { itemRefToItemPath } from '../../itemPathUtils';
|
|
13
|
+
import { Datestamp } from '../../../views/util';
|
|
14
|
+
import { Protocols } from '../../protocolRegistry';
|
|
15
|
+
export const PendingChangeRequestsBlock = function () {
|
|
16
|
+
const { stakeholder } = useContext(BrowserCtx);
|
|
17
|
+
const stakeholderUsername = stakeholder?.gitServerUsername;
|
|
18
|
+
const stakeholderCondition = stakeholderUsername
|
|
19
|
+
? `obj.submittingStakeholderGitServerUsername === "${stakeholderUsername}"`
|
|
20
|
+
: 'false';
|
|
21
|
+
// Don’t show drafts in the list of pending proposals, unless it’s user’s own drafts.
|
|
22
|
+
const query = `!obj.timeDisposed && (obj.state !== "draft" || ${stakeholderCondition})`;
|
|
23
|
+
return jsx(ChangeRequestListBlock, { impliedQuery: query });
|
|
24
|
+
};
|
|
25
|
+
export const ChangeRequestHistoryBlock = function () {
|
|
26
|
+
return jsx(ChangeRequestListBlock, { impliedQuery: DISPOSED_CR_QUERY });
|
|
27
|
+
};
|
|
28
|
+
const CR_BASE_QUERY = 'objPath.indexOf("/proposals/") === 0 && objPath.endsWith("main.yaml")';
|
|
29
|
+
const DISPOSED_CR_QUERY = 'obj.timeDisposed !== undefined && obj.timeDisposed !== null';
|
|
30
|
+
const ChangeRequestListBlock = function ({ impliedQuery }) {
|
|
31
|
+
const { usePersistentDatasetStateReducer } = useContext(DatasetContext);
|
|
32
|
+
const { spawnTab, focusedTabURI } = useContext(TabbedWorkspaceContext);
|
|
33
|
+
const { selectedRegisterItem } = useContext(BrowserCtx);
|
|
34
|
+
const initialState = {
|
|
35
|
+
quickSubstringQuery: '',
|
|
36
|
+
selectedItemPath: null,
|
|
37
|
+
};
|
|
38
|
+
const itemPath = selectedRegisterItem
|
|
39
|
+
? itemRefToItemPath(selectedRegisterItem.ref)
|
|
40
|
+
: selectedRegisterItem;
|
|
41
|
+
// ^ Adopt undefined value if no data is available, null if item is not selected
|
|
42
|
+
const [state, dispatch,] = usePersistentDatasetStateReducer(`change-request-list-block-${itemPath === null ? 'global' : itemPath}-${impliedQuery}`, undefined, undefined, (prevState, action) => {
|
|
43
|
+
switch (action.type) {
|
|
44
|
+
case 'update-quick-substring-query':
|
|
45
|
+
return {
|
|
46
|
+
...prevState,
|
|
47
|
+
quickSubstringQuery: action.payload.substring,
|
|
48
|
+
};
|
|
49
|
+
case 'select-item':
|
|
50
|
+
return {
|
|
51
|
+
...prevState,
|
|
52
|
+
selectedItemPath: action.payload.itemPath,
|
|
53
|
+
};
|
|
54
|
+
default:
|
|
55
|
+
throw new Error("Unexpected search state");
|
|
56
|
+
}
|
|
57
|
+
}, initialState, null);
|
|
58
|
+
const query = itemPath
|
|
59
|
+
? `return ${CR_BASE_QUERY} && ${impliedQuery} && obj.items["${itemPath}"] !== undefined`
|
|
60
|
+
: itemPath === null
|
|
61
|
+
? `return ${CR_BASE_QUERY} && ${impliedQuery}`
|
|
62
|
+
// If item data is loading or unavailable, don’t show any CRs
|
|
63
|
+
// to avoid flashing all CRs during item switching.
|
|
64
|
+
: `return false`;
|
|
65
|
+
const selectedCRPath = focusedTabURI && focusedTabURI.startsWith(`${Protocols.CHANGE_REQUEST}:`)
|
|
66
|
+
? focusedTabURI.split(':')[1]
|
|
67
|
+
: null;
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
if (itemPath !== undefined && selectedCRPath) {
|
|
70
|
+
setTimeout(() => {
|
|
71
|
+
dispatch({ type: 'select-item', payload: { itemPath: selectedCRPath } });
|
|
72
|
+
}, 500);
|
|
73
|
+
}
|
|
74
|
+
}, [itemPath, selectedCRPath]);
|
|
75
|
+
return (jsx(ChangeRequestSearchResultList, { queryExpression: query, selectedItemPath: state.selectedItemPath, onSelectItem: itemPath => dispatch({ type: 'select-item', payload: { itemPath } }), onOpenItem: (itemPath) => spawnTab(`${Protocols.CHANGE_REQUEST}:${itemPath}`) }));
|
|
76
|
+
};
|
|
77
|
+
const CRHistoryItem = function ({ objectData }) {
|
|
78
|
+
const { activeChangeRequestID, setActiveChangeRequestID } = useContext(BrowserCtx);
|
|
79
|
+
const isActive = activeChangeRequestID === objectData.id;
|
|
80
|
+
const canToggle = activeChangeRequestID == null || isActive;
|
|
81
|
+
const justification = hasSubmitterInput(objectData) ? objectData.justification : 'N/A';
|
|
82
|
+
return jsx("span", { title: `${justification} (proposal ID: ${objectData.id})` },
|
|
83
|
+
jsx(Icon, { icon: isActive ? 'record' : 'dot', css: css `vertical-align: top; ${canToggle ? 'cursor: pointer; transition: all .2s;' : 'opacity: .5;'}`, title: canToggle
|
|
84
|
+
? isActive
|
|
85
|
+
? "Click to deactivate this proposal"
|
|
86
|
+
: "Click to activate this proposal"
|
|
87
|
+
: undefined, onClick: canToggle
|
|
88
|
+
? () => setActiveChangeRequestID?.(activeChangeRequestID === objectData.id ? null : objectData.id)
|
|
89
|
+
: undefined, intent: isActive
|
|
90
|
+
? 'danger'
|
|
91
|
+
: canToggle
|
|
92
|
+
? 'primary'
|
|
93
|
+
: undefined }),
|
|
94
|
+
"\u00A0",
|
|
95
|
+
isDisposed(objectData)
|
|
96
|
+
? jsx(React.Fragment, null,
|
|
97
|
+
jsx(Datestamp, { date: objectData.timeDisposed, title: "Disposed" }),
|
|
98
|
+
": ")
|
|
99
|
+
: hadBeenProposed(objectData)
|
|
100
|
+
? jsx(React.Fragment, null,
|
|
101
|
+
jsx(Datestamp, { date: objectData.timeProposed, title: "Proposed" }),
|
|
102
|
+
": ")
|
|
103
|
+
: null,
|
|
104
|
+
justification);
|
|
105
|
+
};
|
|
106
|
+
const ChangeRequestSearchResultList = makeSearchResultList(CRHistoryItem, (objPath) => ({
|
|
107
|
+
name: 'Prp.',
|
|
108
|
+
iconProps: {
|
|
109
|
+
icon: 'lightbulb',
|
|
110
|
+
title: objPath,
|
|
111
|
+
htmlTitle: `icon for proposal at ${objPath}`,
|
|
112
|
+
},
|
|
113
|
+
}));
|
|
114
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import { useContext, useEffect } from 'react';
|
|
4
|
+
import { jsx, css } from '@emotion/react';
|
|
5
|
+
import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
|
|
6
|
+
import { TabbedWorkspaceContext } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';
|
|
7
|
+
import makeSearchResultList from '@riboseinc/paneron-extension-kit/widgets/SearchResultList';
|
|
8
|
+
import useDebounce from '@riboseinc/paneron-extension-kit/useDebounce';
|
|
9
|
+
import { BLANK_CRITERIA } from '../../FilterCriteria/models';
|
|
10
|
+
import criteriaGroupToQueryExpression from '../../FilterCriteria/criteriaGroupToQueryExpression';
|
|
11
|
+
import { RAW_SUBSTRING } from '../../FilterCriteria/CRITERIA_CONFIGURATION';
|
|
12
|
+
import { ChangeRequestContext } from '../../change-request/ChangeRequestContext';
|
|
13
|
+
import { itemRefToItemPath } from '../../itemPathUtils';
|
|
14
|
+
import { getRegisterItemQuery } from '../../itemQueryUtils';
|
|
15
|
+
import { BrowserCtx } from '../../BrowserCtx';
|
|
16
|
+
import SearchQuery from '../../SearchQuery';
|
|
17
|
+
import ListItem from '../ListItem';
|
|
18
|
+
import { Protocols } from '../../protocolRegistry';
|
|
19
|
+
const Search = function ({ implicitCriteria, availableClassIDs, stateName, onOpenItem, className, style }) {
|
|
20
|
+
const { usePersistentDatasetStateReducer } = useContext(DatasetContext);
|
|
21
|
+
const { spawnTab } = useContext(TabbedWorkspaceContext);
|
|
22
|
+
const { keyExpression, itemClasses, subregisters, selectedRegisterItem } = useContext(BrowserCtx);
|
|
23
|
+
const { changeRequest } = useContext(ChangeRequestContext);
|
|
24
|
+
const initialState = {
|
|
25
|
+
query: { criteria: BLANK_CRITERIA },
|
|
26
|
+
quickSubstringQuery: '',
|
|
27
|
+
selectedItemPath: null,
|
|
28
|
+
};
|
|
29
|
+
const [state, dispatch, stateRecalled] = usePersistentDatasetStateReducer(stateName ?? 'search-sidebar', undefined, undefined, (prevState, action) => {
|
|
30
|
+
switch (action.type) {
|
|
31
|
+
case 'update-query':
|
|
32
|
+
return {
|
|
33
|
+
...prevState,
|
|
34
|
+
query: action.payload.query,
|
|
35
|
+
};
|
|
36
|
+
case 'update-quick-substring-query':
|
|
37
|
+
return {
|
|
38
|
+
...prevState,
|
|
39
|
+
quickSubstringQuery: action.payload.substring,
|
|
40
|
+
};
|
|
41
|
+
case 'select-item':
|
|
42
|
+
return {
|
|
43
|
+
...prevState,
|
|
44
|
+
selectedItemPath: action.payload.itemPath,
|
|
45
|
+
};
|
|
46
|
+
default:
|
|
47
|
+
throw new Error("Unexpected search state");
|
|
48
|
+
}
|
|
49
|
+
}, initialState, null);
|
|
50
|
+
const selectedItemPath = selectedRegisterItem?.ref
|
|
51
|
+
? itemRefToItemPath(selectedRegisterItem.ref, changeRequest?.id)
|
|
52
|
+
: null;
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (selectedItemPath) {
|
|
55
|
+
dispatch({ type: 'select-item', payload: { itemPath: selectedItemPath } });
|
|
56
|
+
}
|
|
57
|
+
}, [selectedItemPath]);
|
|
58
|
+
const quickSearchString = (state.quickSubstringQuery ?? '').trim();
|
|
59
|
+
const withSearchString = state.query.criteria.criteria.length < 1 && quickSearchString !== ''
|
|
60
|
+
? {
|
|
61
|
+
require: 'all',
|
|
62
|
+
criteria: [
|
|
63
|
+
{
|
|
64
|
+
key: 'raw-substring',
|
|
65
|
+
query: RAW_SUBSTRING.toQuery({ substring: quickSearchString }, { itemClasses, subregisters }),
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
}
|
|
69
|
+
: state.query.criteria;
|
|
70
|
+
const withImplicit = implicitCriteria
|
|
71
|
+
? {
|
|
72
|
+
require: 'all',
|
|
73
|
+
criteria: [implicitCriteria, withSearchString],
|
|
74
|
+
}
|
|
75
|
+
: withSearchString;
|
|
76
|
+
const effectiveQueryExpression = withImplicit.criteria.length > 0
|
|
77
|
+
? criteriaGroupToQueryExpression(withImplicit)
|
|
78
|
+
// If no criteria provided, don’t show anything by default.
|
|
79
|
+
: 'false';
|
|
80
|
+
const stateRecalledDebounced = useDebounce(stateRecalled, 100);
|
|
81
|
+
const queryExpressionDebounced = useDebounce(effectiveQueryExpression, stateRecalledDebounced ? 500 : 0);
|
|
82
|
+
const datasetObjectSearchQueryExpression = queryExpressionDebounced != 'false'
|
|
83
|
+
? getRegisterItemQuery(queryExpressionDebounced, changeRequest ?? undefined)
|
|
84
|
+
: 'return false';
|
|
85
|
+
return (jsx("div", { css: css `display: flex; flex-flow: column nowrap;`, className: className, style: style },
|
|
86
|
+
jsx(SearchQuery, { rootCriteria: state.query.criteria, quickSearchString: state.quickSubstringQuery, availableClassIDs: availableClassIDs, onCriteriaChange: criteria => dispatch({ type: 'update-query', payload: { query: { criteria } } }), onQuickSearchStringChange: substring => dispatch({ type: 'update-quick-substring-query', payload: { substring } }), css: css `padding: 5px;` }),
|
|
87
|
+
jsx("div", { css: css `flex: 1;` }, stateRecalledDebounced
|
|
88
|
+
? jsx(SearchResultList, { queryExpression: datasetObjectSearchQueryExpression, keyExpression: keyExpression, selectedItemPath: state.selectedItemPath, onSelectItem: itemPath => dispatch({ type: 'select-item', payload: { itemPath } }), onOpenItem: onOpenItem ?? (itemPath => spawnTab(`${Protocols.ITEM_DETAILS}:${itemPath}`)) })
|
|
89
|
+
: null)));
|
|
90
|
+
};
|
|
91
|
+
const SearchResultList = makeSearchResultList(ListItem, (objPath) => ({
|
|
92
|
+
name: 'reg. item',
|
|
93
|
+
iconProps: {
|
|
94
|
+
icon: 'document',
|
|
95
|
+
title: objPath,
|
|
96
|
+
htmlTitle: `Icon for item at ${objPath}`,
|
|
97
|
+
},
|
|
98
|
+
}));
|
|
99
|
+
export default Search;
|
|
100
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { jsx, css } from '@emotion/react';
|
|
5
|
+
import { Icon } from '@blueprintjs/core';
|
|
6
|
+
import HelpTooltip from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';
|
|
7
|
+
import Browse from './Browse';
|
|
8
|
+
import Search from './Search';
|
|
9
|
+
import { PendingChangeRequestsBlock, ChangeRequestHistoryBlock } from './Registration';
|
|
10
|
+
import Export from './Export';
|
|
11
|
+
export const sidebarIDs = [
|
|
12
|
+
'Browse',
|
|
13
|
+
'Registration',
|
|
14
|
+
'Export',
|
|
15
|
+
];
|
|
16
|
+
export const sidebarConfig = {
|
|
17
|
+
Browse: {
|
|
18
|
+
icon: () => jsx(Icon, { icon: "list" }),
|
|
19
|
+
title: "Register items",
|
|
20
|
+
blocks: [{
|
|
21
|
+
key: 'browse',
|
|
22
|
+
title: jsx("div", { css: css `display: flex; justify-content: space-between` },
|
|
23
|
+
"Preset searches",
|
|
24
|
+
jsx(HelpTooltip, { content: "Browse register items by pre-made categories" })),
|
|
25
|
+
content: jsx(Browse, { css: css `position: absolute; inset: 0;` }),
|
|
26
|
+
nonCollapsible: false,
|
|
27
|
+
// These have to have height specified due to absolute positioning.
|
|
28
|
+
height: 400,
|
|
29
|
+
}, {
|
|
30
|
+
key: 'search',
|
|
31
|
+
title: "New search",
|
|
32
|
+
content: jsx(Search, { css: css `position: absolute; inset: 0;` }),
|
|
33
|
+
nonCollapsible: false,
|
|
34
|
+
height: 400,
|
|
35
|
+
}],
|
|
36
|
+
},
|
|
37
|
+
Registration: {
|
|
38
|
+
icon: () => jsx(Icon, { icon: "lightbulb" }),
|
|
39
|
+
title: "Proposals",
|
|
40
|
+
blocks: [{
|
|
41
|
+
key: 'pending-crs',
|
|
42
|
+
title: jsx("div", { css: css `display: flex; justify-content: space-between` },
|
|
43
|
+
"Pending proposals",
|
|
44
|
+
jsx(HelpTooltip, { content: "Proposals pending decision. If a register item is selected, only proposals affecting that item are shown." })),
|
|
45
|
+
content: jsx(PendingChangeRequestsBlock, null),
|
|
46
|
+
height: 300,
|
|
47
|
+
}, {
|
|
48
|
+
key: 'cr-history',
|
|
49
|
+
title: jsx("div", { css: css `display: flex; justify-content: space-between` },
|
|
50
|
+
"History",
|
|
51
|
+
jsx(HelpTooltip, { content: "Resolved proposals. If a register item is selected, only proposals affecting that item are shown." })),
|
|
52
|
+
content: jsx(ChangeRequestHistoryBlock, null),
|
|
53
|
+
height: 300,
|
|
54
|
+
}],
|
|
55
|
+
},
|
|
56
|
+
Export: {
|
|
57
|
+
icon: () => jsx(Icon, { icon: "changes" }),
|
|
58
|
+
title: "Import and export",
|
|
59
|
+
blocks: [{
|
|
60
|
+
key: 'export',
|
|
61
|
+
title: "Export",
|
|
62
|
+
content: jsx(Export, null),
|
|
63
|
+
nonCollapsible: true,
|
|
64
|
+
}, {
|
|
65
|
+
key: 'import',
|
|
66
|
+
title: "Import",
|
|
67
|
+
content: jsx(React.Fragment, null, "Import TBD"),
|
|
68
|
+
nonCollapsible: false,
|
|
69
|
+
collapsedByDefault: true,
|
|
70
|
+
}],
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
//import log from 'electron-log';
|
|
4
|
+
import format from 'date-fns/format';
|
|
5
|
+
import { useContext } from 'react';
|
|
6
|
+
import { Helmet } from 'react-helmet';
|
|
7
|
+
import { css, jsx } from '@emotion/react';
|
|
8
|
+
import { FormGroup, Colors } from '@blueprintjs/core';
|
|
9
|
+
import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
|
|
10
|
+
export { GenericRelatedItemView } from './GenericRelatedItemView';
|
|
11
|
+
/**
|
|
12
|
+
* Get give string truncated & with ellipsis appended
|
|
13
|
+
* if its length exceeds given number of characters.
|
|
14
|
+
*/
|
|
15
|
+
export function maybeEllipsizeString(str, maxLength = 20) {
|
|
16
|
+
return str.length > maxLength
|
|
17
|
+
? `${str.slice(0, maxLength)}…`
|
|
18
|
+
: str;
|
|
19
|
+
}
|
|
20
|
+
export const RegisterHelmet = function (props) {
|
|
21
|
+
const { title: datasetTitle } = useContext(DatasetContext);
|
|
22
|
+
return (jsx(Helmet, { titleTemplate: `%s in ${datasetTitle} register`, defaultTitle: `${datasetTitle} register` }, props.children));
|
|
23
|
+
};
|
|
24
|
+
export const PropertyDetailView = function ({ title, inline, children, secondaryTitle }) {
|
|
25
|
+
return jsx(FormGroup, { label: `${title}:`, labelInfo: secondaryTitle, css: css `&, &.bp4-inline { label.bp4-label { font-weight: bold; line-height: unset } }`, inline: inline }, children);
|
|
26
|
+
};
|
|
27
|
+
/** Formats given date as a span with tooltip set to full ISO date & time. */
|
|
28
|
+
export const Datestamp = function ({ date, title, className }) {
|
|
29
|
+
const asString = formatDate(date);
|
|
30
|
+
return jsx("span", { className: className, title: `${title ? `${title}: ` : ''}${date?.toString() ?? 'N/A'}` }, asString);
|
|
31
|
+
};
|
|
32
|
+
/** Foramts given date as plain text. */
|
|
33
|
+
export function formatDate(date) {
|
|
34
|
+
try {
|
|
35
|
+
return format(date, 'yyyy-MM-dd');
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
return `Invalid date (${e})`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export const _getRelatedClass = (classes) => {
|
|
42
|
+
return (clsID) => {
|
|
43
|
+
const cfg = classes[clsID];
|
|
44
|
+
return {
|
|
45
|
+
title: cfg.meta.title,
|
|
46
|
+
// TODO: The itemView/listItemView inconsistency is annoying
|
|
47
|
+
itemView: cfg.views.listItemView,
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Suitable for use as tab contents for TabbedWorkspace.
|
|
53
|
+
* Provides top bar with actions and main content.
|
|
54
|
+
*/
|
|
55
|
+
export const TabContentsWithActions = function ({ actions, main, className }) {
|
|
56
|
+
return (jsx("div", { css: css `
|
|
57
|
+
position: absolute; inset: 0;
|
|
58
|
+
display: flex; flex-flow: column nowrap;
|
|
59
|
+
`, className: className },
|
|
60
|
+
jsx("div", { css: css `flex: 0; padding: 10px; display: flex; flex-flow: row wrap; gap: 10px;` }, actions),
|
|
61
|
+
jsx("div", { css: css `position: relative; flex: 1; padding: 10px; overflow-y: auto; background: ${Colors.GRAY5};` }, main)));
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.GlobalSettingsContext = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _settings = require("./settings");
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
const GlobalSettingsContext = _react.default.createContext({
|
|
15
|
+
settings: _settings.INITIAL_GLOBAL_SETTINGS,
|
|
16
|
+
refresh: () => void 0
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
exports.GlobalSettingsContext = GlobalSettingsContext;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsContext.js","sourceRoot":"","sources":["../src/SettingsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAkB,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAQrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAc;IACpE,QAAQ,EAAE,uBAAuB;IACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;CACtB,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { GlobalSettings, INITIAL_GLOBAL_SETTINGS } from './settings';\n\n\ninterface ContextSpec {\n settings: GlobalSettings\n refresh: () => void\n}\n\nexport const GlobalSettingsContext = React.createContext<ContextSpec>({\n settings: INITIAL_GLOBAL_SETTINGS,\n refresh: () => void 0,\n});\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DatasetContext as DatasetContextSpec } from './types';
|
|
3
|
+
export declare function withDatasetContext(Component: React.FC<any>): React.FC<DatasetContextSpec>;
|
|
4
|
+
/**
|
|
5
|
+
* Provides functions for interacting with dataset data,
|
|
6
|
+
* and by extension the underlying repositories.
|
|
7
|
+
*
|
|
8
|
+
* NOTE: If your IDE does not expose TSDoc docstrings for DatasetContext
|
|
9
|
+
* members, consult DatasetContextSpec type definition.
|
|
10
|
+
*/
|
|
11
|
+
export declare const DatasetContext: React.Context<DatasetContextSpec>;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.withDatasetContext = withDatasetContext;
|
|
7
|
+
exports.DatasetContext = void 0;
|
|
8
|
+
|
|
9
|
+
var _electronLog = _interopRequireDefault(require("electron-log"));
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
|
|
13
|
+
var _settings = require("./settings");
|
|
14
|
+
|
|
15
|
+
var _indexes = require("./types/indexes");
|
|
16
|
+
|
|
17
|
+
var _usePersistentStateReducer = require("./usePersistentStateReducer");
|
|
18
|
+
|
|
19
|
+
var _useTimeTravelingPersistentStateReducer = require("./useTimeTravelingPersistentStateReducer");
|
|
20
|
+
|
|
21
|
+
var _SettingsContext = require("./SettingsContext");
|
|
22
|
+
|
|
23
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
+
|
|
25
|
+
function getValueHookPlaceholder(value) {
|
|
26
|
+
return () => ({
|
|
27
|
+
value,
|
|
28
|
+
errors: [],
|
|
29
|
+
isUpdating: false,
|
|
30
|
+
_reqCounter: -1,
|
|
31
|
+
refresh: () => {}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const INITIAL_CONTEXT = {
|
|
36
|
+
title: '',
|
|
37
|
+
logger: _electronLog.default,
|
|
38
|
+
performOperation: (_, f) => f,
|
|
39
|
+
requestCopiedObjects: async () => ({}),
|
|
40
|
+
useObjectData: getValueHookPlaceholder({
|
|
41
|
+
data: {}
|
|
42
|
+
}),
|
|
43
|
+
openExternalLink: async () => void 0,
|
|
44
|
+
getObjectData: async () => ({
|
|
45
|
+
data: {}
|
|
46
|
+
}),
|
|
47
|
+
useRemoteUsername: getValueHookPlaceholder({}),
|
|
48
|
+
useDecodedBlob: () => ({
|
|
49
|
+
asString: ''
|
|
50
|
+
}),
|
|
51
|
+
useIndexDescription: getValueHookPlaceholder({
|
|
52
|
+
status: _indexes.INITIAL_INDEX_STATUS
|
|
53
|
+
}),
|
|
54
|
+
useFilteredIndex: getValueHookPlaceholder({
|
|
55
|
+
indexID: ''
|
|
56
|
+
}),
|
|
57
|
+
useObjectPathFromFilteredIndex: getValueHookPlaceholder({
|
|
58
|
+
objectPath: ''
|
|
59
|
+
}),
|
|
60
|
+
getObjectPathFromFilteredIndex: async () => ({
|
|
61
|
+
objectPath: ''
|
|
62
|
+
}),
|
|
63
|
+
useFilteredIndexPosition: getValueHookPlaceholder({
|
|
64
|
+
position: null
|
|
65
|
+
}),
|
|
66
|
+
getFilteredIndexPosition: async () => ({
|
|
67
|
+
position: null
|
|
68
|
+
}),
|
|
69
|
+
useMapReducedData: getValueHookPlaceholder({}),
|
|
70
|
+
getMapReducedData: async () => ({}),
|
|
71
|
+
usePersistentDatasetStateReducer: _usePersistentStateReducer.initialHook,
|
|
72
|
+
useTimeTravelingPersistentDatasetStateReducer: _useTimeTravelingPersistentStateReducer.initialHook,
|
|
73
|
+
copyObjects: async () => void 0,
|
|
74
|
+
//usePersistentDatasetStateReducer: () => [{}, () => {}, false] as [any, () => any, boolean],
|
|
75
|
+
getObjectView: opts => () => _react.default.createElement(_react.default.Fragment, null, opts.objectPath),
|
|
76
|
+
requestFileFromFilesystem: async () => ({}),
|
|
77
|
+
makeAbsolutePath: () => '',
|
|
78
|
+
useSettings: getValueHookPlaceholder({
|
|
79
|
+
settings: {}
|
|
80
|
+
}),
|
|
81
|
+
useGlobalSettings: getValueHookPlaceholder({
|
|
82
|
+
settings: _settings.INITIAL_GLOBAL_SETTINGS
|
|
83
|
+
}),
|
|
84
|
+
updateSetting: async () => ({
|
|
85
|
+
success: true
|
|
86
|
+
})
|
|
87
|
+
};
|
|
88
|
+
/* A higher-order component that:
|
|
89
|
+
|
|
90
|
+
- takes dataset view component;
|
|
91
|
+
- returns a component that takes dataset context as props,
|
|
92
|
+
and renders dataset view wrapped inside dataset context provider. */
|
|
93
|
+
|
|
94
|
+
function withDatasetContext(Component) {
|
|
95
|
+
// TODO: Check again whether `withDatasetContext()` helper is needed.
|
|
96
|
+
// Why can’t we wrap the entire view in DatasetContext.Provider
|
|
97
|
+
// in Paneron and gain access to it normally?
|
|
98
|
+
return props => {
|
|
99
|
+
const settings = props.useGlobalSettings();
|
|
100
|
+
return _react.default.createElement(DatasetContext.Provider, {
|
|
101
|
+
value: props
|
|
102
|
+
}, _react.default.createElement(_SettingsContext.GlobalSettingsContext.Provider, {
|
|
103
|
+
value: {
|
|
104
|
+
settings: settings.value.settings,
|
|
105
|
+
refresh: settings.refresh
|
|
106
|
+
}
|
|
107
|
+
}, _react.default.createElement(Component, null)));
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Provides functions for interacting with dataset data,
|
|
112
|
+
* and by extension the underlying repositories.
|
|
113
|
+
*
|
|
114
|
+
* NOTE: If your IDE does not expose TSDoc docstrings for DatasetContext
|
|
115
|
+
* members, consult DatasetContextSpec type definition.
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
const DatasetContext = _react.default.createContext(INITIAL_CONTEXT); // export const ReadOnlyDatasetContext =
|
|
120
|
+
// React.createContext<ReadOnlyDatasetContextSpec>(INITIAL_CONTEXT);
|
|
121
|
+
|
|
122
|
+
/* Like withDatasetContext(), but uses read-only dataset context. */
|
|
123
|
+
// export function withReadOnlyDatasetContext(Component: React.FC<any>):
|
|
124
|
+
// React.FC<ReadOnlyDatasetContextSpec> {
|
|
125
|
+
// return (props: ReadOnlyDatasetContextSpec) => (
|
|
126
|
+
// <ReadOnlyDatasetContext.Provider value={props}>
|
|
127
|
+
// <Component />
|
|
128
|
+
// </ReadOnlyDatasetContext.Provider>
|
|
129
|
+
// );
|
|
130
|
+
// }
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
exports.DatasetContext = DatasetContext;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAKrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,WAAW,IAAI,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,WAAW,IAAI,8CAA8C,EAAE,MAAM,0CAA0C,CAAC;AACzH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,SAAS,uBAAuB,CAAI,KAAQ;IAC1C,OAAO,GAAG,EAAE,CAAC,CAAC;QACZ,KAAK;QACL,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,CAAC,CAAC;QACf,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;KAClB,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,eAAe,GAAuB;IAC1C,KAAK,EAAE,EAAE;IAET,MAAM,EAAE,GAAG;IAEX,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAE7B,oBAAoB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAEtC,aAAa,EAAE,uBAAuB,CAAC;QACrC,IAAI,EAAE,EAAE;KACT,CAAC;IAEF,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC;IAEpC,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAEzC,iBAAiB,EAAE,uBAAuB,CAAC,EAAE,CAAC;IAE9C,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;QACrB,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,mBAAmB,EAAE,uBAAuB,CAAC;QAC3C,MAAM,EAAE,oBAAoB;KAC7B,CAAC;IAEF,gBAAgB,EAAE,uBAAuB,CAAC;QACxC,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,8BAA8B,EAAE,uBAAuB,CAAC;QACtD,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,8BAA8B,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAEhE,wBAAwB,EAAE,uBAAuB,CAAC;QAChD,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAE1D,iBAAiB,EAAE,uBAAuB,CAAC,EAAE,CAA4C;IACzF,iBAAiB,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAA4C;IAEhF,gCAAgC,EAAE,iCAAiC;IACnE,6CAA6C,EAAE,8CAA8C;IAE7F,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC;IAE/B,6FAA6F;IAE7F,aAAa,EAAE,CAAC,IAA4B,EAAE,EAAE,CAC9C,GAAG,EAAE,CAAC,0CAAG,IAAI,CAAC,UAAU,CAAI;IAE9B,yBAAyB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAE3C,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE;IAE1B,WAAW,EAAE,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAEtD,iBAAiB,EAAE,uBAAuB,CAAC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IAEjF,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAY,EAAE,CAAC;CAE9C,CAAC;AAGX;;;;yEAIyE;AACzE,MAAM,UAAU,kBAAkB,CAAC,SAAwB;IAEzD,qEAAqE;IACrE,+DAA+D;IAC/D,6CAA6C;IAC7C,OAAO,CAAC,KAAyB,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC3C,OAAO,CACL,oBAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK;YACnC,oBAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;gBACrG,oBAAC,SAAS,OAAG,CACkB,CACT,CAC3B,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAGD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GACzB,KAAK,CAAC,aAAa,CAAqB,eAAe,CAAC,CAAC;AAG3D,wCAAwC;AACxC,sEAAsE;AAEtE,oEAAoE;AACpE,wEAAwE;AACxE,yCAAyC;AACzC,oDAAoD;AACpD,sDAAsD;AACtD,sBAAsB;AACtB,yCAAyC;AACzC,OAAO;AACP,IAAI","sourcesContent":["import log from 'electron-log';\nimport React from 'react';\nimport { INITIAL_GLOBAL_SETTINGS } from './settings';\nimport {\n DatasetContext as DatasetContextSpec,\n ValueHook,\n} from './types';\nimport { INITIAL_INDEX_STATUS } from './types/indexes';\nimport { initialHook as initialPersistentStateReducerHook } from './usePersistentStateReducer';\nimport { initialHook as initialTimeTravelingPersistentStateReducerHook } from './useTimeTravelingPersistentStateReducer';\nimport { GlobalSettingsContext } from './SettingsContext';\n\n\nfunction getValueHookPlaceholder<T>(value: T): () => ValueHook<T> {\n return () => ({\n value,\n errors: [],\n isUpdating: false,\n _reqCounter: -1,\n refresh: () => {},\n });\n}\n\n\nconst INITIAL_CONTEXT: DatasetContextSpec = {\n title: '',\n\n logger: log,\n\n performOperation: (_, f) => f,\n\n requestCopiedObjects: async () => ({}),\n\n useObjectData: getValueHookPlaceholder({\n data: {},\n }),\n\n openExternalLink: async () => void 0,\n\n getObjectData: async () => ({ data: {} }),\n\n useRemoteUsername: getValueHookPlaceholder({}),\n\n useDecodedBlob: () => ({\n asString: '',\n }),\n\n useIndexDescription: getValueHookPlaceholder({\n status: INITIAL_INDEX_STATUS,\n }),\n\n useFilteredIndex: getValueHookPlaceholder({\n indexID: '',\n }),\n\n useObjectPathFromFilteredIndex: getValueHookPlaceholder({\n objectPath: '',\n }),\n\n getObjectPathFromFilteredIndex: async () => ({ objectPath: '' }),\n\n useFilteredIndexPosition: getValueHookPlaceholder({\n position: null,\n }),\n\n getFilteredIndexPosition: async () => ({ position: null }),\n\n useMapReducedData: getValueHookPlaceholder({}) as DatasetContextSpec[\"useMapReducedData\"],\n getMapReducedData: (async () => ({})) as DatasetContextSpec[\"getMapReducedData\"],\n\n usePersistentDatasetStateReducer: initialPersistentStateReducerHook,\n useTimeTravelingPersistentDatasetStateReducer: initialTimeTravelingPersistentStateReducerHook,\n\n copyObjects: async () => void 0,\n\n //usePersistentDatasetStateReducer: () => [{}, () => {}, false] as [any, () => any, boolean],\n\n getObjectView: (opts: { objectPath: string }) =>\n () => <>{opts.objectPath}</>,\n\n requestFileFromFilesystem: async () => ({}),\n\n makeAbsolutePath: () => '',\n\n useSettings: getValueHookPlaceholder({ settings: {} }),\n\n useGlobalSettings: getValueHookPlaceholder({ settings: INITIAL_GLOBAL_SETTINGS }),\n\n updateSetting: async () => ({ success: true as true }),\n\n} as const;\n\n\n/* A higher-order component that:\n\n - takes dataset view component;\n - returns a component that takes dataset context as props,\n and renders dataset view wrapped inside dataset context provider. */\nexport function withDatasetContext(Component: React.FC<any>):\nReact.FC<DatasetContextSpec> {\n // TODO: Check again whether `withDatasetContext()` helper is needed.\n // Why can’t we wrap the entire view in DatasetContext.Provider\n // in Paneron and gain access to it normally?\n return (props: DatasetContextSpec) => {\n const settings = props.useGlobalSettings();\n return (\n <DatasetContext.Provider value={props}>\n <GlobalSettingsContext.Provider value={{ settings: settings.value.settings, refresh: settings.refresh }}>\n <Component />\n </GlobalSettingsContext.Provider>\n </DatasetContext.Provider>\n );\n };\n}\n\n\n/**\n * Provides functions for interacting with dataset data,\n * and by extension the underlying repositories.\n * \n * NOTE: If your IDE does not expose TSDoc docstrings for DatasetContext\n * members, consult DatasetContextSpec type definition.\n */\nexport const DatasetContext =\n React.createContext<DatasetContextSpec>(INITIAL_CONTEXT);\n\n\n// export const ReadOnlyDatasetContext =\n// React.createContext<ReadOnlyDatasetContextSpec>(INITIAL_CONTEXT);\n\n/* Like withDatasetContext(), but uses read-only dataset context. */\n// export function withReadOnlyDatasetContext(Component: React.FC<any>):\n// React.FC<ReadOnlyDatasetContextSpec> {\n// return (props: ReadOnlyDatasetContextSpec) => (\n// <ReadOnlyDatasetContext.Provider value={props}>\n// <Component />\n// </ReadOnlyDatasetContext.Provider>\n// );\n// }\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SupportedLanguages } from './types';
|
|
3
|
+
export declare type I18nContextProviderProps<Languages extends SupportedLanguages> = {
|
|
4
|
+
available: Languages;
|
|
5
|
+
default: keyof Languages;
|
|
6
|
+
selected: keyof Languages;
|
|
7
|
+
};
|
|
8
|
+
declare const I18nContextProvider: React.FC<I18nContextProviderProps<any>>;
|
|
9
|
+
export default I18nContextProvider;
|