@riboseinc/paneron-registry-kit 2.2.32 → 2.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/index.d.ts +2 -2
  2. package/index.js +3 -3
  3. package/index.js.map +1 -1
  4. package/item-classes/Tree.js +4 -6
  5. package/item-classes/Tree.js.map +1 -1
  6. package/package.json +2 -2
  7. package/{views/change-request → proposals}/ChangeRequestContext.d.ts +3 -2
  8. package/{views/change-request → proposals}/ChangeRequestContext.js +7 -7
  9. package/proposals/ChangeRequestContext.js.map +1 -0
  10. package/{views/ProposalHistoryDrawer.js → proposals/HistoryDrawer.js} +11 -13
  11. package/proposals/HistoryDrawer.js.map +1 -0
  12. package/{views/change-request/Summary.d.ts → proposals/MetaProperties.d.ts} +4 -3
  13. package/{views/change-request/Summary.js → proposals/MetaProperties.js} +9 -4
  14. package/proposals/MetaProperties.js.map +1 -0
  15. package/proposals/ProposalBrowser.d.ts +22 -0
  16. package/{views/change-request/Proposals.js → proposals/ProposalBrowser.js} +22 -204
  17. package/proposals/ProposalBrowser.js.map +1 -0
  18. package/proposals/ProposalDetail.d.ts +6 -0
  19. package/proposals/ProposalDetail.js +66 -0
  20. package/proposals/ProposalDetail.js.map +1 -0
  21. package/proposals/ProposalItem.d.ts +16 -0
  22. package/proposals/ProposalItem.js +57 -0
  23. package/proposals/ProposalItem.js.map +1 -0
  24. package/proposals/ProposalSummary.d.ts +6 -0
  25. package/proposals/ProposalSummary.js +62 -0
  26. package/proposals/ProposalSummary.js.map +1 -0
  27. package/proposals/ProposalType.d.ts +11 -0
  28. package/proposals/ProposalType.js +99 -0
  29. package/proposals/ProposalType.js.map +1 -0
  30. package/proposals/Search.d.ts +26 -0
  31. package/proposals/Search.js +108 -0
  32. package/proposals/Search.js.map +1 -0
  33. package/{views/change-request → proposals}/TransitionHistory.d.ts +3 -2
  34. package/{views/change-request → proposals}/TransitionHistory.js +18 -14
  35. package/proposals/TransitionHistory.js.map +1 -0
  36. package/{views/change-request → proposals}/TransitionOptions.d.ts +3 -3
  37. package/{views/change-request → proposals}/TransitionOptions.js +34 -12
  38. package/proposals/TransitionOptions.js.map +1 -0
  39. package/proposals/actionableGroups/Tree.js +22 -4
  40. package/proposals/actionableGroups/Tree.js.map +1 -1
  41. package/proposals/actionableGroups/queries.d.ts +0 -1
  42. package/proposals/actionableGroups/queries.js +7 -10
  43. package/proposals/actionableGroups/queries.js.map +1 -1
  44. package/proposals/actionableGroups/treeNodes.d.ts +1 -1
  45. package/proposals/actionableGroups/treeNodes.js +1 -1
  46. package/proposals/actionableGroups/treeNodes.js.map +1 -1
  47. package/proposals/index.d.ts +6 -0
  48. package/proposals/index.js +83 -0
  49. package/proposals/index.js.map +1 -0
  50. package/{views/change-request → proposals}/objectChangeset.d.ts +4 -3
  51. package/{views/change-request → proposals}/objectChangeset.js +5 -5
  52. package/proposals/objectChangeset.js.map +1 -0
  53. package/proposals/queries.d.ts +4 -0
  54. package/proposals/queries.js +14 -0
  55. package/proposals/queries.js.map +1 -0
  56. package/{types/cr.d.ts → proposals/types.d.ts} +78 -4
  57. package/{types/cr.js → proposals/types.js} +68 -2
  58. package/proposals/types.js.map +1 -0
  59. package/types/index.d.ts +0 -1
  60. package/types/index.js +0 -13
  61. package/types/index.js.map +1 -1
  62. package/types/views.d.ts +1 -1
  63. package/types/views.js.map +1 -1
  64. package/views/FilterCriteria/models.d.ts +2 -0
  65. package/views/FilterCriteria/models.js +12 -2
  66. package/views/FilterCriteria/models.js.map +1 -1
  67. package/views/GenericRelatedItemView.js +4 -4
  68. package/views/GenericRelatedItemView.js.map +1 -1
  69. package/views/RegisterStakeholder.d.ts +4 -1
  70. package/views/RegisterStakeholder.js +19 -13
  71. package/views/RegisterStakeholder.js.map +1 -1
  72. package/views/detail/ChangeRequest/index.js +10 -10
  73. package/views/detail/ChangeRequest/index.js.map +1 -1
  74. package/views/detail/ProposalWork.d.ts +8 -0
  75. package/views/detail/ProposalWork.js +173 -0
  76. package/views/detail/ProposalWork.js.map +1 -0
  77. package/views/detail/RegisterHome/ActiveProposalDetails.d.ts +1 -1
  78. package/views/detail/RegisterHome/ActiveProposalDetails.js +4 -4
  79. package/views/detail/RegisterHome/ActiveProposalDetails.js.map +1 -1
  80. package/views/detail/RegisterHome/Proposal.d.ts +1 -1
  81. package/views/detail/RegisterHome/Proposal.js +2 -6
  82. package/views/detail/RegisterHome/Proposal.js.map +1 -1
  83. package/views/detail/RegisterHome/index.js +10 -14
  84. package/views/detail/RegisterHome/index.js.map +1 -1
  85. package/views/detail/RegisterItem/index.d.ts +1 -1
  86. package/views/detail/RegisterItem/index.js +7 -7
  87. package/views/detail/RegisterItem/index.js.map +1 -1
  88. package/views/detail/RegisterItemClass.js +1 -1
  89. package/views/detail/RegisterItemClass.js.map +1 -1
  90. package/views/hooks/useRegisterVersion.d.ts +1 -0
  91. package/views/hooks/useRegisterVersion.js +43 -0
  92. package/views/hooks/useRegisterVersion.js.map +1 -0
  93. package/views/hooks/useSingleRegisterItemData.js.map +1 -1
  94. package/views/index.js +18 -12
  95. package/views/index.js.map +1 -1
  96. package/views/itemQueryUtils.d.ts +1 -1
  97. package/views/itemQueryUtils.js.map +1 -1
  98. package/views/protocolRegistry.d.ts +1 -0
  99. package/views/protocolRegistry.js +4 -0
  100. package/views/protocolRegistry.js.map +1 -1
  101. package/views/sidebar/Browse/index.js +2 -2
  102. package/views/sidebar/Browse/index.js.map +1 -1
  103. package/views/sidebar/Registration/index.d.ts +0 -1
  104. package/views/sidebar/Registration/index.js +9 -10
  105. package/views/sidebar/Registration/index.js.map +1 -1
  106. package/views/sidebar/Search/index.d.ts +3 -0
  107. package/views/sidebar/Search/index.js +8 -4
  108. package/views/sidebar/Search/index.js.map +1 -1
  109. package/views/util.js +1 -0
  110. package/views/util.js.map +1 -1
  111. package/types/cr.js.map +0 -1
  112. package/types/proposal.d.ts +0 -90
  113. package/types/proposal.js +0 -71
  114. package/types/proposal.js.map +0 -1
  115. package/views/ProposalHistoryDrawer.js.map +0 -1
  116. package/views/change-request/ChangeRequestContext.js.map +0 -1
  117. package/views/change-request/Proposals.d.ts +0 -40
  118. package/views/change-request/Proposals.js.map +0 -1
  119. package/views/change-request/Summary.js.map +0 -1
  120. package/views/change-request/TransitionHistory.js.map +0 -1
  121. package/views/change-request/TransitionOptions.js.map +0 -1
  122. package/views/change-request/objectChangeset.js.map +0 -1
  123. package/views/change-request/util.d.ts +0 -4
  124. package/views/change-request/util.js +0 -14
  125. package/views/change-request/util.js.map +0 -1
  126. /package/{views/ProposalHistoryDrawer.d.ts → proposals/HistoryDrawer.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/views/detail/ChangeRequest/index.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useState, useContext, useMemo, memo, useCallback } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport {\n Button,\n Card,\n NonIdealState,\n Spinner,\n UL,\n} from '@blueprintjs/core';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport { TabbedWorkspaceContext } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';\nimport { toJSONNormalized } from '@riboseinc/paneron-extension-kit/util';\nimport DL from '@riboseinc/paneron-extension-kit/widgets/DL';\nimport { BrowserCtx } from '../../BrowserCtx';\nimport { crPathToCRID } from '../../itemPathUtils';\nimport {\n ChangeRequestContextProvider,\n ChangeRequestContext,\n} from '../../change-request/ChangeRequestContext';\nimport Proposals from '../../change-request/Proposals';\nimport TransitionOptions, { isFinalState, getTransitions } from '../../change-request/TransitionOptions';\nimport TransitionsAndStatus, { getTransitionHistory } from '../../change-request/TransitionHistory';\nimport Summary from '../../change-request/Summary';\nimport { type SomeCR, hadBeenProposed, isDisposed } from '../../../types/cr';\nimport { Protocols } from '../../protocolRegistry';\nimport {\n TabContentsWithHeader,\n type TabContentsWithHeaderProps,\n RegisterHelmet as Helmet,\n maybeEllipsizeString,\n Datestamp,\n} from '../../util';\n\n\nconst View: React.VoidFunctionComponent<{ uri: string }> =\nmemo(function ({ uri }) {\n const crID = crPathToCRID(uri);\n return (\n <ChangeRequestContextProvider changeRequestID={crID}>\n <MaybeChangeRequest uri={uri} />\n </ChangeRequestContextProvider>\n );\n});\n\n\nconst MaybeChangeRequest: React.VoidFunctionComponent<{ uri: string }> =\nmemo(function ({ uri }) {\n const { closeTabWithURI } = useContext(TabbedWorkspaceContext);\n const {\n changeRequest: cr,\n canTransition,\n deleteCR,\n updateItemProposal,\n } = useContext(ChangeRequestContext);\n\n const handleDelete = useCallback(\n (async () => {\n if (deleteCR) {\n await deleteCR();\n closeTabWithURI(`${Protocols.CHANGE_REQUEST}:${uri}`);\n }\n }),\n [deleteCR, closeTabWithURI]);\n\n const handleDeleteProposalAtItemPath = useCallback(\n async function handleDeleteProposalAtItemPath(itemPath: string) {\n return await updateItemProposal?.(\"remove proposed change from proposal draft\", null, itemPath);\n },\n [updateItemProposal],\n );\n\n return (cr\n ? <ChangeRequestDetails\n cr={cr}\n canTransition={canTransition}\n onDelete={deleteCR\n ? handleDelete\n : undefined}\n onDeleteProposalForItemAtPath={updateItemProposal\n ? handleDeleteProposalAtItemPath\n : undefined}\n css={css`\n position: absolute;\n inset: 0;\n overflow-y: auto;\n `}\n />\n : <NonIdealState\n icon={<Spinner />}\n css={css`\n position: absolute;\n inset: 0;\n overflow-y: auto;\n `}\n description={\"Unable to load proposal\"}\n />\n );\n});\n\n\nconst ChangeRequestDetails: React.VoidFunctionComponent<{\n cr: SomeCR,\n canTransition: boolean,\n onDelete?: () => void,\n onDeleteProposalForItemAtPath?: (itemPath: string) => void,\n className?: string,\n}> = memo(function ({ cr, canTransition, onDelete, onDeleteProposalForItemAtPath, className }) {\n const {\n activeChangeRequestID,\n setActiveChangeRequestID,\n stakeholder,\n registerMetadata,\n } = useContext(BrowserCtx);\n\n const helmet = useMemo((() =>\n <Helmet>\n <title>Viewing proposal: {cr.justification ?? \"N/A\"}</title>\n </Helmet>\n ), [cr.justification]);\n\n const isActive = activeChangeRequestID === cr.id;\n const anotherIsActive = activeChangeRequestID && activeChangeRequestID !== cr.id;\n\n const crItemEntries = Object.entries(cr.items).map(i => JSON.stringify(i));\n const hasItems = crItemEntries.length > 0;\n\n const [selectedProposal, selectProposal] = useState<string | null>(null);\n const proposals = useMemo((() =>\n hasItems\n ? <Proposals\n proposals={cr.items}\n selectedItem={selectedProposal}\n onSelectItem={selectProposal}\n onDeleteProposalForItemAtPath={onDeleteProposalForItemAtPath}\n />\n : <NonIdealState\n icon=\"clean\"\n title=\"Nothing is proposed here yet.\"\n description={onDelete\n ? <Button onClick={onDelete}>\n Delete this CR draft\n </Button>\n : undefined}\n />\n ), [onDelete, onDeleteProposalForItemAtPath, selectedProposal, selectProposal, hasItems]);\n\n const classification = useMemo(() => {\n const classification: TabContentsWithHeaderProps[\"classification\"] = [];\n classification.push({\n icon: 'lightbulb',\n children: \"Proposal\",\n tooltip: {\n icon: 'info-sign',\n content: <UL css={css`margin: 0;`}><li>Proposal ID: {cr.id}</li></UL>,\n },\n });\n classification.push({\n children: cr.state?.replaceAll('-', ' ') || 'N/A',\n tooltip: {\n icon: 'history',\n content: <UL css={css`margin: 0;`}>\n <li>Edited: <Datestamp date={cr.timeEdited} /></li>\n <li>Proposed: {hadBeenProposed(cr) ? <Datestamp date={cr.timeProposed} /> : 'not yet'}</li>\n <li>Disposed: {isDisposed(cr) ? <Datestamp date={cr.timeDisposed} /> : 'not yet'}</li>\n </UL>,\n },\n intent: cr.state === 'accepted'\n ? 'success'\n : cr.state === 'returned-for-clarification'\n ? 'warning'\n : cr.state === 'withdrawn' || cr.state === 'rejected'\n ? 'danger'\n : cr.state === 'draft'\n ? undefined\n : 'primary',\n });\n return classification;\n }, [toJSONNormalized(cr)]);\n\n const actions = useMemo(() => {\n const actions: TabContentsWithHeaderProps[\"actions\"] = [];\n const handleChangeActiveStatus = !anotherIsActive && setActiveChangeRequestID\n ? ((active: boolean) => active\n ? setActiveChangeRequestID?.(cr.id)\n : setActiveChangeRequestID?.(null)\n )\n : undefined;\n //const htmlTitle = anotherIsActive\n // ? \"You are in another proposal so you can’t enter this one. \"\n // : canEdit && !isActive\n // ? \"Enter proposal to preview or add to proposed changes. \"\n // : !isActive\n // ? \"Enter proposal to preview the register as proposed.\"\n // : \"You’re previewing the register with this proposal applied.\"\n if (handleChangeActiveStatus && isActive) {\n actions.push({\n children: \"Exit proposal\",\n intent: 'warning',\n disabled: !handleChangeActiveStatus,\n onClick: () => handleChangeActiveStatus?.(false)\n //title: htmlTitle,\n });\n } else {\n actions.push({\n children: \"Work on this proposal\",\n intent: 'primary',\n disabled: !handleChangeActiveStatus,\n onClick: () => handleChangeActiveStatus?.(true)\n //title: htmlTitle,\n });\n }\n return actions;\n }, [isActive, anotherIsActive]);\n\n return (\n <TabContentsWithHeader\n className={className}\n title={maybeEllipsizeString(cr.justification, 70)}\n classification={classification}\n layout=\"card-grid\"\n layoutOptions={{ stretch: true }}\n actions={actions}>\n\n {helmet}\n\n {proposals}\n\n <Card elevation={1} css={css`flex: 100%; padding: 11px;`}>\n <DL>\n <Summary\n cr={cr}\n currentStakeholder={stakeholder}\n registerMetadata={registerMetadata ?? undefined}\n />\n </DL>\n </Card>\n\n <Card elevation={1} css={css`flex: calc(50% - 10px); flex-grow: 1; padding: 11px;`}>\n <TransitionsAndStatus\n pastTransitions={getTransitionHistory(cr)}\n isFinal={isFinalState(cr.state)}\n />\n </Card>\n\n {canTransition\n ? <Card elevation={3} css={css`flex: calc(50% - 10px); flex-grow: 1; padding: 11px;`}>\n <TransitionOptions\n transitions={stakeholder ? getTransitions(cr, stakeholder) : []}\n stakeholder={stakeholder}\n cr={cr}\n />\n </Card>\n : null}\n </TabContentsWithHeader>\n );\n});\n\n\nconst CRTitle: React.FC<{ uri: string }> = memo(function ({ uri }) {\n const { useObjectData } = useContext(DatasetContext);\n const justification = useObjectData({ objectPaths: [uri] }).value.data?.[uri]?.justification;\n return <>Proposal “{maybeEllipsizeString(justification ?? uri)}”</>;\n});\n\nexport default { main: View, title: CRTitle };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/views/detail/ChangeRequest/index.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useState, useContext, useMemo, memo, useCallback } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport {\n Button,\n Card,\n NonIdealState,\n Spinner,\n UL,\n} from '@blueprintjs/core';\nimport { DatasetContext } from '@riboseinc/paneron-extension-kit/context';\nimport { TabbedWorkspaceContext } from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/context';\nimport { toJSONNormalized } from '@riboseinc/paneron-extension-kit/util';\nimport DL from '@riboseinc/paneron-extension-kit/widgets/DL';\nimport { BrowserCtx } from '../../BrowserCtx';\nimport { crPathToCRID } from '../../itemPathUtils';\nimport {\n ChangeRequestContextProvider,\n ChangeRequestContext,\n} from '../../../proposals/ChangeRequestContext';\nimport Proposals from '../../../proposals/ProposalBrowser';\nimport TransitionOptions, { isFinalState, getTransitions } from '../../../proposals/TransitionOptions';\nimport TransitionsAndStatus, { getTransitionHistory } from '../../../proposals/TransitionHistory';\nimport Summary from '../../../proposals/MetaProperties';\nimport { type SomeCR, hadBeenProposed, isDisposed } from '../../../proposals/types';\nimport { Protocols } from '../../protocolRegistry';\nimport {\n TabContentsWithHeader,\n type TabContentsWithHeaderProps,\n RegisterHelmet as Helmet,\n maybeEllipsizeString,\n Datestamp,\n} from '../../util';\n\n\nconst View: React.VoidFunctionComponent<{ uri: string }> =\nmemo(function ({ uri }) {\n const crID = crPathToCRID(uri);\n return (\n <ChangeRequestContextProvider changeRequestID={crID}>\n <MaybeChangeRequest uri={uri} />\n </ChangeRequestContextProvider>\n );\n});\n\n\nconst MaybeChangeRequest: React.VoidFunctionComponent<{ uri: string }> =\nmemo(function ({ uri }) {\n const { closeTabWithURI } = useContext(TabbedWorkspaceContext);\n const {\n changeRequest: cr,\n canTransition,\n deleteCR,\n updateItemProposal,\n } = useContext(ChangeRequestContext);\n\n const handleDelete = useCallback(\n (async () => {\n if (deleteCR) {\n await deleteCR();\n closeTabWithURI(`${Protocols.CHANGE_REQUEST}:${uri}`);\n }\n }),\n [deleteCR, closeTabWithURI]);\n\n const handleDeleteProposalAtItemPath = useCallback(\n async function handleDeleteProposalAtItemPath(itemPath: string) {\n return await updateItemProposal?.(\"remove proposed change from proposal draft\", null, itemPath);\n },\n [updateItemProposal],\n );\n\n return (cr\n ? <ChangeRequestDetails\n cr={cr}\n canTransition={canTransition}\n onDelete={deleteCR\n ? handleDelete\n : undefined}\n onDeleteProposalForItemAtPath={updateItemProposal\n ? handleDeleteProposalAtItemPath\n : undefined}\n css={css`\n position: absolute;\n inset: 0;\n overflow-y: auto;\n `}\n />\n : <NonIdealState\n icon={<Spinner />}\n css={css`\n position: absolute;\n inset: 0;\n overflow-y: auto;\n `}\n description={\"Unable to load proposal\"}\n />\n );\n});\n\n\nconst ChangeRequestDetails: React.VoidFunctionComponent<{\n cr: SomeCR,\n canTransition: boolean,\n onDelete?: () => void,\n onDeleteProposalForItemAtPath?: (itemPath: string) => void,\n className?: string,\n}> = memo(function ({ cr, canTransition, onDelete, onDeleteProposalForItemAtPath, className }) {\n const {\n activeChangeRequestID,\n setActiveChangeRequestID,\n stakeholder,\n registerMetadata,\n } = useContext(BrowserCtx);\n\n const helmet = useMemo((() =>\n <Helmet>\n <title>Viewing proposal: {cr.justification ?? \"N/A\"}</title>\n </Helmet>\n ), [cr.justification]);\n\n const isActive = activeChangeRequestID === cr.id;\n const anotherIsActive = activeChangeRequestID && activeChangeRequestID !== cr.id;\n\n const crItemEntries = Object.entries(cr.items).map(i => JSON.stringify(i));\n const hasItems = crItemEntries.length > 0;\n\n const [selectedProposal, selectProposal] = useState<string | null>(null);\n const proposals = useMemo((() =>\n hasItems\n ? <Proposals\n proposals={cr.items}\n selectedItem={selectedProposal}\n onSelectItem={selectProposal}\n onDeleteProposalForItemAtPath={onDeleteProposalForItemAtPath}\n />\n : <NonIdealState\n icon=\"clean\"\n title=\"Nothing is proposed here yet.\"\n description={onDelete\n ? <Button onClick={onDelete}>\n Delete this CR draft\n </Button>\n : undefined}\n />\n ), [onDelete, onDeleteProposalForItemAtPath, selectedProposal, selectProposal, hasItems]);\n\n const classification = useMemo(() => {\n const classification: TabContentsWithHeaderProps[\"classification\"] = [];\n classification.push({\n icon: 'lightbulb',\n children: \"Proposal\",\n tooltip: {\n icon: 'info-sign',\n content: <UL css={css`margin: 0;`}><li>Proposal ID: {cr.id}</li></UL>,\n },\n });\n classification.push({\n children: cr.state?.replaceAll('-', ' ') || 'N/A',\n tooltip: {\n icon: 'history',\n content: <UL css={css`margin: 0;`}>\n <li>Edited: <Datestamp date={cr.timeEdited} /></li>\n <li>Proposed: {hadBeenProposed(cr) ? <Datestamp date={cr.timeProposed} /> : 'not yet'}</li>\n <li>Disposed: {isDisposed(cr) ? <Datestamp date={cr.timeDisposed} /> : 'not yet'}</li>\n </UL>,\n },\n intent: cr.state === 'accepted'\n ? 'success'\n : cr.state === 'returned-for-clarification'\n ? 'warning'\n : cr.state === 'withdrawn' || cr.state === 'rejected'\n ? 'danger'\n : cr.state === 'draft'\n ? undefined\n : 'primary',\n });\n return classification;\n }, [toJSONNormalized(cr)]);\n\n const actions = useMemo(() => {\n const actions: TabContentsWithHeaderProps[\"actions\"] = [];\n const handleChangeActiveStatus = !anotherIsActive && setActiveChangeRequestID\n ? ((active: boolean) => active\n ? setActiveChangeRequestID?.(cr.id)\n : setActiveChangeRequestID?.(null)\n )\n : undefined;\n //const htmlTitle = anotherIsActive\n // ? \"You are in another proposal so you can’t enter this one. \"\n // : canEdit && !isActive\n // ? \"Enter proposal to preview or add to proposed changes. \"\n // : !isActive\n // ? \"Enter proposal to preview the register as proposed.\"\n // : \"You’re previewing the register with this proposal applied.\"\n if (handleChangeActiveStatus && isActive) {\n actions.push({\n children: \"Exit proposal\",\n intent: 'warning',\n disabled: !handleChangeActiveStatus,\n onClick: () => handleChangeActiveStatus?.(false)\n //title: htmlTitle,\n });\n } else {\n actions.push({\n children: \"Work on this proposal\",\n intent: 'primary',\n disabled: !handleChangeActiveStatus,\n onClick: () => handleChangeActiveStatus?.(true)\n //title: htmlTitle,\n });\n }\n return actions;\n }, [isActive, anotherIsActive]);\n\n return (\n <TabContentsWithHeader\n className={className}\n title={maybeEllipsizeString(cr.justification, 70)}\n classification={classification}\n layout=\"card-grid\"\n layoutOptions={{ stretch: true }}\n actions={actions}>\n\n {helmet}\n\n {proposals}\n\n <Card elevation={1} css={css`flex: 100%; padding: 11px;`}>\n <DL>\n <Summary\n cr={cr}\n currentStakeholder={stakeholder}\n registerMetadata={registerMetadata ?? undefined}\n />\n </DL>\n </Card>\n\n <Card elevation={1} css={css`flex: calc(50% - 10px); flex-grow: 1; padding: 11px;`}>\n <TransitionsAndStatus\n pastTransitions={getTransitionHistory(cr)}\n isFinal={isFinalState(cr.state)}\n />\n </Card>\n\n {canTransition\n ? <Card elevation={3} css={css`flex: calc(50% - 10px); flex-grow: 1; padding: 11px;`}>\n <TransitionOptions\n transitions={stakeholder ? getTransitions(cr, stakeholder) : []}\n stakeholder={stakeholder}\n cr={cr}\n />\n </Card>\n : null}\n </TabContentsWithHeader>\n );\n});\n\n\nconst CRTitle: React.FC<{ uri: string }> = memo(function ({ uri }) {\n const { useObjectData } = useContext(DatasetContext);\n const justification = useObjectData({ objectPaths: [uri] }).value.data?.[uri]?.justification;\n return <>Proposal “{maybeEllipsizeString(justification ?? uri)}”</>;\n});\n\nexport default { main: View, title: CRTitle };\n"]}
@@ -0,0 +1,8 @@
1
+ /** @jsx jsx */
2
+ /** @jsxFrag React.Fragment */
3
+ import React from 'react';
4
+ declare const _default: {
5
+ readonly main: React.VoidFunctionComponent<Record<never, never>>;
6
+ readonly title: React.VoidFunctionComponent<Record<never, never>>;
7
+ };
8
+ export default _default;
@@ -0,0 +1,173 @@
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 _DL = _interopRequireDefault(require("@riboseinc/paneron-extension-kit/widgets/DL"));
15
+
16
+ var _Workspace = _interopRequireDefault(require("@riboseinc/paneron-extension-kit/widgets/Workspace"));
17
+
18
+ var _SuperSidebar = _interopRequireDefault(require("@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/SuperSidebar"));
19
+
20
+ var _BrowserCtx = require("../BrowserCtx");
21
+
22
+ var _models = require("../FilterCriteria/models");
23
+
24
+ var _stakeholder = require("../../types/stakeholder");
25
+
26
+ var _MetaProperties = _interopRequireDefault(require("../../proposals/MetaProperties"));
27
+
28
+ var _Search = _interopRequireDefault(require("../../proposals/Search"));
29
+
30
+ var _Search2 = _interopRequireDefault(require("../../views/sidebar/Search"));
31
+
32
+ var _util = require("../util");
33
+
34
+ var _ChangeRequestContext = require("../../proposals/ChangeRequestContext");
35
+
36
+ var _TransitionOptions = _interopRequireWildcard(require("../../proposals/TransitionOptions"));
37
+
38
+ var _TransitionHistory = _interopRequireWildcard(require("../../proposals/TransitionHistory"));
39
+
40
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
+
42
+ 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); }
43
+
44
+ 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; }
45
+
46
+ /** @jsx jsx */
47
+
48
+ /** @jsxFrag React.Fragment */
49
+ const ProposalWork = (0, _react.memo)(function () {
50
+ const {
51
+ changeRequest: activeCR
52
+ } = (0, _react.useContext)(_ChangeRequestContext.ChangeRequestContext);
53
+ const {
54
+ registerMetadata: register,
55
+ stakeholder
56
+ } = (0, _react.useContext)(_BrowserCtx.BrowserCtx);
57
+
58
+ if (!activeCR || !register || !stakeholder) {
59
+ return (0, _react2.jsx)(_core.NonIdealState, {
60
+ icon: "clean",
61
+ title: "Not working on any proposal",
62
+ description: (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("p", null, "Choose an actionable proposal from the sidebar to the left and activate it by double-clicking"), register && stakeholder && (0, _stakeholder.canCreateCR)(stakeholder) ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("p", null, "\u2014or\u2014"), (0, _react2.jsx)(_core.Button, {
63
+ large: true,
64
+ intent: "primary"
65
+ }, "Start a new proposal")) : null)
66
+ });
67
+ } else {
68
+ return (0, _react2.jsx)(ActiveProposal, {
69
+ proposal: activeCR,
70
+ register: register,
71
+ stakeholder: stakeholder
72
+ });
73
+ }
74
+ });
75
+
76
+ const ProposalWorkTitle = function () {
77
+ const {
78
+ changeRequest: activeCR
79
+ } = (0, _react.useContext)(_ChangeRequestContext.ChangeRequestContext);
80
+ return (0, _react2.jsx)(_react.default.Fragment, null, activeCR ? (0, _react2.jsx)("strong", null, " Active proposal") : (0, _react2.jsx)(_react.default.Fragment, null, "Proposal dashboard"));
81
+ };
82
+
83
+ var _default = {
84
+ main: ProposalWork,
85
+ title: ProposalWorkTitle
86
+ };
87
+ exports.default = _default;
88
+
89
+ const ActiveProposal = function ({
90
+ proposal,
91
+ register,
92
+ stakeholder
93
+ }) {
94
+ var _a;
95
+
96
+ return (0, _react2.jsx)(_util.TabContentsWithHeader, {
97
+ title: (0, _react2.jsx)(_react.default.Fragment, null, proposal.justification),
98
+ classification: [{
99
+ children: (0, _react2.jsx)(_react.default.Fragment, null, proposal.state)
100
+ }]
101
+ }, (0, _react2.jsx)(_Workspace.default, {
102
+ sidebarPosition: "right",
103
+ sidebar: (0, _react2.jsx)(_SuperSidebar.default, {
104
+ sidebarIDs: ['meta'],
105
+ css: (0, _react2.css)`width: 30% !important; min-width: 300px;`,
106
+ selectedSidebarID: 'meta',
107
+ config: {
108
+ meta: {
109
+ icon: () => (0, _react2.jsx)(_core.Icon, {
110
+ icon: "document"
111
+ }),
112
+ title: "Meta",
113
+ blocks: [{
114
+ key: 'summary',
115
+ title: "Summary",
116
+ content: (0, _react2.jsx)("div", {
117
+ css: (0, _react2.css)`padding: 0 5px;`
118
+ }, "\u201C", (_a = proposal.justification) === null || _a === void 0 ? void 0 : _a.trim(), "\u201D", (0, _react2.jsx)("br", null), (0, _react2.jsx)(_DL.default, null, (0, _react2.jsx)(_MetaProperties.default, {
119
+ cr: proposal,
120
+ currentStakeholder: stakeholder,
121
+ registerMetadata: register
122
+ })))
123
+ }, {
124
+ key: 'transitions',
125
+ title: "Transitions",
126
+ content: (0, _react2.jsx)(TransitionBlockContents, {
127
+ proposal: proposal,
128
+ stakeholder: stakeholder
129
+ })
130
+ }]
131
+ }
132
+ }
133
+ })
134
+ }, (0, _react2.jsx)(_util.RegisterHelmet, null, (0, _react2.jsx)("title", null, "Working on proposal ", proposal.justification)), (0, _react2.jsx)("div", {
135
+ css: (0, _react2.css)`padding: 10px; flex: 1; display: flex; flex-flow: column nowrap; overflow: hidden;`
136
+ }, (0, _react2.jsx)(_Search2.default, {
137
+ css: (0, _react2.css)`flex: 1;`,
138
+ //style={{ height: '100vh', width: '50vw', minWidth: '500px', maxWidth: '90vw' }}
139
+ implicitCriteria: _models.MATCHES_ANY_CRITERIA,
140
+ stateName: `proposal-${proposal.id}-search`,
141
+ List: _Search.default,
142
+ extraData: {
143
+ proposal
144
+ }
145
+ }))));
146
+ };
147
+
148
+ const TransitionBlockContents = function ({
149
+ proposal,
150
+ stakeholder
151
+ }) {
152
+ const transitions = (0, _react.useMemo)(() => stakeholder ? (0, _TransitionOptions.getTransitions)(proposal, stakeholder) : [], [proposal, stakeholder]);
153
+ const [showDetailedHistory, setShowDetailedHistory] = (0, _react.useState)(false);
154
+ const transitionsBlock = (0, _react.useMemo)(() => (0, _react2.jsx)("div", {
155
+ css: (0, _react2.css)`overflow-y: auto; max-height: 300px;`
156
+ }, (0, _react2.jsx)(_core.Checkbox // NOTE: left margin aligns with transition history bullets…
157
+ , {
158
+ // NOTE: left margin aligns with transition history bullets…
159
+ css: (0, _react2.css)`margin: 5px 15px;`,
160
+ checked: showDetailedHistory,
161
+ onChange: evt => setShowDetailedHistory(evt.currentTarget.checked)
162
+ }, "Show detailed history"), (0, _react2.jsx)(_TransitionHistory.default, {
163
+ pastTransitions: (0, _TransitionHistory.getTransitionHistory)(proposal),
164
+ isFinal: (0, _TransitionOptions.isFinalState)(proposal.state),
165
+ detailed: showDetailedHistory
166
+ }), !showDetailedHistory && transitions.length > 0 ? (0, _react2.jsx)(_TransitionOptions.default, {
167
+ stakeholder: stakeholder,
168
+ transitions: transitions,
169
+ cr: proposal,
170
+ css: (0, _react2.css)`padding: 12px;`
171
+ }) : null), [proposal, transitions, setShowDetailedHistory, showDetailedHistory]);
172
+ return transitionsBlock;
173
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProposalWork.js","sourceRoot":"","sources":["../../../src/views/detail/ProposalWork.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,MAAM,EACN,aAAa,EACb,IAAI,EACJ,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,6CAA6C,CAAC;AAC7D,OAAO,SAAS,MAAM,oDAAoD,CAAC;AAC3E,OAAO,YAAY,MAAM,uEAAuE,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,cAAc,MAAM,wBAAwB,CAAC;AACpD,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,iBAAiB,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,oBAAoB,EAAE,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG/F,MAAM,YAAY,GAClB,IAAI,CAAC;IACH,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACrE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE;QAC1C,OAAO,IAAC,aAAa,IACnB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,6BAA6B,EACnC,WAAW,EAAE;gBACX,+GAGI;gBACH,QAAQ,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC;oBAClD,CAAC,CAAC;wBACE,gCAAW;wBACX,IAAC,MAAM,IAAC,KAAK,QAAC,MAAM,EAAC,SAAS,2BAA8B,CAC3D;oBACL,CAAC,CAAC,IAAI,CACP,GACH,CAAC;KACJ;SAAM;QACL,OAAO,IAAC,cAAc,IACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,GACxB,CAAC;KACJ;AACH,CAAC,CAAC,CAAC;AAGH,MAAM,iBAAiB,GAAsD;IAC3E,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACrE,OAAO,0BAAG,QAAQ;QAChB,CAAC,CAAC,uCAAiC;QACnC,CAAC,CAAC,+CAAuB,CAAI,CAAC;AAClC,CAAC,CAAC;AAGF,eAAe;IACb,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,iBAAiB;CAChB,CAAC;AAGX,MAAM,cAAc,GAIf,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE;;IAChD,OAAO,CACL,IAAC,qBAAqB,IAClB,KAAK,EAAE,0BAAG,QAAQ,CAAC,aAAa,CAAI,EACpC,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,0BAAG,QAAQ,CAAC,KAAK,CAAI,EAAE,CAAC;QACvD,IAAC,SAAS,IAAC,eAAe,EAAC,OAAO,EAAC,OAAO,EACxC,IAAC,YAAY,IACX,UAAU,EAAE,CAAC,MAAM,CAAC,EACpB,GAAG,EAAE,GAAG,CAAA,0CAA0C,EAClD,iBAAiB,EAAC,MAAM,EACxB,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,IAAI,EAAE,GAAG,EAAE,CAAC,IAAC,IAAI,IAAC,IAAI,EAAC,UAAU,GAAG;wBACpC,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,CAAC;gCACP,GAAG,EAAE,SAAS;gCACd,KAAK,EAAE,SAAS;gCAChB,OAAO,EAAE,aAAK,GAAG,EAAE,GAAG,CAAA,iBAAiB;8CACnC,MAAA,QAAQ,CAAC,aAAa;uCAAE,IAAI,EAAE;;oCAChC,eAAM;oCACN,IAAC,EAAE;wCACD,IAAC,cAAc,IACb,EAAE,EAAE,QAAQ,EACZ,kBAAkB,EAAE,WAAW,EAC/B,gBAAgB,EAAE,QAAQ,GAC1B,CACC,CACD;6BACP,EAAE;gCACD,GAAG,EAAE,aAAa;gCAClB,KAAK,EAAE,aAAa;gCACpB,OAAO,EAAE,IAAC,uBAAuB,IAC/B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,GACxB;6BACH,CAAC;qBACH;iBACF,GACD;YAEF,IAAC,MAAM;gBAAC;;oBAA4B,QAAQ,CAAC,aAAa,CAAS,CAAS;YAC5E,aAAK,GAAG,EAAE,GAAG,CAAA,oFAAoF;gBAC/F,IAAC,MAAM,IACL,GAAG,EAAE,GAAG,CAAA,UAAU;oBAClB,iFAAiF;oBACjF,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAE,YAAY,QAAQ,CAAC,EAAE,SAAS,EAC3C,IAAI,EAAE,cAAqB,EAC3B,SAAS,EAAE,EAAE,QAAQ,EAAE,GAEvB,CACE,CACI,CACU,CACzB,CAAC;AACJ,CAAC,CAAC;AAGF,MAAM,uBAAuB,GAGxB,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE;IACtC,MAAM,WAAW,GAAG,OAAO,CACzB,CAAC,GAAG,EAAE,CAAC,WAAW;QAChB,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC;QACvC,CAAC,CAAC,EAAE,CAAC,EACP,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3B,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtE,MAAM,gBAAgB,GAAG,OAAO,CAC9B,CAAC,GAAG,EAAE,CACJ,aAAK,GAAG,EAAE,GAAG,CAAA,sCAAsC;QACjD,IAAC,QAAQ;QACL,4DAA4D;;YAA5D,4DAA4D;YAC5D,GAAG,EAAE,GAAG,CAAA,mBAAmB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,4BAE7D;QACX,IAAC,oBAAoB,IACnB,eAAe,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAC/C,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EACrC,QAAQ,EAAE,mBAAmB,GAC7B;QACD,CAAC,mBAAmB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAC7C,CAAC,CAAC,IAAC,iBAAiB,IAChB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,GAAG,CAAA,gBAAgB,GACxB;YACJ,CAAC,CAAC,IAAI,CACJ,CAAC,EACT,CAAC,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAExE,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAA","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useMemo, useState, useContext, memo } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport {\n Button,\n NonIdealState,\n Icon,\n Checkbox,\n} from '@blueprintjs/core';\nimport DL from '@riboseinc/paneron-extension-kit/widgets/DL';\nimport Workspace from '@riboseinc/paneron-extension-kit/widgets/Workspace';\nimport SuperSidebar from '@riboseinc/paneron-extension-kit/widgets/TabbedWorkspace/SuperSidebar';\nimport { BrowserCtx } from '../BrowserCtx';\nimport { MATCHES_ANY_CRITERIA } from '../FilterCriteria/models';\nimport type { Register, RegisterStakeholder } from '../../types';\nimport { canCreateCR } from '../../types/stakeholder';\nimport { type SomeCR as CR } from '../../proposals/types';\nimport MetaProperties from '../../proposals/MetaProperties';\nimport ProposalSearch from '../../proposals/Search';\nimport Search from '../../views/sidebar/Search';\nimport { RegisterHelmet as Helmet } from '../util';\nimport { ChangeRequestContext } from '../../proposals/ChangeRequestContext';\nimport { TabContentsWithHeader } from '../util';\nimport TransitionOptions, { getTransitions, isFinalState } from '../../proposals/TransitionOptions';\nimport TransitionsAndStatus, { getTransitionHistory } from '../../proposals/TransitionHistory';\n\n\nconst ProposalWork: React.VoidFunctionComponent<Record<never, never>> =\nmemo(function () {\n const { changeRequest: activeCR } = useContext(ChangeRequestContext);\n const { registerMetadata: register, stakeholder, } = useContext(BrowserCtx);\n if (!activeCR || !register || !stakeholder) {\n return <NonIdealState\n icon=\"clean\"\n title=\"Not working on any proposal\"\n description={<>\n <p>\n Choose an actionable proposal from the sidebar to the left\n and activate it by double-clicking\n </p>\n {register && stakeholder && canCreateCR(stakeholder)\n ? <>\n <p>—or—</p>\n <Button large intent=\"primary\">Start a new proposal</Button>\n </>\n : null}\n </>}\n />;\n } else {\n return <ActiveProposal\n proposal={activeCR}\n register={register}\n stakeholder={stakeholder}\n />;\n }\n});\n\n\nconst ProposalWorkTitle: React.VoidFunctionComponent<Record<never, never>> = function () {\n const { changeRequest: activeCR } = useContext(ChangeRequestContext);\n return <>{activeCR\n ? <strong> Active proposal</strong>\n : <>Proposal dashboard</>}</>;\n};\n\n\nexport default {\n main: ProposalWork,\n title: ProposalWorkTitle,\n} as const;\n\n\nconst ActiveProposal: React.VoidFunctionComponent<{\n proposal: CR\n register: Register\n stakeholder?: RegisterStakeholder\n}> = function ({ proposal, register, stakeholder }) {\n return (\n <TabContentsWithHeader\n title={<>{proposal.justification}</>}\n classification={[{ children: <>{proposal.state}</> }]}>\n <Workspace sidebarPosition=\"right\" sidebar={\n <SuperSidebar\n sidebarIDs={['meta']}\n css={css`width: 30% !important; min-width: 300px;`}\n selectedSidebarID='meta'\n config={{\n meta: {\n icon: () => <Icon icon=\"document\" />,\n title: \"Meta\",\n blocks: [{\n key: 'summary',\n title: \"Summary\",\n content: <div css={css`padding: 0 5px;`}>\n “{proposal.justification?.trim()}”\n <br />\n <DL>\n <MetaProperties\n cr={proposal}\n currentStakeholder={stakeholder}\n registerMetadata={register}\n />\n </DL>\n </div>,\n }, {\n key: 'transitions',\n title: \"Transitions\",\n content: <TransitionBlockContents\n proposal={proposal}\n stakeholder={stakeholder}\n />,\n }],\n },\n }}\n />\n }>\n <Helmet><title>Working on proposal {proposal.justification}</title></Helmet>\n <div css={css`padding: 10px; flex: 1; display: flex; flex-flow: column nowrap; overflow: hidden;`}>\n <Search\n css={css`flex: 1;`}\n //style={{ height: '100vh', width: '50vw', minWidth: '500px', maxWidth: '90vw' }}\n implicitCriteria={MATCHES_ANY_CRITERIA}\n stateName={`proposal-${proposal.id}-search`}\n List={ProposalSearch as any}\n extraData={{ proposal }}\n //onOpenItem={onChooseItem ? handleOpenItem : undefined}\n />\n </div>\n </Workspace>\n </TabContentsWithHeader>\n );\n};\n\n\nconst TransitionBlockContents: React.VoidFunctionComponent<{\n proposal: CR\n stakeholder?: RegisterStakeholder\n}> = function ({ proposal, stakeholder }) {\n const transitions = useMemo(\n (() => stakeholder\n ? getTransitions(proposal, stakeholder)\n : []),\n [proposal, stakeholder]);\n\n const [showDetailedHistory, setShowDetailedHistory] = useState(false);\n\n const transitionsBlock = useMemo(\n (() =>\n <div css={css`overflow-y: auto; max-height: 300px;`}>\n <Checkbox\n // NOTE: left margin aligns with transition history bullets…\n css={css`margin: 5px 15px;`}\n checked={showDetailedHistory}\n onChange={(evt) => setShowDetailedHistory(evt.currentTarget.checked)}>\n Show detailed history\n </Checkbox>\n <TransitionsAndStatus\n pastTransitions={getTransitionHistory(proposal)}\n isFinal={isFinalState(proposal.state)}\n detailed={showDetailedHistory}\n />\n {!showDetailedHistory && transitions.length > 0\n ? <TransitionOptions\n stakeholder={stakeholder}\n transitions={transitions}\n cr={proposal}\n css={css`padding: 12px;`}\n />\n : null}\n </div>),\n [proposal, transitions, setShowDetailedHistory, showDetailedHistory]);\n\n return transitionsBlock;\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  /** @jsxFrag React.Fragment */
3
3
  import React from 'react';
4
4
  import type { Register, RegisterStakeholder } from '../../../types';
5
- import { type SomeCR as CR } from '../../../types/cr';
5
+ import { type SomeCR as CR } from '../../../proposals/types';
6
6
  declare const CurrentProposalBlock: React.VoidFunctionComponent<{
7
7
  proposal: CR;
8
8
  register: Register;
@@ -11,11 +11,11 @@ var _react2 = require("@emotion/react");
11
11
 
12
12
  var _DL = _interopRequireDefault(require("@riboseinc/paneron-extension-kit/widgets/DL"));
13
13
 
14
- var _Summary = _interopRequireDefault(require("../../change-request/Summary"));
14
+ var _MetaProperties = _interopRequireDefault(require("../../../proposals/MetaProperties"));
15
15
 
16
- var _TransitionOptions = _interopRequireWildcard(require("../../change-request/TransitionOptions"));
16
+ var _TransitionOptions = _interopRequireWildcard(require("../../../proposals/TransitionOptions"));
17
17
 
18
- var _TransitionHistory = _interopRequireWildcard(require("../../change-request/TransitionHistory"));
18
+ var _TransitionHistory = _interopRequireWildcard(require("../../../proposals/TransitionHistory"));
19
19
 
20
20
  var _Block = _interopRequireDefault(require("./Block"));
21
21
 
@@ -92,7 +92,7 @@ const CurrentProposal = function ({
92
92
  css: (0, _react2.css)`padding: 10px 12px 10px 12px; flex-grow: 1; flex-basis: max-content;`
93
93
  }, (0, _react2.jsx)("div", null, (0, _react2.jsx)("dt", null, "Viewing\u00A0proposal:"), (0, _react2.jsx)("dd", {
94
94
  css: (0, _react2.css)`max-height: 40px; overflow-y: auto;`
95
- }, "\u201C", proposal.justification.trim() || '(justification N/A)', "\u201D")), (0, _react2.jsx)(_Summary.default, {
95
+ }, "\u201C", proposal.justification.trim() || '(justification N/A)', "\u201D")), (0, _react2.jsx)(_MetaProperties.default, {
96
96
  cr: proposal,
97
97
  currentStakeholder: stakeholder,
98
98
  registerMetadata: register
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveProposalDetails.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterHome/ActiveProposalDetails.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,MAAM,6CAA6C,CAAC;AAE7D,OAAO,OAAO,MAAM,8BAA8B,CAAC;AAGnD,OAAO,iBAAiB,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC9H,OAAO,oBAAoB,EAAE,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACpG,OAAO,SAAS,MAAM,SAAS,CAAC;AAGhC,MAAM,oBAAoB,GAQrB,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,MAAM,OAAO,GAAoB,WAAW,IAAI,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC;YACxF,CAAC,CAAC,EAAC;;;;;;iBAME,CAAC;YACN,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,SAAS,EAAE;YACb,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,CAAC,QAAQ;gBACnB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;SACJ;QAED,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,CAAC,MAAM;YACjB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzD,OAAO,CACL,IAAC,SAAS,IACR,IAAI,EAAE,eAAe,EACrB,WAAW,EAAC,iBAAiB,EAC7B,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,EAC1C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC;AAGpC,MAAM,eAAe,GAIhB,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAChD,MAAM,WAAW,GAAG,WAAW;QAC7B,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC;QACvC,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL;QACE,IAAC,EAAE,IAAC,GAAG,EAAE,GAAG,CAAA,sEAAsE;YAChF;gBACE,yCAA+B;gBAC/B,YAAI,GAAG,EAAE,GAAG,CAAA,qCAAqC;;oBAC7C,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,qBAAqB;6BACrD,CACD;YACN,IAAC,OAAO,IACN,EAAE,EAAE,QAAQ,EACZ,kBAAkB,EAAE,WAAW,EAC/B,gBAAgB,EAAE,QAAQ,GAC1B,CACC;QACL,aAAK,GAAG,EAAE,GAAG,CAAA,4CAA4C;YACvD,IAAC,oBAAoB,IACnB,eAAe,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAC/C,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,GACrC;YACD,WAAW,CAAC,MAAM,GAAG,CAAC;gBACrB,CAAC,CAAC,IAAC,iBAAiB,IAChB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,GAAG,CAAA,gBAAgB,GACxB;gBACJ,CAAC,CAAC,IAAI,CACJ,CACL,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useMemo } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport { type MenuItemProps } from '@blueprintjs/core';\n\nimport DL from '@riboseinc/paneron-extension-kit/widgets/DL';\n\nimport Summary from '../../change-request/Summary';\nimport type { Register, RegisterStakeholder } from '../../../types';\nimport { type SomeCR as CR } from '../../../types/cr';\nimport TransitionOptions, { isFinalState, getTransitions, canBeTransitionedBy } from '../../change-request/TransitionOptions';\nimport TransitionsAndStatus, { getTransitionHistory } from '../../change-request/TransitionHistory';\nimport HomeBlock from './Block';\n\n\nconst CurrentProposalBlock: React.VoidFunctionComponent<{\n proposal: CR\n register: Register\n stakeholder?: RegisterStakeholder\n canDelete?: boolean\n onDelete?: () => (void | Promise<void>)\n onOpen?: () => void\n className?: string\n}> = function ({ proposal, stakeholder, register, onDelete, onOpen, canDelete, className }) {\n const actions = useMemo(() => {\n const actions: MenuItemProps[] = stakeholder && canBeTransitionedBy(stakeholder, proposal)\n ? [/*{\n // Action is taken from within the widget.\n text: \"Take action\",\n onClick: () => void 0,\n icon: 'take-action',\n intent: 'primary',\n }*/]\n : [];\n\n if (canDelete) {\n actions.push({\n text: \"Delete this proposal draft\",\n onClick: onDelete,\n disabled: !onDelete,\n icon: 'delete',\n intent: 'danger',\n });\n }\n\n actions.push({\n text: \"View proposal in a new tab\",\n icon: 'open-application',\n disabled: !onOpen,\n onClick: onOpen,\n });\n\n return actions;\n }, [onDelete, onOpen, stakeholder, proposal, canDelete]);\n\n return (\n <HomeBlock\n View={CurrentProposal}\n description=\"Active proposal\"\n props={{ proposal, stakeholder, register }}\n className={className}\n actions={actions}\n />\n );\n};\n\nexport default CurrentProposalBlock;\n\n\nconst CurrentProposal: React.VoidFunctionComponent<{\n proposal: CR\n register: Register\n stakeholder?: RegisterStakeholder\n}> = function ({ stakeholder, register, proposal }) {\n const transitions = stakeholder\n ? getTransitions(proposal, stakeholder)\n : [];\n\n return (\n <>\n <DL css={css`padding: 10px 12px 10px 12px; flex-grow: 1; flex-basis: max-content;`}>\n <div>\n <dt>Viewing&nbsp;proposal:</dt>\n <dd css={css`max-height: 40px; overflow-y: auto;`}>\n “{proposal.justification.trim() || '(justification N/A)'}”\n </dd>\n </div>\n <Summary\n cr={proposal}\n currentStakeholder={stakeholder}\n registerMetadata={register}\n />\n </DL>\n <div css={css`overflow-y: auto; flex-basis: min-content;`}>\n <TransitionsAndStatus\n pastTransitions={getTransitionHistory(proposal)}\n isFinal={isFinalState(proposal.state)}\n />\n {transitions.length > 0\n ? <TransitionOptions\n stakeholder={stakeholder}\n transitions={transitions}\n cr={proposal}\n css={css`padding: 12px;`}\n />\n : null}\n </div>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"ActiveProposalDetails.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterHome/ActiveProposalDetails.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useMemo } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport { type MenuItemProps } from '@blueprintjs/core';\n\nimport DL from '@riboseinc/paneron-extension-kit/widgets/DL';\n\nimport MetaProperties from '../../../proposals/MetaProperties';\nimport type { Register, RegisterStakeholder } from '../../../types';\nimport { type SomeCR as CR } from '../../../proposals/types';\nimport TransitionOptions, { isFinalState, getTransitions, canBeTransitionedBy } from '../../../proposals/TransitionOptions';\nimport TransitionsAndStatus, { getTransitionHistory } from '../../../proposals/TransitionHistory';\nimport HomeBlock from './Block';\n\n\nconst CurrentProposalBlock: React.VoidFunctionComponent<{\n proposal: CR\n register: Register\n stakeholder?: RegisterStakeholder\n canDelete?: boolean\n onDelete?: () => (void | Promise<void>)\n onOpen?: () => void\n className?: string\n}> = function ({ proposal, stakeholder, register, onDelete, onOpen, canDelete, className }) {\n const actions = useMemo(() => {\n const actions: MenuItemProps[] = stakeholder && canBeTransitionedBy(stakeholder, proposal)\n ? [/*{\n // Action is taken from within the widget.\n text: \"Take action\",\n onClick: () => void 0,\n icon: 'take-action',\n intent: 'primary',\n }*/]\n : [];\n\n if (canDelete) {\n actions.push({\n text: \"Delete this proposal draft\",\n onClick: onDelete,\n disabled: !onDelete,\n icon: 'delete',\n intent: 'danger',\n });\n }\n\n actions.push({\n text: \"View proposal in a new tab\",\n icon: 'open-application',\n disabled: !onOpen,\n onClick: onOpen,\n });\n\n return actions;\n }, [onDelete, onOpen, stakeholder, proposal, canDelete]);\n\n return (\n <HomeBlock\n View={CurrentProposal}\n description=\"Active proposal\"\n props={{ proposal, stakeholder, register }}\n className={className}\n actions={actions}\n />\n );\n};\n\nexport default CurrentProposalBlock;\n\n\nconst CurrentProposal: React.VoidFunctionComponent<{\n proposal: CR\n register: Register\n stakeholder?: RegisterStakeholder\n}> = function ({ stakeholder, register, proposal }) {\n const transitions = stakeholder\n ? getTransitions(proposal, stakeholder)\n : [];\n\n return (\n <>\n <DL css={css`padding: 10px 12px 10px 12px; flex-grow: 1; flex-basis: max-content;`}>\n <div>\n <dt>Viewing&nbsp;proposal:</dt>\n <dd css={css`max-height: 40px; overflow-y: auto;`}>\n “{proposal.justification.trim() || '(justification N/A)'}”\n </dd>\n </div>\n <MetaProperties\n cr={proposal}\n currentStakeholder={stakeholder}\n registerMetadata={register}\n />\n </DL>\n <div css={css`overflow-y: auto; flex-basis: min-content;`}>\n <TransitionsAndStatus\n pastTransitions={getTransitionHistory(proposal)}\n isFinal={isFinalState(proposal.state)}\n />\n {transitions.length > 0\n ? <TransitionOptions\n stakeholder={stakeholder}\n transitions={transitions}\n cr={proposal}\n css={css`padding: 12px;`}\n />\n : null}\n </div>\n </>\n );\n};\n"]}
@@ -2,7 +2,7 @@
2
2
  /** @jsxFrag React.Fragment */
3
3
  import React from 'react';
4
4
  import type { Register } from '../../../types';
5
- import { type SomeCR as CR } from '../../../types/cr';
5
+ import { type SomeCR as CR } from '../../../proposals/types';
6
6
  export declare const Proposals: React.VoidFunctionComponent<{
7
7
  register: Register;
8
8
  actionableProposals?: [groupLabel: JSX.Element | string, proposals: CR[] | undefined][];
@@ -11,7 +11,7 @@ var _react2 = require("@emotion/react");
11
11
 
12
12
  var _core = require("@blueprintjs/core");
13
13
 
14
- var _ChangeRequestContext = require("../../change-request/ChangeRequestContext");
14
+ var _ChangeRequestContext = require("../../../proposals/ChangeRequestContext");
15
15
 
16
16
  var _util = require("../../util");
17
17
 
@@ -135,17 +135,13 @@ const Proposals = function ({
135
135
  onRefreshProposals,
136
136
  className
137
137
  }) {
138
- //const [creating, setCreating] = useState(false);
139
138
  const hasActionable = actionableProposals && actionableProposals.find(p => p[1] && p[1].length > 0);
140
139
  const proposalMenuItems = (0, _react.useMemo)(() => {
141
140
  return hasActionable || onCreate ? (0, _react2.jsx)(ActionableProposalItems, {
142
141
  actionableProposals: actionableProposals !== null && actionableProposals !== void 0 ? actionableProposals : [],
143
142
  onSelect: onSelectProposal
144
143
  }) : null;
145
- }, [onSelectProposal, onCreate, hasActionable, actionableProposals]); // return <Menu css={css`overflow-y: auto; background: none !important`} className={className}>
146
- // {proposalMenuItems}
147
- // </Menu>
148
-
144
+ }, [onSelectProposal, onCreate, hasActionable, actionableProposals]);
149
145
  const stack = (0, _react.useMemo)(() => {
150
146
  const stack = [];
151
147
  const proposalMenu = proposalMenuItems ? (0, _react2.jsx)(_core.Menu, {
@@ -1 +1 @@
1
- {"version":3,"file":"Proposal.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterHome/Proposal.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, {\n useState,\n useContext,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n} from 'react';\nimport { jsx, css } from '@emotion/react';\nimport {\n Button,\n FormGroup,\n ControlGroup,\n TextArea,\n PanelStack2 as PanelStack, type Panel,\n Menu, MenuDivider, MenuItem,\n Spinner,\n NonIdealState,\n} from '@blueprintjs/core';\n\nimport { ChangeRequestContext } from '../../change-request/ChangeRequestContext';\nimport { maybeEllipsizeString } from '../../util';\nimport type { Register } from '../../../types';\nimport { type SomeCR as CR } from '../../../types/cr';\n\n\nconst NewProposal: React.VoidFunctionComponent<{\n register: Register\n onCreateBlank?: (idea: string) => Promise<void>\n className?: string\n}> = function ({ register, onCreateBlank, className }) {\n const [ newProposalIdea, setNewProposalIdea ] = useState('');\n\n const handleNewProposal = useCallback(async function handleNewProposal () {\n if (newProposalIdea.trim()) {\n await onCreateBlank?.(newProposalIdea);\n setNewProposalIdea('');\n } else {\n throw new Error(\"Cannot create proposal: need some initial motivation for the change\");\n }\n }, [newProposalIdea, onCreateBlank]);\n\n return (\n <FormGroup\n className={className}\n css={css`overflow-y: auto;`}\n label={<>Propose a change to version {register.version?.id ?? '(N/A)'}:</>}>\n <ControlGroup vertical>\n <TextArea\n value={newProposalIdea ?? ''}\n placeholder=\"Your idea…\"\n title=\"Justification draft (you can change this later)\"\n onChange={evt => setNewProposalIdea(evt.currentTarget.value)}\n />\n <Button\n fill\n intent={newProposalIdea ? 'primary': undefined}\n disabled={!newProposalIdea.trim() || !onCreateBlank}\n title=\"A blank proposal will be created and opened in a new tab.\"\n onClick={handleNewProposal}\n icon=\"tick\">\n Create\n </Button>\n </ControlGroup>\n </FormGroup>\n );\n};\n\n\n/**\n * A list of menu items for given actionable proposals,\n * grouped by label.\n */\nconst ActionableProposalItems: React.VoidFunctionComponent<{\n actionableProposals: [groupLabel: JSX.Element | string, proposals: CR[] | undefined][]\n onSelect?: (proposalID: string) => void\n}> = function ActionableProposalItems ({ actionableProposals, onSelect }) {\n return <>{\n actionableProposals?.\n filter(([, proposals]) => proposals && proposals.length > 0).\n map(([groupLabel, proposals], idx) =>\n <React.Fragment key={idx}>\n <MenuDivider title={groupLabel} />\n {proposals !== undefined && proposals.length > 0\n ? proposals.map(cr =>\n <ActionableProposalItem\n key={cr.id}\n cr={cr}\n onClick={onSelect}\n />)\n : proposals === undefined\n ? <MenuItem disabled text=\"Loading…\" icon={<Spinner />} />\n : <MenuItem disabled text=\"No pending proposals\" icon=\"clean\" />}\n </React.Fragment>)\n }</>;\n};\n\n\nconst ActionableProposalItem: React.VoidFunctionComponent<{\n cr: CR\n onClick?: (crID: string) => void\n}> = function ({ cr, onClick }) {\n // TODO: Try to avoid useContext here.\n // Originally activeCR was passed via prop, need to try again.\n // Switch to context was done to avoid rerendering the entire list\n // & losing scroll position.\n // We want(?) active CR to determine if this item is active\n // and keep it in viewport after user switches back.\n const { changeRequest: activeCR } = useContext(ChangeRequestContext);\n const selectedMenuItem = useRef<HTMLLIElement | null>(null);\n const isActive = activeCR && cr.id === activeCR?.id\n ? true\n : false;\n useEffect(() => {\n selectedMenuItem.current?.scrollIntoView?.({ block: 'nearest' });\n }, [isActive]);\n const handleClick = useCallback(() => {\n return onClick?.(cr.id);\n }, [onClick, cr.id]);\n return (\n <MenuItem\n key={cr.id}\n elementRef={isActive ? selectedMenuItem : undefined}\n selected={isActive}\n active={isActive}\n text={maybeEllipsizeString(cr.justification?.trim() || cr.id, 120)}\n htmlTitle={cr.justification}\n disabled={!onClick}\n onClick={onClick ? handleClick : undefined}\n />\n );\n};\n\n\nexport const Proposals: React.VoidFunctionComponent<{\n register: Register\n actionableProposals?: [groupLabel: JSX.Element | string, proposals: CR[] | undefined][]\n onCreate?: (idea: string | false) => Promise<void>\n createMode?: boolean\n onSelectProposal?: (id: string) => void\n onRefreshProposals?: () => void\n className?: string\n}> = function ({\n register,\n actionableProposals,\n onCreate,\n createMode,\n onSelectProposal,\n onRefreshProposals,\n className,\n}) {\n //const [creating, setCreating] = useState(false);\n const hasActionable = (actionableProposals && actionableProposals.find(p => p[1] && p[1].length > 0));\n const proposalMenuItems = useMemo(() => {\n return hasActionable || onCreate\n ? <ActionableProposalItems\n actionableProposals={actionableProposals ?? []}\n onSelect={onSelectProposal}\n />\n : null;\n }, [onSelectProposal, onCreate, hasActionable, actionableProposals]);\n\n // return <Menu css={css`overflow-y: auto; background: none !important`} className={className}>\n // {proposalMenuItems}\n // </Menu>\n\n const stack: Panel<any>[] = useMemo(() => {\n const stack = [];\n const proposalMenu = proposalMenuItems\n ? <Menu css={css`overflow-y: auto; background: none !important;`}>\n {proposalMenuItems}\n </Menu>\n : null;\n if (proposalMenu) {\n stack.push({\n title: createMode\n ? \"Proposals\"\n : <>\n Proposals\n {hasActionable || (onCreate && onRefreshProposals)\n ? <>\n &nbsp;\n <Button\n minimal\n small\n onClick={onRefreshProposals}\n disabled={!onRefreshProposals}\n icon=\"refresh\"\n />\n </>\n : null}\n </>,\n renderPanel: () => proposalMenu,\n });\n }\n if (createMode) {\n stack.push({\n title: \"Start proposal\",\n renderPanel: () =>\n <NewProposal\n onCreateBlank={onCreate}\n register={register}\n css={css`padding: 5px;`}\n />,\n });\n }\n return stack;\n }, [\n onCreate, createMode,\n onRefreshProposals,\n hasActionable,\n register, proposalMenuItems,\n ]);\n\n return <PanelStack\n css={css`flex: 1; .bp4-panel-stack-view { background: none; }`}\n className={className}\n onClose={() => onCreate?.(false)}\n stack={stack.length > 0\n ? stack\n : [{ title: '', renderPanel: () => <NonIdealState title=\"Nothing to show\" /> }]}\n />;\n};\n"]}
1
+ {"version":3,"file":"Proposal.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterHome/Proposal.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, {\n useState,\n useContext,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n} from 'react';\nimport { jsx, css } from '@emotion/react';\nimport {\n Button,\n FormGroup,\n ControlGroup,\n TextArea,\n PanelStack2 as PanelStack, type Panel,\n Menu, MenuDivider, MenuItem,\n Spinner,\n NonIdealState,\n} from '@blueprintjs/core';\n\nimport { ChangeRequestContext } from '../../../proposals/ChangeRequestContext';\nimport { maybeEllipsizeString } from '../../util';\nimport type { Register } from '../../../types';\nimport { type SomeCR as CR } from '../../../proposals/types';\n\n\nconst NewProposal: React.VoidFunctionComponent<{\n register: Register\n onCreateBlank?: (idea: string) => Promise<void>\n className?: string\n}> = function ({ register, onCreateBlank, className }) {\n const [ newProposalIdea, setNewProposalIdea ] = useState('');\n\n const handleNewProposal = useCallback(async function handleNewProposal () {\n if (newProposalIdea.trim()) {\n await onCreateBlank?.(newProposalIdea);\n setNewProposalIdea('');\n } else {\n throw new Error(\"Cannot create proposal: need some initial motivation for the change\");\n }\n }, [newProposalIdea, onCreateBlank]);\n\n return (\n <FormGroup\n className={className}\n css={css`overflow-y: auto;`}\n label={<>Propose a change to version {register.version?.id ?? '(N/A)'}:</>}>\n <ControlGroup vertical>\n <TextArea\n value={newProposalIdea ?? ''}\n placeholder=\"Your idea…\"\n title=\"Justification draft (you can change this later)\"\n onChange={evt => setNewProposalIdea(evt.currentTarget.value)}\n />\n <Button\n fill\n intent={newProposalIdea ? 'primary': undefined}\n disabled={!newProposalIdea.trim() || !onCreateBlank}\n title=\"A blank proposal will be created and opened in a new tab.\"\n onClick={handleNewProposal}\n icon=\"tick\">\n Create\n </Button>\n </ControlGroup>\n </FormGroup>\n );\n};\n\n\n/**\n * A list of menu items for given actionable proposals,\n * grouped by label.\n */\nconst ActionableProposalItems: React.VoidFunctionComponent<{\n actionableProposals: [groupLabel: JSX.Element | string, proposals: CR[] | undefined][]\n onSelect?: (proposalID: string) => void\n}> = function ActionableProposalItems ({ actionableProposals, onSelect }) {\n return <>{\n actionableProposals?.\n filter(([, proposals]) => proposals && proposals.length > 0).\n map(([groupLabel, proposals], idx) =>\n <React.Fragment key={idx}>\n <MenuDivider title={groupLabel} />\n {proposals !== undefined && proposals.length > 0\n ? proposals.map(cr =>\n <ActionableProposalItem\n key={cr.id}\n cr={cr}\n onClick={onSelect}\n />)\n : proposals === undefined\n ? <MenuItem disabled text=\"Loading…\" icon={<Spinner />} />\n : <MenuItem disabled text=\"No pending proposals\" icon=\"clean\" />}\n </React.Fragment>)\n }</>;\n};\n\n\nconst ActionableProposalItem: React.VoidFunctionComponent<{\n cr: CR\n onClick?: (crID: string) => void\n}> = function ({ cr, onClick }) {\n // TODO: Try to avoid useContext here.\n // Originally activeCR was passed via prop, need to try again.\n // Switch to context was done to avoid rerendering the entire list\n // & losing scroll position.\n // We want(?) active CR to determine if this item is active\n // and keep it in viewport after user switches back.\n const { changeRequest: activeCR } = useContext(ChangeRequestContext);\n const selectedMenuItem = useRef<HTMLLIElement | null>(null);\n const isActive = activeCR && cr.id === activeCR?.id\n ? true\n : false;\n useEffect(() => {\n selectedMenuItem.current?.scrollIntoView?.({ block: 'nearest' });\n }, [isActive]);\n const handleClick = useCallback(() => {\n return onClick?.(cr.id);\n }, [onClick, cr.id]);\n return (\n <MenuItem\n key={cr.id}\n elementRef={isActive ? selectedMenuItem : undefined}\n selected={isActive}\n active={isActive}\n text={maybeEllipsizeString(cr.justification?.trim() || cr.id, 120)}\n htmlTitle={cr.justification}\n disabled={!onClick}\n onClick={onClick ? handleClick : undefined}\n />\n );\n};\n\n\nexport const Proposals: React.VoidFunctionComponent<{\n register: Register\n actionableProposals?: [groupLabel: JSX.Element | string, proposals: CR[] | undefined][]\n onCreate?: (idea: string | false) => Promise<void>\n createMode?: boolean\n onSelectProposal?: (id: string) => void\n onRefreshProposals?: () => void\n className?: string\n}> = function ({\n register,\n actionableProposals,\n onCreate,\n createMode,\n onSelectProposal,\n onRefreshProposals,\n className,\n}) {\n const hasActionable = (actionableProposals && actionableProposals.find(p => p[1] && p[1].length > 0));\n const proposalMenuItems = useMemo(() => {\n return hasActionable || onCreate\n ? <ActionableProposalItems\n actionableProposals={actionableProposals ?? []}\n onSelect={onSelectProposal}\n />\n : null;\n }, [onSelectProposal, onCreate, hasActionable, actionableProposals]);\n\n const stack: Panel<any>[] = useMemo(() => {\n const stack = [];\n const proposalMenu = proposalMenuItems\n ? <Menu css={css`overflow-y: auto; background: none !important;`}>\n {proposalMenuItems}\n </Menu>\n : null;\n if (proposalMenu) {\n stack.push({\n title: createMode\n ? \"Proposals\"\n : <>\n Proposals\n {hasActionable || (onCreate && onRefreshProposals)\n ? <>\n &nbsp;\n <Button\n minimal\n small\n onClick={onRefreshProposals}\n disabled={!onRefreshProposals}\n icon=\"refresh\"\n />\n </>\n : null}\n </>,\n renderPanel: () => proposalMenu,\n });\n }\n if (createMode) {\n stack.push({\n title: \"Start proposal\",\n renderPanel: () =>\n <NewProposal\n onCreateBlank={onCreate}\n register={register}\n css={css`padding: 5px;`}\n />,\n });\n }\n return stack;\n }, [\n onCreate, createMode,\n onRefreshProposals,\n hasActionable,\n register, proposalMenuItems,\n ]);\n\n return <PanelStack\n css={css`flex: 1; .bp4-panel-stack-view { background: none; }`}\n className={className}\n onClose={() => onCreate?.(false)}\n stack={stack.length > 0\n ? stack\n : [{ title: '', renderPanel: () => <NonIdealState title=\"Nothing to show\" /> }]}\n />;\n};\n"]}
@@ -19,17 +19,13 @@ var _context2 = require("@riboseinc/paneron-extension-kit/widgets/TabbedWorkspac
19
19
 
20
20
  var _BrowserCtx = require("../../BrowserCtx");
21
21
 
22
- var _ChangeRequestContext = require("../../change-request/ChangeRequestContext");
22
+ var _ChangeRequestContext = require("../../../proposals/ChangeRequestContext");
23
23
 
24
- var _itemPathUtils = require("../../itemPathUtils");
25
-
26
- var _objectChangeset = require("../../change-request/objectChangeset");
24
+ var _proposals = require("../../../proposals");
27
25
 
28
- var _Proposals = require("../../change-request/Proposals");
26
+ var _types = require("../../../proposals/types");
29
27
 
30
- var _cr = require("../../../types/cr");
31
-
32
- var _queries = require("../../../proposals/actionableGroups/queries");
28
+ var _itemPathUtils = require("../../itemPathUtils");
33
29
 
34
30
  var _stakeholder = require("../../../types/stakeholder");
35
31
 
@@ -94,7 +90,7 @@ const RegisterHome = function () {
94
90
  if (makeRandomID && stakeholder && (0, _stakeholder.canCreateCR)(stakeholder)) {
95
91
  return async function getNewEmptyCRChangeset(newIdea) {
96
92
  const crID = await makeRandomID();
97
- return [(0, _objectChangeset.newCRObjectChangeset)(crID, newIdea, registerVersion, stakeholder.gitServerUsername), crID];
93
+ return [(0, _proposals.newCRObjectChangeset)(crID, newIdea, registerVersion, stakeholder.gitServerUsername), crID];
98
94
  };
99
95
  } else {
100
96
  return undefined;
@@ -116,9 +112,9 @@ const RegisterHome = function () {
116
112
  throw new Error("No file was selected");
117
113
  }
118
114
 
119
- if ((0, _cr.isImportableCR)(fileData)) {
115
+ if ((0, _types.isImportableCR)(fileData)) {
120
116
  try {
121
- const [changeset, crID] = await (0, _objectChangeset.importedProposalToCRObjectChangeset)(fileData, itemClasses, stakeholder.gitServerUsername, getObjectData, async function resolvePredicates(predicates) {
117
+ const [changeset, crID] = await (0, _proposals.importedProposalToCRObjectChangeset)(fileData, itemClasses, stakeholder.gitServerUsername, getObjectData, async function resolvePredicates(predicates) {
122
118
  const mapReduceChains = [...predicates.values()].map(predicate => ({
123
119
  [predicate]: {
124
120
  mapFunc: `
@@ -187,13 +183,13 @@ const RegisterHome = function () {
187
183
  }
188
184
  }, [isBusy, performOperation, updateObjects, getImportedCRChangeset, getNewEmptyCRChangeset]); // Actionable proposals v2
189
185
 
190
- const proposalGroups = (0, _react.useMemo)(() => (stakeholder === null || stakeholder === void 0 ? void 0 : stakeholder.roles[0]) ? stakeholder.roles.flatMap(_queries.getActionableProposalGroupsForRole) : null, [stakeholder === null || stakeholder === void 0 ? void 0 : stakeholder.roles.join(',')]);
186
+ const proposalGroups = (0, _react.useMemo)(() => (stakeholder === null || stakeholder === void 0 ? void 0 : stakeholder.roles[0]) ? stakeholder.roles.flatMap(_proposals.getActionableProposalGroupsForRole) : null, [stakeholder === null || stakeholder === void 0 ? void 0 : stakeholder.roles.join(',')]);
191
187
  const actionableProposalsResult = useMapReducedData({
192
188
  chains: (proposalGroups !== null && proposalGroups !== void 0 ? proposalGroups : []).map(([label,, queryGetter]) => {
193
189
  const query = queryGetter(stakeholder);
194
190
  const predicateFunc = `
195
191
  const objPath = key, obj = value;
196
- return ((${_queries.CR_BASE_QUERY}) && (${query}));
192
+ return ((${_proposals.CR_BASE_QUERY}) && (${query}));
197
193
  `;
198
194
  const mapFunc = `emit(value);`;
199
195
  return {
@@ -352,7 +348,7 @@ const RegisterHome = function () {
352
348
  const [selectedProposal, selectProposal] = (0, _react.useState)(null);
353
349
  const proposedChangeBlocks = (0, _react.useMemo)(() => {
354
350
  if (activeCR) {
355
- return (0, _react2.jsx)(_Proposals.Proposals, {
351
+ return (0, _react2.jsx)(_proposals.ProposalBrowser, {
356
352
  proposals: activeCR.items,
357
353
  selectedItem: selectedProposal,
358
354
  onSelectItem: selectProposal,