@riboseinc/paneron-registry-kit 2.2.32 → 2.2.34
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/index.d.ts +2 -2
- package/index.js +3 -3
- package/index.js.map +1 -1
- package/item-classes/Tree.js +6 -8
- package/item-classes/Tree.js.map +1 -1
- package/package.json +4 -3
- package/{views/change-request → proposals}/ChangeRequestContext.d.ts +3 -2
- package/{views/change-request → proposals}/ChangeRequestContext.js +8 -8
- package/proposals/ChangeRequestContext.js.map +1 -0
- package/{views/ProposalHistoryDrawer.js → proposals/HistoryDrawer.js} +11 -13
- package/proposals/HistoryDrawer.js.map +1 -0
- package/proposals/ListItem.d.ts +8 -0
- package/proposals/ListItem.js +40 -0
- package/proposals/ListItem.js.map +1 -0
- package/{views/change-request/Summary.d.ts → proposals/MetaProperties.d.ts} +4 -3
- package/proposals/MetaProperties.js +94 -0
- package/proposals/MetaProperties.js.map +1 -0
- package/proposals/NewProposalMenu.d.ts +10 -0
- package/proposals/NewProposalMenu.js +113 -0
- package/proposals/NewProposalMenu.js.map +1 -0
- package/proposals/ProposalBrowser.d.ts +22 -0
- package/{views/change-request/Proposals.js → proposals/ProposalBrowser.js} +20 -258
- package/proposals/ProposalBrowser.js.map +1 -0
- package/proposals/ProposalDetail.d.ts +6 -0
- package/proposals/ProposalDetail.js +67 -0
- package/proposals/ProposalDetail.js.map +1 -0
- package/proposals/ProposalItem.d.ts +16 -0
- package/proposals/ProposalItem.js +57 -0
- package/proposals/ProposalItem.js.map +1 -0
- package/proposals/ProposalSummary.d.ts +6 -0
- package/proposals/ProposalSummary.js +62 -0
- package/proposals/ProposalSummary.js.map +1 -0
- package/proposals/ProposalTab.d.ts +12 -0
- package/proposals/ProposalTab.js +102 -0
- package/proposals/ProposalTab.js.map +1 -0
- package/proposals/ProposalType.d.ts +11 -0
- package/proposals/ProposalType.js +99 -0
- package/proposals/ProposalType.js.map +1 -0
- package/proposals/ProposalWorkspace.d.ts +13 -0
- package/proposals/ProposalWorkspace.js +132 -0
- package/proposals/ProposalWorkspace.js.map +1 -0
- package/proposals/Search.d.ts +26 -0
- package/proposals/Search.js +109 -0
- package/proposals/Search.js.map +1 -0
- package/{views/change-request → proposals}/TransitionHistory.d.ts +3 -2
- package/{views/change-request → proposals}/TransitionHistory.js +18 -14
- package/proposals/TransitionHistory.js.map +1 -0
- package/{views/change-request → proposals}/TransitionOptions.d.ts +3 -3
- package/{views/change-request → proposals}/TransitionOptions.js +34 -12
- package/proposals/TransitionOptions.js.map +1 -0
- package/proposals/actionableGroups/Tree.js +23 -5
- package/proposals/actionableGroups/Tree.js.map +1 -1
- package/proposals/actionableGroups/queries.d.ts +0 -1
- package/proposals/actionableGroups/queries.js +7 -10
- package/proposals/actionableGroups/queries.js.map +1 -1
- package/proposals/actionableGroups/treeNodes.d.ts +2 -1
- package/proposals/actionableGroups/treeNodes.js +42 -10
- package/proposals/actionableGroups/treeNodes.js.map +1 -1
- package/proposals/index.d.ts +6 -0
- package/proposals/index.js +83 -0
- package/proposals/index.js.map +1 -0
- package/{views/change-request → proposals}/objectChangeset.d.ts +4 -4
- package/{views/change-request → proposals}/objectChangeset.js +6 -6
- package/proposals/objectChangeset.js.map +1 -0
- package/proposals/queries.d.ts +4 -0
- package/proposals/queries.js +14 -0
- package/proposals/queries.js.map +1 -0
- package/{types/cr.d.ts → proposals/types.d.ts} +80 -5
- package/{types/cr.js → proposals/types.js} +72 -3
- package/proposals/types.js.map +1 -0
- package/types/index.d.ts +0 -1
- package/types/index.js +0 -13
- package/types/index.js.map +1 -1
- package/types/util.d.ts +1 -1
- package/types/util.js.map +1 -1
- package/types/views.d.ts +1 -1
- package/types/views.js.map +1 -1
- package/views/FilterCriteria/models.d.ts +2 -0
- package/views/FilterCriteria/models.js +12 -2
- package/views/FilterCriteria/models.js.map +1 -1
- package/views/GenericRelatedItemView.js +4 -4
- package/views/GenericRelatedItemView.js.map +1 -1
- package/views/RegisterStakeholder.d.ts +4 -1
- package/views/RegisterStakeholder.js +19 -13
- package/views/RegisterStakeholder.js.map +1 -1
- package/views/detail/ChangeRequest/index.js +12 -160
- package/views/detail/ChangeRequest/index.js.map +1 -1
- package/views/detail/ProposalWork.d.ts +8 -0
- package/views/detail/ProposalWork.js +213 -0
- package/views/detail/ProposalWork.js.map +1 -0
- package/views/detail/RegisterHome/ActiveProposalDetails.d.ts +1 -1
- package/views/detail/RegisterHome/ActiveProposalDetails.js +4 -4
- package/views/detail/RegisterHome/ActiveProposalDetails.js.map +1 -1
- package/views/detail/RegisterHome/Proposal.d.ts +1 -1
- package/views/detail/RegisterHome/Proposal.js +2 -6
- package/views/detail/RegisterHome/Proposal.js.map +1 -1
- package/views/detail/RegisterHome/index.js +12 -16
- package/views/detail/RegisterHome/index.js.map +1 -1
- package/views/detail/RegisterHome2/index.d.ts +5 -0
- package/views/detail/RegisterHome2/index.js +58 -0
- package/views/detail/RegisterHome2/index.js.map +1 -0
- package/views/detail/RegisterItem/index.d.ts +2 -1
- package/views/detail/RegisterItem/index.js +62 -21
- package/views/detail/RegisterItem/index.js.map +1 -1
- package/views/detail/RegisterItemClass.js +1 -1
- package/views/detail/RegisterItemClass.js.map +1 -1
- package/views/detail/RegisterMeta/RegisterMetaForm.js +1 -46
- package/views/detail/RegisterMeta/RegisterMetaForm.js.map +1 -1
- package/views/hooks/useLatestAcceptedProposal.d.ts +2 -0
- package/views/hooks/useLatestAcceptedProposal.js +48 -0
- package/views/hooks/useLatestAcceptedProposal.js.map +1 -0
- package/views/hooks/useRegisterVersion.d.ts +5 -0
- package/views/hooks/useRegisterVersion.js +47 -0
- package/views/hooks/useRegisterVersion.js.map +1 -0
- package/views/hooks/useSingleRegisterItemData.js.map +1 -1
- package/views/index.js +38 -16
- package/views/index.js.map +1 -1
- package/views/itemQueryUtils.d.ts +1 -1
- package/views/itemQueryUtils.js +12 -7
- package/views/itemQueryUtils.js.map +1 -1
- package/views/protocolRegistry.d.ts +1 -0
- package/views/protocolRegistry.js +4 -0
- package/views/protocolRegistry.js.map +1 -1
- package/views/sidebar/Browse/index.js +2 -2
- package/views/sidebar/Browse/index.js.map +1 -1
- package/views/sidebar/Registration/index.d.ts +0 -1
- package/views/sidebar/Registration/index.js +9 -37
- package/views/sidebar/Registration/index.js.map +1 -1
- package/views/sidebar/Search/index.d.ts +3 -0
- package/views/sidebar/Search/index.js +12 -11
- package/views/sidebar/Search/index.js.map +1 -1
- package/views/sidebar/index.js +40 -10
- package/views/sidebar/index.js.map +1 -1
- package/views/util.d.ts +6 -1
- package/views/util.js +30 -7
- package/views/util.js.map +1 -1
- package/types/cr.js.map +0 -1
- package/types/proposal.d.ts +0 -90
- package/types/proposal.js +0 -71
- package/types/proposal.js.map +0 -1
- package/views/ProposalHistoryDrawer.js.map +0 -1
- package/views/change-request/ChangeRequestContext.js.map +0 -1
- package/views/change-request/Proposals.d.ts +0 -40
- package/views/change-request/Proposals.js.map +0 -1
- package/views/change-request/Summary.js +0 -59
- package/views/change-request/Summary.js.map +0 -1
- package/views/change-request/TransitionHistory.js.map +0 -1
- package/views/change-request/TransitionOptions.js.map +0 -1
- package/views/change-request/objectChangeset.js.map +0 -1
- package/views/change-request/util.d.ts +0 -4
- package/views/change-request/util.js +0 -14
- package/views/change-request/util.js.map +0 -1
- /package/{views/ProposalHistoryDrawer.d.ts → proposals/HistoryDrawer.d.ts} +0 -0
package/index.d.ts
CHANGED
|
@@ -10,9 +10,9 @@ import GenericRelatedItemView from './views/GenericRelatedItemView';
|
|
|
10
10
|
import { PropertyDetailView } from './views/util';
|
|
11
11
|
import CRITERIA_CONFIGURATION from './views/FilterCriteria/CRITERIA_CONFIGURATION';
|
|
12
12
|
import useSingleRegisterItemData from './views/hooks/useSingleRegisterItemData';
|
|
13
|
-
import { isAddition } from './types
|
|
13
|
+
import { isAddition } from './proposals/types';
|
|
14
14
|
import type { Payload } from './types/item';
|
|
15
15
|
import { Protocols } from './views/protocolRegistry';
|
|
16
|
-
import { ChangeRequestContext } from './
|
|
16
|
+
import { ChangeRequestContext } from './proposals/ChangeRequestContext';
|
|
17
17
|
import RegisterHome from './views/detail/RegisterHome';
|
|
18
18
|
export { itemRefToItemPath, itemPathToItemRef, itemPathInCR, incompleteItemRefToItemPathPrefix, BrowserCtx, CRITERIA_CONFIGURATION, GenericRelatedItemView, PropertyDetailView, useSingleRegisterItemData, isAddition, Payload, Protocols, ChangeRequestContext, RegisterHome, };
|
package/index.js
CHANGED
|
@@ -60,7 +60,7 @@ Object.defineProperty(exports, "useSingleRegisterItemData", {
|
|
|
60
60
|
Object.defineProperty(exports, "isAddition", {
|
|
61
61
|
enumerable: true,
|
|
62
62
|
get: function () {
|
|
63
|
-
return
|
|
63
|
+
return _types.isAddition;
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
66
|
Object.defineProperty(exports, "Protocols", {
|
|
@@ -105,11 +105,11 @@ var _CRITERIA_CONFIGURATION = _interopRequireDefault(require("./views/FilterCrit
|
|
|
105
105
|
|
|
106
106
|
var _useSingleRegisterItemData = _interopRequireDefault(require("./views/hooks/useSingleRegisterItemData"));
|
|
107
107
|
|
|
108
|
-
var
|
|
108
|
+
var _types = require("./proposals/types");
|
|
109
109
|
|
|
110
110
|
var _protocolRegistry = require("./views/protocolRegistry");
|
|
111
111
|
|
|
112
|
-
var _ChangeRequestContext = require("./
|
|
112
|
+
var _ChangeRequestContext = require("./proposals/ChangeRequestContext");
|
|
113
113
|
|
|
114
114
|
var _RegisterHome = _interopRequireDefault(require("./views/detail/RegisterHome"));
|
|
115
115
|
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,aAAa,MAAM,wDAAwD,CAAC;AAInF,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQvC,MAAM,CAAC,MAAM,qBAAqB,GAA2B,UAAU,IAAI;IACzE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;QAC5D,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACtD,MAAM,IAAI,GAAG,IAAW,CAAC;YACzB,IAAI,IAAI,EAAE;gBACR,GAAG,CAAC,KAAK,CAAC,MAAoD,CAAC,GAAG,SAAS,uBAAuB,CAAC,KAAK;oBACtG,OAAO,CACL,oBAAC,aAAa,IACV,QAAQ,EAAE,mBAAmB,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAC7C,MAAM,EAAE,MAAM,KAAK,cAAc;wBACnC,oBAAC,IAAI,OAAK,KAAK,GAAI,CACL,CACjB,CAAC;gBACJ,CAAC,CAAC;aACH;SACF;KACF;IAED,MAAM,QAAQ,GAAoC,SAAS,aAAa;QACtE,OAAO,CACL,oBAAC,YAAY,IACX,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,EACnD,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EACjD,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EACrD,eAAe,EAAE,IAAI,CAAC,eAAe,GACrC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,aAAa,CAAC;QACnB,QAAQ;QACR,IAAI;QACJ,sBAAsB,EAAE,OAAO;QAC/B,iBAAiB,EAAE,EAAE;QACrB,kBAAkB;KACnB,CAAC,CAAC;AACL,CAAC,CAAC;AAGF,aAAa;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAC9H,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,sBAAsB,MAAM,+CAA+C,CAAC;AACnF,OAAO,yBAAyB,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,aAAa,MAAM,wDAAwD,CAAC;AAInF,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQvC,MAAM,CAAC,MAAM,qBAAqB,GAA2B,UAAU,IAAI;IACzE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;QAC5D,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACtD,MAAM,IAAI,GAAG,IAAW,CAAC;YACzB,IAAI,IAAI,EAAE;gBACR,GAAG,CAAC,KAAK,CAAC,MAAoD,CAAC,GAAG,SAAS,uBAAuB,CAAC,KAAK;oBACtG,OAAO,CACL,oBAAC,aAAa,IACV,QAAQ,EAAE,mBAAmB,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAC7C,MAAM,EAAE,MAAM,KAAK,cAAc;wBACnC,oBAAC,IAAI,OAAK,KAAK,GAAI,CACL,CACjB,CAAC;gBACJ,CAAC,CAAC;aACH;SACF;KACF;IAED,MAAM,QAAQ,GAAoC,SAAS,aAAa;QACtE,OAAO,CACL,oBAAC,YAAY,IACX,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,EACnD,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EACjD,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EACrD,eAAe,EAAE,IAAI,CAAC,eAAe,GACrC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,aAAa,CAAC;QACnB,QAAQ;QACR,IAAI;QACJ,sBAAsB,EAAE,OAAO;QAC/B,iBAAiB,EAAE,EAAE;QACrB,kBAAkB;KACnB,CAAC,CAAC;AACL,CAAC,CAAC;AAGF,aAAa;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAC9H,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,sBAAsB,MAAM,+CAA+C,CAAC;AACnF,OAAO,yBAAyB,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,iCAAiC,EACjC,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,UAAU,EAEV,SAAS,EACT,oBAAoB,EACpB,YAAY,GACb,CAAC","sourcesContent":["import React from 'react';\nimport { makeExtension } from '@riboseinc/paneron-extension-kit';\nimport type { Extension } from '@riboseinc/paneron-extension-kit/types';\nimport ErrorBoundary from '@riboseinc/paneron-extension-kit/widgets/ErrorBoundary';\nimport type { ExtensionMakerProps } from '@riboseinc/paneron-extension-kit/types/extension-maker';\nimport type { RegistryViewProps } from './types';\nimport type { ItemClassConfiguration } from './types/views';\nimport datasetInitializer from './migrations/initial';\nimport { RegistryView } from './views';\n\nexport type RegistryExtensionMakerProps =\n Pick<ExtensionMakerProps, 'name'> & RegistryViewProps\n\nexport type RegistryExtensionMaker =\n (opts: RegistryExtensionMakerProps) => Promise<Extension>;\n\nexport const makeRegistryExtension: RegistryExtensionMaker = function (opts) {\n const { name } = opts;\n\n for (const cls of Object.values(opts.itemClassConfiguration)) {\n for (const [viewID, view] of Object.entries(cls.views)) {\n const View = view as any;\n if (View) {\n cls.views[viewID as keyof ItemClassConfiguration<any>[\"views\"]] = function WrappedRegisterItemView(props) {\n return (\n <ErrorBoundary\n viewName={`Detail view for ${cls.meta.title}`}\n inline={viewID === 'listItemView'}>\n <View {...props} />\n </ErrorBoundary>\n );\n };\n }\n }\n }\n\n const mainView: ExtensionMakerProps[\"mainView\"] = function _RegistryView () {\n return (\n <RegistryView\n itemClassConfiguration={opts.itemClassConfiguration}\n itemClassGroups={opts.itemClassGroups}\n subregisters={opts.subregisters}\n CustomWorkspace={opts.CustomWorkspace}\n defaultSearchCriteria={opts.defaultSearchCriteria}\n keyExpression={opts.keyExpression}\n getQuickSearchPredicate={opts.getQuickSearchPredicate}\n alterApprovedCR={opts.alterApprovedCR}\n />\n );\n };\n\n return makeExtension({\n mainView,\n name,\n requiredHostAppVersion: '2.0.0',\n datasetMigrations: {},\n datasetInitializer,\n });\n};\n\n\n// Re-exports\n\nimport { BrowserCtx } from './views/BrowserCtx';\nimport { itemPathInCR, itemPathToItemRef, itemRefToItemPath, incompleteItemRefToItemPathPrefix } from './views/itemPathUtils';\nimport GenericRelatedItemView from './views/GenericRelatedItemView';\nimport { PropertyDetailView } from './views/util';\nimport CRITERIA_CONFIGURATION from './views/FilterCriteria/CRITERIA_CONFIGURATION';\nimport useSingleRegisterItemData from './views/hooks/useSingleRegisterItemData';\nimport { isAddition } from './proposals/types';\nimport type { Payload } from './types/item';\nimport { Protocols } from './views/protocolRegistry';\nimport { ChangeRequestContext } from './proposals/ChangeRequestContext';\nimport RegisterHome from './views/detail/RegisterHome';\n\nexport {\n itemRefToItemPath,\n itemPathToItemRef,\n itemPathInCR,\n incompleteItemRefToItemPathPrefix,\n BrowserCtx,\n CRITERIA_CONFIGURATION,\n GenericRelatedItemView,\n PropertyDetailView,\n useSingleRegisterItemData,\n isAddition,\n Payload,\n Protocols,\n ChangeRequestContext,\n RegisterHome,\n};\n"]}
|
package/item-classes/Tree.js
CHANGED
|
@@ -13,11 +13,9 @@ var _context = require("@riboseinc/paneron-extension-kit/context");
|
|
|
13
13
|
|
|
14
14
|
var _context2 = require("@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context");
|
|
15
15
|
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
var _ChangeRequestContext = require("../views/change-request/ChangeRequestContext");
|
|
16
|
+
var _proposals = require("../proposals");
|
|
19
17
|
|
|
20
|
-
var
|
|
18
|
+
var _StatefulTree = _interopRequireDefault(require("../views/StatefulTree"));
|
|
21
19
|
|
|
22
20
|
var _BrowserCtx = require("../views/BrowserCtx");
|
|
23
21
|
|
|
@@ -44,7 +42,7 @@ const ItemClassTree = function () {
|
|
|
44
42
|
const {
|
|
45
43
|
changeRequest: activeCR,
|
|
46
44
|
canEdit: activeCRIsEditable
|
|
47
|
-
} = (0, _react.useContext)(
|
|
45
|
+
} = (0, _react.useContext)(_proposals.ChangeRequestContext);
|
|
48
46
|
const {
|
|
49
47
|
subregisters,
|
|
50
48
|
itemClasses,
|
|
@@ -83,7 +81,7 @@ const ItemClassTree = function () {
|
|
|
83
81
|
const itemPath = (0, _itemPathUtils.itemRefToItemPath)(ref);
|
|
84
82
|
await updateObjects({
|
|
85
83
|
commitMessage: `propose to add new ${ref.classID}`,
|
|
86
|
-
objectChangeset: (0,
|
|
84
|
+
objectChangeset: (0, _proposals.updateCRObjectChangeset)(activeCR, {
|
|
87
85
|
[itemPath]: {
|
|
88
86
|
type: 'addition'
|
|
89
87
|
}
|
|
@@ -92,8 +90,8 @@ const ItemClassTree = function () {
|
|
|
92
90
|
}),
|
|
93
91
|
_dangerouslySkipValidation: true
|
|
94
92
|
});
|
|
95
|
-
spawnTab(
|
|
96
|
-
}, [activeCR, activeCRIsEditable, subregisters === undefined,
|
|
93
|
+
spawnTab(_protocolRegistry.Protocols.PROPOSAL_WORK);
|
|
94
|
+
}, [activeCR, activeCRIsEditable, subregisters === undefined, updateObjects, makeRandomID]);
|
|
97
95
|
const handleAdd = (0, _react.useMemo)(() => !subregisters && activeCRIsEditable && performOperation ? clsID => performOperation('generating new item', createItem)(clsID) : undefined, [createItem, subregisters === undefined, activeCRIsEditable, performOperation]);
|
|
98
96
|
const getNodes = (0, _react.useCallback)(state => {
|
|
99
97
|
var _a;
|
package/item-classes/Tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../src/item-classes/Tree.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAc,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAE1G,OAAO,
|
|
1
|
+
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../src/item-classes/Tree.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useContext, useMemo, useCallback } from 'react';\nimport { jsx } from '@emotion/react';\n\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport { TabbedWorkspaceContext } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';\n\nimport { ChangeRequestContext, updateCRObjectChangeset } from '../proposals';\nimport GenericStatefulTree, { type State as TreeState } from '../views/StatefulTree';\nimport { BrowserCtx } from '../views/BrowserCtx';\nimport { itemRefToItemPath } from '../views/itemPathUtils';\nimport { Protocols } from '../views/protocolRegistry';\nimport type { RegisterItem, InternalItemReference } from '../types';\n\nimport { getMaybeGroupedItemClassesAsTreeNodes } from './treeNodes';\n\n\nconst ItemClassTree: React.VoidFunctionComponent<Record<never, never>> = function () {\n\n const { performOperation, updateObjects, makeRandomID } = useContext(DatasetContext);\n const { spawnTab } = useContext(TabbedWorkspaceContext);\n const { changeRequest: activeCR, canEdit: activeCRIsEditable } = useContext(ChangeRequestContext);\n const { subregisters, itemClasses, itemClassGroups } = useContext(BrowserCtx);\n\n const createItem = useCallback(async function _createItem(classID: string, subregisterID?: string) {\n if (!updateObjects || !makeRandomID || !activeCRIsEditable || !activeCR) {\n throw new Error(\"Unable to create item: likely current proposal is not editable or dataset is read-only\");\n }\n if (subregisters && !subregisterID) {\n throw new Error(\"Unable to create item: register uses subregisters, but subregister ID was not provided\");\n }\n const clsConfig = itemClasses[classID];\n if (!clsConfig) {\n throw new Error(\"Unable to generate new item data: item class configuration is missing\");\n }\n const initialItemData = clsConfig?.defaults ?? {};\n const itemID = await makeRandomID();\n const ref: InternalItemReference = { classID, itemID, subregisterID };\n const registerItem: RegisterItem<any> = {\n id: itemID,\n dateAccepted: new Date(),\n status: 'valid',\n data: initialItemData,\n };\n const itemPath = itemRefToItemPath(ref);\n await updateObjects({\n commitMessage: `propose to add new ${ref.classID}`,\n objectChangeset: updateCRObjectChangeset(\n activeCR as any,\n { [itemPath]: { type: 'addition' } },\n { [itemPath]: registerItem },\n ),\n _dangerouslySkipValidation: true,\n });\n spawnTab(Protocols.PROPOSAL_WORK);\n }, [activeCR, activeCRIsEditable, subregisters === undefined, updateObjects, makeRandomID]);\n\n const handleAdd: undefined | ((clsID: string) => Promise<void>) = useMemo((() =>\n !subregisters && activeCRIsEditable && performOperation\n ? (clsID) => performOperation('generating new item', createItem)(clsID)\n : undefined\n ), [createItem, subregisters === undefined, activeCRIsEditable, performOperation]);\n\n const getNodes = useCallback(\n ((state: TreeState) =>\n getMaybeGroupedItemClassesAsTreeNodes(itemClasses, itemClassGroups, {\n selectedItemID: state.selectedItemID ?? undefined,\n expandedGroupLabels: new Set(state.expandedItemIDs),\n onProposeItem: handleAdd,\n })),\n [itemClasses, itemClassGroups, handleAdd],\n );\n\n return <GenericStatefulTree\n getNodes={getNodes}\n stateKey=\"item-browser\"\n onItemDoubleClick={(node) => spawnTab(`${Protocols.ITEM_CLASS}:${node.id}`)}\n />;\n};\n\n\nexport default ItemClassTree;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riboseinc/paneron-registry-kit",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.34",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"author": "Ribose Inc. <open.source@ribose.com>",
|
|
6
6
|
"scripts": {
|
|
@@ -28,11 +28,12 @@
|
|
|
28
28
|
"@blueprintjs/select": "~4.9.10",
|
|
29
29
|
"@emotion/react": "^11.10.6",
|
|
30
30
|
"@emotion/styled": "^11.10.6",
|
|
31
|
-
"@riboseinc/paneron-extension-kit": "2.2.
|
|
31
|
+
"@riboseinc/paneron-extension-kit": "2.2.22",
|
|
32
32
|
"@types/react": "17.0.53",
|
|
33
33
|
"@types/react-dom": "^17.0.2",
|
|
34
34
|
"@types/react-helmet": "^6.1.2",
|
|
35
|
-
"date-fns": "^2.
|
|
35
|
+
"date-fns": "^2.30.0",
|
|
36
|
+
"date-fns-tz": "^2.0.0",
|
|
36
37
|
"immutability-helper": "^3.1.1",
|
|
37
38
|
"jsondiffpatch": "^0.4.1",
|
|
38
39
|
"react": "^17.0.2",
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/** @jsx jsx */
|
|
2
2
|
/** @jsxFrag React.Fragment */
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import {
|
|
5
|
-
import type {
|
|
4
|
+
import type { RegisterItem, Payload, InternalItemReference } from '../types';
|
|
5
|
+
import type { ChangeProposal } from './types';
|
|
6
|
+
import { type SomeCR as CR } from './types';
|
|
6
7
|
export interface ChangeRequestContextSpec {
|
|
7
8
|
/**
|
|
8
9
|
* Change request object, undefined if not available/loading,
|
|
@@ -11,18 +11,18 @@ var _react2 = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _context = require("@riboseinc/paneron-extension-kit/context");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _types = require("../types");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _BrowserCtx = require("../views/BrowserCtx");
|
|
17
17
|
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
var _itemPathUtils = require("../itemPathUtils");
|
|
18
|
+
var _itemPathUtils = require("../views/itemPathUtils");
|
|
21
19
|
|
|
22
20
|
var _TransitionOptions = require("./TransitionOptions");
|
|
23
21
|
|
|
24
22
|
var _objectChangeset = require("./objectChangeset");
|
|
25
23
|
|
|
24
|
+
var _types2 = require("./types");
|
|
25
|
+
|
|
26
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
27
|
|
|
28
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -58,14 +58,14 @@ const ChangeRequestContextProvider = function ({
|
|
|
58
58
|
subregisters,
|
|
59
59
|
stakeholder
|
|
60
60
|
} = (0, _react2.useContext)(_BrowserCtx.BrowserCtx);
|
|
61
|
-
const crPath = changeRequestID ?
|
|
61
|
+
const crPath = changeRequestID ? (0, _itemPathUtils.crIDToCRPath)(changeRequestID) : null;
|
|
62
62
|
const changeRequest = (_b = (_a = useObjectData({
|
|
63
63
|
objectPaths: crPath ? [crPath] : [],
|
|
64
64
|
nounLabel: 'proposal(s)'
|
|
65
65
|
}).value) === null || _a === void 0 ? void 0 : _a.data[crPath !== null && crPath !== void 0 ? crPath : '']) !== null && _b !== void 0 ? _b : crPath ? undefined : null;
|
|
66
|
-
const canEdit = changeRequest && stakeholder && (0,
|
|
66
|
+
const canEdit = changeRequest && stakeholder && (0, _types2.canBeEditedBy)(stakeholder, changeRequest) ? true : false;
|
|
67
67
|
const canTransition = changeRequest && stakeholder && (0, _TransitionOptions.canBeTransitionedBy)(stakeholder, changeRequest) ? true : false;
|
|
68
|
-
const canDelete = changeRequest && stakeholder && (0,
|
|
68
|
+
const canDelete = changeRequest && stakeholder && (0, _types2.canBeDeletedBy)(stakeholder, changeRequest) ? true : false;
|
|
69
69
|
const deleteCR = (0, _react2.useMemo)(() => !isBusy && canDelete && updateTree ? performOperation('deleting proposal', async function handleDelete() {
|
|
70
70
|
const subtreeRoot = (0, _itemPathUtils.crIDToCRPath)(changeRequest.id).replace('/main.yaml', '');
|
|
71
71
|
await updateTree({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangeRequestContext.js","sourceRoot":"","sources":["../../src/proposals/ChangeRequestContext.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport { jsx } from '@emotion/react';\nimport React, { useMemo, useContext } from 'react';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\n\nimport type { RegisterItem, Payload, InternalItemReference } from '../types';\nimport { isRegisterItem } from '../types';\nimport { BrowserCtx } from '../views/BrowserCtx';\nimport { itemRefToItemPath, crIDToCRPath } from '../views/itemPathUtils';\n\nimport { canBeTransitionedBy } from './TransitionOptions';\nimport { updateCRObjectChangeset } from './objectChangeset';\nimport type { ChangeProposal } from './types';\nimport { type SomeCR as CR, canBeDeletedBy, canBeEditedBy } from './types';\n\n\nexport interface ChangeRequestContextSpec {\n /**\n * Change request object, undefined if not available/loading,\n * null is out of ordinary (i.e. changeRequestID is not given).\n */\n changeRequest?: CR | null\n\n /**\n * Contents of current CR can be edited by current stakeholder.\n * Always false if `changeRequest` is not defined or `null`.\n */\n canEdit: boolean\n\n /**\n * Current CR can be transitioned by current stsakeholder.\n * Always false if `changeRequest` is not defined or `null`.\n */\n canTransition: boolean\n\n /**\n * Current CR can be deleted by current stakeholder.\n * Always false if `changeRequest` is not defined or `null`.\n */\n canDelete: boolean\n\n /**\n * Propose new blank item of given item class.\n * Will always be undefined if `canEdit` is not `true`.\n */\n proposeBlankItem?: (clsID: string) => Promise<InternalItemReference>\n\n updateItemProposal?: (\n summary: string,\n proposal: ChangeProposal | null,\n itemPath: string,\n item?: RegisterItem<any>,\n itemData?: Payload,\n ) => Promise<void>\n\n /**\n * Function that performs CR deletion.\n * May not be present if operation is not possible right now,\n * but otherwise is present if `canDelete` is true.\n */\n deleteCR?: () => Promise<void>\n\n}\n\nexport const ChangeRequestContext = React.createContext<ChangeRequestContextSpec>({\n changeRequest: null,\n canEdit: false,\n canTransition: false,\n canDelete: false,\n});\n\nexport const ChangeRequestContextProvider: React.FC<{\n changeRequestID: string | null\n}> = function ({ changeRequestID, children }) {\n const { useObjectData, makeRandomID, updateObjects, updateTree, performOperation, isBusy } = useContext(DatasetContext);\n const { itemClasses, subregisters, stakeholder } = useContext(BrowserCtx);\n\n const crPath = changeRequestID ? crIDToCRPath(changeRequestID) : null;\n\n const changeRequest = useObjectData({\n objectPaths: crPath ? [crPath] : [],\n nounLabel: 'proposal(s)',\n }).value?.data[crPath ?? ''] as CR ?? (crPath ? undefined : null);\n\n const canEdit = changeRequest\n && stakeholder\n && canBeEditedBy(stakeholder, changeRequest)\n ? true\n : false;\n\n const canTransition = changeRequest\n && stakeholder\n && canBeTransitionedBy(stakeholder, changeRequest)\n ? true\n : false;\n\n const canDelete = changeRequest\n && stakeholder\n && canBeDeletedBy(stakeholder, changeRequest)\n ? true\n : false;\n\n const deleteCR = useMemo((() =>\n !isBusy && canDelete && updateTree\n ? performOperation('deleting proposal', async function handleDelete() {\n const subtreeRoot = crIDToCRPath(changeRequest.id).replace('/main.yaml', '');\n await updateTree({\n subtreeRoot,\n newSubtreeRoot: null,\n commitMessage: 'remove unproposed CR draft',\n });\n })\n : undefined\n ), [\n isBusy, performOperation,\n updateTree,\n canDelete,\n ]);\n\n const proposeBlankItem = useMemo((() => {\n if (!updateObjects || !makeRandomID || !canEdit || !changeRequest) {\n return undefined;\n } else {\n return performOperation('creating blank item', async function _createItem(classID: string, subregisterID?: string) {\n if (subregisters && !subregisterID) {\n throw new Error(\"Unable to create item: register uses subregisters, but subregister ID was not provided\");\n }\n const clsConfig = itemClasses[classID];\n if (!clsConfig) {\n throw new Error(\"Unable to generate new item data: item class configuration is missing\");\n }\n const initialItemData = clsConfig?.defaults ?? {};\n const itemID = await makeRandomID();\n const ref: InternalItemReference = { classID, itemID, subregisterID };\n const registerItem: RegisterItem<any> = {\n id: itemID,\n dateAccepted: new Date(),\n status: 'valid',\n data: initialItemData,\n };\n const itemPath = itemRefToItemPath(ref);\n await updateObjects({\n commitMessage: `propose to add new ${ref.classID}`,\n objectChangeset: updateCRObjectChangeset(\n changeRequest as any,\n { [itemPath]: { type: 'addition' } },\n { [itemPath]: registerItem },\n ),\n _dangerouslySkipValidation: true,\n });\n return ref;\n })\n }\n }), [changeRequest, canEdit, subregisters === undefined, updateObjects, makeRandomID]);\n\n const updateItemProposal = useMemo((() =>\n changeRequest && canEdit && updateObjects\n ? async function _handleSetProposal(\n summary: string,\n proposal: ChangeProposal | null,\n itemPath: string,\n item?: RegisterItem<any>,\n editedItemData?: Payload,\n ): Promise<void> {\n if (proposal && !item) {\n throw new Error(\"Missing item\");\n }\n if (proposal && proposal?.type !== 'amendment' && (!editedItemData || !isRegisterItem(editedItemData))) {\n throw new Error(\"Missing item data\");\n }\n await updateObjects({\n commitMessage: `${summary} for ${itemPath}`,\n objectChangeset: updateCRObjectChangeset(\n // TODO: We are sure it’s editable already, but casting should be avoided\n changeRequest as any,\n { [itemPath]: proposal },\n ((proposal && proposal?.type !== 'amendment') && editedItemData && item)\n ? { [itemPath]: { ...item, data: editedItemData } }\n : {},\n ),\n // We need this because updateCRObjectChangeset\n // omits oldValue for item data payloads.\n _dangerouslySkipValidation: true,\n });\n }\n : undefined\n ), [canEdit, changeRequest, updateObjects]);\n\n const ctx: ChangeRequestContextSpec = useMemo((() => ({\n changeRequest,\n canEdit,\n canTransition,\n canDelete,\n deleteCR,\n proposeBlankItem,\n updateItemProposal,\n })), [changeRequest, canEdit, deleteCR, canDelete, proposeBlankItem, updateItemProposal]);\n\n return (\n <ChangeRequestContext.Provider value={ctx}>\n {children}\n </ChangeRequestContext.Provider>\n );\n};\n"]}
|
|
@@ -15,17 +15,15 @@ var _context = require("@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace
|
|
|
15
15
|
|
|
16
16
|
var _SearchResultList = _interopRequireDefault(require("@riboseinc/paneron-extension-kit/widgets/SearchResultList"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _types = require("../proposals/types");
|
|
19
19
|
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
var _Proposals = require("./change-request/Proposals");
|
|
20
|
+
var _ProposalType = require("./ProposalType");
|
|
23
21
|
|
|
24
22
|
var _util = require("../views/util");
|
|
25
23
|
|
|
26
|
-
var
|
|
24
|
+
var _queries = require("./queries");
|
|
27
25
|
|
|
28
|
-
var _protocolRegistry = require("
|
|
26
|
+
var _protocolRegistry = require("../views/protocolRegistry");
|
|
29
27
|
|
|
30
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
29
|
|
|
@@ -51,8 +49,8 @@ const ProposalHistoryDrawer = function ({
|
|
|
51
49
|
// and have the item in question.
|
|
52
50
|
|
|
53
51
|
const query = `return (
|
|
54
|
-
(${
|
|
55
|
-
&& (obj.state === "${
|
|
52
|
+
(${_queries.DISPOSED_CR_QUERY})
|
|
53
|
+
&& (obj.state === "${_types.State.ACCEPTED}" || obj.state === "${_types.State.ACCEPTED_ON_APPEAL}")
|
|
56
54
|
&& obj.items["${itemPath}"] !== undefined
|
|
57
55
|
)`;
|
|
58
56
|
return (0, _react.jsx)(_core.Drawer, {
|
|
@@ -79,17 +77,17 @@ const ProposalHistoryItem = function ({
|
|
|
79
77
|
objectData,
|
|
80
78
|
extraData
|
|
81
79
|
}) {
|
|
82
|
-
const justification = (0,
|
|
80
|
+
const justification = (0, _types.hasSubmitterInput)(objectData) ? objectData.justification : 'N/A';
|
|
83
81
|
const change_ = (extraData === null || extraData === void 0 ? void 0 : extraData.itemPath) ? objectData.items[extraData === null || extraData === void 0 ? void 0 : extraData.itemPath] : undefined;
|
|
84
|
-
const change = (0,
|
|
82
|
+
const change = (0, _types.isProposal)(change_) ? change_ : null;
|
|
85
83
|
return (0, _react.jsx)("span", {
|
|
86
84
|
title: `Accepted proposal “${justification}” (proposal ID: ${objectData.id})`
|
|
87
|
-
}, change ? (0, _react.jsx)(
|
|
85
|
+
}, change ? (0, _react.jsx)(_ProposalType.ProposalType, {
|
|
88
86
|
proposal: change
|
|
89
|
-
}) : null, (0,
|
|
87
|
+
}) : null, (0, _types.isDisposed)(objectData) ? (0, _react.jsx)(_react2.default.Fragment, null, (0, _react.jsx)(_util.Datestamp, {
|
|
90
88
|
date: objectData.timeDisposed,
|
|
91
89
|
title: "Disposed"
|
|
92
|
-
}), ": ") : (0,
|
|
90
|
+
}), ": ") : (0, _types.hadBeenProposed)(objectData) ? (0, _react.jsx)(_react2.default.Fragment, null, (0, _react.jsx)(_util.Datestamp, {
|
|
93
91
|
date: objectData.timeProposed,
|
|
94
92
|
title: "Proposed"
|
|
95
93
|
}), ": ") : null, justification);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HistoryDrawer.js","sourceRoot":"","sources":["../../src/proposals/HistoryDrawer.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport { jsx } from '@emotion/react';\nimport React, { useCallback, useContext, useMemo, useState } from 'react';\nimport { Drawer } from '@blueprintjs/core';\nimport { TabbedWorkspaceContext } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';\nimport makeSearchResultList from '@riboseinc/paneron-extension-kit/widgets/SearchResultList';\nimport type { InternalItemReference } from '../types';\nimport { type SomeCR, State, hasSubmitterInput, isDisposed, hadBeenProposed } from '../proposals/types';\nimport { isProposal } from '../proposals/types';\nimport { ProposalType } from './ProposalType';\nimport { Datestamp } from '../views/util';\nimport { DISPOSED_CR_QUERY } from './queries';\nimport { Protocols } from '../views/protocolRegistry';\n\n\n/** History of changes affecting given item. */\nconst ProposalHistoryDrawer: React.FC<{\n itemPath: string\n isOpen: boolean\n onClose: () => void\n onChooseItem?: (itemRef: InternalItemReference) => void\n}> = function ({\n itemPath,\n isOpen, onClose,\n}) {\n const { spawnTab } = useContext(TabbedWorkspaceContext);\n const [ selectedItemPath, setSelectedItemPath ] = useState<string | null>(null);\n // Return disposed CRs\n // that were either accepted or accepted on appeal\n // and have the item in question.\n const query = `return (\n (${DISPOSED_CR_QUERY})\n && (obj.state === \"${State.ACCEPTED}\" || obj.state === \"${State.ACCEPTED_ON_APPEAL}\")\n && obj.items[\"${itemPath}\"] !== undefined\n )`;\n return (\n <Drawer\n isOpen={isOpen}\n onClose={onClose}\n enforceFocus={false}\n size=\"50vw\"\n style={{ padding: '0', width: 'unset' }}>\n <ProposalList\n\tqueryExpression={query}\n\tselectedItemPath={selectedItemPath}\n\tonSelectItem={setSelectedItemPath}\n\tonOpenItem={useCallback((itemPath =>\n\t spawnTab(`${Protocols.CHANGE_REQUEST}:${itemPath}`)\n\t), [spawnTab])}\n\textraItemViewData={useMemo(() => ({ itemPath }), [itemPath])}\n />\n </Drawer>\n );\n};\n\n\nconst ProposalHistoryItem: React.FC<{\n objectData: SomeCR,\n extraData?: { itemPath: string },\n objectPath: string,\n}> = function ({ objectData, extraData }) {\n const justification = hasSubmitterInput(objectData) ? objectData.justification : 'N/A';\n const change_ = extraData?.itemPath ? objectData.items[extraData?.itemPath] : undefined;\n const change = isProposal(change_) ? change_ : null;\n return <span title={`Accepted proposal “${justification}” (proposal ID: ${objectData.id})`}>\n {change ? <ProposalType proposal={change} /> : null}\n {isDisposed(objectData)\n ? <><Datestamp date={objectData.timeDisposed} title=\"Disposed\" />: </>\n : hadBeenProposed(objectData)\n ? <><Datestamp date={objectData.timeProposed} title=\"Proposed\" />: </>\n : null}\n {justification}\n </span>;\n};\n\n\nconst ProposalList = makeSearchResultList<SomeCR, { itemPath: string }>(ProposalHistoryItem, (objPath) => ({\n name: 'Prp.',\n iconProps: {\n icon: 'lightbulb',\n title: objPath,\n htmlTitle: `icon for proposal at ${objPath}`,\n },\n}));\n\n\nexport default ProposalHistoryDrawer;\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.ProposalAsListItem = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _react2 = require("@emotion/react");
|
|
11
|
+
|
|
12
|
+
var _util = require("../views/util");
|
|
13
|
+
|
|
14
|
+
var _types = require("./types");
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
/** @jsx jsx */
|
|
19
|
+
|
|
20
|
+
/** @jsxFrag React.Fragment */
|
|
21
|
+
const ProposalAsListItem = function ({
|
|
22
|
+
proposal
|
|
23
|
+
}) {
|
|
24
|
+
const justification = (0, _types.hasSubmitterInput)(proposal) ? proposal.justification : 'N/A';
|
|
25
|
+
return (0, _react2.jsx)("span", {
|
|
26
|
+
title: `${justification} (proposal ID: ${proposal.id})`
|
|
27
|
+
}, (0, _types.isDisposed)(proposal) ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_util.Datestamp, {
|
|
28
|
+
useUTC: true,
|
|
29
|
+
date: proposal.timeDisposed,
|
|
30
|
+
title: "Disposed"
|
|
31
|
+
}), ": ") : (0, _types.hadBeenProposed)(proposal) ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_util.Datestamp, {
|
|
32
|
+
useUTC: true,
|
|
33
|
+
date: proposal.timeProposed,
|
|
34
|
+
title: "Proposed"
|
|
35
|
+
}), ": ") : null, justification);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.ProposalAsListItem = ProposalAsListItem;
|
|
39
|
+
var _default = ProposalAsListItem;
|
|
40
|
+
exports.default = _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../src/proposals/ListItem.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAe,MAAM,SAAS,CAAC;AAItF,MAAM,CAAC,MAAM,kBAAkB,GAAmC,UAAU,EAAE,QAAQ,EAAE;IACtF,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnF,OAAO,cAAM,KAAK,EAAE,GAAG,aAAa,kBAAkB,QAAQ,CAAC,EAAE,GAAG;QACjE,UAAU,CAAC,QAAQ,CAAC;YACnB,CAAC,CAAC;gBAAE,IAAC,SAAS,IAAC,MAAM,QAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAC,UAAU,GAAG;qBAAK;YAC3E,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC;gBACzB,CAAC,CAAC;oBAAE,IAAC,SAAS,IAAC,MAAM,QAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAC,UAAU,GAAG;yBAAK;gBAC3E,CAAC,CAAC,IAAI;QACT,aAAa,CACT,CAAC;AACV,CAAC,CAAC;AAGF,eAAe,kBAAkB,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React from 'react';\nimport { jsx } from '@emotion/react';\nimport { Datestamp } from '../views/util';\nimport { isDisposed, hadBeenProposed, hasSubmitterInput, type SomeCR } from './types';\n\n\n\nexport const ProposalAsListItem: React.FC<{ proposal: SomeCR }> = function ({ proposal }) {\n const justification = hasSubmitterInput(proposal) ? proposal.justification : 'N/A';\n\n return <span title={`${justification} (proposal ID: ${proposal.id})`}>\n {isDisposed(proposal)\n ? <><Datestamp useUTC date={proposal.timeDisposed} title=\"Disposed\" />: </>\n : hadBeenProposed(proposal)\n ? <><Datestamp useUTC date={proposal.timeProposed} title=\"Proposed\" />: </>\n : null}\n {justification}\n </span>;\n};\n\n\nexport default ProposalAsListItem;\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/** @jsx jsx */
|
|
2
2
|
/** @jsxFrag React.Fragment */
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import type { Register } from '
|
|
5
|
-
import {
|
|
6
|
-
import type
|
|
4
|
+
import type { Register } from '../types/register';
|
|
5
|
+
import type { RegisterStakeholder } from '../types/stakeholder';
|
|
6
|
+
import { type SomeCR } from './types';
|
|
7
|
+
/** Proposal meta properties, must be nested within a DL. */
|
|
7
8
|
declare const Summary: React.FC<{
|
|
8
9
|
cr: SomeCR;
|
|
9
10
|
currentStakeholder?: RegisterStakeholder;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _react2 = require("@emotion/react");
|
|
11
|
+
|
|
12
|
+
var _core = require("@blueprintjs/core");
|
|
13
|
+
|
|
14
|
+
var _HelpTooltip = _interopRequireDefault(require("@riboseinc/paneron-extension-kit/widgets/HelpTooltip"));
|
|
15
|
+
|
|
16
|
+
var _context = require("@riboseinc/paneron-extension-kit/context");
|
|
17
|
+
|
|
18
|
+
var _RegisterStakeholder = require("../views/RegisterStakeholder");
|
|
19
|
+
|
|
20
|
+
var _itemPathUtils = require("../views/itemPathUtils");
|
|
21
|
+
|
|
22
|
+
var _useLatestAcceptedProposal = _interopRequireDefault(require("../views/hooks/useLatestAcceptedProposal"));
|
|
23
|
+
|
|
24
|
+
var _ListItem = _interopRequireDefault(require("./ListItem"));
|
|
25
|
+
|
|
26
|
+
var _types = require("./types");
|
|
27
|
+
|
|
28
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
|
+
|
|
30
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
+
|
|
32
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
+
|
|
34
|
+
/** @jsx jsx */
|
|
35
|
+
|
|
36
|
+
/** @jsxFrag React.Fragment */
|
|
37
|
+
|
|
38
|
+
/** Proposal meta properties, must be nested within a DL. */
|
|
39
|
+
const Summary = function ({
|
|
40
|
+
cr,
|
|
41
|
+
currentStakeholder,
|
|
42
|
+
registerMetadata
|
|
43
|
+
}) {
|
|
44
|
+
var _a, _b, _c, _d, _e, _f;
|
|
45
|
+
|
|
46
|
+
const crStakeholder = ((_a = registerMetadata === null || registerMetadata === void 0 ? void 0 : registerMetadata.stakeholders) !== null && _a !== void 0 ? _a : []).find(s => s.gitServerUsername === cr.submittingStakeholderGitServerUsername);
|
|
47
|
+
const {
|
|
48
|
+
useObjectData
|
|
49
|
+
} = (0, _react.useContext)(_context.DatasetContext);
|
|
50
|
+
let latestAcceptedProposalID;
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
latestAcceptedProposalID = (_c = (_b = (0, _useLatestAcceptedProposal.default)()) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : null;
|
|
54
|
+
} catch (e) {
|
|
55
|
+
console.error("Failed to obtain latest accepted proposal");
|
|
56
|
+
latestAcceptedProposalID = undefined;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const crPath = (0, _itemPathUtils.crIDToCRPath)(cr.registerVersion);
|
|
60
|
+
const previousProposal = (_e = (_d = useObjectData({
|
|
61
|
+
objectPaths: crPath ? [crPath] : [],
|
|
62
|
+
nounLabel: 'proposal(s)'
|
|
63
|
+
}).value) === null || _d === void 0 ? void 0 : _d.data[crPath !== null && crPath !== void 0 ? crPath : '']) !== null && _e !== void 0 ? _e : crPath ? undefined : null;
|
|
64
|
+
const versionView = previousProposal && (0, _types.hasSubmitterInput)(previousProposal) ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_ListItem.default, {
|
|
65
|
+
proposal: previousProposal
|
|
66
|
+
}), latestAcceptedProposalID ? (0, _react2.jsx)(_react.default.Fragment, null, "\u2002", cr.registerVersion === latestAcceptedProposalID ? (0, _react2.jsx)(_core.Tag, {
|
|
67
|
+
css: (0, _react2.css)`display: inline;`,
|
|
68
|
+
intent: 'success',
|
|
69
|
+
minimal: true,
|
|
70
|
+
round: true
|
|
71
|
+
}, "current", " ", (0, _react2.jsx)(_HelpTooltip.default, {
|
|
72
|
+
intent: 'success',
|
|
73
|
+
content: (0, _react2.jsx)(_react.default.Fragment, null, "Published version of the register", " ", "had not changed since this proposal started.")
|
|
74
|
+
})) : (0, _react2.jsx)(_core.Tag, {
|
|
75
|
+
css: (0, _react2.css)`display: inline;`,
|
|
76
|
+
intent: 'warning',
|
|
77
|
+
minimal: true,
|
|
78
|
+
round: true
|
|
79
|
+
}, "not current", " ", (0, _react2.jsx)(_HelpTooltip.default, {
|
|
80
|
+
intent: 'warning',
|
|
81
|
+
icon: 'warning-sign',
|
|
82
|
+
content: (0, _react2.jsx)(_react.default.Fragment, null, "Register is currently at version ", (0, _react2.jsx)("strong", null, latestAcceptedProposalID), ",", " ", "which is different from version proposal author may have had in mind.", " ", "It is recommended that proposed changes are reviewed to avoid unintentionally", " ", "undoing a prior change.")
|
|
83
|
+
}))) : null) : (_f = cr.registerVersion) !== null && _f !== void 0 ? _f : 'N/A';
|
|
84
|
+
return (0, _react2.jsx)(_react.default.Fragment, null, crStakeholder ? (0, _react2.jsx)("div", null, (0, _react2.jsx)("dt", null, "Author:"), (0, _react2.jsx)("dd", null, (0, _react2.jsx)(_RegisterStakeholder.RegisterStakeholderListItem, {
|
|
85
|
+
stakeholder: crStakeholder,
|
|
86
|
+
showRole: true,
|
|
87
|
+
isCurrentUser: (currentStakeholder ? (0, _types.isCreatedBy)(currentStakeholder, cr) : false) || undefined
|
|
88
|
+
}))) : null, (0, _react2.jsx)("div", null, (0, _react2.jsx)("dt", null, "Register\u00A0version before\u00A0proposal:"), (0, _react2.jsx)("dd", null, versionView)), (0, _react2.jsx)("div", null, (0, _react2.jsx)("dt", null, "Proposal\u00A0ID:"), (0, _react2.jsx)("dd", null, (0, _react2.jsx)("code", {
|
|
89
|
+
css: (0, _react2.css)`white-space: nowrap;`
|
|
90
|
+
}, cr.id))));
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
var _default = Summary;
|
|
94
|
+
exports.default = _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetaProperties.js","sourceRoot":"","sources":["../../src/proposals/MetaProperties.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useContext } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport { Tag } from '@blueprintjs/core';\n\nimport HelpTooltip from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\n\nimport type { Register } from '../types/register';\nimport { RegisterStakeholderListItem } from '../views/RegisterStakeholder';\nimport type { RegisterStakeholder } from '../types/stakeholder';\nimport { crIDToCRPath } from '../views/itemPathUtils';\nimport useLatestAcceptedProposal from '../views/hooks/useLatestAcceptedProposal';\n\nimport ProposalAsListItem from './ListItem';\nimport { hasSubmitterInput, isCreatedBy, type SomeCR } from './types';\n\n\n/** Proposal meta properties, must be nested within a DL. */\nconst Summary: React.FC<{\n cr: SomeCR\n currentStakeholder?: RegisterStakeholder\n registerMetadata?: Register\n}> = function ({ cr, currentStakeholder, registerMetadata }) {\n const crStakeholder = (registerMetadata?.stakeholders ?? []).\n find(s => s.gitServerUsername === cr.submittingStakeholderGitServerUsername);\n\n const { useObjectData } = useContext(DatasetContext);\n\n let latestAcceptedProposalID: string | null | undefined;\n try {\n latestAcceptedProposalID = useLatestAcceptedProposal()?.id ?? null;\n } catch (e) {\n console.error(\"Failed to obtain latest accepted proposal\");\n latestAcceptedProposalID = undefined;\n }\n\n const crPath = crIDToCRPath(cr.registerVersion);\n const previousProposal = useObjectData({\n objectPaths: crPath ? [crPath] : [],\n nounLabel: 'proposal(s)',\n }).value?.data[crPath ?? ''] as unknown ?? (crPath ? undefined : null);\n const versionView = previousProposal && hasSubmitterInput(previousProposal)\n ? <>\n <ProposalAsListItem proposal={previousProposal as SomeCR} />\n {latestAcceptedProposalID\n ? <>\n  \n {cr.registerVersion === latestAcceptedProposalID\n ? <Tag css={css`display: inline;`} intent='success' minimal round>\n current\n {\" \"}\n <HelpTooltip intent='success' content={<>\n Published version of the register\n {\" \"}\n had not changed since this proposal started.\n </>} />\n </Tag>\n : <Tag css={css`display: inline;`} intent='warning' minimal round>\n not current\n {\" \"}\n <HelpTooltip intent='warning' icon='warning-sign' content={<>\n Register is currently at version <strong>{latestAcceptedProposalID}</strong>,\n {\" \"}\n which is different from version proposal author may have had in mind.\n {\" \"}\n It is recommended that proposed changes are reviewed to avoid unintentionally\n {\" \"}\n undoing a prior change.\n </>} />\n </Tag>}\n </>\n : null}\n </>\n : cr.registerVersion ?? 'N/A';\n\n return (\n <>\n {crStakeholder\n ? <div>\n <dt>Author:</dt>\n <dd>\n <RegisterStakeholderListItem\n stakeholder={crStakeholder}\n showRole\n isCurrentUser={(currentStakeholder\n ? isCreatedBy(currentStakeholder, cr)\n : false) || undefined}\n />\n </dd>\n </div>\n : null}\n\n <div>\n <dt>\n Register version before proposal:\n </dt>\n <dd>\n {versionView}\n </dd>\n </div>\n\n <div>\n <dt>Proposal ID:</dt>\n <dd><code css={css`white-space: nowrap;`}>{cr.id}</code></dd>\n </div>\n </>\n );\n};\n\nexport default Summary;\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
/** @jsxFrag React.Fragment */
|
|
3
|
+
import React from 'react';
|
|
4
|
+
declare const NewProposalMenu: React.FC<{
|
|
5
|
+
className?: string;
|
|
6
|
+
previousVersion: string | null;
|
|
7
|
+
onCreateBlank?: (idea: string) => Promise<void>;
|
|
8
|
+
onImport?: () => Promise<void>;
|
|
9
|
+
}>;
|
|
10
|
+
export default NewProposalMenu;
|