@riboseinc/paneron-registry-kit 2.0.1 → 2.0.2
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/package.json +1 -1
- package/LICENSE +0 -21
- package/README.adoc +0 -35
- package/compiled/common.js +0 -2
- package/compiled/index.js +0 -21
- package/compiled/migrations/initial.js +0 -8
- package/compiled/types/cr.js +0 -131
- package/compiled/types/index.js +0 -8
- package/compiled/types/item.js +0 -22
- package/compiled/types/proposal.js +0 -21
- package/compiled/types/register.js +0 -25
- package/compiled/types/registry.js +0 -10
- package/compiled/types/stakeholder.js +0 -34
- package/compiled/types/util.js +0 -3
- package/compiled/types/views.js +0 -2
- package/compiled/views/AnnotatedChange.js +0 -57
- package/compiled/views/BrowserCtx.js +0 -19
- package/compiled/views/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -110
- package/compiled/views/FilterCriteria/criteriaGroupToQueryExpression.js +0 -40
- package/compiled/views/FilterCriteria/criteriaGroupToSummary.js +0 -47
- package/compiled/views/FilterCriteria/criteriaToNodes.js +0 -89
- package/compiled/views/FilterCriteria/index.js +0 -75
- package/compiled/views/FilterCriteria/models.js +0 -28
- package/compiled/views/FilterCriteria/mutateGroup.js +0 -53
- package/compiled/views/GenericRelatedItemView.js +0 -147
- package/compiled/views/RegisterStakeholder.js +0 -19
- package/compiled/views/RegisterVersion.js +0 -20
- package/compiled/views/SearchQuery.js +0 -58
- package/compiled/views/change-request/ChangeRequestContext.js +0 -30
- package/compiled/views/change-request/Proposals.js +0 -185
- package/compiled/views/change-request/objectChangeset.js +0 -189
- package/compiled/views/detail/ChangeRequest/Proposal.js +0 -144
- package/compiled/views/detail/ChangeRequest/index.js +0 -140
- package/compiled/views/detail/ChangeRequest/transitions.js +0 -418
- package/compiled/views/detail/CustomView/index.js +0 -32
- package/compiled/views/detail/RegisterHome/index.js +0 -70
- package/compiled/views/detail/RegisterItem/RelatedItems.js +0 -28
- package/compiled/views/detail/RegisterItem/SupersedingItemMenu.js +0 -27
- package/compiled/views/detail/RegisterItem/index.js +0 -277
- package/compiled/views/detail/RegisterMeta/RegisterMetaForm.js +0 -135
- package/compiled/views/detail/RegisterMeta/index.js +0 -61
- package/compiled/views/detail/index.js +0 -11
- package/compiled/views/diffing/InlineDiff.js +0 -20
- package/compiled/views/diffing/StructuredDiff.js +0 -38
- package/compiled/views/hooks/useCustomView.js +0 -14
- package/compiled/views/hooks/useItemClassConfig.js +0 -14
- package/compiled/views/hooks/useItemRef.js +0 -26
- package/compiled/views/hooks/useSingleRegisterItemData.js +0 -21
- package/compiled/views/index.js +0 -142
- package/compiled/views/itemPathUtils.js +0 -115
- package/compiled/views/itemQueryUtils.js +0 -42
- package/compiled/views/protocolRegistry.js +0 -24
- package/compiled/views/sidebar/Browse/index.js +0 -278
- package/compiled/views/sidebar/Export/index.js +0 -47
- package/compiled/views/sidebar/ListItem.js +0 -23
- package/compiled/views/sidebar/Registration/index.js +0 -114
- package/compiled/views/sidebar/Search/index.js +0 -100
- package/compiled/views/sidebar/index.js +0 -73
- package/compiled/views/util.js +0 -63
- package/dependencies-local/extension-kit/SettingsContext.d.ts +0 -8
- package/dependencies-local/extension-kit/SettingsContext.js +0 -19
- package/dependencies-local/extension-kit/SettingsContext.js.map +0 -1
- package/dependencies-local/extension-kit/context.d.ts +0 -11
- package/dependencies-local/extension-kit/context.js +0 -133
- package/dependencies-local/extension-kit/context.js.map +0 -1
- package/dependencies-local/extension-kit/i18n/ContextProvider.d.ts +0 -9
- package/dependencies-local/extension-kit/i18n/ContextProvider.js +0 -33
- package/dependencies-local/extension-kit/i18n/ContextProvider.js.map +0 -1
- package/dependencies-local/extension-kit/i18n/context.d.ts +0 -9
- package/dependencies-local/extension-kit/i18n/context.js +0 -23
- package/dependencies-local/extension-kit/i18n/context.js.map +0 -1
- package/dependencies-local/extension-kit/i18n/types.d.ts +0 -10
- package/dependencies-local/extension-kit/i18n/types.js +0 -5
- package/dependencies-local/extension-kit/i18n/types.js.map +0 -1
- package/dependencies-local/extension-kit/i18n/widgets.d.ts +0 -16
- package/dependencies-local/extension-kit/i18n/widgets.js +0 -56
- package/dependencies-local/extension-kit/i18n/widgets.js.map +0 -1
- package/dependencies-local/extension-kit/index.d.ts +0 -3
- package/dependencies-local/extension-kit/index.js +0 -78
- package/dependencies-local/extension-kit/index.js.map +0 -1
- package/dependencies-local/extension-kit/object-specs/index.d.ts +0 -2
- package/dependencies-local/extension-kit/object-specs/index.js +0 -22
- package/dependencies-local/extension-kit/object-specs/index.js.map +0 -1
- package/dependencies-local/extension-kit/object-specs/paneron-object.d.ts +0 -6
- package/dependencies-local/extension-kit/object-specs/paneron-object.js +0 -161
- package/dependencies-local/extension-kit/object-specs/paneron-object.js.map +0 -1
- package/dependencies-local/extension-kit/object-specs/ser-des.d.ts +0 -31
- package/dependencies-local/extension-kit/object-specs/ser-des.js +0 -187
- package/dependencies-local/extension-kit/object-specs/ser-des.js.map +0 -1
- package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.d.ts +0 -2
- package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js +0 -42
- package/dependencies-local/extension-kit/object-specs/yaml/custom-bool.js.map +0 -1
- package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.d.ts +0 -3
- package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js +0 -110
- package/dependencies-local/extension-kit/object-specs/yaml/custom-timestamp.js.map +0 -1
- package/dependencies-local/extension-kit/object-specs/yaml/index.d.ts +0 -9
- package/dependencies-local/extension-kit/object-specs/yaml/index.js +0 -36
- package/dependencies-local/extension-kit/object-specs/yaml/index.js.map +0 -1
- package/dependencies-local/extension-kit/object-specs/yaml/schema.d.ts +0 -3
- package/dependencies-local/extension-kit/object-specs/yaml/schema.js +0 -26
- package/dependencies-local/extension-kit/object-specs/yaml/schema.js.map +0 -1
- package/dependencies-local/extension-kit/package.json +0 -53
- package/dependencies-local/extension-kit/settings.d.ts +0 -6
- package/dependencies-local/extension-kit/settings.js +0 -11
- package/dependencies-local/extension-kit/settings.js.map +0 -1
- package/dependencies-local/extension-kit/types/binary-invocation.d.ts +0 -31
- package/dependencies-local/extension-kit/types/binary-invocation.js +0 -5
- package/dependencies-local/extension-kit/types/binary-invocation.js.map +0 -1
- package/dependencies-local/extension-kit/types/buffers.d.ts +0 -17
- package/dependencies-local/extension-kit/types/buffers.js +0 -5
- package/dependencies-local/extension-kit/types/buffers.js.map +0 -1
- package/dependencies-local/extension-kit/types/changes.d.ts +0 -37
- package/dependencies-local/extension-kit/types/changes.js +0 -5
- package/dependencies-local/extension-kit/types/changes.js.map +0 -1
- package/dependencies-local/extension-kit/types/data.d.ts +0 -54
- package/dependencies-local/extension-kit/types/data.js +0 -5
- package/dependencies-local/extension-kit/types/data.js.map +0 -1
- package/dependencies-local/extension-kit/types/dialogs.d.ts +0 -15
- package/dependencies-local/extension-kit/types/dialogs.js +0 -5
- package/dependencies-local/extension-kit/types/dialogs.js.map +0 -1
- package/dependencies-local/extension-kit/types/extension-maker.d.ts +0 -17
- package/dependencies-local/extension-kit/types/extension-maker.js +0 -5
- package/dependencies-local/extension-kit/types/extension-maker.js.map +0 -1
- package/dependencies-local/extension-kit/types/extension.d.ts +0 -27
- package/dependencies-local/extension-kit/types/extension.js +0 -5
- package/dependencies-local/extension-kit/types/extension.js.map +0 -1
- package/dependencies-local/extension-kit/types/index.d.ts +0 -3
- package/dependencies-local/extension-kit/types/index.js +0 -41
- package/dependencies-local/extension-kit/types/index.js.map +0 -1
- package/dependencies-local/extension-kit/types/indexes.d.ts +0 -6
- package/dependencies-local/extension-kit/types/indexes.js +0 -15
- package/dependencies-local/extension-kit/types/indexes.js.map +0 -1
- package/dependencies-local/extension-kit/types/migrations.d.ts +0 -15
- package/dependencies-local/extension-kit/types/migrations.js +0 -5
- package/dependencies-local/extension-kit/types/migrations.js.map +0 -1
- package/dependencies-local/extension-kit/types/object-spec.d.ts +0 -108
- package/dependencies-local/extension-kit/types/object-spec.js +0 -23
- package/dependencies-local/extension-kit/types/object-spec.js.map +0 -1
- package/dependencies-local/extension-kit/types/objects.d.ts +0 -18
- package/dependencies-local/extension-kit/types/objects.js +0 -5
- package/dependencies-local/extension-kit/types/objects.js.map +0 -1
- package/dependencies-local/extension-kit/types/progress.d.ts +0 -5
- package/dependencies-local/extension-kit/types/progress.js +0 -5
- package/dependencies-local/extension-kit/types/progress.js.map +0 -1
- package/dependencies-local/extension-kit/types/renderer.d.ts +0 -495
- package/dependencies-local/extension-kit/types/renderer.js +0 -5
- package/dependencies-local/extension-kit/types/renderer.js.map +0 -1
- package/dependencies-local/extension-kit/useDebounce.d.ts +0 -2
- package/dependencies-local/extension-kit/useDebounce.js +0 -27
- package/dependencies-local/extension-kit/useDebounce.js.map +0 -1
- package/dependencies-local/extension-kit/usePersistentStateReducer.d.ts +0 -35
- package/dependencies-local/extension-kit/usePersistentStateReducer.js +0 -91
- package/dependencies-local/extension-kit/usePersistentStateReducer.js.map +0 -1
- package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.d.ts +0 -48
- package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js +0 -116
- package/dependencies-local/extension-kit/useTimeTravelingPersistentStateReducer.js.map +0 -1
- package/dependencies-local/extension-kit/util.d.ts +0 -8
- package/dependencies-local/extension-kit/util.js +0 -21
- package/dependencies-local/extension-kit/util.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/ErrorState.d.ts +0 -8
- package/dependencies-local/extension-kit/widgets/ErrorState.js +0 -44
- package/dependencies-local/extension-kit/widgets/ErrorState.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/Grid.d.ts +0 -41
- package/dependencies-local/extension-kit/widgets/Grid.js +0 -213
- package/dependencies-local/extension-kit/widgets/Grid.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/HelpTooltip.d.ts +0 -18
- package/dependencies-local/extension-kit/widgets/HelpTooltip.js +0 -84
- package/dependencies-local/extension-kit/widgets/HelpTooltip.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/ItemCount.d.ts +0 -19
- package/dependencies-local/extension-kit/widgets/ItemCount.js +0 -78
- package/dependencies-local/extension-kit/widgets/ItemCount.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/List.d.ts +0 -40
- package/dependencies-local/extension-kit/widgets/List.js +0 -191
- package/dependencies-local/extension-kit/widgets/List.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/Navbar.d.ts +0 -20
- package/dependencies-local/extension-kit/widgets/Navbar.js +0 -75
- package/dependencies-local/extension-kit/widgets/Navbar.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/SearchResultList.d.ts +0 -24
- package/dependencies-local/extension-kit/widgets/SearchResultList.js +0 -201
- package/dependencies-local/extension-kit/widgets/SearchResultList.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/Sidebar/Block.d.ts +0 -21
- package/dependencies-local/extension-kit/widgets/Sidebar/Block.js +0 -94
- package/dependencies-local/extension-kit/widgets/Sidebar/Block.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.d.ts +0 -6
- package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js +0 -22
- package/dependencies-local/extension-kit/widgets/Sidebar/BlockStateButtonGroup.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.d.ts +0 -28
- package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js +0 -148
- package/dependencies-local/extension-kit/widgets/Sidebar/PropertyView.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/Sidebar/index.d.ts +0 -27
- package/dependencies-local/extension-kit/widgets/Sidebar/index.js +0 -178
- package/dependencies-local/extension-kit/widgets/Sidebar/index.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.d.ts +0 -13
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js +0 -82
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/SuperSidebar.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.d.ts +0 -10
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js +0 -168
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/context.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.d.ts +0 -9
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js +0 -66
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/detail.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.d.ts +0 -33
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js +0 -204
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/index.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.d.ts +0 -74
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js +0 -5
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/types.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.d.ts +0 -1
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js +0 -14
- package/dependencies-local/extension-kit/widgets/TabbedWorkspace/util.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/Workspace.d.ts +0 -38
- package/dependencies-local/extension-kit/widgets/Workspace.js +0 -99
- package/dependencies-local/extension-kit/widgets/Workspace.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.d.ts +0 -12
- package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js +0 -57
- package/dependencies-local/extension-kit/widgets/panels/PanelSeparator.js.map +0 -1
- package/dependencies-local/extension-kit/widgets/panels/index.d.ts +0 -28
- package/dependencies-local/extension-kit/widgets/panels/index.js +0 -169
- package/dependencies-local/extension-kit/widgets/panels/index.js.map +0 -1
- package/dist/common.d.ts +0 -1
- package/dist/common.js.map +0 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.js.map +0 -1
- package/dist/migrations/initial.d.ts +0 -3
- package/dist/migrations/initial.js.map +0 -1
- package/dist/package.json +0 -56
- package/dist/types/cr.d.ts +0 -216
- package/dist/types/cr.js.map +0 -1
- package/dist/types/index.d.ts +0 -7
- package/dist/types/index.js.map +0 -1
- package/dist/types/item.d.ts +0 -59
- package/dist/types/item.js.map +0 -1
- package/dist/types/proposal.d.ts +0 -64
- package/dist/types/proposal.js.map +0 -1
- package/dist/types/register.d.ts +0 -18
- package/dist/types/register.js.map +0 -1
- package/dist/types/registry.d.ts +0 -15
- package/dist/types/registry.js.map +0 -1
- package/dist/types/stakeholder.d.ts +0 -58
- package/dist/types/stakeholder.js.map +0 -1
- package/dist/types/util.d.ts +0 -21
- package/dist/types/util.js.map +0 -1
- package/dist/types/views.d.ts +0 -157
- package/dist/types/views.js.map +0 -1
- package/dist/views/AnnotatedChange.d.ts +0 -7
- package/dist/views/AnnotatedChange.js.map +0 -1
- package/dist/views/BrowserCtx.d.ts +0 -73
- package/dist/views/BrowserCtx.js.map +0 -1
- package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -17
- package/dist/views/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -1
- package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.d.ts +0 -6
- package/dist/views/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -1
- package/dist/views/FilterCriteria/criteriaGroupToSummary.d.ts +0 -5
- package/dist/views/FilterCriteria/criteriaGroupToSummary.js.map +0 -1
- package/dist/views/FilterCriteria/criteriaToNodes.d.ts +0 -24
- package/dist/views/FilterCriteria/criteriaToNodes.js.map +0 -1
- package/dist/views/FilterCriteria/index.d.ts +0 -23
- package/dist/views/FilterCriteria/index.js.map +0 -1
- package/dist/views/FilterCriteria/models.d.ts +0 -68
- package/dist/views/FilterCriteria/models.js.map +0 -1
- package/dist/views/FilterCriteria/mutateGroup.d.ts +0 -17
- package/dist/views/FilterCriteria/mutateGroup.js.map +0 -1
- package/dist/views/GenericRelatedItemView.d.ts +0 -6
- package/dist/views/GenericRelatedItemView.js.map +0 -1
- package/dist/views/RegisterStakeholder.d.ts +0 -9
- package/dist/views/RegisterStakeholder.js.map +0 -1
- package/dist/views/RegisterVersion.d.ts +0 -9
- package/dist/views/RegisterVersion.js.map +0 -1
- package/dist/views/SearchQuery.d.ts +0 -13
- package/dist/views/SearchQuery.js.map +0 -1
- package/dist/views/change-request/ChangeRequestContext.d.ts +0 -20
- package/dist/views/change-request/ChangeRequestContext.js.map +0 -1
- package/dist/views/change-request/Proposals.d.ts +0 -21
- package/dist/views/change-request/Proposals.js.map +0 -1
- package/dist/views/change-request/objectChangeset.d.ts +0 -31
- package/dist/views/change-request/objectChangeset.js.map +0 -1
- package/dist/views/detail/ChangeRequest/Proposal.d.ts +0 -0
- package/dist/views/detail/ChangeRequest/Proposal.js.map +0 -1
- package/dist/views/detail/ChangeRequest/index.d.ts +0 -13
- package/dist/views/detail/ChangeRequest/index.js.map +0 -1
- package/dist/views/detail/ChangeRequest/transitions.d.ts +0 -28
- package/dist/views/detail/ChangeRequest/transitions.js.map +0 -1
- package/dist/views/detail/CustomView/index.d.ts +0 -13
- package/dist/views/detail/CustomView/index.js.map +0 -1
- package/dist/views/detail/RegisterHome/index.d.ts +0 -5
- package/dist/views/detail/RegisterHome/index.js.map +0 -1
- package/dist/views/detail/RegisterItem/RelatedItems.d.ts +0 -14
- package/dist/views/detail/RegisterItem/RelatedItems.js.map +0 -1
- package/dist/views/detail/RegisterItem/SupersedingItemMenu.d.ts +0 -13
- package/dist/views/detail/RegisterItem/SupersedingItemMenu.js.map +0 -1
- package/dist/views/detail/RegisterItem/index.d.ts +0 -13
- package/dist/views/detail/RegisterItem/index.js.map +0 -1
- package/dist/views/detail/RegisterMeta/RegisterMetaForm.d.ts +0 -10
- package/dist/views/detail/RegisterMeta/RegisterMetaForm.js.map +0 -1
- package/dist/views/detail/RegisterMeta/index.d.ts +0 -10
- package/dist/views/detail/RegisterMeta/index.js.map +0 -1
- package/dist/views/detail/index.d.ts +0 -1
- package/dist/views/detail/index.js.map +0 -1
- package/dist/views/diffing/InlineDiff.d.ts +0 -12
- package/dist/views/diffing/InlineDiff.js.map +0 -1
- package/dist/views/diffing/StructuredDiff.d.ts +0 -11
- package/dist/views/diffing/StructuredDiff.js.map +0 -1
- package/dist/views/hooks/useCustomView.d.ts +0 -3
- package/dist/views/hooks/useCustomView.js.map +0 -1
- package/dist/views/hooks/useItemClassConfig.d.ts +0 -3
- package/dist/views/hooks/useItemClassConfig.js.map +0 -1
- package/dist/views/hooks/useItemRef.d.ts +0 -3
- package/dist/views/hooks/useItemRef.js.map +0 -1
- package/dist/views/hooks/useSingleRegisterItemData.d.ts +0 -3
- package/dist/views/hooks/useSingleRegisterItemData.js.map +0 -1
- package/dist/views/index.d.ts +0 -7
- package/dist/views/index.js.map +0 -1
- package/dist/views/itemPathUtils.d.ts +0 -52
- package/dist/views/itemPathUtils.js.map +0 -1
- package/dist/views/itemQueryUtils.d.ts +0 -11
- package/dist/views/itemQueryUtils.js.map +0 -1
- package/dist/views/protocolRegistry.d.ts +0 -12
- package/dist/views/protocolRegistry.js.map +0 -1
- package/dist/views/sidebar/Browse/index.d.ts +0 -11
- package/dist/views/sidebar/Browse/index.js.map +0 -1
- package/dist/views/sidebar/Export/index.d.ts +0 -5
- package/dist/views/sidebar/Export/index.js.map +0 -1
- package/dist/views/sidebar/ListItem.d.ts +0 -10
- package/dist/views/sidebar/ListItem.js.map +0 -1
- package/dist/views/sidebar/Registration/index.d.ts +0 -5
- package/dist/views/sidebar/Registration/index.js.map +0 -1
- package/dist/views/sidebar/Search/index.d.ts +0 -18
- package/dist/views/sidebar/Search/index.js.map +0 -1
- package/dist/views/sidebar/index.d.ts +0 -6
- package/dist/views/sidebar/index.js.map +0 -1
- package/dist/views/util.d.ts +0 -36
- package/dist/views/util.js.map +0 -1
- package/react-visual-diff.d.ts +0 -9
- /package/{compiled/common.d.ts → common.d.ts} +0 -0
- /package/{dist/common.js → common.js} +0 -0
- /package/{compiled/common.js.map → common.js.map} +0 -0
- /package/{compiled/index.d.ts → index.d.ts} +0 -0
- /package/{dist/index.js → index.js} +0 -0
- /package/{compiled/index.js.map → index.js.map} +0 -0
- /package/{compiled/migrations → migrations}/initial.d.ts +0 -0
- /package/{dist/migrations → migrations}/initial.js +0 -0
- /package/{compiled/migrations → migrations}/initial.js.map +0 -0
- /package/{compiled/types → types}/cr.d.ts +0 -0
- /package/{dist/types → types}/cr.js +0 -0
- /package/{compiled/types → types}/cr.js.map +0 -0
- /package/{compiled/types → types}/index.d.ts +0 -0
- /package/{dist/types → types}/index.js +0 -0
- /package/{compiled/types → types}/index.js.map +0 -0
- /package/{compiled/types → types}/item.d.ts +0 -0
- /package/{dist/types → types}/item.js +0 -0
- /package/{compiled/types → types}/item.js.map +0 -0
- /package/{compiled/types → types}/proposal.d.ts +0 -0
- /package/{dist/types → types}/proposal.js +0 -0
- /package/{compiled/types → types}/proposal.js.map +0 -0
- /package/{compiled/types → types}/register.d.ts +0 -0
- /package/{dist/types → types}/register.js +0 -0
- /package/{compiled/types → types}/register.js.map +0 -0
- /package/{compiled/types → types}/registry.d.ts +0 -0
- /package/{dist/types → types}/registry.js +0 -0
- /package/{compiled/types → types}/registry.js.map +0 -0
- /package/{compiled/types → types}/stakeholder.d.ts +0 -0
- /package/{dist/types → types}/stakeholder.js +0 -0
- /package/{compiled/types → types}/stakeholder.js.map +0 -0
- /package/{compiled/types → types}/util.d.ts +0 -0
- /package/{dist/types → types}/util.js +0 -0
- /package/{compiled/types → types}/util.js.map +0 -0
- /package/{compiled/types → types}/views.d.ts +0 -0
- /package/{dist/types → types}/views.js +0 -0
- /package/{compiled/types → types}/views.js.map +0 -0
- /package/{compiled/views → views}/AnnotatedChange.d.ts +0 -0
- /package/{dist/views → views}/AnnotatedChange.js +0 -0
- /package/{compiled/views → views}/AnnotatedChange.js.map +0 -0
- /package/{compiled/views → views}/BrowserCtx.d.ts +0 -0
- /package/{dist/views → views}/BrowserCtx.js +0 -0
- /package/{compiled/views → views}/BrowserCtx.js.map +0 -0
- /package/{compiled/views → views}/FilterCriteria/CRITERIA_CONFIGURATION.d.ts +0 -0
- /package/{dist/views → views}/FilterCriteria/CRITERIA_CONFIGURATION.js +0 -0
- /package/{compiled/views → views}/FilterCriteria/CRITERIA_CONFIGURATION.js.map +0 -0
- /package/{compiled/views → views}/FilterCriteria/criteriaGroupToQueryExpression.d.ts +0 -0
- /package/{dist/views → views}/FilterCriteria/criteriaGroupToQueryExpression.js +0 -0
- /package/{compiled/views → views}/FilterCriteria/criteriaGroupToQueryExpression.js.map +0 -0
- /package/{compiled/views → views}/FilterCriteria/criteriaGroupToSummary.d.ts +0 -0
- /package/{dist/views → views}/FilterCriteria/criteriaGroupToSummary.js +0 -0
- /package/{compiled/views → views}/FilterCriteria/criteriaGroupToSummary.js.map +0 -0
- /package/{compiled/views → views}/FilterCriteria/criteriaToNodes.d.ts +0 -0
- /package/{dist/views → views}/FilterCriteria/criteriaToNodes.js +0 -0
- /package/{compiled/views → views}/FilterCriteria/criteriaToNodes.js.map +0 -0
- /package/{compiled/views → views}/FilterCriteria/index.d.ts +0 -0
- /package/{dist/views → views}/FilterCriteria/index.js +0 -0
- /package/{compiled/views → views}/FilterCriteria/index.js.map +0 -0
- /package/{compiled/views → views}/FilterCriteria/models.d.ts +0 -0
- /package/{dist/views → views}/FilterCriteria/models.js +0 -0
- /package/{compiled/views → views}/FilterCriteria/models.js.map +0 -0
- /package/{compiled/views → views}/FilterCriteria/mutateGroup.d.ts +0 -0
- /package/{dist/views → views}/FilterCriteria/mutateGroup.js +0 -0
- /package/{compiled/views → views}/FilterCriteria/mutateGroup.js.map +0 -0
- /package/{compiled/views → views}/GenericRelatedItemView.d.ts +0 -0
- /package/{dist/views → views}/GenericRelatedItemView.js +0 -0
- /package/{compiled/views → views}/GenericRelatedItemView.js.map +0 -0
- /package/{compiled/views → views}/RegisterStakeholder.d.ts +0 -0
- /package/{dist/views → views}/RegisterStakeholder.js +0 -0
- /package/{compiled/views → views}/RegisterStakeholder.js.map +0 -0
- /package/{compiled/views → views}/RegisterVersion.d.ts +0 -0
- /package/{dist/views → views}/RegisterVersion.js +0 -0
- /package/{compiled/views → views}/RegisterVersion.js.map +0 -0
- /package/{compiled/views → views}/SearchQuery.d.ts +0 -0
- /package/{dist/views → views}/SearchQuery.js +0 -0
- /package/{compiled/views → views}/SearchQuery.js.map +0 -0
- /package/{compiled/views → views}/change-request/ChangeRequestContext.d.ts +0 -0
- /package/{dist/views → views}/change-request/ChangeRequestContext.js +0 -0
- /package/{compiled/views → views}/change-request/ChangeRequestContext.js.map +0 -0
- /package/{compiled/views → views}/change-request/Proposals.d.ts +0 -0
- /package/{dist/views → views}/change-request/Proposals.js +0 -0
- /package/{compiled/views → views}/change-request/Proposals.js.map +0 -0
- /package/{compiled/views → views}/change-request/objectChangeset.d.ts +0 -0
- /package/{dist/views → views}/change-request/objectChangeset.js +0 -0
- /package/{compiled/views → views}/change-request/objectChangeset.js.map +0 -0
- /package/{compiled/views → views}/detail/ChangeRequest/Proposal.d.ts +0 -0
- /package/{dist/views → views}/detail/ChangeRequest/Proposal.js +0 -0
- /package/{compiled/views → views}/detail/ChangeRequest/Proposal.js.map +0 -0
- /package/{compiled/views → views}/detail/ChangeRequest/index.d.ts +0 -0
- /package/{dist/views → views}/detail/ChangeRequest/index.js +0 -0
- /package/{compiled/views → views}/detail/ChangeRequest/index.js.map +0 -0
- /package/{compiled/views → views}/detail/ChangeRequest/transitions.d.ts +0 -0
- /package/{dist/views → views}/detail/ChangeRequest/transitions.js +0 -0
- /package/{compiled/views → views}/detail/ChangeRequest/transitions.js.map +0 -0
- /package/{compiled/views → views}/detail/CustomView/index.d.ts +0 -0
- /package/{dist/views → views}/detail/CustomView/index.js +0 -0
- /package/{compiled/views → views}/detail/CustomView/index.js.map +0 -0
- /package/{compiled/views → views}/detail/RegisterHome/index.d.ts +0 -0
- /package/{dist/views → views}/detail/RegisterHome/index.js +0 -0
- /package/{compiled/views → views}/detail/RegisterHome/index.js.map +0 -0
- /package/{compiled/views → views}/detail/RegisterItem/RelatedItems.d.ts +0 -0
- /package/{dist/views → views}/detail/RegisterItem/RelatedItems.js +0 -0
- /package/{compiled/views → views}/detail/RegisterItem/RelatedItems.js.map +0 -0
- /package/{compiled/views → views}/detail/RegisterItem/SupersedingItemMenu.d.ts +0 -0
- /package/{dist/views → views}/detail/RegisterItem/SupersedingItemMenu.js +0 -0
- /package/{compiled/views → views}/detail/RegisterItem/SupersedingItemMenu.js.map +0 -0
- /package/{compiled/views → views}/detail/RegisterItem/index.d.ts +0 -0
- /package/{dist/views → views}/detail/RegisterItem/index.js +0 -0
- /package/{compiled/views → views}/detail/RegisterItem/index.js.map +0 -0
- /package/{compiled/views → views}/detail/RegisterMeta/RegisterMetaForm.d.ts +0 -0
- /package/{dist/views → views}/detail/RegisterMeta/RegisterMetaForm.js +0 -0
- /package/{compiled/views → views}/detail/RegisterMeta/RegisterMetaForm.js.map +0 -0
- /package/{compiled/views → views}/detail/RegisterMeta/index.d.ts +0 -0
- /package/{dist/views → views}/detail/RegisterMeta/index.js +0 -0
- /package/{compiled/views → views}/detail/RegisterMeta/index.js.map +0 -0
- /package/{compiled/views → views}/detail/index.d.ts +0 -0
- /package/{dist/views → views}/detail/index.js +0 -0
- /package/{compiled/views → views}/detail/index.js.map +0 -0
- /package/{compiled/views → views}/diffing/InlineDiff.d.ts +0 -0
- /package/{dist/views → views}/diffing/InlineDiff.js +0 -0
- /package/{compiled/views → views}/diffing/InlineDiff.js.map +0 -0
- /package/{compiled/views → views}/diffing/StructuredDiff.d.ts +0 -0
- /package/{dist/views → views}/diffing/StructuredDiff.js +0 -0
- /package/{compiled/views → views}/diffing/StructuredDiff.js.map +0 -0
- /package/{compiled/views → views}/hooks/useCustomView.d.ts +0 -0
- /package/{dist/views → views}/hooks/useCustomView.js +0 -0
- /package/{compiled/views → views}/hooks/useCustomView.js.map +0 -0
- /package/{compiled/views → views}/hooks/useItemClassConfig.d.ts +0 -0
- /package/{dist/views → views}/hooks/useItemClassConfig.js +0 -0
- /package/{compiled/views → views}/hooks/useItemClassConfig.js.map +0 -0
- /package/{compiled/views → views}/hooks/useItemRef.d.ts +0 -0
- /package/{dist/views → views}/hooks/useItemRef.js +0 -0
- /package/{compiled/views → views}/hooks/useItemRef.js.map +0 -0
- /package/{compiled/views → views}/hooks/useSingleRegisterItemData.d.ts +0 -0
- /package/{dist/views → views}/hooks/useSingleRegisterItemData.js +0 -0
- /package/{compiled/views → views}/hooks/useSingleRegisterItemData.js.map +0 -0
- /package/{compiled/views → views}/index.d.ts +0 -0
- /package/{dist/views → views}/index.js +0 -0
- /package/{compiled/views → views}/index.js.map +0 -0
- /package/{compiled/views → views}/itemPathUtils.d.ts +0 -0
- /package/{dist/views → views}/itemPathUtils.js +0 -0
- /package/{compiled/views → views}/itemPathUtils.js.map +0 -0
- /package/{compiled/views → views}/itemQueryUtils.d.ts +0 -0
- /package/{dist/views → views}/itemQueryUtils.js +0 -0
- /package/{compiled/views → views}/itemQueryUtils.js.map +0 -0
- /package/{compiled/views → views}/protocolRegistry.d.ts +0 -0
- /package/{dist/views → views}/protocolRegistry.js +0 -0
- /package/{compiled/views → views}/protocolRegistry.js.map +0 -0
- /package/{compiled/views → views}/sidebar/Browse/index.d.ts +0 -0
- /package/{dist/views → views}/sidebar/Browse/index.js +0 -0
- /package/{compiled/views → views}/sidebar/Browse/index.js.map +0 -0
- /package/{compiled/views → views}/sidebar/Export/index.d.ts +0 -0
- /package/{dist/views → views}/sidebar/Export/index.js +0 -0
- /package/{compiled/views → views}/sidebar/Export/index.js.map +0 -0
- /package/{compiled/views → views}/sidebar/ListItem.d.ts +0 -0
- /package/{dist/views → views}/sidebar/ListItem.js +0 -0
- /package/{compiled/views → views}/sidebar/ListItem.js.map +0 -0
- /package/{compiled/views → views}/sidebar/Registration/index.d.ts +0 -0
- /package/{dist/views → views}/sidebar/Registration/index.js +0 -0
- /package/{compiled/views → views}/sidebar/Registration/index.js.map +0 -0
- /package/{compiled/views → views}/sidebar/Search/index.d.ts +0 -0
- /package/{dist/views → views}/sidebar/Search/index.js +0 -0
- /package/{compiled/views → views}/sidebar/Search/index.js.map +0 -0
- /package/{compiled/views → views}/sidebar/index.d.ts +0 -0
- /package/{dist/views → views}/sidebar/index.js +0 -0
- /package/{compiled/views → views}/sidebar/index.js.map +0 -0
- /package/{compiled/views → views}/util.d.ts +0 -0
- /package/{dist/views → views}/util.js +0 -0
- /package/{compiled/views → views}/util.js.map +0 -0
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
/** @jsx jsx */
|
|
2
|
-
/** @jsxFrag React.Fragment */
|
|
3
|
-
import React, { useContext, useState, useCallback } from 'react';
|
|
4
|
-
import { jsx, css } from '@emotion/react';
|
|
5
|
-
import styled from '@emotion/styled';
|
|
6
|
-
import { Button, ButtonGroup, Card, Classes, FormGroup as BaseFormGroup, ControlGroup, InputGroup, NonIdealState, UL, H5, } from '@blueprintjs/core';
|
|
7
|
-
import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
|
|
8
|
-
import HelpTooltip from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';
|
|
9
|
-
import useItemRef from '../../hooks/useItemRef';
|
|
10
|
-
import useSingleRegisterItemData from '../../hooks/useSingleRegisterItemData';
|
|
11
|
-
import useItemClassConfig from '../../hooks/useItemClassConfig';
|
|
12
|
-
import { Protocols } from '../../protocolRegistry';
|
|
13
|
-
import { isRegisterItem, } from '../../../types';
|
|
14
|
-
import { BrowserCtx } from '../../BrowserCtx';
|
|
15
|
-
import { RegisterHelmet as Helmet, maybeEllipsizeString, TabContentsWithActions, } from '../../util';
|
|
16
|
-
import { crIDToCRPath, getCRIDFromProposedItemPath } from '../../itemPathUtils';
|
|
17
|
-
import { updateCRObjectChangeset, } from '../../change-request/objectChangeset';
|
|
18
|
-
import { ChangeRequestContext } from '../../change-request/ChangeRequestContext';
|
|
19
|
-
import { RelatedItems } from './RelatedItems';
|
|
20
|
-
/**
|
|
21
|
-
* Main register item view.
|
|
22
|
-
*
|
|
23
|
-
* NOTE: while generally intended as tab content handler,
|
|
24
|
-
* is also reused within change request view.
|
|
25
|
-
*/
|
|
26
|
-
const ItemDetail = function ({ uri, inProposalWithID }) {
|
|
27
|
-
const { value: ref } = useItemRef(uri);
|
|
28
|
-
const { value: clsConfig } = useItemClassConfig(ref?.classID ?? 'NONEXISTENT_CLASS_ID');
|
|
29
|
-
//const { value: itemData } = useSingleRegisterItemData(ref);
|
|
30
|
-
const { updateObjects, performOperation, operationKey } = useContext(DatasetContext);
|
|
31
|
-
const isBusy = operationKey !== undefined;
|
|
32
|
-
const { jumpTo, subregisters, useRegisterItemData, activeChangeRequestID: globallyActiveCRID, } = useContext(BrowserCtx);
|
|
33
|
-
const { changeRequest: activeCR, canEdit: activeCRIsEditable } = useContext(ChangeRequestContext);
|
|
34
|
-
const itemClass = clsConfig;
|
|
35
|
-
const itemClassID = itemClass?.meta?.id;
|
|
36
|
-
const itemRef = ref ?? dummyRef;
|
|
37
|
-
const { itemID, subregisterID } = itemRef;
|
|
38
|
-
const _itemPath = `${itemClassID ?? 'NONEXISTENT_CLASS'}/${itemID}.yaml`;
|
|
39
|
-
const itemPath = subregisterID ? `/subregisters/${subregisterID}/${_itemPath}` : `/${_itemPath}`;
|
|
40
|
-
const itemRequest = {
|
|
41
|
-
itemPaths: [itemPath],
|
|
42
|
-
};
|
|
43
|
-
const itemResponse = useRegisterItemData(itemRequest);
|
|
44
|
-
const itemData = itemResponse.value[itemPath];
|
|
45
|
-
const [editedClarification, setEditedClarification] = useState(null);
|
|
46
|
-
//const [ diffMode, setDiffMode ] = useState<boolean>(false);
|
|
47
|
-
// TODO: Implement diff mode
|
|
48
|
-
const diffMode = false;
|
|
49
|
-
const proposal = ((activeCR && activeCR.items[itemPath])
|
|
50
|
-
? activeCR.items[itemPath]
|
|
51
|
-
: null) ?? null;
|
|
52
|
-
const handleClearProposal = () => performProposalOperation("draft: clear proposal", null);
|
|
53
|
-
const handleRetire = () => performProposalOperation("draft: propose retirement", {
|
|
54
|
-
type: 'amendment',
|
|
55
|
-
amendmentType: 'retirement',
|
|
56
|
-
});
|
|
57
|
-
const handleInvalidate = () => performProposalOperation("draft: propose invalidation", {
|
|
58
|
-
type: 'amendment',
|
|
59
|
-
amendmentType: 'invalidation',
|
|
60
|
-
});
|
|
61
|
-
const handleSupersedeWith = (items) => performProposalOperation("draft: propose supersession", {
|
|
62
|
-
type: 'amendment',
|
|
63
|
-
amendmentType: 'supersession',
|
|
64
|
-
supersedingItemIDs: items,
|
|
65
|
-
});
|
|
66
|
-
const handleClarify = async () => {
|
|
67
|
-
await performProposalOperation("draft: clarify item", {
|
|
68
|
-
type: 'clarification',
|
|
69
|
-
});
|
|
70
|
-
setEditedClarification(null);
|
|
71
|
-
};
|
|
72
|
-
const handleEditAddition = async () => {
|
|
73
|
-
await performProposalOperation("draft: edit added item", {
|
|
74
|
-
type: 'addition',
|
|
75
|
-
});
|
|
76
|
-
setEditedClarification(null);
|
|
77
|
-
};
|
|
78
|
-
async function performProposalOperation(summary, proposal) {
|
|
79
|
-
return await performOperation(summary, handleSetProposal)(summary, proposal);
|
|
80
|
-
}
|
|
81
|
-
const handleSetProposal = useCallback(async function _handleSetProposal(summary, proposal) {
|
|
82
|
-
if (!activeCRIsEditable || !updateObjects || !isRegisterItem(itemData)) {
|
|
83
|
-
throw new Error("Proposal isn’t editable");
|
|
84
|
-
}
|
|
85
|
-
if (proposal && proposal?.type !== 'amendment' && !editedClarification) {
|
|
86
|
-
throw new Error("Missing item data");
|
|
87
|
-
}
|
|
88
|
-
await updateObjects({
|
|
89
|
-
commitMessage: `${summary} for ${itemPath}`,
|
|
90
|
-
objectChangeset: updateCRObjectChangeset(
|
|
91
|
-
// TODO: We are sure it’s editable already, but casting should be avoided
|
|
92
|
-
activeCR, { [itemPath]: proposal }, ((proposal && proposal?.type !== 'amendment') && editedClarification)
|
|
93
|
-
? { [itemPath]: { ...itemData, data: editedClarification } }
|
|
94
|
-
: {}),
|
|
95
|
-
// We need this because updateCRObjectChangeset
|
|
96
|
-
// omits oldValue for item data payloads.
|
|
97
|
-
_dangerouslySkipValidation: true,
|
|
98
|
-
});
|
|
99
|
-
}, [
|
|
100
|
-
updateObjects,
|
|
101
|
-
activeCRIsEditable,
|
|
102
|
-
JSON.stringify(activeCR),
|
|
103
|
-
JSON.stringify(itemData),
|
|
104
|
-
JSON.stringify(editedClarification),
|
|
105
|
-
]);
|
|
106
|
-
if (!itemClass) {
|
|
107
|
-
return jsx(NonIdealState, { icon: "heart-broken", title: "Unable to show item", description: `View for ${ref?.itemID ?? uri} cannot be retrieved from item class configuration` });
|
|
108
|
-
}
|
|
109
|
-
else if (isRegisterItem(itemData)) {
|
|
110
|
-
let details;
|
|
111
|
-
if (editedClarification !== null && activeCRIsEditable) {
|
|
112
|
-
const EditView = itemClass.views.editView;
|
|
113
|
-
details = (jsx(EditView, { itemData: editedClarification, itemRef: itemRef, onChange: !isBusy
|
|
114
|
-
? (newData) => {
|
|
115
|
-
setEditedClarification(newData);
|
|
116
|
-
}
|
|
117
|
-
: undefined }));
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
const DetailView = itemClass.views.detailView ?? itemClass.views.editView;
|
|
121
|
-
details = (jsx(DetailView, { itemRef: itemRef, itemData: itemData.data }));
|
|
122
|
-
}
|
|
123
|
-
//const canAmend = activeCR && itemData.status === 'valid';
|
|
124
|
-
const itemStatus = jsx(FormGroup, { inline: true, label: "status:", css: css `margin: 0;` },
|
|
125
|
-
jsx(ControlGroup, { fill: true },
|
|
126
|
-
jsx(InputGroup, { value: proposal?.type === 'amendment'
|
|
127
|
-
? `${proposal.amendmentType} proposed`
|
|
128
|
-
: proposal?.type === 'addition'
|
|
129
|
-
? "addition proposed"
|
|
130
|
-
: itemData.status, intent: proposal?.type === 'amendment'
|
|
131
|
-
? 'warning'
|
|
132
|
-
: proposal?.type === 'addition'
|
|
133
|
-
? 'primary'
|
|
134
|
-
: itemData.status === 'valid'
|
|
135
|
-
? 'success'
|
|
136
|
-
: undefined, leftIcon: proposal && (proposal.type === 'amendment' || proposal.type === 'addition')
|
|
137
|
-
? 'asterisk'
|
|
138
|
-
: itemData.status === 'valid'
|
|
139
|
-
? 'tick'
|
|
140
|
-
: itemData.status === 'invalid'
|
|
141
|
-
? 'ban-circle'
|
|
142
|
-
: 'warning-sign', readOnly: true }),
|
|
143
|
-
activeCRIsEditable && !editedClarification
|
|
144
|
-
? jsx(React.Fragment, null,
|
|
145
|
-
proposal?.type === 'addition'
|
|
146
|
-
? jsx(Button, { intent: "warning", title: "Remove the proposal to add this new item.", disabled: isBusy, onClick: handleClearProposal }, "Remove proposed addition")
|
|
147
|
-
: null,
|
|
148
|
-
proposal?.type === 'amendment'
|
|
149
|
-
? jsx(Button, { intent: "warning", title: `Remove amendment (${proposal.amendmentType}) for this item from current proposal.`, disabled: isBusy, onClick: handleClearProposal }, "Clear proposed amendment")
|
|
150
|
-
: !proposal && itemData.status === 'valid'
|
|
151
|
-
? jsx(ButtonGroup, null,
|
|
152
|
-
jsx(Button, { intent: "primary", disabled: isBusy, onClick: handleRetire }, "Retire"),
|
|
153
|
-
jsx(Button, { intent: "primary", disabled: isBusy, onClick: handleInvalidate }, "Invalidate"))
|
|
154
|
-
: null)
|
|
155
|
-
: null));
|
|
156
|
-
const supersedingItems = (
|
|
157
|
-
// It’s superseded (whether in current proposal or not)
|
|
158
|
-
itemData.status === 'superseded'
|
|
159
|
-
// Item is valid, proposal is editable, and no change to this item is proposed yet
|
|
160
|
-
|| (activeCRIsEditable && !proposal && !editedClarification && itemData.status === 'valid')
|
|
161
|
-
// This item is being superseded in active proposal
|
|
162
|
-
// XXX: Redundant condition with the first one?
|
|
163
|
-
|| (proposal?.type === 'amendment' && proposal.amendmentType === 'supersession'))
|
|
164
|
-
? jsx(FormGroup, { inline: true, label: "superseded by: ", css: css `margin: 0;` },
|
|
165
|
-
jsx(RelatedItems, { availableClassIDs: [itemClass.meta.id], itemRefs: proposal?.type === 'amendment' && proposal.amendmentType === 'supersession'
|
|
166
|
-
? proposal.supersedingItemIDs.
|
|
167
|
-
map(id => ({ itemID: id, classID: itemClass.meta.id, subregisterID }))
|
|
168
|
-
: (itemData.supersededBy ?? []), onChange: !isBusy && activeCRIsEditable && ((proposal?.type === 'amendment' && proposal.amendmentType === 'supersession') ||
|
|
169
|
-
(!proposal && itemData.status === 'valid'))
|
|
170
|
-
? (items) => items.length > 0
|
|
171
|
-
? handleSupersedeWith(items.map(ref => ref.itemID))
|
|
172
|
-
: handleClearProposal()
|
|
173
|
-
: undefined }))
|
|
174
|
-
: null;
|
|
175
|
-
const clarificationHasChanges = JSON.stringify(editedClarification) !== JSON.stringify(itemData.data);
|
|
176
|
-
const clarificationAction = ((proposal && proposal?.type !== 'amendment')
|
|
177
|
-
|| (activeCRIsEditable && !proposal && itemData.status === 'valid'))
|
|
178
|
-
? jsx(FormGroup, { inline: true, label: `${proposal?.type ?? "clarification"}: `, css: css `margin: 0;` }, activeCRIsEditable
|
|
179
|
-
? jsx(ButtonGroup, null, editedClarification
|
|
180
|
-
? jsx(React.Fragment, null,
|
|
181
|
-
jsx(Button, { intent: clarificationHasChanges ? "primary" : undefined,
|
|
182
|
-
// TODO(perf): this is expensive if renders are frequent…
|
|
183
|
-
disabled: !clarificationHasChanges || isBusy, onClick: (!proposal || proposal?.type === 'clarification')
|
|
184
|
-
? handleClarify
|
|
185
|
-
: handleEditAddition }, "Save"),
|
|
186
|
-
jsx(Button, { onClick: () => setEditedClarification(null) }, "Do not save"))
|
|
187
|
-
: jsx(React.Fragment, null,
|
|
188
|
-
jsx(Button, { disabled: diffMode || isBusy, intent: "primary", outlined: true, onClick: () => setEditedClarification(itemData.data) }, !proposal ? "Clarify" : "Edit"),
|
|
189
|
-
proposal?.type === 'clarification'
|
|
190
|
-
? jsx(React.Fragment, null,
|
|
191
|
-
jsx(Button, { disabled: diffMode || isBusy || proposal?.type !== 'clarification', intent: "warning", onClick: handleClearProposal }, "Clear"))
|
|
192
|
-
: null))
|
|
193
|
-
: jsx(Button, { disabled: true },
|
|
194
|
-
proposal?.type === 'clarification' ? "Clarified" : "Added",
|
|
195
|
-
" in active proposal"))
|
|
196
|
-
: null;
|
|
197
|
-
// If there’s a CR context without active CR,
|
|
198
|
-
// or active CR isn’t the same as the one in CR context,
|
|
199
|
-
// then we can assume that the item is shown in proposal window
|
|
200
|
-
// and we’d set window title to proposal’s title rather than item’s.
|
|
201
|
-
// If there’s a CR context and active CR and they’re the same
|
|
202
|
-
// then it *could* be that the item is shown in its own tab;
|
|
203
|
-
// we will render proposal’s title if the item appears in the change request
|
|
204
|
-
// (makes sense because the user *is* technically viewing a proposal then).
|
|
205
|
-
const windowTitle = (activeCR && (!globallyActiveCRID
|
|
206
|
-
|| activeCR.id !== globallyActiveCRID
|
|
207
|
-
|| activeCR.items[itemPath])) ? `Proposal ${maybeEllipsizeString(activeCR.justification, 20)}…`
|
|
208
|
-
: `${itemClass.meta.title ?? 'register item'} #${itemData.id}`;
|
|
209
|
-
return (jsx(TabContentsWithActions, { actions: jsx(React.Fragment, null,
|
|
210
|
-
jsx(FormGroup, { inline: true, labelInfo: jsx(HelpTooltip, { icon: 'info-sign', content: jsx(React.Fragment, null,
|
|
211
|
-
jsx(H5, null, itemClass.meta.title),
|
|
212
|
-
itemClass.meta.description ?? "No description is provided for this register item class.",
|
|
213
|
-
jsx(UL, null,
|
|
214
|
-
jsx("li", null,
|
|
215
|
-
"Class ID: ",
|
|
216
|
-
itemClassID),
|
|
217
|
-
jsx("li", null,
|
|
218
|
-
"Subregister ID: ",
|
|
219
|
-
subregisterID ?? 'N/A'),
|
|
220
|
-
jsx("li", null,
|
|
221
|
-
"UUID: ",
|
|
222
|
-
itemID))) }), label: jsx(React.Fragment, null,
|
|
223
|
-
jsx("strong", null, itemClass.meta.title),
|
|
224
|
-
subregisterID
|
|
225
|
-
? jsx("span", { title: "Subregister" },
|
|
226
|
-
" in ",
|
|
227
|
-
subregisters?.[subregisterID]?.title ?? subregisterID)
|
|
228
|
-
: null), css: css `margin: 0; .bp4-form-content { display: flex; flex-flow: row wrap; gap: 10px; }` },
|
|
229
|
-
itemStatus,
|
|
230
|
-
supersedingItems,
|
|
231
|
-
clarificationAction)), main: jsx(Card, { css: css `position: absolute; inset: ${inProposalWithID ? '0' : '10px'}; overflow-y: auto;` },
|
|
232
|
-
jsx(Helmet, null,
|
|
233
|
-
jsx("title", null, windowTitle)),
|
|
234
|
-
details) }));
|
|
235
|
-
}
|
|
236
|
-
else if (itemResponse.isUpdating) {
|
|
237
|
-
return jsx("div", { className: Classes.SKELETON }, "Loading\u2026");
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
const inCRWithID = getCRIDFromProposedItemPath(uri);
|
|
241
|
-
if (inCRWithID !== null && activeCR?.id !== inCRWithID) {
|
|
242
|
-
return jsx(NonIdealState, { icon: "help", title: "This item does not exist\u2026", description: jsx(React.Fragment, null,
|
|
243
|
-
"\u2026but it might be proposed.",
|
|
244
|
-
jsx("br", null),
|
|
245
|
-
jumpTo
|
|
246
|
-
? jsx(Button, { css: css `margin: 10px;`, intent: "primary", onClick: () => jumpTo?.(`${Protocols.CHANGE_REQUEST}:${crIDToCRPath(inCRWithID)}`) }, "Go to proposal")
|
|
247
|
-
: null) });
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
return jsx(NonIdealState, { icon: "heart-broken", title: "Unable to show item", description: "Item may not exist, or use unexpected data format." });
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
};
|
|
254
|
-
const ItemTitle = function ({ uri }) {
|
|
255
|
-
const { value: ref } = useItemRef(uri);
|
|
256
|
-
const { value: clsConfig } = useItemClassConfig(ref?.classID ?? 'NONEXISTENT_CLASS_ID');
|
|
257
|
-
const { value: itemData } = useSingleRegisterItemData(ref);
|
|
258
|
-
const fallbackView = (() => jsx(React.Fragment, null, ref?.itemID ?? uri));
|
|
259
|
-
const View = itemData ? (clsConfig?.views.listItemView ?? fallbackView) : fallbackView;
|
|
260
|
-
return jsx(View, { itemRef: ref ?? dummyRef, itemData: itemData });
|
|
261
|
-
};
|
|
262
|
-
export default {
|
|
263
|
-
main: ItemDetail,
|
|
264
|
-
title: ItemTitle,
|
|
265
|
-
};
|
|
266
|
-
const dummyRef = {
|
|
267
|
-
itemID: 'NONEXISTENT_ITEM_ID',
|
|
268
|
-
classID: 'NONEXISTENT_CLASS_ID',
|
|
269
|
-
subregisterID: undefined,
|
|
270
|
-
};
|
|
271
|
-
const FormGroup = styled(BaseFormGroup) `
|
|
272
|
-
margin: 0;
|
|
273
|
-
label.bp4-label {
|
|
274
|
-
white-space: nowrap;
|
|
275
|
-
}
|
|
276
|
-
`;
|
|
277
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/** @jsx jsx */
|
|
2
|
-
/** @jsxFrag React.Fragment */
|
|
3
|
-
import update from 'immutability-helper';
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import { jsx, css } from '@emotion/react';
|
|
6
|
-
import styled from '@emotion/styled';
|
|
7
|
-
import { FormGroup as BaseFormGroup, Classes, ControlGroup, InputGroup, TextArea, HTMLTable, HTMLSelect, Button, ButtonGroup, } from '@blueprintjs/core';
|
|
8
|
-
import { DatePicker, TimePrecision } from '@blueprintjs/datetime';
|
|
9
|
-
import HelpTooltip from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';
|
|
10
|
-
import { isStakeholderRole } from '../../../types';
|
|
11
|
-
import { STAKEHOLDER_ROLES, StakeholderRole } from '../../../types/stakeholder';
|
|
12
|
-
const DUMMY_VERSION = { id: '', timestamp: new Date() };
|
|
13
|
-
const DUMMY_CONTACT = {
|
|
14
|
-
label: 'email',
|
|
15
|
-
value: ''
|
|
16
|
-
};
|
|
17
|
-
const DUMMY_PARTY = {
|
|
18
|
-
name: '',
|
|
19
|
-
contacts: [DUMMY_CONTACT],
|
|
20
|
-
};
|
|
21
|
-
const DUMMY_STAKEHOLDER = {
|
|
22
|
-
role: StakeholderRole.Submitter,
|
|
23
|
-
name: '',
|
|
24
|
-
gitServerUsername: undefined,
|
|
25
|
-
parties: [DUMMY_PARTY],
|
|
26
|
-
};
|
|
27
|
-
const RegisterMetaForm = function ({ value, onChange, className }) {
|
|
28
|
-
function handleOperatingLanguageChange(fieldName) {
|
|
29
|
-
return (evt) => {
|
|
30
|
-
const newValue = update(value, { operatingLanguage: op => update(op ?? {}, { [fieldName]: { $set: evt.currentTarget.value } }) });
|
|
31
|
-
onChange(newValue);
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function makeFormEventHandler(func) {
|
|
35
|
-
return (evt) => {
|
|
36
|
-
const spec = func(evt.currentTarget.value);
|
|
37
|
-
if (spec) {
|
|
38
|
-
onChange(update(value, spec));
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
const stakeholders = value.stakeholders ?? [];
|
|
43
|
-
function makeStakeholderChangeHandler(idx, func) {
|
|
44
|
-
return makeFormEventHandler(val => ({ stakeholders: { [idx]: func(val) } }));
|
|
45
|
-
}
|
|
46
|
-
function handleStakeholderAdd() {
|
|
47
|
-
onChange({ ...value, stakeholders: [...stakeholders, DUMMY_STAKEHOLDER] });
|
|
48
|
-
}
|
|
49
|
-
return (jsx("div", { css: css `display: flex; flex-flow: row wrap; align-content: flex-start; align-items: flex-start; gap: 10px;`, className: className },
|
|
50
|
-
jsx(SuperFormGroup, { label: "Basics:" },
|
|
51
|
-
jsx(FormGroup, { label: "Name:" },
|
|
52
|
-
jsx(InputGroup, { fill: true, value: value.name || '', readOnly: !onChange, onChange: makeFormEventHandler(val => ({ name: { $set: val } })) })),
|
|
53
|
-
jsx(FormGroup, { label: "Uniform resource identifier:" },
|
|
54
|
-
jsx(InputGroup, { fill: true, type: "url", value: value.uniformResourceIdentifier || '', readOnly: !onChange, onChange: makeFormEventHandler(val => ({ uniformResourceIdentifier: { $set: val } })) })),
|
|
55
|
-
jsx(FormGroup, { label: "Content summary:" },
|
|
56
|
-
jsx(TextArea, { fill: true, value: value.contentSummary || '', readOnly: !onChange, onChange: makeFormEventHandler(val => ({ contentSummary: { $set: val } })) })),
|
|
57
|
-
jsx(FormGroup, { label: "Operating language (locale):", helperText: "Name, country and ISO 639-2 language code." },
|
|
58
|
-
jsx(ControlGroup, { vertical: true },
|
|
59
|
-
jsx(InputGroup, { readOnly: !onChange, placeholder: "E.g., Welsh", value: value.operatingLanguage?.name ?? '', onChange: handleOperatingLanguageChange('name') }),
|
|
60
|
-
jsx(InputGroup, { readOnly: !onChange, placeholder: "3-character numerical country code from ISO 3166-1", value: value.operatingLanguage?.country ?? '', onChange: handleOperatingLanguageChange('country') }),
|
|
61
|
-
jsx(InputGroup, { readOnly: !onChange, placeholder: "3-character language code from ISO 639-2", value: value.operatingLanguage?.languageCode ?? '', onChange: handleOperatingLanguageChange('languageCode') })))),
|
|
62
|
-
jsx(SuperFormGroup, { label: "Version: ", css: css `padding-bottom: 0;` },
|
|
63
|
-
jsx(FormGroup, { label: "Identifier: " },
|
|
64
|
-
jsx(InputGroup, { value: value.version?.id ?? '', readOnly: !onChange, placeholder: "E.g., 1.2", onChange: makeFormEventHandler(val => ({ version: v => update(v ?? DUMMY_VERSION, { id: { $set: val } }) })) })),
|
|
65
|
-
jsx(FormGroup, { label: "Published on: ", helperText: jsx(React.Fragment, null,
|
|
66
|
-
"Date and time are",
|
|
67
|
-
jsx("br", null),
|
|
68
|
-
"in ",
|
|
69
|
-
Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
70
|
-
".",
|
|
71
|
-
" ",
|
|
72
|
-
jsx(HelpTooltip, { content: jsx(React.Fragment, null,
|
|
73
|
-
"Times are in your computer\u2019s current time zone.",
|
|
74
|
-
onChange
|
|
75
|
-
? " When specifying, make sure to offset accordingly if it is different than register publication time zone."
|
|
76
|
-
: null) })) },
|
|
77
|
-
jsx(DatePicker, { css: css `margin: 0 -${PADDING};`, timePrecision: TimePrecision.MINUTE, value: value.version?.timestamp ?? null, showActionsBar: onChange ? true : false, onChange: (val) => onChange(update(value, val !== null
|
|
78
|
-
? { version: v => update(v ?? DUMMY_VERSION, { timestamp: { $set: val } }) }
|
|
79
|
-
: { $unset: ['version'] })) }))),
|
|
80
|
-
jsx(SuperFormGroup, { label: "Stakeholders:", helperText: onChange
|
|
81
|
-
? jsx(Button, { onClick: handleStakeholderAdd, icon: "add" }, "Add")
|
|
82
|
-
: null }, stakeholders.length > 0
|
|
83
|
-
? jsx(HTMLTable, { css: css `margin: 0 -${PADDING};` },
|
|
84
|
-
jsx("thead", null,
|
|
85
|
-
jsx("tr", { css: css `& > * { white-space: nowrap }` },
|
|
86
|
-
jsx("th", null, "Role"),
|
|
87
|
-
jsx("th", null, "Name"),
|
|
88
|
-
jsx("th", null, "Git server username"),
|
|
89
|
-
jsx("th", null, "Parties"),
|
|
90
|
-
jsx("th", null, "Name"),
|
|
91
|
-
jsx("th", null, "Email"))),
|
|
92
|
-
jsx("tbody", null, [...stakeholders.entries()].map(([idx, s]) => jsx("tr", { key: idx },
|
|
93
|
-
jsx("td", null,
|
|
94
|
-
jsx(HTMLSelect, { options: STAKEHOLDER_ROLES.map(r => ({ value: r, label: r })), disabled: !onChange, onChange: makeStakeholderChangeHandler(idx, (val) => isStakeholderRole(val)
|
|
95
|
-
? { role: { $set: val } } // Why do we need to cast this
|
|
96
|
-
: {}), value: s.role })),
|
|
97
|
-
jsx("td", null,
|
|
98
|
-
jsx(InputGroup, { readOnly: !onChange, onChange: makeStakeholderChangeHandler(idx, (val) => ({ name: { $set: val } })), value: s.name })),
|
|
99
|
-
jsx("td", null,
|
|
100
|
-
jsx(InputGroup, { readOnly: !onChange, onChange: makeStakeholderChangeHandler(idx, (val) => ({ gitServerUsername: { $set: val || undefined } })), value: s.gitServerUsername || '' })),
|
|
101
|
-
jsx("td", null,
|
|
102
|
-
jsx(ControlGroup, { vertical: s.parties.length > 1 }, s.parties.map((party, partyIdx) => jsx(ButtonGroup, { key: partyIdx },
|
|
103
|
-
jsx(Button, { key: "delete", outlined: true, disabled: !onChange || s.parties.length < 2 || party.name !== '', title: "Delete this party", onClick: () => onChange(update(value, { stakeholders: { [idx]: { parties: { $splice: [[partyIdx, 1]] } } } })), icon: "cross" }),
|
|
104
|
-
partyIdx === s.parties.length - 1
|
|
105
|
-
? jsx(Button, { key: "add", outlined: true, disabled: !onChange, onClick: () => onChange(update(value, { stakeholders: { [idx]: { parties: { $push: [DUMMY_PARTY] } } } })), title: "Append a party", icon: "plus" })
|
|
106
|
-
: null)))),
|
|
107
|
-
jsx("td", null,
|
|
108
|
-
jsx(ControlGroup, { vertical: s.parties.length > 1 }, s.parties.map((party, partyIdx) => jsx(InputGroup, { key: partyIdx, readOnly: !onChange, placeholder: "Individual or organization", onChange: makeStakeholderChangeHandler(idx, (val) => ({ parties: { [partyIdx]: { name: { $set: val } } } })), value: party.name })))),
|
|
109
|
-
jsx("td", null,
|
|
110
|
-
jsx(ControlGroup, { vertical: s.parties.length > 1 }, s.parties.map((party, partyIdx) => jsx(InputGroup, { key: partyIdx, type: "email", placeholder: "Contact email", readOnly: !onChange, onChange: makeStakeholderChangeHandler(idx, (val) => ({ parties: { [partyIdx]: { contacts: { 0: { value: { $set: val } } } } } })), value: party.contacts[0].value || '' }))))))))
|
|
111
|
-
: null)));
|
|
112
|
-
};
|
|
113
|
-
const PADDING = '11px';
|
|
114
|
-
const FormGroup = styled(BaseFormGroup) `
|
|
115
|
-
margin: 0;
|
|
116
|
-
`;
|
|
117
|
-
const SuperFormGroup_ = styled(FormGroup) `
|
|
118
|
-
border-radius: 5px;
|
|
119
|
-
padding: ${PADDING};
|
|
120
|
-
background: white;
|
|
121
|
-
> label.bp4-label {
|
|
122
|
-
font-weight: bold;
|
|
123
|
-
margin-bottom: ${PADDING};
|
|
124
|
-
}
|
|
125
|
-
> .bp4-form-content {
|
|
126
|
-
display: flex;
|
|
127
|
-
flex-flow: column nowrap;
|
|
128
|
-
gap: ${PADDING};
|
|
129
|
-
}
|
|
130
|
-
`;
|
|
131
|
-
const SuperFormGroup = function (props) {
|
|
132
|
-
return jsx(SuperFormGroup_, { ...props, className: Classes.ELEVATION_3 });
|
|
133
|
-
};
|
|
134
|
-
export default RegisterMetaForm;
|
|
135
|
-
//# sourceMappingURL=RegisterMetaForm.js.map
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/** @jsx jsx */
|
|
2
|
-
/** @jsxFrag React.Fragment */
|
|
3
|
-
import React, { useState, useContext } from 'react';
|
|
4
|
-
import { jsx } from '@emotion/react';
|
|
5
|
-
import { Button, ButtonGroup, NonIdealState, Spinner } from '@blueprintjs/core';
|
|
6
|
-
import { DatasetContext } from '@riboseinc/paneron-extension-kit/context';
|
|
7
|
-
import { BrowserCtx } from '../../BrowserCtx';
|
|
8
|
-
import { isRegisterMetadata } from '../../../types';
|
|
9
|
-
import { isOwner } from '../../../types/stakeholder';
|
|
10
|
-
import { REGISTER_METADATA_FILENAME } from '../../../common';
|
|
11
|
-
import { TabContentsWithActions } from '../../util';
|
|
12
|
-
import RegisterMetaForm from './RegisterMetaForm';
|
|
13
|
-
const RegisterMeta = function () {
|
|
14
|
-
const { updateObjects, performOperation } = useContext(DatasetContext);
|
|
15
|
-
const { registerMetadata, stakeholder } = useContext(BrowserCtx);
|
|
16
|
-
const [editedMetadata, setEditedMetadata] = useState(null);
|
|
17
|
-
const canChange = updateObjects ? true : false;
|
|
18
|
-
const didChange = registerMetadata && editedMetadata && JSON.stringify(editedMetadata) !== JSON.stringify(registerMetadata);
|
|
19
|
-
function handleClear() {
|
|
20
|
-
setEditedMetadata(null);
|
|
21
|
-
}
|
|
22
|
-
async function handleSave() {
|
|
23
|
-
if (!updateObjects) {
|
|
24
|
-
throw new Error("Dataset is read-only");
|
|
25
|
-
}
|
|
26
|
-
if (!stakeholder || !isOwner(stakeholder)) {
|
|
27
|
-
throw new Error("Register meta is only meant to be edited by owner");
|
|
28
|
-
}
|
|
29
|
-
if (!isRegisterMetadata(editedMetadata)) {
|
|
30
|
-
throw new Error("Invalid register metadata");
|
|
31
|
-
}
|
|
32
|
-
await performOperation('saving register meta', updateObjects)({
|
|
33
|
-
commitMessage: "edited register metadata",
|
|
34
|
-
objectChangeset: {
|
|
35
|
-
[REGISTER_METADATA_FILENAME]: {
|
|
36
|
-
oldValue: registerMetadata,
|
|
37
|
-
newValue: editedMetadata,
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
setEditedMetadata(null);
|
|
42
|
-
}
|
|
43
|
-
if (registerMetadata) {
|
|
44
|
-
return (jsx(TabContentsWithActions, { actions: jsx(React.Fragment, null,
|
|
45
|
-
jsx(ButtonGroup, null,
|
|
46
|
-
jsx(Button, { onClick: handleSave, disabled: !didChange || !canChange, intent: didChange && canChange ? "primary" : undefined }, "Save"),
|
|
47
|
-
jsx(Button, { onClick: handleClear, disabled: !didChange || !canChange }, "Clear changes"))), main: jsx(RegisterMetaForm, { value: editedMetadata ?? registerMetadata, onChange: updateObjects ? setEditedMetadata : undefined }) }));
|
|
48
|
-
}
|
|
49
|
-
else if (registerMetadata === undefined) {
|
|
50
|
-
return jsx(NonIdealState, { icon: jsx(Spinner, null) });
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
return jsx(NonIdealState, { icon: "heart-broken", description: "Failed to read registry metadata." });
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
export default {
|
|
57
|
-
main: RegisterMeta,
|
|
58
|
-
title: () => jsx(React.Fragment, null, "Register Metadata"),
|
|
59
|
-
plainTitle: async () => "register metadata",
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
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
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
|
@@ -1,38 +0,0 @@
|
|
|
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
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
|
@@ -1,26 +0,0 @@
|
|
|
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
|
|
@@ -1,21 +0,0 @@
|
|
|
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
|