@riboseinc/paneron-registry-kit 2.2.12 → 2.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/views/SearchQuery.js +9 -1
- package/views/SearchQuery.js.map +1 -1
- package/views/change-request/ChangeRequestContext.d.ts +7 -0
- package/views/change-request/ChangeRequestContext.js +82 -2
- package/views/change-request/ChangeRequestContext.js.map +1 -1
- package/views/change-request/Proposals.d.ts +16 -3
- package/views/change-request/Proposals.js +175 -79
- package/views/change-request/Proposals.js.map +1 -1
- package/views/change-request/util.d.ts +4 -0
- package/views/change-request/util.js +14 -0
- package/views/change-request/util.js.map +1 -0
- package/views/detail/ChangeRequest/index.js +16 -16
- package/views/detail/ChangeRequest/index.js.map +1 -1
- package/views/detail/RegisterHome/ActiveProposalDetails.js +2 -1
- package/views/detail/RegisterHome/ActiveProposalDetails.js.map +1 -1
- package/views/detail/RegisterHome/Block.d.ts +12 -2
- package/views/detail/RegisterHome/Block.js +40 -14
- package/views/detail/RegisterHome/Block.js.map +1 -1
- package/views/detail/RegisterHome/MetaSummary.js +4 -4
- package/views/detail/RegisterHome/MetaSummary.js.map +1 -1
- package/views/detail/RegisterHome/index.js +91 -8
- package/views/detail/RegisterHome/index.js.map +1 -1
- package/views/detail/RegisterItem/index.js +5 -3
- package/views/detail/RegisterItem/index.js.map +1 -1
- package/views/index.js +1 -1
- package/views/index.js.map +1 -1
- package/views/util.d.ts +19 -13
- package/views/util.js +11 -39
- package/views/util.js.map +1 -1
- package/site-builder/index.d.ts +0 -3
- package/site-builder/index.js +0 -75
- package/site-builder/index.js.map +0 -1
- package/site-builder/jsx-runtime.d.ts +0 -18
- package/site-builder/jsx-runtime.js +0 -107
- package/site-builder/jsx-runtime.js.map +0 -1
- package/site-builder/page.d.ts +0 -6
- package/site-builder/page.js +0 -24
- package/site-builder/page.js.map +0 -1
- package/views/change-request/ChangeProposalContext.d.ts +0 -3
- package/views/change-request/ChangeProposalContext.js +0 -4
- package/views/change-request/ChangeProposalContext.js.map +0 -1
- package/views/change-request/State.d.ts +0 -0
- package/views/change-request/State.js +0 -1
- package/views/change-request/State.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Proposals.js","sourceRoot":"","sources":["../../../src/views/change-request/Proposals.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useEffect, useContext, useState, useCallback, memo, useMemo } from 'react';\nimport { ClassNames, jsx, css } from '@emotion/react';\nimport {\n ButtonGroup,\n Button,\n Classes,\n Colors,\n MenuItem,\n NonIdealState,\n IconName,\n} from '@blueprintjs/core';\nimport { ItemRenderer, Select2 as Select } from '@blueprintjs/select';\nimport HelpTooltip from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';\nimport type {\n Addition,\n ChangeProposal,\n Clarification,\n InternalItemReference,\n Retirement,\n Supersession,\n Invalidation,\n Payload,\n RegisterItem,\n} from '../../types';\nimport ErrorBoundary from '@riboseinc/paneron-extension-kit/widgets/ErrorBoundary';\nimport ErrorState from '@riboseinc/paneron-extension-kit/widgets/ErrorState';\nimport type { Drafted } from '../../types/cr';\nimport { Protocols, type Protocol } from '../protocolRegistry';\nimport { PROPOSAL_TYPES, AMENDMENT_TYPES } from '../../types/proposal';\nimport { BrowserCtx, type BrowserCtx as BrowserCtxType } from '../BrowserCtx';\nimport { useItemRef, itemPathToItemRef } from '../itemPathUtils';\nimport useItemClassConfig from '../hooks/useItemClassConfig';\nimport { InlineDiffGeneric } from '../diffing/InlineDiff';\nimport { ItemDetail } from '../detail/RegisterItem';\n\n\ninterface ChangeProposalItem {\n itemPath: string\n itemRef: InternalItemReference\n proposal: ChangeProposal\n item: RegisterItem<Payload> | null\n itemBefore: RegisterItem<Payload> | undefined\n}\nfunction stringifiedJSONEqual(i1: any, i2: any): boolean {\n return JSON.stringify(i1) === JSON.stringify(i2);\n}\n\n\nconst Proposals: React.FC<{\n proposals: Drafted['items']\n className?: string\n}> = function ({ proposals, className }) {\n const [ selectedProposal, selectProposal ] = useState<string | null>(null);\n const [ preferDiff, setPreferDiff ] = useState(false);\n\n // TODO: Temporarily unsupported\n // (limitations of current change annotation implementation)\n //const [ showOnlyChanged, setShowOnlyChanged ] = useState(true);\n\n const outerBrowserCtx = useContext(BrowserCtx);\n const { jumpTo, subregisters, useRegisterItemData } = outerBrowserCtx;\n\n /**\n * When jumping to an item affected by current CR,\n * jump in-CR instead of spawning tab.\n */\n const handleCRJump = useCallback(function _handleCRJump(uri: `${Protocol}:${string}`): void {\n if (uri.startsWith(Protocols.ITEM_DETAILS)) {\n const itemPath = uri.split(':')[1];\n if (proposals[itemPath]) {\n selectProposal(itemPath);\n } else {\n jumpTo?.(uri);\n }\n }\n }, [Object.keys(proposals), jumpTo]);\n\n const proposalBrowserCtx: BrowserCtxType = useMemo((() => ({\n ...outerBrowserCtx,\n jumpTo: handleCRJump,\n })), [handleCRJump, outerBrowserCtx]);\n\n /** Paths of register items in proposal. */\n const proposedItemPaths = Object.entries(proposals).map(([itemPath, proposal]) => {\n if (proposal.type === 'clarification' || proposal.type === 'addition') {\n return itemPath;\n } else {\n return undefined;\n }\n }).filter(s => s !== undefined) as string[];\n\n /** Proposed data of register items in proposal. */\n const proposedItemDataReq = useRegisterItemData({\n itemPaths: proposedItemPaths,\n });\n\n /** Pre-existing data of register items in proposal. */\n const currentItemDataReq = useRegisterItemData({\n itemPaths: Object.keys(proposals),\n ignoreActiveCR: true,\n });\n\n const getCurrentItem = useCallback(\n ((itemPath: string) => currentItemDataReq.value[itemPath] ?? null),\n [currentItemDataReq.value]);\n const getProposedItem = useCallback(\n ((itemPath: string) => proposedItemDataReq.value[itemPath] ?? null),\n [proposedItemDataReq.value]);\n\n /** Current register item (if any) corresponding to selected proposal. */\n const selectedItemCurrent = selectedProposal ? getCurrentItem(selectedProposal) : null;\n\n /** Proposed register item corresponding to selected proposal. */\n const selectedItemProposed = selectedProposal ? getProposedItem(selectedProposal) : null;\n\n const selectedItemRef = useItemRef(subregisters !== undefined, selectedProposal);\n\n const handleItemSelect = useCallback(\n ((item: ChangeProposalItem) => selectProposal(item.itemPath)),\n [selectProposal]);\n\n const activeItem: ChangeProposalItem | null = useMemo((() =>\n selectedProposal\n ? ({\n itemPath: selectedProposal,\n proposal: proposals[selectedProposal],\n item: (selectedItemProposed ?? selectedItemCurrent)!,\n itemBefore: selectedItemCurrent ?? undefined,\n itemRef: itemPathToItemRef(subregisters !== undefined, selectedProposal),\n })\n : null\n ), [selectedProposal, proposals, subregisters]);\n\n const allItems: ChangeProposalItem[] = useMemo((() =>\n Object.entries(proposals).map(([itemPath, proposal]) => ({\n itemPath,\n proposal,\n item: (getProposedItem(itemPath) ?? getCurrentItem(itemPath))! ?? null,\n itemBefore: undefined,\n itemRef: itemPathToItemRef(subregisters !== undefined, itemPath),\n }))\n ), [proposals, getCurrentItem, getProposedItem]);\n\n const haveSelectedItem =\n selectedProposal\n && selectedItemRef\n && proposals[selectedProposal]\n && (selectedItemProposed || selectedItemCurrent);\n\n const proposalCount = Object.keys(proposals).length;\n\n useEffect(() => {\n if (!selectedProposal) {\n const firstProposal = Object.keys(proposals)[0];\n if (firstProposal) {\n if (getCurrentItem(firstProposal) || getProposedItem(firstProposal)) {\n selectProposal(firstProposal);\n }\n }\n }\n }, [proposalCount, selectedProposal, getCurrentItem, getProposedItem]);\n\n const canShowDiff: boolean = haveSelectedItem && proposals[selectedProposal]?.type === 'clarification'\n ? true\n : false;\n const showDiff = canShowDiff && preferDiff;\n\n if (!currentItemDataReq.isUpdating && !proposedItemDataReq.isUpdating) {\n const selectedItemSummary = haveSelectedItem\n ? <ProposalSummary\n itemRef={selectedItemRef}\n item={(selectedItemProposed ?? selectedItemCurrent)!}\n itemBefore={selectedItemCurrent ?? undefined}\n proposal={proposals[selectedProposal]}\n />\n : <>Select item…</>;\n const icon = haveSelectedItem\n ? getProposalIcon(proposals[selectedProposal])\n : undefined;\n return (\n <div css={css`display: flex; flex-flow: column nowrap;`} className={className}>\n {proposalCount > 0\n ? <ButtonGroup css={css`margin: 5px 0 0 5px;`}>\n {haveSelectedItem\n ? <>\n <Button\n disabled={!jumpTo || proposals[selectedProposal]?.type === 'addition'}\n icon='locate'\n onClick={() => jumpTo?.(`${Protocols.ITEM_DETAILS}:${selectedProposal}`)}\n title=\"Open selected item in a new tab (not applicable to proposed additions)\"\n />\n <Button\n active={preferDiff}\n onClick={() => setPreferDiff(v => !v)}\n // Diffing only makes sense for clarifications.\n // Additions are entire new items, and for amendments\n // item data is unchanged.\n disabled={!canShowDiff}\n icon=\"changes\"\n title=\"Annotate proposed clarifications for this item\"\n />\n {/*\n <Switch\n checked={preferDiff && showOnlyChanged}\n disabled={!preferDiff}\n onChange={evt => setShowOnlyChanged(evt.currentTarget.checked)}\n label=\"Show clarified properties only\"\n />\n */}\n </>\n : null}\n <ClassNames>\n {(({ css: css2 }) =>\n <Select<ChangeProposalItem>\n filterable={false}\n itemsEqual={stringifiedJSONEqual}\n menuProps={{ className: css2(`height: 50vh; overflow-y: auto;`) }}\n activeItem={activeItem}\n items={allItems}\n popoverProps={{ minimal: true }}\n fill\n itemRenderer={ChangeProposalItemView}\n onItemSelect={handleItemSelect}>\n <Button rightIcon=\"chevron-down\" icon={icon} css={css`white-space: nowrap;`}>\n {selectedItemSummary}\n </Button>\n </Select>\n )}\n </ClassNames>\n </ButtonGroup>\n : null}\n {haveSelectedItem\n ? <div css={css`position: relative; flex: 1;`}>\n <BrowserCtx.Provider value={proposalBrowserCtx}>\n <ErrorBoundary viewName=\"Proposal detail\">\n <ProposalDetail\n itemRef={selectedItemRef}\n showDiff={showDiff}\n //showOnlyChanged={showOnlyChanged}\n item={(selectedItemProposed ?? selectedItemCurrent)!}\n itemBefore={selectedItemCurrent ?? undefined}\n proposal={proposals[selectedProposal]}\n />\n </ErrorBoundary>\n </BrowserCtx.Provider>\n </div>\n : null}\n </div>\n );\n } else {\n return <NonIdealState\n icon='clean'\n className={className}\n title=\"Nothing is proposed here yet.\"\n />;\n }\n};\n\n\nconst ChangeProposalItemView: ItemRenderer<ChangeProposalItem> =\n(item, { handleClick, modifiers, query }) => {\n if (item.item !== null) {\n const i = item as ChangeProposalItem & { item: RegisterItem<any> };\n const proposalConfig = \n item.proposal.type === 'amendment'\n ? PROPOSAL_VIEWS[item.proposal.amendmentType]\n : PROPOSAL_VIEWS[item.proposal.type];\n const ProposalTypeLabel: React.FC<ProposalProps<any>> = proposalConfig.summary;\n return (\n <MenuItem\n active={modifiers.active}\n disabled={modifiers.disabled}\n labelElement={<>\n <ProposalTypeLabel {...i} />\n {\" \"}\n <HelpTooltip content={<>Proposed to be {proposalConfig.hint}</>} />\n </>}\n key={item.itemPath}\n onClick={handleClick}\n icon={getProposalIcon(item.proposal)}\n text={<ProposalSummary {...i} />} />\n );\n } else {\n return <MenuItem\n disabled\n icon=\"heart-broken\"\n onClick={handleClick}\n text={`Broken proposal entry at path ${item.itemPath}`}\n />\n }\n};\n\n\ninterface ProposalProps<P extends ChangeProposal> {\n proposal: P\n\n /** Highlight changes. */\n showDiff?: boolean\n\n /** In diff mode, only show changed data. (Provisional.) */\n showOnlyChanged?: boolean\n\n itemRef: InternalItemReference\n item: RegisterItem<Payload>\n itemBefore: P extends Clarification ? RegisterItem<Payload> : undefined\n onChange?: (newProposal: P) => void\n}\nexport const ProposalDetail: React.FC<ProposalProps<ChangeProposal>> =\nmemo(function ({ proposal, showDiff, showOnlyChanged, itemRef, item, itemBefore, onChange }) {\n const itemClass = useItemClassConfig(itemRef.classID ?? 'NONEXISTENT_CLASS_ID');\n\n if (!itemClass) {\n throw new Error(`Unknown item class “${itemRef.classID}”!`);\n }\n\n const view: JSX.Element = showDiff\n ? <InlineDiffGeneric\n item1={itemBefore ?? {}}\n item2={item}\n css={css`\n position: absolute; inset: 0; padding: 10px; overflow: auto;\n background-color: white;\n .bp4-dark & {\n background-color: ${Colors.DARK_GRAY2};\n }\n `}\n className={`${Classes.ELEVATION_2} ${Classes.RUNNING_TEXT}`}\n />\n : <ItemDetail\n itemRef={itemRef}\n item={item}\n itemClass={itemClass}\n key={JSON.stringify(itemRef)}\n compactHeader\n />;\n\n return <div css={css`position: absolute; inset: 0; display: flex; flex-flow: column;`}>\n {view}\n </div>;\n});\nexport const ProposalSummary: React.FC<ProposalProps<ChangeProposal>> =\nfunction ({ proposal, itemRef, item, itemBefore, onChange }) {\n const { itemClasses } = useContext(BrowserCtx);\n const { classID } = itemRef;\n const ListItemView = itemClasses[classID]?.views?.listItemView;\n\n if (ListItemView) {\n return <ListItemView\n itemRef={itemRef}\n itemData={item.data}\n />;\n } else {\n return <ErrorState\n viewName=\"list item view\"\n inline\n error=\"unable to load list item view\"\n />;\n }\n};\n\n\ninterface ProposalViewConfig<P extends ChangeProposal> {\n summary: React.FC<ProposalProps<P>>\n hint: JSX.Element | string\n}\n\n\nconst clarification: ProposalViewConfig<Clarification> = {\n hint: <>\n altered to represent the same concept more clearly.\n </>,\n summary: memo(({ proposal, item, itemRef }) => <>Clarification</>, () => true),\n};\n\n\nconst addition: ProposalViewConfig<Addition> = {\n hint: <>added to this register.</>,\n summary: memo(({ proposal, item, itemRef }) => <>Addition</>, () => true),\n};\n\n\nconst retirement: ProposalViewConfig<Retirement> = {\n hint: <>\n marked as no longer current.\n (Note that this register is append-only, so the item cannot be removed altogether.)\n </>,\n summary: memo(({ proposal, itemRef, item }) => <>Retirement</>, () => true),\n};\n\n\nconst supersession: ProposalViewConfig<Supersession> = {\n hint: <>\n removed from the register with another item recommended for use in its place.\n A relation between the superseding and superseded item will be created,\n though the exact semantics of that relation depend on the register.\n </>,\n summary: memo(({ proposal, itemRef, item }) => <>Supersession</>, () => true),\n};\n\n\nconst invalidation: ProposalViewConfig<Invalidation> = {\n hint: <>\n marked as invalid. The exact semantics of invalidation depend on the register.\n </>,\n summary: memo(({ proposal, itemRef, item }) => <>Invalidation</>, () => true),\n}\n\n\ntype ProposalOrAmendmentType =\n | Exclude<typeof PROPOSAL_TYPES[number], 'amendment'>\n | typeof AMENDMENT_TYPES[number];\n\n\nconst PROPOSAL_VIEWS: { [type in ProposalOrAmendmentType]: ProposalViewConfig<any> } = {\n clarification,\n addition,\n retirement,\n supersession,\n invalidation,\n} as const;\n\n\nfunction getProposalIcon(proposal: ChangeProposal): IconName {\n return proposal.type === 'addition'\n ? 'add'\n : proposal.type === 'clarification'\n ? 'edit'\n : 'ban-circle';\n}\n\n\nexport default Proposals;\n"]}
|
|
1
|
+
{"version":3,"file":"Proposals.js","sourceRoot":"","sources":["../../../src/views/change-request/Proposals.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAE9B,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EAER,GAAG,EACH,EAAE,GACH,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqB,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAY/E,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,UAAU,MAAM,qDAAqD,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAqC,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,kBAAkB,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAUpD,SAAS,oBAAoB,CAAC,EAAO,EAAE,EAAO;IAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC;AAYD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACxB,EAAE,SAAS,EAAE,6BAA6B,EAAE,SAAS,EAA4B;;IAChF,MAAM,CAAE,gBAAgB,EAAE,cAAc,CAAE,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAE,UAAU,EAAE,aAAa,CAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,gCAAgC;IAChC,4DAA4D;IAC5D,iEAAiE;IAEjE,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC;IAEtE;;;OAGG;IACH,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,aAAa,CAAC,GAA4B;QAClF,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACvB,cAAc,CAAC,QAAQ,CAAC,CAAC;aAC1B;iBAAM;gBACL,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,CAAC,CAAC;aACf;SACF;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAErC,MAAM,kBAAkB,GAAmB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,GAAG,eAAe;QAClB,MAAM,EAAE,YAAY;KACrB,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IAEtC,2CAA2C;IAC3C,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC/E,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;YACrE,OAAO,QAAQ,CAAC;SACjB;aAAM;YACL,OAAO,SAAS,CAAC;SAClB;IACH,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAa,CAAC;IAE5C,mDAAmD;IACnD,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;QAC9C,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;IAEH,uDAAuD;IACvD,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;QAC7C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,CAAC,QAAgB,EAAE,EAAE,WAAC,OAAA,MAAA,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,mCAAI,IAAI,CAAA,EAAA,CAAC,EAClE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,CAAC,QAAgB,EAAE,EAAE,WAAC,OAAA,MAAA,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,mCAAI,IAAI,CAAA,EAAA,CAAC,EACnE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/B,yEAAyE;IACzE,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvF,iEAAiE;IACjE,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzF,MAAM,eAAe,GAAG,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAEjF,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,CAAC,IAAwB,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC7D,CAAC,cAAc,CAAC,CAAC,CAAC;IAEpB,MAAM,UAAU,GAA8B,OAAO,CAAC,CAAC,GAAG,EAAE,CAC1D,gBAAgB;QACd,CAAC,CAAC,CAAC;YACC,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC;YACrC,IAAI,EAAE,CAAC,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,mBAAmB,CAAE;YACpD,UAAU,EAAE,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,SAAS;YAC5C,OAAO,EAAE,iBAAiB,CAAC,YAAY,KAAK,SAAS,EAAE,gBAAgB,CAAC;SACzE,CAAC;QACJ,CAAC,CAAC,IAAI,CACT,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAyB,OAAO,CAAC,CAAC,GAAG,EAAE,CACnD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;;QAAC,OAAA,CAAC;YACvD,QAAQ;YACR,QAAQ;YACR,IAAI,EAAE,MAAA,CAAC,MAAA,eAAe,CAAC,QAAQ,CAAC,mCAAI,cAAc,CAAC,QAAQ,CAAC,CAAE,mCAAI,IAAI;YACtE,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,iBAAiB,CAAC,YAAY,KAAK,SAAS,EAAE,QAAQ,CAAC;SACjE,CAAC,CAAA;KAAA,CAAC,CACJ,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IAEjD,MAAM,gBAAgB,GACpB,gBAAgB;WACb,eAAe;WACf,SAAS,CAAC,gBAAgB,CAAC;WAC3B,CAAC,oBAAoB,IAAI,mBAAmB,CAAC,CAAC;IAEnD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAEpD,MAAM,yBAAyB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAEtE,SAAS,CAAC,GAAG,EAAE;QACb,2BAA2B;QAC3B,qDAAqD;QACrD,yBAAyB;QACzB,6EAA6E;QAC7E,uCAAuC;QACvC,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,IAAI,gBAAgB,EAAE;YACpB,IAAI,yBAAyB,CAAC,OAAO,EAAE;gBACrC,yBAAyB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;aACvE;SACF;IACH,CAAC,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC;IAEhC,MAAM,WAAW,GACf,gBAAgB,IAAI,CAAA,MAAA,SAAS,CAAC,gBAAgB,CAAC,0CAAE,IAAI,MAAK,eAAe;QACvE,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,KAAK,CAAC;IACZ,MAAM,QAAQ,GAAG,WAAW,IAAI,UAAU,CAAC;IAE3C,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE;QACrE,MAAM,mBAAmB,GAAG,gBAAgB;YAC1C,CAAC,CAAC,IAAC,eAAe,IACd,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,CAAC,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,mBAAmB,CAAE,EACpD,UAAU,EAAE,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,SAAS,EAC5C,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC,GACrC;YACJ,CAAC,CAAC,8CAAiB,CAAC;QACtB,MAAM,IAAI,GAAG,gBAAgB;YAC3B,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC9C,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,aAAa,GAAG,CAAC,IAAI,gBAAgB,EAAE;YACzC,OAAO,CACL,IAAC,IAAI,IACD,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,CAAC,EACZ,GAAG,EAAE,GAAG,CAAA;;4BAEQ,MAAM,CAAC,WAAW;;;;;;;;;;;;aAYjC,EACD,SAAS,EAAE,SAAS;gBACtB,IAAC,WAAW;oBACV,IAAC,MAAM,IACL,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAA,MAAA,SAAS,CAAC,gBAAgB,CAAC,0CAAE,IAAI,MAAK,UAAU,EACrE,IAAI,EAAC,kBAAkB,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,SAAS,CAAC,YAAY,IAAI,gBAAgB,EAAE,CAAC,EACxE,KAAK,EAAC,wEAAwE,GAC9E;oBACF,IAAC,MAAM,IACL,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACrC,+CAA+C;wBAC/C,qDAAqD;wBACrD,0BAA0B;wBAC1B,QAAQ,EAAE,CAAC,WAAW,EACtB,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,gDAAgD,GACtD;oBACF,IAAC,UAAU,QACR,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAClB,IAAC,MAAM,IACH,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE,oBAAoB,EAChC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,qCAAqC,CAAC,EAAE,EACrE,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,QAAQ,EACf,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EACvD,IAAI,QACJ,YAAY,EAAE,sBAAsB,EACpC,YAAY,EAAE,gBAAgB;wBAChC,IAAC,MAAM,IAAC,IAAI,QAAC,SAAS,EAAC,cAAc,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAA,sBAAsB,IAC7E,mBAAmB,CACb,CACF,CACV,CACU;oBACb,IAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EACnC,IAAI,EAAC,UAAU,EACf,KAAK,EAAC,+BAA+B,EACrC,IAAI,EAAC,UAAU,GACf,CACU;gBACd,aAAK,GAAG,EAAE,GAAG,CAAA,8BAA8B,EAAE,GAAG,EAAE,yBAAyB;oBACzE,IAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,kBAAkB;wBAC5C,IAAC,aAAa,IAAC,QAAQ,EAAC,iBAAiB;4BACvC,IAAC,cAAc,IACb,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,QAAQ;gCAClB,mCAAmC;gCACnC,IAAI,EAAE,CAAC,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,mBAAmB,CAAE,EACpD,UAAU,EAAE,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,SAAS,EAC5C,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC,GACrC,CACY,CACI,CAClB,CACD,CACR,CAAC;SACH;aAAM;YACL,OAAO,CACL,0BACG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAClB,MAAM,OAAO,GAAyC,CAAC;wBACrD,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAC3C,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,4CAA4C;wBACnD,IAAI,EAAE,UAAU;qBACjB,CAAC,CAAC;gBACH,IAAI,6BAA6B,EAAE;oBACjC,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,sBAAsB;wBAC5B,MAAM,EAAE,QAAQ;wBAChB,OAAO,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAC1D,IAAI,EAAE,OAAO;qBACd,CAAC,CAAC;iBACJ;gBACD,OAAO,IAAC,aAAa,IACjB,GAAG,EAAE,GAAG,CAAA;;iBAEP,EACD,WAAW,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,WAAW,EAC5C,GAAG,EAAE,GAAG,CAAC,QAAQ;oBACnB,IAAC,YAAY,IAAC,IAAI,EAAE,GAAU,GAAI;oBAClC,aAAK,GAAG,EAAE,GAAG,CAAA,6BAA6B,IACvC,GAAG,CAAC,IAAI,KAAK,IAAI;wBAChB,CAAC,CAAC,IAAC,EAAE,IAAC,GAAG,EAAE,GAAG,CAAA,uDAAuD;4BACjE,IAAC,eAAe,IACd,OAAO,EAAE,GAAG,CAAC,OAAO,EACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,UAAU,EAAE,GAAG,CAAC,UAAU,EAC1B,IAAI,EAAE,GAAG,CAAC,IAAI,GACd,CACC;wBACP,CAAC,CAAC,gEAAwC,CACxC;oBACL,OAAO,CAAC,MAAM,GAAG,CAAC;wBACjB,CAAC,CAAC,IAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,GAAI;wBACxC,CAAC,CAAC,IAAI,CACM,CAAA;YAClB,CAAC,CAAC,CACD,CACJ,CAAC;SACH;KACF;SAAM;QACL,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAAA,CAAC;AAGF,SAAS,YAAY,CAAC,EAAE,IAAI,EAA8D;IACxF,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW;QAChC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7C,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,iFAAiF;IACjF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,CACL,IAAC,GAAG,IACF,OAAO,WACH,QAAQ,EACZ,SAAS,EAAE,IAAC,WAAW,IAAC,OAAO,EAAE;;gBAAkB,cAAc,CAAC,IAAI,CAAI,GAAI,GAC9E,CAEH,CAAC;AACJ,CAAC;AAGD,MAAM,sBAAsB,GAC5B,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;QACtB,MAAM,CAAC,GAAG,IAAwD,CAAC;QACnE,OAAO,CACL,IAAC,QAAQ,IACP,MAAM,EAAE,SAAS,CAAC,MAAM,EACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,YAAY,EAAE,IAAC,YAAY,IAAC,IAAI,EAAE,CAAC,GAAI,EACvC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EACpC,IAAI,EAAE,IAAC,eAAe,OAAK,CAAC,GAAI,GAAI,CACvC,CAAC;KACH;SAAM;QACL,OAAO,IAAC,QAAQ,IACd,QAAQ,QACR,IAAI,EAAC,cAAc,EACnB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,iCAAiC,IAAI,CAAC,QAAQ,EAAE,GACtD,CAAA;KACH;AACH,CAAC,CAAC;AAiBF,MAAM,CAAC,MAAM,cAAc,GAC3B,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE;;IACzF,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAA,OAAO,CAAC,OAAO,mCAAI,sBAAsB,CAAC,CAAC;IAEhF,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;KAC7D;IAED,MAAM,IAAI,GAAgB,QAAQ;QAChC,CAAC,CAAC,IAAC,iBAAiB,IAChB,KAAK,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,EACvB,KAAK,EAAE,IAAI,EACX,GAAG,EAAE,GAAG,CAAA;;;;gCAIgB,MAAM,CAAC,UAAU;;SAExC,EACD,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,GAC3D;QACJ,CAAC,CAAC,IAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAC5B,aAAa,SACb,CAAC;IAEP,OAAO,aAAK,GAAG,EAAE,GAAG,CAAA,iEAAiE,IAClF,IAAI,CACD,CAAC;AACT,CAAC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,eAAe,GAC5B,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE;;IACzD,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,0CAAE,YAAY,CAAC;IAE9C,IAAI,YAAY,EAAE;QAChB,OAAO;YACL,IAAC,YAAY,IACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,CAAC,IAAI,EACnB,GAAG,EAAE,GAAG,CAAA,4CAA4C,GACpD;;YAEF,mBAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAS,CAC9B,CAAC;KACL;SAAM;QACL,OAAO,IAAC,UAAU,IAChB,QAAQ,EAAC,gBAAgB,EACzB,MAAM,QACN,KAAK,EAAC,+BAA+B,GACrC,CAAC;KACJ;AACH,CAAC,CAAC;AASF,MAAM,aAAa,GAAsC;IACvD,IAAI,EAAE,gFAEH;IACH,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,0CAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;CAC/E,CAAC;AAGF,MAAM,QAAQ,GAAiC;IAC7C,IAAI,EAAE,oDAA4B;IAClC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,qCAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;CAC1E,CAAC;AAGF,MAAM,UAAU,GAAmC;IACjD,IAAI,EAAE,6IAGH;IACH,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,uCAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;CAC5E,CAAC;AAGF,MAAM,YAAY,GAAqC;IACrD,IAAI,EAAE,sPAIH;IACH,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,yCAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;CAC9E,CAAC;AAGF,MAAM,YAAY,GAAqC;IACrD,IAAI,EAAE,2GAEH;IACH,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,yCAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;CAC9E,CAAA;AAQD,MAAM,cAAc,GAAmE;IACrF,aAAa;IACb,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,YAAY;CACJ,CAAC;AAGX,SAAS,eAAe,CAAC,QAAwB;IAC/C,OAAO,QAAQ,CAAC,IAAI,KAAK,UAAU;QAC/B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe;YACjC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,YAAY,CAAC;AACvB,CAAC;AAGD,eAAe,SAAS,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React, { useEffect, useRef, useContext, useState, useCallback, memo, useMemo } from 'react';\nimport { ClassNames, jsx, css } from '@emotion/react';\nimport {\n Card,\n ButtonGroup,\n Button,\n Classes,\n Colors,\n MenuItem, type MenuItemProps, type MenuDividerProps,\n type IconName,\n Tag,\n H5,\n} from '@blueprintjs/core';\nimport { type ItemRenderer, Select2 as Select } from '@blueprintjs/select';\nimport HelpTooltip from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';\nimport type {\n Addition,\n ChangeProposal,\n Clarification,\n InternalItemReference,\n Retirement,\n Supersession,\n Invalidation,\n Payload,\n RegisterItem,\n} from '../../types';\nimport ErrorBoundary from '@riboseinc/paneron-extension-kit/widgets/ErrorBoundary';\nimport ErrorState from '@riboseinc/paneron-extension-kit/widgets/ErrorState';\nimport type { Drafted } from '../../types/cr';\nimport { Protocols, type Protocol } from '../protocolRegistry';\nimport { PROPOSAL_TYPES, AMENDMENT_TYPES } from '../../types/proposal';\nimport { BrowserCtx, type BrowserCtx as BrowserCtxType } from '../BrowserCtx';\nimport { useItemRef, itemPathToItemRef } from '../itemPathUtils';\nimport useItemClassConfig from '../hooks/useItemClassConfig';\nimport { InlineDiffGeneric } from '../diffing/InlineDiff';\nimport { proposalToTagProps } from './util';\nimport { HomeBlockCard, HomeBlockActions } from '../detail/RegisterHome/Block';\nimport { ItemDetail } from '../detail/RegisterItem';\n\n\ninterface ChangeProposalItem {\n itemPath: string\n itemRef: InternalItemReference\n proposal: ChangeProposal\n item: RegisterItem<Payload> | null\n itemBefore: RegisterItem<Payload> | undefined\n}\nfunction stringifiedJSONEqual(i1: any, i2: any): boolean {\n return JSON.stringify(i1) === JSON.stringify(i2);\n}\n\n\ninterface ProposalBrowserProps<CR extends Drafted> {\n proposals: CR['items']\n /**\n * If provided, button to delete each proposed change\n * is shown in change card list mode.\n */\n onDeleteProposalForItemAtPath?: (itemPath: string) => void\n className?: string\n}\n/**\n * Shows a list of individual proposed changes as cards by default,\n * allowing to expand a proposal and view item details.\n *\n * If no proposals exist, returns null.\n */\nexport function Proposals<CR extends Drafted>\n({ proposals, onDeleteProposalForItemAtPath, className }: ProposalBrowserProps<CR>) {\n const [ selectedProposal, selectProposal ] = useState<string | null>(null);\n const [ preferDiff, setPreferDiff ] = useState(false);\n\n // TODO: Temporarily unsupported\n // (limitations of current change annotation implementation)\n //const [ showOnlyChanged, setShowOnlyChanged ] = useState(true);\n\n const outerBrowserCtx = useContext(BrowserCtx);\n const { jumpTo, subregisters, useRegisterItemData } = outerBrowserCtx;\n\n /**\n * When jumping to an item affected by current CR,\n * jump in-CR instead of spawning tab.\n */\n const handleCRJump = useCallback(function _handleCRJump(uri: `${Protocol}:${string}`): void {\n if (uri.startsWith(Protocols.ITEM_DETAILS)) {\n const itemPath = uri.split(':')[1];\n if (proposals[itemPath]) {\n selectProposal(itemPath);\n } else {\n jumpTo?.(uri);\n }\n }\n }, [Object.keys(proposals), jumpTo]);\n\n const proposalBrowserCtx: BrowserCtxType = useMemo((() => ({\n ...outerBrowserCtx,\n jumpTo: handleCRJump,\n })), [handleCRJump, outerBrowserCtx]);\n\n /** Paths of register items in proposal. */\n const proposedItemPaths = Object.entries(proposals).map(([itemPath, proposal]) => {\n if (proposal.type === 'clarification' || proposal.type === 'addition') {\n return itemPath;\n } else {\n return undefined;\n }\n }).filter(s => s !== undefined) as string[];\n\n /** Proposed data of register items in proposal. */\n const proposedItemDataReq = useRegisterItemData({\n itemPaths: proposedItemPaths,\n });\n\n /** Pre-existing data of register items in proposal. */\n const currentItemDataReq = useRegisterItemData({\n itemPaths: Object.keys(proposals),\n ignoreActiveCR: true,\n });\n\n const getCurrentItem = useCallback(\n ((itemPath: string) => currentItemDataReq.value[itemPath] ?? null),\n [currentItemDataReq.value]);\n const getProposedItem = useCallback(\n ((itemPath: string) => proposedItemDataReq.value[itemPath] ?? null),\n [proposedItemDataReq.value]);\n\n /** Current register item (if any) corresponding to selected proposal. */\n const selectedItemCurrent = selectedProposal ? getCurrentItem(selectedProposal) : null;\n\n /** Proposed register item corresponding to selected proposal. */\n const selectedItemProposed = selectedProposal ? getProposedItem(selectedProposal) : null;\n\n const selectedItemRef = useItemRef(subregisters !== undefined, selectedProposal);\n\n const handleItemSelect = useCallback(\n ((item: ChangeProposalItem) => selectProposal(item.itemPath)),\n [selectProposal]);\n\n const activeItem: ChangeProposalItem | null = useMemo((() =>\n selectedProposal\n ? ({\n itemPath: selectedProposal,\n proposal: proposals[selectedProposal],\n item: (selectedItemProposed ?? selectedItemCurrent)!,\n itemBefore: selectedItemCurrent ?? undefined,\n itemRef: itemPathToItemRef(subregisters !== undefined, selectedProposal),\n })\n : null\n ), [selectedProposal, proposals, subregisters]);\n\n const allItems: ChangeProposalItem[] = useMemo((() =>\n Object.entries(proposals).map(([itemPath, proposal]) => ({\n itemPath,\n proposal,\n item: (getProposedItem(itemPath) ?? getCurrentItem(itemPath))! ?? null,\n itemBefore: undefined,\n itemRef: itemPathToItemRef(subregisters !== undefined, itemPath),\n }))\n ), [proposals, getCurrentItem, getProposedItem]);\n\n const haveSelectedItem =\n selectedProposal\n && selectedItemRef\n && proposals[selectedProposal]\n && (selectedItemProposed || selectedItemCurrent);\n\n const proposalCount = Object.keys(proposals).length;\n\n const selectedProposalDetailRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n // if (!selectedProposal) {\n // const firstProposal = Object.keys(proposals)[0];\n // if (firstProposal) {\n // if (getCurrentItem(firstProposal) || getProposedItem(firstProposal)) {\n // selectProposal(firstProposal);\n // }\n // }\n // }\n if (selectedProposal) {\n if (selectedProposalDetailRef.current) {\n selectedProposalDetailRef.current.scrollIntoView({ block: 'center' });\n }\n }\n }, [selectedProposal === null]);\n\n const canShowDiff: boolean =\n haveSelectedItem && proposals[selectedProposal]?.type === 'clarification'\n ? true\n : false;\n const showDiff = canShowDiff && preferDiff;\n\n if (!currentItemDataReq.isUpdating && !proposedItemDataReq.isUpdating) {\n const selectedItemSummary = haveSelectedItem\n ? <ProposalSummary\n itemRef={selectedItemRef}\n item={(selectedItemProposed ?? selectedItemCurrent)!}\n itemBefore={selectedItemCurrent ?? undefined}\n proposal={proposals[selectedProposal]}\n />\n : <>Select item…</>;\n const icon = haveSelectedItem\n ? getProposalIcon(proposals[selectedProposal])\n : undefined;\n\n if (proposalCount > 0 && haveSelectedItem) {\n return (\n <Card\n key={selectedProposal}\n elevation={0}\n css={css`\n flex: 100%;\n background: ${Colors.LIGHT_GRAY3};\n padding: 0;\n min-height: 70vh;\n\n overflow: hidden;\n\n border-radius: 5px;\n display: flex;\n flex-flow: column nowrap;\n transition:\n width .5s linear\n height .5s linear;\n `}\n className={className}>\n <ButtonGroup>\n <Button\n disabled={!jumpTo || proposals[selectedProposal]?.type === 'addition'}\n icon='open-application'\n onClick={() => jumpTo?.(`${Protocols.ITEM_DETAILS}:${selectedProposal}`)}\n title=\"Open selected item in a new tab (not applicable to proposed additions)\"\n />\n <Button\n active={preferDiff}\n onClick={() => setPreferDiff(v => !v)}\n // Diffing only makes sense for clarifications.\n // Additions are entire new items, and for amendments\n // item data is unchanged.\n disabled={!canShowDiff}\n text=\"Compare\"\n title=\"Annotate proposed clarifications for this item\"\n />\n <ClassNames>\n {(({ css: css2 }) =>\n <Select<ChangeProposalItem>\n filterable={false}\n itemsEqual={stringifiedJSONEqual}\n menuProps={{ className: css2(`max-height: 50vh; overflow-y: auto;`) }}\n activeItem={activeItem}\n items={allItems}\n popoverProps={{ minimal: true, matchTargetWidth: true }}\n fill\n itemRenderer={ChangeProposalItemView}\n onItemSelect={handleItemSelect}>\n <Button fill rightIcon=\"chevron-down\" icon={icon} css={css`white-space: nowrap;`}>\n {selectedItemSummary}\n </Button>\n </Select>\n )}\n </ClassNames>\n <Button\n onClick={() => selectProposal(null)}\n icon=\"minimize\"\n title=\"Minimize proposed change view\"\n text=\"Minimize\"\n />\n </ButtonGroup>\n <div css={css`position: relative; flex: 1;`} ref={selectedProposalDetailRef}>\n <BrowserCtx.Provider value={proposalBrowserCtx}>\n <ErrorBoundary viewName=\"Proposal detail\">\n <ProposalDetail\n itemRef={selectedItemRef}\n showDiff={showDiff}\n //showOnlyChanged={showOnlyChanged}\n item={(selectedItemProposed ?? selectedItemCurrent)!}\n itemBefore={selectedItemCurrent ?? undefined}\n proposal={proposals[selectedProposal]}\n />\n </ErrorBoundary>\n </BrowserCtx.Provider>\n </div>\n </Card>\n );\n } else {\n return (\n <>\n {allItems.map(cpi => {\n const actions: (MenuItemProps | MenuDividerProps)[] = [{\n onClick: () => selectProposal(cpi.itemPath),\n text: \"Expand\",\n title: \"Expand proposed change to see item details\",\n icon: 'maximize',\n }];\n if (onDeleteProposalForItemAtPath) {\n actions.push({\n text: \"Delete this proposal\",\n intent: 'danger',\n onClick: () => onDeleteProposalForItemAtPath(cpi.itemPath),\n icon: 'trash',\n });\n }\n return <HomeBlockCard\n css={css`\n flex-basis: calc(33.33% - 10px*2/3);\n `}\n description={`${cpi.proposal.type} proposal`}\n key={cpi.itemPath}>\n <ProposalType item={cpi as any} />\n <div css={css`padding: 5px; flex-grow: 1;`}>\n {cpi.item !== null\n ? <H5 css={css`margin: 0; overflow: hidden; text-overflow: ellipsis;`}>\n <ProposalSummary\n itemRef={cpi.itemRef}\n proposal={cpi.proposal}\n itemBefore={cpi.itemBefore}\n item={cpi.item}\n />\n </H5>\n : <>Problem reading proposed item data.</>}\n </div>\n {actions.length > 0\n ? <HomeBlockActions actions={actions} />\n : null}\n </HomeBlockCard>\n })}\n </>\n );\n }\n } else {\n return null;\n }\n};\n\n\nfunction ProposalType({ item }: { item: ChangeProposalItem & { item: RegisterItem<any> } }) {\n const proposalConfig = \n item.proposal.type === 'amendment'\n ? PROPOSAL_VIEWS[item.proposal.amendmentType]\n : PROPOSAL_VIEWS[item.proposal.type];\n //const ProposalTypeLabel: React.FC<ProposalProps<any>> = proposalConfig.summary;\n const tagProps = proposalToTagProps(item.proposal);\n return (\n <Tag\n minimal\n {...tagProps}\n rightIcon={<HelpTooltip content={<>Proposed to be {proposalConfig.hint}</>} />}\n />\n \n );\n}\n\n\nconst ChangeProposalItemView: ItemRenderer<ChangeProposalItem> =\n(item, { handleClick, modifiers, query }) => {\n if (item.item !== null) {\n const i = item as ChangeProposalItem & { item: RegisterItem<any> };\n return (\n <MenuItem\n active={modifiers.active}\n disabled={modifiers.disabled}\n labelElement={<ProposalType item={i} />}\n key={item.itemPath}\n onClick={handleClick}\n icon={getProposalIcon(item.proposal)}\n text={<ProposalSummary {...i} />} />\n );\n } else {\n return <MenuItem\n disabled\n icon=\"heart-broken\"\n onClick={handleClick}\n text={`Broken proposal entry at path ${item.itemPath}`}\n />\n }\n};\n\n\ninterface ProposalProps<P extends ChangeProposal> {\n proposal: P\n\n /** Highlight changes. */\n showDiff?: boolean\n\n /** In diff mode, only show changed data. (Provisional.) */\n showOnlyChanged?: boolean\n\n itemRef: InternalItemReference\n item: RegisterItem<Payload>\n itemBefore: P extends Clarification ? RegisterItem<Payload> : undefined\n onChange?: (newProposal: P) => void\n}\nexport const ProposalDetail: React.FC<ProposalProps<ChangeProposal>> =\nmemo(function ({ proposal, showDiff, showOnlyChanged, itemRef, item, itemBefore, onChange }) {\n const itemClass = useItemClassConfig(itemRef.classID ?? 'NONEXISTENT_CLASS_ID');\n\n if (!itemClass) {\n throw new Error(`Unknown item class “${itemRef.classID}”!`);\n }\n\n const view: JSX.Element = showDiff\n ? <InlineDiffGeneric\n item1={itemBefore ?? {}}\n item2={item}\n css={css`\n position: absolute; inset: 0; padding: 10px; overflow: auto;\n background-color: white;\n .bp4-dark & {\n background-color: ${Colors.DARK_GRAY2};\n }\n `}\n className={`${Classes.ELEVATION_2} ${Classes.RUNNING_TEXT}`}\n />\n : <ItemDetail\n itemRef={itemRef}\n item={item}\n itemClass={itemClass}\n key={JSON.stringify(itemRef)}\n compactHeader\n />;\n\n return <div css={css`position: absolute; inset: 0; display: flex; flex-flow: column;`}>\n {view}\n </div>;\n});\nexport const ProposalSummary: React.FC<ProposalProps<ChangeProposal>> =\nfunction ({ proposal, itemRef, item, itemBefore, onChange }) {\n const { itemClasses } = useContext(BrowserCtx);\n const { classID } = itemRef;\n const cls = itemClasses[classID];\n const ListItemView = cls?.views?.listItemView;\n\n if (ListItemView) {\n return <>\n <ListItemView\n itemRef={itemRef}\n itemData={item.data}\n css={css`text-overflow: ellipsis; overflow: hidden;`}\n />\n  \n <small>{cls.meta.title}</small>\n </>;\n } else {\n return <ErrorState\n viewName=\"list item view\"\n inline\n error=\"unable to load list item view\"\n />;\n }\n};\n\n\ninterface ProposalViewConfig<P extends ChangeProposal> {\n summary: React.FC<ProposalProps<P>>\n hint: JSX.Element | string\n}\n\n\nconst clarification: ProposalViewConfig<Clarification> = {\n hint: <>\n altered to represent the same concept more clearly.\n </>,\n summary: memo(({ proposal, item, itemRef }) => <>Clarification</>, () => true),\n};\n\n\nconst addition: ProposalViewConfig<Addition> = {\n hint: <>added to this register.</>,\n summary: memo(({ proposal, item, itemRef }) => <>Addition</>, () => true),\n};\n\n\nconst retirement: ProposalViewConfig<Retirement> = {\n hint: <>\n marked as no longer current.\n (Note that this register is append-only, so the item cannot be removed altogether.)\n </>,\n summary: memo(({ proposal, itemRef, item }) => <>Retirement</>, () => true),\n};\n\n\nconst supersession: ProposalViewConfig<Supersession> = {\n hint: <>\n removed from the register with another item recommended for use in its place.\n A relation between the superseding and superseded item will be created,\n though the exact semantics of that relation depend on the register.\n </>,\n summary: memo(({ proposal, itemRef, item }) => <>Supersession</>, () => true),\n};\n\n\nconst invalidation: ProposalViewConfig<Invalidation> = {\n hint: <>\n marked as invalid. The exact semantics of invalidation depend on the register.\n </>,\n summary: memo(({ proposal, itemRef, item }) => <>Invalidation</>, () => true),\n}\n\n\ntype ProposalOrAmendmentType =\n | Exclude<typeof PROPOSAL_TYPES[number], 'amendment'>\n | typeof AMENDMENT_TYPES[number];\n\n\nconst PROPOSAL_VIEWS: { [type in ProposalOrAmendmentType]: ProposalViewConfig<any> } = {\n clarification,\n addition,\n retirement,\n supersession,\n invalidation,\n} as const;\n\n\nfunction getProposalIcon(proposal: ChangeProposal): IconName {\n return proposal.type === 'addition'\n ? 'add'\n : proposal.type === 'clarification'\n ? 'edit'\n : 'ban-circle';\n}\n\n\nexport default Proposals;\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.proposalToTagProps = proposalToTagProps;
|
|
7
|
+
|
|
8
|
+
/** Returns props for a Tag that classifies this proposal. */
|
|
9
|
+
function proposalToTagProps(proposal) {
|
|
10
|
+
return {
|
|
11
|
+
children: proposal.type === 'amendment' ? proposal.amendmentType : proposal.type === 'addition' ? "addition" : proposal.type === 'clarification' ? "clarification" : "(unknown proposal type)",
|
|
12
|
+
intent: proposal.type === 'amendment' ? 'warning' : proposal.type === 'addition' || proposal.type === 'clarification' ? 'primary' : undefined
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/views/change-request/util.ts"],"names":[],"mappings":"AAIA,6DAA6D;AAC7D,MAAM,UAAU,kBAAkB,CAAC,QAAwB;IACzD,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,IAAI,KAAK,WAAW;YACrC,CAAC,CAAC,QAAQ,CAAC,aAAa;YACxB,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU;gBAC5B,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe;oBACjC,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,yBAAyB;QACjC,MAAM,EAAE,QAAQ,CAAC,IAAI,KAAK,WAAW;YACnC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe;gBACjE,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC","sourcesContent":["import { type TagProps } from '@blueprintjs/core';\nimport { type ChangeProposal } from '../../types/proposal';\n\n\n/** Returns props for a Tag that classifies this proposal. */\nexport function proposalToTagProps(proposal: ChangeProposal): TagProps {\n return {\n children: proposal.type === 'amendment'\n ? proposal.amendmentType\n : proposal.type === 'addition'\n ? \"addition\"\n : proposal.type === 'clarification'\n ? \"clarification\"\n : \"(unknown proposal type)\",\n intent: proposal.type === 'amendment'\n ? 'warning'\n : proposal.type === 'addition' || proposal.type === 'clarification'\n ? 'primary'\n : undefined,\n }\n}\n"]}
|
|
@@ -67,7 +67,8 @@ const MaybeChangeRequest = (0, _react.memo)(function ({
|
|
|
67
67
|
const {
|
|
68
68
|
changeRequest: cr,
|
|
69
69
|
canTransition,
|
|
70
|
-
deleteCR
|
|
70
|
+
deleteCR,
|
|
71
|
+
updateItemProposal
|
|
71
72
|
} = (0, _react.useContext)(_ChangeRequestContext.ChangeRequestContext);
|
|
72
73
|
const handleDelete = (0, _react.useCallback)(async () => {
|
|
73
74
|
if (deleteCR) {
|
|
@@ -75,10 +76,14 @@ const MaybeChangeRequest = (0, _react.memo)(function ({
|
|
|
75
76
|
closeTabWithURI(`${_protocolRegistry.Protocols.CHANGE_REQUEST}:${uri}`);
|
|
76
77
|
}
|
|
77
78
|
}, [deleteCR, closeTabWithURI]);
|
|
79
|
+
const handleDeleteProposalAtItemPath = (0, _react.useCallback)(async function handleDeleteProposalAtItemPath(itemPath) {
|
|
80
|
+
return await (updateItemProposal === null || updateItemProposal === void 0 ? void 0 : updateItemProposal("remove proposed change from proposal draft", null, itemPath));
|
|
81
|
+
}, [updateItemProposal]);
|
|
78
82
|
return cr ? (0, _react2.jsx)(ChangeRequestDetails, {
|
|
79
83
|
cr: cr,
|
|
80
84
|
canTransition: canTransition,
|
|
81
85
|
onDelete: deleteCR ? handleDelete : undefined,
|
|
86
|
+
onDeleteProposalForItemAtPath: updateItemProposal ? handleDeleteProposalAtItemPath : undefined,
|
|
82
87
|
css: (0, _react2.css)`
|
|
83
88
|
position: absolute;
|
|
84
89
|
inset: 0;
|
|
@@ -98,6 +103,7 @@ const ChangeRequestDetails = (0, _react.memo)(function ({
|
|
|
98
103
|
cr,
|
|
99
104
|
canTransition,
|
|
100
105
|
onDelete,
|
|
106
|
+
onDeleteProposalForItemAtPath,
|
|
101
107
|
className
|
|
102
108
|
}) {
|
|
103
109
|
const {
|
|
@@ -117,14 +123,14 @@ const ChangeRequestDetails = (0, _react.memo)(function ({
|
|
|
117
123
|
const hasItems = crItemEntries.length > 0;
|
|
118
124
|
const proposals = (0, _react.useMemo)(() => hasItems ? (0, _react2.jsx)(_Proposals.default, {
|
|
119
125
|
proposals: cr.items,
|
|
120
|
-
|
|
126
|
+
onDeleteProposalForItemAtPath: onDeleteProposalForItemAtPath
|
|
121
127
|
}) : (0, _react2.jsx)(_core.NonIdealState, {
|
|
122
128
|
icon: "clean",
|
|
123
129
|
title: "Nothing is proposed here yet.",
|
|
124
130
|
description: onDelete ? (0, _react2.jsx)(_core.Button, {
|
|
125
131
|
onClick: onDelete
|
|
126
132
|
}, "Delete this CR draft") : undefined
|
|
127
|
-
}), [onDelete, hasItems]);
|
|
133
|
+
}), [onDelete, onDeleteProposalForItemAtPath, hasItems]);
|
|
128
134
|
const classification = (0, _react.useMemo)(() => {
|
|
129
135
|
var _a;
|
|
130
136
|
|
|
@@ -192,32 +198,26 @@ const ChangeRequestDetails = (0, _react.memo)(function ({
|
|
|
192
198
|
title: (0, _util2.maybeEllipsizeString)(cr.justification, 70),
|
|
193
199
|
classification: classification,
|
|
194
200
|
layout: "card-grid",
|
|
201
|
+
layoutOptions: {
|
|
202
|
+
stretch: true
|
|
203
|
+
},
|
|
195
204
|
actions: actions
|
|
196
|
-
}, helmet, (0, _react2.jsx)(_core.Card, {
|
|
197
|
-
elevation: 0,
|
|
198
|
-
css: (0, _react2.css)`
|
|
199
|
-
flex: 100%;
|
|
200
|
-
background: ${_core.Colors.LIGHT_GRAY3};
|
|
201
|
-
padding: 0;
|
|
202
|
-
display: flex;
|
|
203
|
-
min-height: 70vh;
|
|
204
|
-
`
|
|
205
|
-
}, proposals), (0, _react2.jsx)(_core.Card, {
|
|
205
|
+
}, helmet, proposals, (0, _react2.jsx)(_core.Card, {
|
|
206
206
|
elevation: 1,
|
|
207
|
-
css: (0, _react2.css)`flex:
|
|
207
|
+
css: (0, _react2.css)`flex: 100%; padding: 11px;`
|
|
208
208
|
}, (0, _react2.jsx)(_DL.default, null, (0, _react2.jsx)(_Summary.default, {
|
|
209
209
|
cr: cr,
|
|
210
210
|
currentStakeholder: stakeholder,
|
|
211
211
|
registerMetadata: registerMetadata !== null && registerMetadata !== void 0 ? registerMetadata : undefined
|
|
212
212
|
}))), (0, _react2.jsx)(_core.Card, {
|
|
213
213
|
elevation: 1,
|
|
214
|
-
css: (0, _react2.css)`flex:
|
|
214
|
+
css: (0, _react2.css)`flex: calc(50% - 10px); flex-grow: 1; padding: 11px;`
|
|
215
215
|
}, (0, _react2.jsx)(_TransitionHistory.default, {
|
|
216
216
|
pastTransitions: (0, _TransitionHistory.getTransitionHistory)(cr),
|
|
217
217
|
isFinal: (0, _TransitionOptions.isFinalState)(cr.state)
|
|
218
218
|
})), canTransition ? (0, _react2.jsx)(_core.Card, {
|
|
219
219
|
elevation: 3,
|
|
220
|
-
css: (0, _react2.css)`flex:
|
|
220
|
+
css: (0, _react2.css)`flex: calc(50% - 10px); flex-grow: 1; padding: 11px;`
|
|
221
221
|
}, (0, _react2.jsx)(_TransitionOptions.default, {
|
|
222
222
|
transitions: stakeholder ? (0, _TransitionOptions.getTransitions)(cr, stakeholder) : [],
|
|
223
223
|
stakeholder: stakeholder,
|
|
@@ -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, { useContext, useMemo, memo, useCallback } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport {\n Button,\n Card,\n Colors,\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 { changeRequest: cr, canTransition, deleteCR } = useContext(ChangeRequestContext);\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 return (cr\n ? <ChangeRequestDetails\n cr={cr}\n canTransition={canTransition}\n onDelete={deleteCR ? handleDelete : 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 className?: string,\n}> = memo(function ({ cr, canTransition, onDelete, 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 proposals = useMemo((() =>\n hasItems\n ? <Proposals proposals={cr.items} css={css`flex: 1;`} />\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, 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 actions={actions}>\n\n {helmet}\n\n <Card elevation={0} css={css`\n flex: 100%;\n background: ${Colors.LIGHT_GRAY3};\n padding: 0;\n display: flex;\n min-height: 70vh;\n `}>\n {proposals}\n </Card>\n\n <Card elevation={1} css={css`flex: 30%; 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: 30%; 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: 30%; 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, { 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 proposals = useMemo((() =>\n hasItems\n ? <Proposals\n proposals={cr.items}\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, 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 +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,SAAS;gBACT,CAAC,CAAC,CAAC;wBACC,IAAI,EAAE,4BAA4B;wBAClC,OAAO,EAAE,QAAQ;wBACjB,QAAQ,EAAE,CAAC,QAAQ;wBACnB,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,QAAQ;qBACjB,CAAC;gBACJ,CAAC,CAAC,EAAE,CAAC;QAET,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,
|
|
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 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 : canDelete\n ? [{\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 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"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/** @jsxFrag React.Fragment */
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { jsx } from '@emotion/react';
|
|
5
|
-
import { type MenuItemProps } from '@blueprintjs/core';
|
|
5
|
+
import { type MenuItemProps, type MenuDividerProps } from '@blueprintjs/core';
|
|
6
6
|
interface HomeBlockProps<P extends Record<string, any>> {
|
|
7
7
|
description: string;
|
|
8
8
|
View: React.VoidFunctionComponent<P>;
|
|
@@ -11,9 +11,19 @@ interface HomeBlockProps<P extends Record<string, any>> {
|
|
|
11
11
|
/** Shown if `props` is `null`. */
|
|
12
12
|
error?: string | JSX.Element;
|
|
13
13
|
/** Shown beneath `View`. */
|
|
14
|
-
actions?: MenuItemProps[];
|
|
14
|
+
actions?: (MenuItemProps | MenuDividerProps)[];
|
|
15
15
|
/** Applies to wrapper card div. */
|
|
16
16
|
className?: string;
|
|
17
17
|
}
|
|
18
18
|
export default function HomeBlock<P extends Record<string, any>>({ View, description, props, error, actions, className }: HomeBlockProps<P>): jsx.JSX.Element;
|
|
19
|
+
export declare function HomeBlockActions({ actions }: {
|
|
20
|
+
actions?: (MenuItemProps | MenuDividerProps)[];
|
|
21
|
+
}): jsx.JSX.Element;
|
|
22
|
+
export declare const HomeBlockCard: import("@emotion/styled").StyledComponent<{
|
|
23
|
+
description: string;
|
|
24
|
+
} & import("@blueprintjs/core").ICardProps & {
|
|
25
|
+
children?: React.ReactNode;
|
|
26
|
+
} & {
|
|
27
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
28
|
+
}, {}, {}>;
|
|
19
29
|
export {};
|
|
@@ -4,6 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = HomeBlock;
|
|
7
|
+
exports.HomeBlockActions = HomeBlockActions;
|
|
8
|
+
exports.HomeBlockCard = void 0;
|
|
9
|
+
|
|
10
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
7
11
|
|
|
8
12
|
var _react = require("@emotion/react");
|
|
9
13
|
|
|
@@ -11,6 +15,8 @@ var _core = require("@blueprintjs/core");
|
|
|
11
15
|
|
|
12
16
|
var _util = require("../../util");
|
|
13
17
|
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
14
20
|
//import { Helmet } from 'react-helmet';
|
|
15
21
|
function HomeBlock({
|
|
16
22
|
View,
|
|
@@ -22,15 +28,7 @@ function HomeBlock({
|
|
|
22
28
|
}) {
|
|
23
29
|
var _a;
|
|
24
30
|
|
|
25
|
-
return (0, _react.jsx)(
|
|
26
|
-
css: (0, _react.css)`
|
|
27
|
-
padding: 5px;
|
|
28
|
-
display: flex; flex-flow: column nowrap;
|
|
29
|
-
overflow: hidden;
|
|
30
|
-
transition:
|
|
31
|
-
width .5s linear,
|
|
32
|
-
height .5s linear;
|
|
33
|
-
`,
|
|
31
|
+
return (0, _react.jsx)(HomeBlockCard, {
|
|
34
32
|
description: description,
|
|
35
33
|
className: className
|
|
36
34
|
}, props ? (0, _react.jsx)(View, { ...props
|
|
@@ -40,10 +38,38 @@ function HomeBlock({
|
|
|
40
38
|
icon: "heart-broken",
|
|
41
39
|
title: "Failed to load",
|
|
42
40
|
description: error
|
|
43
|
-
}), ((_a = actions === null || actions === void 0 ? void 0 : actions.length) !== null && _a !== void 0 ? _a : 0) > 0 ? (0, _react.jsx)(
|
|
44
|
-
|
|
45
|
-
}
|
|
41
|
+
}), ((_a = actions === null || actions === void 0 ? void 0 : actions.length) !== null && _a !== void 0 ? _a : 0) > 0 ? (0, _react.jsx)(HomeBlockActions, {
|
|
42
|
+
actions: actions
|
|
43
|
+
}) : null);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function HomeBlockActions({
|
|
47
|
+
actions
|
|
48
|
+
}) {
|
|
49
|
+
return (0, _react.jsx)(HomeBlockActionMenu, null, actions.map((mip, idx) => isMenuItemProps(mip) ? (0, _react.jsx)(_core.MenuItem, {
|
|
46
50
|
key: idx,
|
|
47
51
|
...mip
|
|
48
|
-
})
|
|
49
|
-
|
|
52
|
+
}) : (0, _react.jsx)(_core.MenuDivider, {
|
|
53
|
+
key: idx,
|
|
54
|
+
...mip
|
|
55
|
+
})));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function isMenuItemProps(val) {
|
|
59
|
+
const p = val;
|
|
60
|
+
return p.onClick || p.disabled || p.icon || p.selected || p.active ? true : false;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const HomeBlockActionMenu = (0, _styled.default)(_core.Menu)`
|
|
64
|
+
background: none !important;
|
|
65
|
+
flex-shrink: 0;
|
|
66
|
+
`;
|
|
67
|
+
const HomeBlockCard = (0, _styled.default)(_util.CardInGrid)`
|
|
68
|
+
padding: 5px;
|
|
69
|
+
display: flex; flex-flow: column nowrap;
|
|
70
|
+
overflow: hidden;
|
|
71
|
+
transition:
|
|
72
|
+
width .5s linear,
|
|
73
|
+
height .5s linear;
|
|
74
|
+
`;
|
|
75
|
+
exports.HomeBlockCard = HomeBlockCard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Block.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterHome/Block.tsx"],"names":[],"mappings":"AAGA,wCAAwC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"Block.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterHome/Block.tsx"],"names":[],"mappings":"AAGA,wCAAwC;AACxC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EACL,IAAI,EACJ,QAAQ,EAAE,WAAW,EAErB,aAAa,EACb,OAAO,GACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAmBxC,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAqB;;IAE1E,OAAO,CACL,IAAC,aAAa,IACV,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS;QACrB,KAAK;YACJ,CAAC,CAAC,IAAC,IAAI,OAAK,KAAK,GAAI;YACrB,CAAC,CAAC,KAAK,KAAK,SAAS;gBACnB,CAAC,CAAC,IAAC,aAAa,IAAC,IAAI,EAAE,IAAC,OAAO,OAAG,GAAI;gBACtC,CAAC,CAAC,IAAC,aAAa,IAAC,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,gBAAgB,EAAC,WAAW,EAAE,KAAK,GAAI;QACrF,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC;YACzB,CAAC,CAAC,IAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,GAAI;YACxC,CAAC,CAAC,IAAI,CACM,CACjB,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAsD;IAC9F,OAAO,IAAC,mBAAmB,QACxB,OAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACzB,eAAe,CAAC,GAAG,CAAC;QAClB,CAAC,CAAC,IAAC,QAAQ,IAAC,GAAG,EAAE,GAAG,KAAO,GAAqB,GAAK;QACrD,CAAC,CAAC,IAAC,WAAW,IAAC,GAAG,EAAE,GAAG,KAAM,GAAG,GAAK,CACxC,CACmB,CAAA;AACxB,CAAC;AAGD,SAAS,eAAe,CAAC,GAAqC;IAC5D,MAAM,CAAC,GAAG,GAAU,CAAC;IACrB,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACpF,CAAC;AAGD,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;;;CAGvC,CAAC;AAGF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;;;;;;CAO9C,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\nimport React from 'react';\n//import { Helmet } from 'react-helmet';\nimport styled from '@emotion/styled';\nimport { jsx } from '@emotion/react';\nimport {\n Menu,\n MenuItem, MenuDivider,\n type MenuItemProps, type MenuDividerProps,\n NonIdealState,\n Spinner,\n} from '@blueprintjs/core';\nimport { CardInGrid } from '../../util';\n\n\ninterface HomeBlockProps<P extends Record<string, any>> {\n description: string,\n View: React.VoidFunctionComponent<P>,\n\n /** Props to pass the `View`. */\n props: P | null | undefined,\n\n /** Shown if `props` is `null`. */\n error?: string | JSX.Element,\n\n /** Shown beneath `View`. */\n actions?: (MenuItemProps | MenuDividerProps)[],\n\n /** Applies to wrapper card div. */\n className?: string,\n}\nexport default function HomeBlock<P extends Record<string, any>>(\n { View, description, props, error, actions, className }: HomeBlockProps<P>\n) {\n return (\n <HomeBlockCard\n description={description}\n className={className}>\n {props\n ? <View {...props} />\n : props === undefined\n ? <NonIdealState icon={<Spinner />} />\n : <NonIdealState icon=\"heart-broken\" title=\"Failed to load\" description={error} />}\n {(actions?.length ?? 0) > 0\n ? <HomeBlockActions actions={actions} />\n : null}\n </HomeBlockCard>\n );\n}\n\n\nexport function HomeBlockActions({ actions }: { actions?: (MenuItemProps | MenuDividerProps)[] }) {\n return <HomeBlockActionMenu>\n {actions!.map((mip, idx) =>\n isMenuItemProps(mip)\n ? <MenuItem key={idx} {...(mip as MenuItemProps) } />\n : <MenuDivider key={idx} {...mip } />\n )}\n </HomeBlockActionMenu>\n}\n\n\nfunction isMenuItemProps(val: MenuItemProps | MenuDividerProps): val is MenuItemProps {\n const p = val as any;\n return p.onClick || p.disabled || p.icon || p.selected || p.active ? true : false;\n}\n\n\nconst HomeBlockActionMenu = styled(Menu)`\n background: none !important;\n flex-shrink: 0;\n`;\n\n\nexport const HomeBlockCard = styled(CardInGrid)`\n padding: 5px;\n display: flex; flex-flow: column nowrap;\n overflow: hidden;\n transition:\n width .5s linear,\n height .5s linear;\n`;\n"]}
|
|
@@ -26,13 +26,13 @@ const MetaSummary = function ({
|
|
|
26
26
|
|
|
27
27
|
return (0, _react.jsx)(_DL.default, {
|
|
28
28
|
style: style
|
|
29
|
-
}, (0, _react.jsx)("div", null, (0, _react.jsx)("dt", null, "Viewing\u00A0version:"), (0, _react.jsx)("dd", null, ((_a = register.version) === null || _a === void 0 ? void 0 : _a.id) || 'N/A')), (0, _react.jsx)("div", null, (0, _react.jsx)("dt", null, "Register\u00A0name:"), (0, _react.jsx)("dd", null, register.name)), (0, _react.jsx)("div", null, (0, _react.jsx)("dt", null, "
|
|
29
|
+
}, (0, _react.jsx)("div", null, (0, _react.jsx)("dt", null, "Viewing\u00A0version:"), (0, _react.jsx)("dd", null, ((_a = register.version) === null || _a === void 0 ? void 0 : _a.id) || 'N/A')), (0, _react.jsx)("div", null, (0, _react.jsx)("dt", null, "Register\u00A0name:"), (0, _react.jsx)("dd", null, register.name)), register.operatingLanguage ? (0, _react.jsx)("div", null, (0, _react.jsx)("dt", null, "Operating\u00A0language:"), (0, _react.jsx)("dd", null, (0, _react.jsx)(_InlineDiff.Val, {
|
|
30
|
+
val: (0, _util.normalizeObjectRecursively)(register.operatingLanguage)
|
|
31
|
+
}))) : null, (0, _react.jsx)("div", null, (0, _react.jsx)("dt", null, "Content\u00A0summary:"), (0, _react.jsx)("dd", {
|
|
30
32
|
dangerouslySetInnerHTML: {
|
|
31
33
|
__html: register.contentSummary || 'N/A'
|
|
32
34
|
}
|
|
33
|
-
}))
|
|
34
|
-
val: (0, _util.normalizeObjectRecursively)(register.operatingLanguage)
|
|
35
|
-
}))) : null);
|
|
35
|
+
})));
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
var _default = MetaSummary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaSummary.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterHome/MetaSummary.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAG9B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,MAAM,6CAA6C,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAIxD,MAAM,WAAW,GAGZ,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;;IAChC,OAAO,CACL,IAAC,EAAE,IAAC,KAAK,EAAE,KAAK;QACd;YACE,wCAA8B;YAC9B,gBAAK,CAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,EAAE,KAAI,KAAK,CAAM,CACpC;QACN;YACE,sCAA4B;YAC5B,gBAAK,QAAQ,CAAC,IAAI,CAAM,CACpB;
|
|
1
|
+
{"version":3,"file":"MetaSummary.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterHome/MetaSummary.tsx"],"names":[],"mappings":"AAAA,eAAe;AACf,8BAA8B;AAG9B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,MAAM,6CAA6C,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAIxD,MAAM,WAAW,GAGZ,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;;IAChC,OAAO,CACL,IAAC,EAAE,IAAC,KAAK,EAAE,KAAK;QACd;YACE,wCAA8B;YAC9B,gBAAK,CAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,EAAE,KAAI,KAAK,CAAM,CACpC;QACN;YACE,sCAA4B;YAC5B,gBAAK,QAAQ,CAAC,IAAI,CAAM,CACpB;QACL,QAAQ,CAAC,iBAAiB;YACzB,CAAC,CAAC;gBACE,2CAAiC;gBACjC;oBACE,IAAC,GAAG,IAAC,GAAG,EAAE,0BAA0B,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAI,CACjE,CACD;YACR,CAAC,CAAC,IAAI;QACR;YACE,wCAA8B;YAC9B,YAAI,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,IAAI,KAAK,EAAE,GAAO,CAC5E,CACH,CACN,CAAC;AACJ,CAAC,CAAC;AAGF,eAAe,WAAW,CAAC","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport React from 'react';\nimport { jsx } from '@emotion/react';\nimport DL from '@riboseinc/paneron-extension-kit/widgets/DL';\nimport { normalizeObjectRecursively } from '@riboseinc/paneron-extension-kit/util';\nimport { Val } from '../../../views/diffing/InlineDiff';\nimport type { Register } from '../../../types';\n\n\nconst MetaSummary: React.VoidFunctionComponent<{\n register: Register\n style?: React.CSSProperties\n}> = function ({ register, style }) {\n return (\n <DL style={style}>\n <div>\n <dt>Viewing version:</dt>\n <dd>{register.version?.id || 'N/A'}</dd>\n </div>\n <div>\n <dt>Register name:</dt>\n <dd>{register.name}</dd>\n </div>\n {register.operatingLanguage\n ? <div>\n <dt>Operating language:</dt>\n <dd>\n <Val val={normalizeObjectRecursively(register.operatingLanguage)} />\n </dd>\n </div>\n : null}\n <div>\n <dt>Content summary:</dt>\n <dd dangerouslySetInnerHTML={{ __html: register.contentSummary || 'N/A' }}></dd>\n </div>\n </DL>\n );\n};\n\n\nexport default MetaSummary;\n"]}
|