@pega/cosmos-react-demos 4.0.0-dev.7.0 → 4.0.0-dev.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/jsx/build/AppShell/AppShell.mocks.d.ts +2 -41
- package/jsx/build/AppShell/AppShell.mocks.d.ts.map +1 -1
- package/jsx/build/AppShell/AppShell.mocks.jsx +199 -369
- package/jsx/build/AppShell/AppShell.mocks.jsx.map +1 -1
- package/jsx/build/AppShell/AppShell.stories.d.ts +1 -1
- package/jsx/build/AppShell/AppShell.stories.d.ts.map +1 -1
- package/jsx/build/AppShell/AppShell.stories.jsx +30 -85
- package/jsx/build/AppShell/AppShell.stories.jsx.map +1 -1
- package/jsx/build/FlowModeller/FlowModeller.stories.d.ts.map +1 -1
- package/jsx/build/FlowModeller/FlowModeller.stories.jsx +125 -9
- package/jsx/build/FlowModeller/FlowModeller.stories.jsx.map +1 -1
- package/jsx/build/MobileBuildSummary/MobileBuildSummary.mocks.d.ts +1 -0
- package/jsx/build/MobileBuildSummary/MobileBuildSummary.mocks.d.ts.map +1 -1
- package/jsx/build/MobileBuildSummary/MobileBuildSummary.mocks.js +2 -1
- package/jsx/build/MobileBuildSummary/MobileBuildSummary.mocks.js.map +1 -1
- package/jsx/build/PageTemplates/GalleryPage.stories.d.ts.map +1 -1
- package/jsx/build/PageTemplates/GalleryPage.stories.jsx +1 -1
- package/jsx/build/PageTemplates/GalleryPage.stories.jsx.map +1 -1
- package/jsx/build/PageTemplates/PageTemplates.stories.d.ts.map +1 -1
- package/jsx/build/PageTemplates/PageTemplates.stories.jsx +1 -3
- package/jsx/build/PageTemplates/PageTemplates.stories.jsx.map +1 -1
- package/jsx/core/Banner/Banner.stories.d.ts +1 -0
- package/jsx/core/Banner/Banner.stories.d.ts.map +1 -1
- package/jsx/core/Banner/Banner.stories.jsx +40 -34
- package/jsx/core/Banner/Banner.stories.jsx.map +1 -1
- package/jsx/core/ListToolbar/ListToolbar.stories.d.ts +1 -2
- package/jsx/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
- package/jsx/core/ListToolbar/ListToolbar.stories.jsx +12 -17
- package/jsx/core/ListToolbar/ListToolbar.stories.jsx.map +1 -1
- package/jsx/core/Progress/Progress.stories.d.ts +1 -1
- package/jsx/core/Progress/Progress.stories.d.ts.map +1 -1
- package/jsx/core/Progress/Progress.stories.jsx +5 -14
- package/jsx/core/Progress/Progress.stories.jsx.map +1 -1
- package/jsx/core/Tree/Tree.stories.d.ts +1 -1
- package/jsx/core/Tree/Tree.stories.d.ts.map +1 -1
- package/jsx/core/Tree/Tree.stories.jsx +10 -18
- package/jsx/core/Tree/Tree.stories.jsx.map +1 -1
- package/jsx/core/URL/URL.stories.jsx +1 -1
- package/jsx/core/URL/URL.stories.jsx.map +1 -1
- package/jsx/work/CaseView/CaseView.stories.d.ts.map +1 -1
- package/jsx/work/CaseView/CaseView.stories.jsx +2 -3
- package/jsx/work/CaseView/CaseView.stories.jsx.map +1 -1
- package/jsx/work/Timeline/Timeline.stories.jsx +1 -1
- package/jsx/work/Timeline/Timeline.stories.jsx.map +1 -1
- package/lib/build/AppShell/AppShell.mocks.d.ts +2 -41
- package/lib/build/AppShell/AppShell.mocks.d.ts.map +1 -1
- package/lib/build/AppShell/AppShell.mocks.js +199 -369
- package/lib/build/AppShell/AppShell.mocks.js.map +1 -1
- package/lib/build/AppShell/AppShell.stories.d.ts +1 -1
- package/lib/build/AppShell/AppShell.stories.d.ts.map +1 -1
- package/lib/build/AppShell/AppShell.stories.js +30 -85
- package/lib/build/AppShell/AppShell.stories.js.map +1 -1
- package/lib/build/FlowModeller/FlowModeller.stories.d.ts.map +1 -1
- package/lib/build/FlowModeller/FlowModeller.stories.js +119 -9
- package/lib/build/FlowModeller/FlowModeller.stories.js.map +1 -1
- package/lib/build/MobileBuildSummary/MobileBuildSummary.mocks.d.ts +1 -0
- package/lib/build/MobileBuildSummary/MobileBuildSummary.mocks.d.ts.map +1 -1
- package/lib/build/MobileBuildSummary/MobileBuildSummary.mocks.js +2 -1
- package/lib/build/MobileBuildSummary/MobileBuildSummary.mocks.js.map +1 -1
- package/lib/build/PageTemplates/GalleryPage.stories.d.ts.map +1 -1
- package/lib/build/PageTemplates/GalleryPage.stories.js +1 -1
- package/lib/build/PageTemplates/GalleryPage.stories.js.map +1 -1
- package/lib/build/PageTemplates/PageTemplates.stories.d.ts.map +1 -1
- package/lib/build/PageTemplates/PageTemplates.stories.js +1 -3
- package/lib/build/PageTemplates/PageTemplates.stories.js.map +1 -1
- package/lib/core/Banner/Banner.stories.d.ts +1 -0
- package/lib/core/Banner/Banner.stories.d.ts.map +1 -1
- package/lib/core/Banner/Banner.stories.js +36 -33
- package/lib/core/Banner/Banner.stories.js.map +1 -1
- package/lib/core/ListToolbar/ListToolbar.stories.d.ts +1 -2
- package/lib/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
- package/lib/core/ListToolbar/ListToolbar.stories.js +23 -20
- package/lib/core/ListToolbar/ListToolbar.stories.js.map +1 -1
- package/lib/core/Progress/Progress.stories.d.ts +1 -1
- package/lib/core/Progress/Progress.stories.d.ts.map +1 -1
- package/lib/core/Progress/Progress.stories.js +5 -8
- package/lib/core/Progress/Progress.stories.js.map +1 -1
- package/lib/core/Tree/Tree.stories.d.ts +1 -1
- package/lib/core/Tree/Tree.stories.d.ts.map +1 -1
- package/lib/core/Tree/Tree.stories.js +10 -20
- package/lib/core/Tree/Tree.stories.js.map +1 -1
- package/lib/core/URL/URL.stories.js +1 -1
- package/lib/core/URL/URL.stories.js.map +1 -1
- package/lib/work/CaseView/CaseView.stories.d.ts.map +1 -1
- package/lib/work/CaseView/CaseView.stories.js +2 -3
- package/lib/work/CaseView/CaseView.stories.js.map +1 -1
- package/lib/work/Timeline/Timeline.stories.js +1 -1
- package/lib/work/Timeline/Timeline.stories.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowModeller.stories.jsx","sourceRoot":"","sources":["../../../src/build/FlowModeller/FlowModeller.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { memo, useMemo, useState } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\n\nimport {\n FlowModeller,\n ActionParams,\n NodeProps,\n NodeType,\n GraphData,\n DeleteNodeOutcome,\n ConnectorProps,\n FlowModellerHelper,\n AddNodeHandlerParams,\n RendererProps,\n Workbench,\n FlowModellerProps,\n NodeInfo\n} from '@pega/cosmos-react-build';\nimport {\n useOuterEvent,\n useEscape,\n useElement,\n Modal,\n ComboBox,\n menuHelpers,\n MenuItemProps,\n MenuProps,\n Text,\n useModalManager\n} from '@pega/cosmos-react-core';\n\nimport {\n nodeLibrary,\n nodeActions,\n exampleCRMNodesData,\n exampleCRMConnectorsData,\n emptyNodesData,\n emptyConnectorsData,\n FlowShapeType,\n DecisionTable,\n DeletePopover\n} from './FlowModeller.mocks';\nimport { StyledWrapper } from './FlowModeller.styles';\n\nexport default {\n title: 'Build/FlowModeller',\n component: FlowModeller,\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\ninterface FlowChartDemoProps extends Partial<FlowModellerProps> {\n showErrorState?: boolean;\n readOnly?: boolean;\n}\n\nexport const EmptyFlowChartView: Story<FlowChartDemoProps> = (args: FlowChartDemoProps) => {\n const [graphData, setGraphData] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: emptyNodesData,\n connectors: emptyConnectorsData\n });\n const [highlightItems, setHighlightItems] = useState<RendererProps['highlights']>();\n const [open, setOpen] = useState(false);\n const [nodeData, setNodeData] = useState<NodeInfo>();\n const [showPopover, setPopover] = useState(false);\n const [activeNodeId, setActiveNodeId] = useState<string>();\n const [buffer, setBuffer] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: [],\n connectors: []\n });\n const [target, setTarget] = useState<string | null>(null);\n const [deletePopoverEl, setDeletePopoverEl] = useElement<HTMLElement>(null);\n const [connectorData, setConnectorData] = useState<ConnectorProps>();\n const { create } = useModalManager();\n\n const [items, setItems] = useState<MenuProps['items']>(\n graphData?.nodes\n .filter(\n node =>\n node.type.id !== 'start' &&\n node.id !== nodeData?.node.id &&\n node.type.id !== FlowShapeType.GOTO.id\n )\n .map(option => {\n return {\n primary: option.label,\n id: option.id,\n selected: false\n } as MenuItemProps;\n })\n );\n\n const selectNode = (nodeId: NodeProps['id']) => {\n const selectedNodeData = FlowModellerHelper.selectNode(graphData, nodeId);\n setOpen(true);\n setNodeData(selectedNodeData);\n setActiveNodeId(selectedNodeData.node.id);\n };\n\n const onNodeActionClick = (params: ActionParams) => {\n if (params.actionId === 'action-2') {\n action(`ressigned ${params.nodeId}`)();\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Unknown action ${params.actionId}`);\n }\n };\n\n const addNode = (nodeType: NodeType, metaData: AddNodeHandlerParams) => {\n const isBranchNode = nodeType.id === FlowShapeType.GOTO.id;\n const updatedData = FlowModellerHelper.addNode({\n nodeType,\n graphData,\n isBranchNode,\n metaData\n });\n if (updatedData) {\n setGraphData(updatedData.graphData);\n const selectedNodeData = FlowModellerHelper.selectNode(\n updatedData.graphData,\n updatedData.node.id\n );\n setOpen(true);\n setNodeData(selectedNodeData);\n setActiveNodeId(selectedNodeData.node.id);\n }\n };\n\n const launchModal = (errorTitle: string, errorMessage: string) => {\n create(() => {\n return (\n <Modal heading={errorTitle} center>\n <Text variant='primary'>{errorMessage} </Text>\n </Modal>\n );\n });\n };\n\n const deleteNode = (params: ActionParams, error: string) => {\n if (error) {\n return launchModal('Delete step error', error);\n }\n if (params.nodeId === activeNodeId) {\n setActiveNodeId(undefined);\n setOpen(false);\n }\n setGraphData((params.additionalData as DeleteNodeOutcome)?.graphData);\n };\n\n const onAddRow = (updatedData: GraphData<NodeProps, ConnectorProps>) => {\n if (nodeData) {\n const nodeInfo = FlowModellerHelper.selectNode(updatedData, nodeData.node.id);\n setNodeData(nodeInfo);\n setGraphData(updatedData);\n }\n };\n\n const onDeleteRow = (\n updatedData: GraphData<NodeProps, ConnectorProps>,\n connector: ConnectorProps,\n error: string,\n highlightsData?: RendererProps['highlights'],\n e?: MouseEvent\n ) => {\n if (error) {\n return launchModal('Delete connector error', error);\n }\n setHighlightItems(highlightsData);\n setPopover(prevState => !prevState);\n setConnectorData(connector);\n setBuffer(updatedData);\n if (e?.target instanceof Element) {\n const targetElem = e.target;\n setTarget(targetElem?.getAttribute('id'));\n }\n };\n\n const onDelete = () => {\n setHighlightItems(undefined);\n\n const updatedGraphData: GraphData<NodeProps, ConnectorProps> = buffer;\n // Remove default labels when the current number of connectors are one\n if (nodeData?.outConnectors.length === 2) {\n const defaultConnector: ConnectorProps =\n nodeData?.outConnectors[0].id !== connectorData?.id\n ? nodeData?.outConnectors[0]\n : nodeData?.outConnectors[1];\n for (let i = 0; i < updatedGraphData.connectors.length; i += 1) {\n const connectorEdge: ConnectorProps = updatedGraphData.connectors[i];\n if (\n connectorEdge.id === defaultConnector.id &&\n (connectorEdge.label === 'Default' || connectorEdge.label === 'Otherwise')\n ) {\n connectorEdge.label = '';\n break;\n }\n }\n }\n if (nodeData) {\n const nodeInfo = FlowModellerHelper.selectNode(updatedGraphData, nodeData.node.id);\n setNodeData(nodeInfo);\n }\n\n if (updatedGraphData) setGraphData(updatedGraphData);\n };\n\n const onCancel = () => {\n setHighlightItems(undefined);\n setPopover(false);\n setActiveNodeId(undefined);\n };\n\n const WorkbenchContent = memo(() => {\n const selected = useMemo(() => menuHelpers.getSelected(items)[0], [items]);\n\n const selectItem = (id: MenuItemProps['id']) => {\n const selectedItem = menuHelpers.getItem(items, id);\n if (selectedItem && nodeData) {\n const updatedNode = {\n ...nodeData.node,\n reference: selectedItem.id\n };\n const updatedNodes = [\n updatedNode,\n ...graphData.nodes.filter(node => nodeData?.node.id !== node.id)\n ];\n setNodeData({ ...nodeData, node: updatedNode });\n setGraphData({ ...graphData, nodes: updatedNodes });\n }\n setItems(cur => menuHelpers.selectItem(cur, id, 'single-select'));\n };\n\n return (\n <>\n {nodeData && nodeData.node.type.id !== FlowShapeType.GOTO.id && (\n <DecisionTable\n updatedData={graphData}\n connectors={nodeData?.outConnectors}\n onDeleteRow={onDeleteRow}\n node={nodeData?.node}\n onAddRow={onAddRow}\n readOnly={args.readOnly}\n />\n )}\n {nodeData && nodeData.node.type.id === FlowShapeType.GOTO.id && (\n <ComboBox\n label='Go to'\n placeholder='Select step'\n menu={{\n items,\n onItemClick: selectItem\n }}\n selected={\n selected\n ? {\n items: {\n id: selected.id,\n text: selected.primary\n }\n }\n : undefined\n }\n />\n )}\n </>\n );\n });\n useEscape(() => {\n onCancel();\n });\n\n useOuterEvent('mousedown', [deletePopoverEl], onCancel);\n\n return (\n <StyledWrapper>\n <Workbench\n initiallyVisiblePanelId={undefined}\n configurationPanel={{\n open,\n content: <WorkbenchContent />,\n header: nodeData?.node.label as string,\n onDismiss: () => {\n setOpen(false);\n }\n }}\n >\n <FlowModeller\n graphData={graphData}\n nodeLibrary={nodeLibrary}\n onNodeAdd={addNode}\n onNodeClick={selectNode}\n actions={nodeActions}\n highlightData={highlightItems}\n onNodeActionClick={onNodeActionClick}\n onDelete={deleteNode}\n selectedNodeId={activeNodeId}\n />\n <DeletePopover\n targetId={target}\n ref={setDeletePopoverEl}\n onDelete={onDelete}\n onCancel={onCancel}\n showPopover={showPopover}\n />\n </Workbench>\n </StyledWrapper>\n );\n};\n\nexport const CRMFlowChartView: Story<FlowChartDemoProps> = (args: FlowChartDemoProps) => {\n const [graphData, setGraphData] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: exampleCRMNodesData,\n connectors: exampleCRMConnectorsData\n });\n const [nodeData, setNodeData] = useState<NodeInfo>();\n const [items, setItems] = useState<MenuProps['items']>(\n graphData?.nodes\n .filter(\n node =>\n node.type.id !== 'start' &&\n node.id !== nodeData?.node.id &&\n node.type.id !== FlowShapeType.GOTO.id\n )\n .map(option => {\n return {\n primary: option.label,\n id: option.id,\n selected: false\n } as MenuItemProps;\n })\n );\n const [highlightItems, setHighlightItems] = useState<RendererProps['highlights']>();\n const [open, setOpen] = useState(false);\n // nodeData maintains the state of selected node\n\n const [showPopover, setPopover] = useState(false);\n const [buffer, setBuffer] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: [],\n connectors: []\n });\n const [target, setTarget] = useState<string | null>(null);\n const [deletePopoverEl, setDeletePopoverEl] = useElement<HTMLElement>(null);\n const [connectorData, setConnectorData] = useState<ConnectorProps>();\n const [activeNodeId, setActiveNodeId] = useState<string>();\n const { create } = useModalManager();\n\n const selectNode = (nodeId: NodeProps['id']) => {\n const selectedNodeData = FlowModellerHelper.selectNode(graphData, nodeId);\n setOpen(true);\n setNodeData(selectedNodeData);\n setActiveNodeId(selectedNodeData.node.id);\n };\n\n const onNodeActionClick = (params: ActionParams) => {\n if (params.actionId === 'action-2') {\n action(`ressigned ${params.nodeId}`)();\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Unknown action ${params.actionId}`);\n }\n };\n\n const addNode = (nodeType: NodeType, metaData: AddNodeHandlerParams) => {\n const isBranchNode = nodeType.id === FlowShapeType.GOTO.id;\n const updatedData = FlowModellerHelper.addNode({\n nodeType,\n graphData,\n isBranchNode,\n metaData\n });\n if (updatedData) {\n setGraphData(updatedData.graphData);\n const selectedNodeData = FlowModellerHelper.selectNode(\n updatedData.graphData,\n updatedData.node.id\n );\n setOpen(true);\n setNodeData(selectedNodeData);\n setActiveNodeId(selectedNodeData.node.id);\n }\n };\n\n const launchModal = (errorTitle: string, errorMessage: string) => {\n create(() => {\n return (\n <Modal heading={errorTitle} center>\n <Text variant='primary'>{errorMessage} </Text>\n </Modal>\n );\n });\n };\n\n const deleteNode = (params: ActionParams, error: string) => {\n if (error) {\n return launchModal('Delete step error', error);\n }\n if (params.nodeId === activeNodeId) {\n setActiveNodeId(undefined);\n setOpen(false);\n }\n setGraphData((params.additionalData as DeleteNodeOutcome)?.graphData);\n };\n\n const onAddRow = (updatedData: GraphData<NodeProps, ConnectorProps>) => {\n if (nodeData) {\n const nodeInfo = FlowModellerHelper.selectNode(updatedData, nodeData.node.id);\n setNodeData(nodeInfo);\n setGraphData(updatedData);\n }\n };\n\n const onDeleteRow = (\n updatedData: GraphData<NodeProps, ConnectorProps>,\n connector: ConnectorProps,\n error: string,\n highlightsData?: RendererProps['highlights'],\n e?: MouseEvent\n ) => {\n if (error) {\n return launchModal('Delete connector error', error);\n }\n setHighlightItems(highlightsData);\n setPopover(prevState => !prevState);\n setConnectorData(connector);\n setBuffer(updatedData);\n if (e?.target instanceof Element) {\n const targetElem = e.target;\n setTarget(targetElem?.getAttribute('id'));\n }\n };\n\n const onDelete = () => {\n setPopover(false);\n setHighlightItems(undefined);\n\n const updatedGraphData: GraphData<NodeProps, ConnectorProps> = buffer;\n // Remove default labels when the current number of connectors are one\n if (nodeData?.outConnectors.length === 2) {\n const defaultConnector: ConnectorProps =\n nodeData?.outConnectors[0].id !== connectorData?.id\n ? nodeData?.outConnectors[0]\n : nodeData?.outConnectors[1];\n for (let i = 0; i < updatedGraphData.connectors.length; i += 1) {\n const connectorEdge: ConnectorProps = updatedGraphData.connectors[i];\n if (\n connectorEdge.id === defaultConnector.id &&\n (connectorEdge.label === 'Default' || connectorEdge.label === 'Otherwise')\n ) {\n connectorEdge.label = '';\n break;\n }\n }\n }\n\n if (nodeData) {\n const nodeInfo = FlowModellerHelper.selectNode(updatedGraphData, nodeData.node.id);\n setNodeData(nodeInfo);\n }\n\n if (updatedGraphData) setGraphData(updatedGraphData);\n };\n\n const onCancel = () => {\n setHighlightItems(undefined);\n setPopover(false);\n };\n\n const WorkbenchContent = memo(() => {\n const selected = useMemo(() => menuHelpers.getSelected(items)[0], [items]);\n\n const selectItem = (id: MenuItemProps['id']) => {\n const selectedItem = menuHelpers.getItem(items, id);\n if (selectedItem && nodeData) {\n const updatedNode = {\n ...nodeData.node,\n reference: selectedItem.id\n };\n const updatedNodes = [\n updatedNode,\n ...graphData.nodes.filter(node => nodeData?.node.id !== node.id)\n ];\n setNodeData({ ...nodeData, node: updatedNode });\n setGraphData({ ...graphData, nodes: updatedNodes });\n }\n setItems(cur => menuHelpers.selectItem(cur, id, 'single-select'));\n };\n\n return (\n <>\n {nodeData && nodeData.node.type.id !== FlowShapeType.GOTO.id && (\n <DecisionTable\n updatedData={graphData}\n connectors={nodeData?.outConnectors}\n onDeleteRow={onDeleteRow}\n node={nodeData?.node}\n onAddRow={onAddRow}\n readOnly={args.readOnly}\n />\n )}\n {nodeData && nodeData.node.type.id === FlowShapeType.GOTO.id && (\n <ComboBox\n label='Go to'\n placeholder='Select step'\n menu={{\n items,\n onItemClick: selectItem\n }}\n selected={\n selected\n ? {\n items: {\n id: selected.id,\n text: selected.primary\n }\n }\n : undefined\n }\n />\n )}\n </>\n );\n });\n\n useEscape(onCancel);\n\n useOuterEvent('mousedown', [deletePopoverEl], onCancel);\n\n const createGraphData = (showError: boolean) => {\n if (showError) {\n return {\n ...graphData,\n nodes: graphData.nodes.map((node: NodeProps) => {\n if (node.id === '101' || node.id === '105' || node.id === '110' || node.id === '112') {\n return { ...node, error: 'Something is wrong!' };\n }\n return node;\n })\n };\n }\n return graphData;\n };\n\n return (\n <StyledWrapper>\n <Workbench\n initiallyVisiblePanelId={undefined}\n configurationPanel={{\n open,\n content: <WorkbenchContent />,\n header: nodeData?.node.label as string,\n onDismiss: () => {\n setOpen(false);\n setActiveNodeId(undefined);\n }\n }}\n >\n <FlowModeller\n graphData={createGraphData(args.showErrorState || false)}\n nodeLibrary={nodeLibrary}\n onNodeAdd={addNode}\n onNodeClick={selectNode}\n actions={nodeActions}\n highlightData={highlightItems}\n onNodeActionClick={onNodeActionClick}\n onDelete={deleteNode}\n readOnly={args.readOnly}\n selectedNodeId={activeNodeId}\n />\n <DeletePopover\n targetId={target}\n ref={setDeletePopoverEl}\n onDelete={onDelete}\n onCancel={onCancel}\n showPopover={showPopover}\n />\n </Workbench>\n </StyledWrapper>\n );\n};\n\nCRMFlowChartView.args = {\n showErrorState: false,\n readOnly: false\n};\n\nCRMFlowChartView.argTypes = {\n showErrorState: { control: { type: 'boolean' } },\n readOnly: { control: { type: 'boolean' } }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"FlowModeller.stories.jsx","sourceRoot":"","sources":["../../../src/build/FlowModeller/FlowModeller.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FocusEvent, memo, useMemo, useState } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\n\nimport {\n FlowModeller,\n ActionParams,\n NodeProps,\n NodeType,\n GraphData,\n DeleteNodeOutcome,\n ConnectorProps,\n FlowModellerHelper,\n AddNodeHandlerParams,\n RendererProps,\n Workbench,\n FlowModellerProps,\n NodeInfo\n} from '@pega/cosmos-react-build';\nimport {\n useOuterEvent,\n useEscape,\n useElement,\n Modal,\n ComboBox,\n menuHelpers,\n MenuItemProps,\n MenuProps,\n Text,\n useModalManager,\n Input\n} from '@pega/cosmos-react-core';\n\nimport {\n nodeLibrary,\n nodeActions,\n exampleCRMNodesData,\n exampleCRMConnectorsData,\n emptyNodesData,\n emptyConnectorsData,\n FlowShapeType,\n DecisionTable,\n DeletePopover\n} from './FlowModeller.mocks';\nimport { StyledWrapper } from './FlowModeller.styles';\n\nexport default {\n title: 'Build/FlowModeller',\n component: FlowModeller,\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\ninterface FlowChartDemoProps extends Partial<FlowModellerProps> {\n showErrorState?: boolean;\n readOnly?: boolean;\n}\n\nexport const EmptyFlowChartView: Story<FlowChartDemoProps> = (args: FlowChartDemoProps) => {\n const [graphData, setGraphData] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: emptyNodesData,\n connectors: emptyConnectorsData\n });\n const [highlightItems, setHighlightItems] = useState<RendererProps['highlights']>();\n const [open, setOpen] = useState(false);\n const [nodeData, setNodeData] = useState<NodeInfo>();\n const [showPopover, setPopover] = useState(false);\n const [activeNodeId, setActiveNodeId] = useState<string>();\n const [buffer, setBuffer] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: [],\n connectors: []\n });\n const [target, setTarget] = useState<string | null>(null);\n const [deletePopoverEl, setDeletePopoverEl] = useElement<HTMLElement>(null);\n const [connectorData, setConnectorData] = useState<ConnectorProps>();\n const { create } = useModalManager();\n const [inputError, setInputError] = useState(false);\n const [inputValue, setInputValue] = useState<string>();\n const [items, setItems] = useState<MenuProps['items']>(\n graphData?.nodes\n .filter(\n node =>\n node.type.id !== 'start' &&\n node.id !== nodeData?.node.id &&\n node.type.id !== FlowShapeType.GOTO.id\n )\n .map(option => {\n return {\n primary: option.label,\n id: option.id,\n selected: false\n } as MenuItemProps;\n })\n );\n\n const selectNode = (nodeId: NodeProps['id']) => {\n const selectedNodeData = FlowModellerHelper.selectNode(graphData, nodeId);\n setOpen(true);\n setNodeData(selectedNodeData);\n setActiveNodeId(selectedNodeData.node.id);\n setInputValue(selectedNodeData.node.label);\n setInputError(!!selectedNodeData.node.error);\n };\n\n const onNodeActionClick = (params: ActionParams) => {\n if (params.actionId === 'action-2') {\n action(`ressigned ${params.nodeId}`)();\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Unknown action ${params.actionId}`);\n }\n };\n\n const addNode = (nodeType: NodeType, metaData: AddNodeHandlerParams) => {\n const isBranchNode = nodeType.id === FlowShapeType.GOTO.id;\n const updatedData = FlowModellerHelper.addNode({\n nodeType,\n graphData,\n isBranchNode,\n metaData\n });\n if (updatedData) {\n setGraphData(updatedData.graphData);\n const selectedNodeData = FlowModellerHelper.selectNode(\n updatedData.graphData,\n updatedData.node.id\n );\n setOpen(true);\n setNodeData(selectedNodeData);\n setActiveNodeId(selectedNodeData.node.id);\n setInputError(false);\n setInputValue(selectedNodeData.node.label);\n }\n };\n\n const launchModal = (errorTitle: string, errorMessage: string) => {\n create(() => {\n return (\n <Modal heading={errorTitle} center>\n <Text variant='primary'>{errorMessage} </Text>\n </Modal>\n );\n });\n };\n\n const deleteNode = (params: ActionParams, error: string) => {\n if (error) {\n return launchModal('Delete step error', error);\n }\n if (params.nodeId === activeNodeId) {\n setActiveNodeId(undefined);\n setOpen(false);\n }\n setGraphData((params.additionalData as DeleteNodeOutcome)?.graphData);\n };\n\n const onAddRow = (updatedData: GraphData<NodeProps, ConnectorProps>) => {\n if (nodeData) {\n const nodeInfo = FlowModellerHelper.selectNode(updatedData, nodeData.node.id);\n setNodeData(nodeInfo);\n setGraphData(updatedData);\n }\n };\n\n const onDeleteRow = (\n updatedData: GraphData<NodeProps, ConnectorProps>,\n connector: ConnectorProps,\n error: string,\n highlightsData?: RendererProps['highlights'],\n e?: MouseEvent\n ) => {\n if (error) {\n return launchModal('Delete connector error', error);\n }\n setHighlightItems(highlightsData);\n setPopover(prevState => !prevState);\n setConnectorData(connector);\n setBuffer(updatedData);\n if (e?.target instanceof Element) {\n const targetElem = e.target;\n setTarget(targetElem?.getAttribute('id'));\n }\n };\n\n const onDelete = () => {\n setHighlightItems(undefined);\n setInputError(false);\n const updatedGraphData: GraphData<NodeProps, ConnectorProps> = buffer;\n // Remove default labels when the current number of connectors are one\n if (nodeData?.outConnectors.length === 2) {\n const defaultConnector: ConnectorProps =\n nodeData?.outConnectors[0].id !== connectorData?.id\n ? nodeData?.outConnectors[0]\n : nodeData?.outConnectors[1];\n for (let i = 0; i < updatedGraphData.connectors.length; i += 1) {\n const connectorEdge: ConnectorProps = updatedGraphData.connectors[i];\n if (\n connectorEdge.id === defaultConnector.id &&\n (connectorEdge.label === 'Default' || connectorEdge.label === 'Otherwise')\n ) {\n connectorEdge.label = '';\n break;\n }\n }\n }\n if (nodeData) {\n const nodeInfo = FlowModellerHelper.selectNode(updatedGraphData, nodeData.node.id);\n setNodeData(nodeInfo);\n }\n\n if (updatedGraphData) setGraphData(updatedGraphData);\n };\n\n const onCancel = () => {\n setHighlightItems(undefined);\n setPopover(false);\n };\n\n const onSelectedUpdateData = () => {\n if (nodeData && inputValue === '') {\n const updatedNode = {\n ...nodeData?.node,\n label: inputValue,\n error: 'Please fill in all the required fields'\n };\n const updatedNodes = [\n updatedNode,\n ...graphData.nodes.filter(node => nodeData?.node.id !== node.id)\n ];\n setNodeData({ ...nodeData, node: updatedNode });\n setGraphData({ ...graphData, nodes: updatedNodes });\n } else if (nodeData && inputValue) {\n const updatedNode = {\n ...nodeData?.node,\n label: inputValue,\n error: ''\n };\n const updatedNodes = [\n updatedNode,\n ...graphData.nodes.filter(node => nodeData?.node.id !== node.id)\n ];\n setNodeData({ ...nodeData, node: updatedNode });\n setGraphData({ ...graphData, nodes: updatedNodes });\n }\n };\n\n const WorkbenchContent = memo(() => {\n const selected = useMemo(() => menuHelpers.getSelected(items)[0], [items]);\n\n const selectItem = (id: MenuItemProps['id']) => {\n const selectedItem = menuHelpers.getItem(items, id);\n if (selectedItem && nodeData) {\n const updatedNode = {\n ...nodeData.node,\n reference: selectedItem.id\n };\n const updatedNodes = [\n updatedNode,\n ...graphData.nodes.filter(node => nodeData?.node.id !== node.id)\n ];\n setNodeData({ ...nodeData, node: updatedNode });\n setGraphData({ ...graphData, nodes: updatedNodes });\n setInputValue(updatedNode.label);\n setInputError(false);\n }\n setItems(cur => menuHelpers.selectItem(cur, id, 'single-select'));\n };\n const onInputBlur = (e: FocusEvent<HTMLInputElement>) => {\n if (e.target.value === '') {\n setInputError(true);\n } else {\n setInputError(false);\n }\n setInputValue(e.target.value);\n if (nodeData) {\n setNodeData({\n ...nodeData,\n node: {\n ...nodeData.node,\n label: e.target.value\n }\n });\n }\n };\n return (\n <>\n {nodeData && nodeData.node.type.id !== FlowShapeType.GOTO.id && (\n <>\n <Input\n defaultValue={inputValue}\n label='Name'\n info={inputError ? 'Cannot be blank' : ''}\n status={inputError ? 'error' : undefined}\n required\n readOnly={args.readOnly}\n onBlur={onInputBlur}\n />\n <DecisionTable\n updatedData={graphData}\n connectors={nodeData?.outConnectors}\n onDeleteRow={onDeleteRow}\n node={nodeData?.node}\n onAddRow={onAddRow}\n readOnly={args.readOnly}\n />\n </>\n )}\n {nodeData && nodeData.node.type.id === FlowShapeType.GOTO.id && (\n <ComboBox\n label='Go to'\n placeholder='Select step'\n menu={{\n items,\n onItemClick: selectItem\n }}\n selected={\n selected\n ? {\n items: {\n id: selected.id,\n text: selected.primary\n }\n }\n : undefined\n }\n />\n )}\n </>\n );\n });\n useEscape(onCancel);\n\n useOuterEvent('mousedown', [deletePopoverEl], onCancel);\n\n return (\n <StyledWrapper>\n <Workbench\n initiallyVisiblePanelId={undefined}\n configurationPanel={{\n open,\n content: <WorkbenchContent />,\n header: nodeData?.node.label || 'Task step',\n onDismiss: () => {\n onSelectedUpdateData();\n setOpen(false);\n }\n }}\n >\n <FlowModeller\n graphData={graphData}\n nodeLibrary={nodeLibrary}\n onNodeAdd={addNode}\n onNodeClick={selectNode}\n actions={nodeActions}\n highlightData={highlightItems}\n onNodeActionClick={onNodeActionClick}\n onDelete={deleteNode}\n selectedNodeId={activeNodeId}\n />\n <DeletePopover\n targetId={target}\n ref={setDeletePopoverEl}\n onDelete={onDelete}\n onCancel={onCancel}\n showPopover={showPopover}\n />\n </Workbench>\n </StyledWrapper>\n );\n};\n\nexport const CRMFlowChartView: Story<FlowChartDemoProps> = (args: FlowChartDemoProps) => {\n const [graphData, setGraphData] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: exampleCRMNodesData,\n connectors: exampleCRMConnectorsData\n });\n const [nodeData, setNodeData] = useState<NodeInfo>();\n const [items, setItems] = useState<MenuProps['items']>(\n graphData?.nodes\n .filter(\n node =>\n node.type.id !== 'start' &&\n node.id !== nodeData?.node.id &&\n node.type.id !== FlowShapeType.GOTO.id\n )\n .map(option => {\n return {\n primary: option.label,\n id: option.id,\n selected: false\n } as MenuItemProps;\n })\n );\n const [highlightItems, setHighlightItems] = useState<RendererProps['highlights']>();\n const [open, setOpen] = useState(false);\n // nodeData maintains the state of selected node\n\n const [showPopover, setPopover] = useState(false);\n const [buffer, setBuffer] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: [],\n connectors: []\n });\n const [target, setTarget] = useState<string | null>(null);\n const [deletePopoverEl, setDeletePopoverEl] = useElement<HTMLElement>(null);\n const [connectorData, setConnectorData] = useState<ConnectorProps>();\n const [activeNodeId, setActiveNodeId] = useState<string>();\n const { create } = useModalManager();\n const [inputError, setInputError] = useState(false);\n const [inputValue, setInputValue] = useState<string>();\n const selectNode = (nodeId: NodeProps['id']) => {\n const selectedNodeData = FlowModellerHelper.selectNode(graphData, nodeId);\n setOpen(true);\n setNodeData(selectedNodeData);\n setActiveNodeId(selectedNodeData.node.id);\n setInputValue(selectedNodeData.node.label);\n setInputError(!!selectedNodeData.node.error);\n };\n\n const onNodeActionClick = (params: ActionParams) => {\n if (params.actionId === 'action-2') {\n action(`ressigned ${params.nodeId}`)();\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Unknown action ${params.actionId}`);\n }\n };\n\n const addNode = (nodeType: NodeType, metaData: AddNodeHandlerParams) => {\n const isBranchNode = nodeType.id === FlowShapeType.GOTO.id;\n const updatedData = FlowModellerHelper.addNode({\n nodeType,\n graphData,\n isBranchNode,\n metaData\n });\n if (updatedData) {\n setGraphData(updatedData.graphData);\n const selectedNodeData = FlowModellerHelper.selectNode(\n updatedData.graphData,\n updatedData.node.id\n );\n setOpen(true);\n setNodeData(selectedNodeData);\n setActiveNodeId(selectedNodeData.node.id);\n setInputError(false);\n setInputValue(selectedNodeData.node.label);\n }\n };\n\n const launchModal = (errorTitle: string, errorMessage: string) => {\n create(() => {\n return (\n <Modal heading={errorTitle} center>\n <Text variant='primary'>{errorMessage} </Text>\n </Modal>\n );\n });\n };\n\n const deleteNode = (params: ActionParams, error: string) => {\n if (error) {\n return launchModal('Delete step error', error);\n }\n if (params.nodeId === activeNodeId) {\n setActiveNodeId(undefined);\n setOpen(false);\n }\n setGraphData((params.additionalData as DeleteNodeOutcome)?.graphData);\n };\n\n const onAddRow = (updatedData: GraphData<NodeProps, ConnectorProps>) => {\n if (nodeData) {\n const nodeInfo = FlowModellerHelper.selectNode(updatedData, nodeData.node.id);\n setNodeData(nodeInfo);\n setGraphData(updatedData);\n setInputError(false);\n }\n };\n\n const onDeleteRow = (\n updatedData: GraphData<NodeProps, ConnectorProps>,\n connector: ConnectorProps,\n error: string,\n highlightsData?: RendererProps['highlights'],\n e?: MouseEvent\n ) => {\n if (error) {\n return launchModal('Delete connector error', error);\n }\n setHighlightItems(highlightsData);\n setPopover(prevState => !prevState);\n setConnectorData(connector);\n setBuffer(updatedData);\n if (e?.target instanceof Element) {\n const targetElem = e.target;\n setTarget(targetElem?.getAttribute('id'));\n }\n };\n\n const onDelete = () => {\n setPopover(false);\n setHighlightItems(undefined);\n setInputError(false);\n const updatedGraphData: GraphData<NodeProps, ConnectorProps> = buffer;\n // Remove default labels when the current number of connectors are one\n if (nodeData?.outConnectors.length === 2) {\n const defaultConnector: ConnectorProps =\n nodeData?.outConnectors[0].id !== connectorData?.id\n ? nodeData?.outConnectors[0]\n : nodeData?.outConnectors[1];\n for (let i = 0; i < updatedGraphData.connectors.length; i += 1) {\n const connectorEdge: ConnectorProps = updatedGraphData.connectors[i];\n if (\n connectorEdge.id === defaultConnector.id &&\n (connectorEdge.label === 'Default' || connectorEdge.label === 'Otherwise')\n ) {\n connectorEdge.label = '';\n break;\n }\n }\n }\n\n if (nodeData) {\n const nodeInfo = FlowModellerHelper.selectNode(updatedGraphData, nodeData.node.id);\n setNodeData(nodeInfo);\n }\n\n if (updatedGraphData) setGraphData(updatedGraphData);\n };\n\n const onCancel = () => {\n setHighlightItems(undefined);\n setPopover(false);\n };\n\n const onSelectedUpdateData = () => {\n if (nodeData && inputValue === '') {\n const updatedNode = {\n ...nodeData?.node,\n label: inputValue,\n error: 'Please fill in all the required fields'\n };\n const updatedNodes = [\n updatedNode,\n ...graphData.nodes.filter(node => nodeData?.node.id !== node.id)\n ];\n setNodeData({ ...nodeData, node: updatedNode });\n setGraphData({ ...graphData, nodes: updatedNodes });\n } else if (nodeData && inputValue) {\n const updatedNode = {\n ...nodeData?.node,\n label: inputValue,\n error: ''\n };\n const updatedNodes = [\n updatedNode,\n ...graphData.nodes.filter(node => nodeData?.node.id !== node.id)\n ];\n setNodeData({ ...nodeData, node: updatedNode });\n setGraphData({ ...graphData, nodes: updatedNodes });\n }\n };\n\n const WorkbenchContent = memo(() => {\n const selected = useMemo(() => menuHelpers.getSelected(items)[0], [items]);\n\n const selectItem = (id: MenuItemProps['id']) => {\n const selectedItem = menuHelpers.getItem(items, id);\n if (selectedItem && nodeData) {\n const updatedNode = {\n ...nodeData.node,\n reference: selectedItem.id\n };\n const updatedNodes = [\n updatedNode,\n ...graphData.nodes.filter(node => nodeData?.node.id !== node.id)\n ];\n setNodeData({ ...nodeData, node: updatedNode });\n setGraphData({ ...graphData, nodes: updatedNodes });\n setInputValue(updatedNode.label);\n setInputError(false);\n }\n setItems(cur => menuHelpers.selectItem(cur, id, 'single-select'));\n };\n const onInputBlur = (e: FocusEvent<HTMLInputElement>) => {\n if (e.target.value === '') {\n setInputError(true);\n } else {\n setInputError(false);\n }\n setInputValue(e.target.value);\n if (nodeData) {\n setNodeData({\n ...nodeData,\n node: {\n ...nodeData.node,\n label: e.target.value\n }\n });\n }\n };\n\n return (\n <>\n {nodeData && nodeData.node.type.id !== FlowShapeType.GOTO.id && (\n <>\n <Input\n defaultValue={inputValue}\n label='Name'\n info={inputError ? 'Cannot be blank' : ''}\n status={inputError ? 'error' : undefined}\n required\n readOnly={args.readOnly}\n onBlur={onInputBlur}\n />\n <DecisionTable\n updatedData={graphData}\n connectors={nodeData?.outConnectors}\n onDeleteRow={onDeleteRow}\n node={nodeData?.node}\n onAddRow={onAddRow}\n readOnly={args.readOnly}\n />\n </>\n )}\n {nodeData && nodeData.node.type.id === FlowShapeType.GOTO.id && (\n <ComboBox\n label='Go to'\n placeholder='Select step'\n menu={{\n items,\n onItemClick: selectItem\n }}\n selected={\n selected\n ? {\n items: {\n id: selected.id,\n text: selected.primary\n }\n }\n : undefined\n }\n />\n )}\n </>\n );\n });\n\n useEscape(onCancel);\n\n useOuterEvent('mousedown', [deletePopoverEl], onCancel);\n\n const createGraphData = (showError: boolean) => {\n if (showError) {\n return {\n ...graphData,\n nodes: graphData.nodes.map((node: NodeProps) => {\n if (node.id === '101' || node.id === '105' || node.id === '110' || node.id === '112') {\n return { ...node, error: 'Something is wrong!' };\n }\n return node;\n })\n };\n }\n return graphData;\n };\n\n return (\n <StyledWrapper>\n <Workbench\n initiallyVisiblePanelId={undefined}\n configurationPanel={{\n open,\n content: <WorkbenchContent />,\n header: nodeData?.node.label || 'Task step',\n onDismiss: () => {\n onSelectedUpdateData();\n setOpen(false);\n setActiveNodeId(undefined);\n }\n }}\n >\n <FlowModeller\n graphData={createGraphData(args.showErrorState || false)}\n nodeLibrary={nodeLibrary}\n onNodeAdd={addNode}\n onNodeClick={selectNode}\n actions={nodeActions}\n highlightData={highlightItems}\n onNodeActionClick={onNodeActionClick}\n onDelete={deleteNode}\n readOnly={args.readOnly}\n selectedNodeId={activeNodeId}\n />\n <DeletePopover\n targetId={target}\n ref={setDeletePopoverEl}\n onDelete={onDelete}\n onCancel={onCancel}\n showPopover={showPopover}\n />\n </Workbench>\n </StyledWrapper>\n );\n};\n\nCRMFlowChartView.args = {\n showErrorState: false,\n readOnly: false\n};\n\nCRMFlowChartView.argTypes = {\n showErrorState: { control: { type: 'boolean' } },\n readOnly: { control: { type: 'boolean' } }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileBuildSummary.mocks.d.ts","sourceRoot":"","sources":["../../../src/build/MobileBuildSummary/MobileBuildSummary.mocks.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"MobileBuildSummary.mocks.d.ts","sourceRoot":"","sources":["../../../src/build/MobileBuildSummary/MobileBuildSummary.mocks.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;CAkBzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileBuildSummary.mocks.js","sourceRoot":"","sources":["../../../src/build/MobileBuildSummary/MobileBuildSummary.mocks.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,aAAa,EAAE;QACb;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,OAAO;SACf;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE;SACjC;QACD;YACE,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE;SACjC;KACF;IACD,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;IACpB,WAAW,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"MobileBuildSummary.mocks.js","sourceRoot":"","sources":["../../../src/build/MobileBuildSummary/MobileBuildSummary.mocks.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,aAAa,EAAE;QACb;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,OAAO;SACf;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE;SACjC;QACD;YACE,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE;SACjC;KACF;IACD,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;IACpB,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,GAAG;CACf,CAAC","sourcesContent":["export const resultsFields = {\n summaryFields: [\n {\n name: 'Version',\n value: '1.0.0'\n },\n {\n name: 'Built on',\n value: new Date().toDateString()\n },\n {\n name: 'Configured on',\n value: new Date().toDateString()\n }\n ],\n onDownload: () => {},\n downloadUrl: '/',\n qrCodeUrl: '/'\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalleryPage.stories.d.ts","sourceRoot":"","sources":["../../../src/build/PageTemplates/GalleryPage.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;;AAS/C,wBAMU;AAEV,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"GalleryPage.stories.d.ts","sourceRoot":"","sources":["../../../src/build/PageTemplates/GalleryPage.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;;AAS/C,wBAMU;AAEV,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,eAAe,CAsC1D,CAAC"}
|
|
@@ -20,7 +20,7 @@ export const AppShellWithGalleryPage = (args) => {
|
|
|
20
20
|
text: 'New application',
|
|
21
21
|
onClick: action('Clicked New application button')
|
|
22
22
|
}} onItemClick={action('Clicked interactive card')}/>);
|
|
23
|
-
return (<AppShellDemo main={<GalleryPageDemo {...args}/>}
|
|
23
|
+
return (<AppShellDemo main={<GalleryPageDemo {...args}/>} appName='Compass App' text='Launchpad (Main)' showAppNameAndVersion showPreview showBranch/>);
|
|
24
24
|
};
|
|
25
25
|
AppShellWithGalleryPage.args = {
|
|
26
26
|
bannerHeading: 'Applications',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalleryPage.stories.jsx","sourceRoot":"","sources":["../../../src/build/PageTemplates/GalleryPage.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,eAAe;IACb,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE;QACV,MAAM,EAAE,YAAY;KACrB;CACM,CAAC;AAUV,MAAM,CAAC,MAAM,uBAAuB,GAA2B,CAAC,IAAqB,EAAE,EAAE;IACvF,MAAM,eAAe,GAAG,CAAC,EACvB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACL,EAAE,EAAE,CAAC,CACrB,CAAC,WAAW,CACV,OAAO,CAAC,CAAC,aAAa,CAAC,CACvB,WAAW,CAAC,CAAC,iBAAiB,CAAC,CAC/B,KAAK,CAAC,CAAC;YACL,GAAG,EAAE,kGAAkG;YACvG,GAAG,EAAE,sBAAsB;SAC5B,CAAC,CACF,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CACnD,UAAU,CAAC,CAAC;YACV,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,qBAAqB;SACnC,CAAC,CACF,MAAM,CAAC,CAAC;YACN,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,MAAM,CAAC,gCAAgC,CAAC;SAClD,CAAC,CACF,WAAW,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,EAChD,CACH,CAAC;IAEF,OAAO,CACL,CAAC,YAAY,CACX,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,EAAG,CAAC,CACpC,
|
|
1
|
+
{"version":3,"file":"GalleryPage.stories.jsx","sourceRoot":"","sources":["../../../src/build/PageTemplates/GalleryPage.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,eAAe;IACb,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE;QACV,MAAM,EAAE,YAAY;KACrB;CACM,CAAC;AAUV,MAAM,CAAC,MAAM,uBAAuB,GAA2B,CAAC,IAAqB,EAAE,EAAE;IACvF,MAAM,eAAe,GAAG,CAAC,EACvB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACL,EAAE,EAAE,CAAC,CACrB,CAAC,WAAW,CACV,OAAO,CAAC,CAAC,aAAa,CAAC,CACvB,WAAW,CAAC,CAAC,iBAAiB,CAAC,CAC/B,KAAK,CAAC,CAAC;YACL,GAAG,EAAE,kGAAkG;YACvG,GAAG,EAAE,sBAAsB;SAC5B,CAAC,CACF,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CACnD,UAAU,CAAC,CAAC;YACV,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,qBAAqB;SACnC,CAAC,CACF,MAAM,CAAC,CAAC;YACN,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,MAAM,CAAC,gCAAgC,CAAC;SAClD,CAAC,CACF,WAAW,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,EAChD,CACH,CAAC;IAEF,OAAO,CACL,CAAC,YAAY,CACX,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,EAAG,CAAC,CACpC,OAAO,CAAC,aAAa,CACrB,IAAI,CAAC,kBAAkB,CACvB,qBAAqB,CACrB,WAAW,CACX,UAAU,EACV,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,uBAAuB,CAAC,IAAI,GAAG;IAC7B,aAAa,EAAE,cAAc;IAC7B,iBAAiB,EAAE,iCAAiC;IACpD,cAAc,EAAE,KAAK;IACrB,iBAAiB,EAAE,+BAA+B;IAClD,qBAAqB,EAAE,qEAAqE;CAC7F,CAAC;AAEF,uBAAuB,CAAC,QAAQ,GAAG;IACjC,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC5C,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAChD,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAChD,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAChD,qBAAqB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;CACrD,CAAC","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { action } from '@storybook/addon-actions';\n\nimport { GalleryPage } from '@pega/cosmos-react-build';\n\nimport { AppShellDemo } from '../AppShell/AppShell.stories';\n\nimport { getOverviewCardData } from './GalleryPage.mocks';\n\nexport default {\n title: 'Build/GalleryPage',\n component: GalleryPage,\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\ninterface GalleryPageArgs {\n bannerHeading: string;\n bannerDescription: string;\n showEmptyState: boolean;\n emptyStateHeading: string;\n emptyStateDescription: string;\n}\n\nexport const AppShellWithGalleryPage: Story<GalleryPageArgs> = (args: GalleryPageArgs) => {\n const GalleryPageDemo = ({\n bannerHeading,\n bannerDescription,\n showEmptyState,\n emptyStateHeading,\n emptyStateDescription\n }: GalleryPageArgs) => (\n <GalleryPage\n heading={bannerHeading}\n description={bannerDescription}\n image={{\n src: 'https://www.pega.com/sites/default/files/styles/2560/public/media/images/2019-01/pega-logo_0.png',\n alt: 'Image for the banner'\n }}\n items={showEmptyState ? [] : getOverviewCardData()}\n emptyState={{\n heading: emptyStateHeading,\n description: emptyStateDescription\n }}\n action={{\n text: 'New application',\n onClick: action('Clicked New application button')\n }}\n onItemClick={action('Clicked interactive card')}\n />\n );\n\n return (\n <AppShellDemo\n main={<GalleryPageDemo {...args} />}\n appName='Compass App'\n text='Launchpad (Main)'\n showAppNameAndVersion\n showPreview\n showBranch\n />\n );\n};\n\nAppShellWithGalleryPage.args = {\n bannerHeading: 'Applications',\n bannerDescription: 'Edit or create new applications',\n showEmptyState: false,\n emptyStateHeading: 'Create your first application',\n emptyStateDescription: \"You're on your way to creating your first professional application.\"\n};\n\nAppShellWithGalleryPage.argTypes = {\n bannerHeading: { control: { type: 'text' } },\n bannerDescription: { control: { type: 'text' } },\n showEmptyState: { control: { type: 'boolean' } },\n emptyStateHeading: { control: { type: 'text' } },\n emptyStateDescription: { control: { type: 'text' } }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTemplates.stories.d.ts","sourceRoot":"","sources":["../../../src/build/PageTemplates/PageTemplates.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EASL,WAAW,EACX,iBAAiB,EAElB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAAiB,aAAa,EAAsB,MAAM,uBAAuB,CAAC;;AAEzF,wBAKU;AAEV,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,QAAQ,CAAC,EACL,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,aAAa,GACb,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,oBAAoB,GACpB,QAAQ,CAAC;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,uBAAuB,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"PageTemplates.stories.d.ts","sourceRoot":"","sources":["../../../src/build/PageTemplates/PageTemplates.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EASL,WAAW,EACX,iBAAiB,EAElB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAAiB,aAAa,EAAsB,MAAM,uBAAuB,CAAC;;AAEzF,wBAKU;AAEV,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,QAAQ,CAAC,EACL,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,aAAa,GACb,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,oBAAoB,GACpB,QAAQ,CAAC;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,uBAAuB,GAAG,aAAa,CAmQ5E,CAAC"}
|
|
@@ -217,14 +217,13 @@ export const PageTemplatesDemo = (args) => {
|
|
|
217
217
|
break;
|
|
218
218
|
}
|
|
219
219
|
return (<Configuration theme={BuildTheme}>
|
|
220
|
-
<AppShellDemo main={demo}
|
|
220
|
+
<AppShellDemo main={demo} appName='Compass App' text='Launchpad (Main)' showAppNameAndVersion showPreview showBranch/>
|
|
221
221
|
</Configuration>);
|
|
222
222
|
};
|
|
223
223
|
PageTemplatesDemo.args = {
|
|
224
224
|
template: 'tabbed',
|
|
225
225
|
title: 'Interest rate',
|
|
226
226
|
subTitle: 'Uplus-Data-Integrations',
|
|
227
|
-
hideNavigation: false,
|
|
228
227
|
showBreadcrumbs: true,
|
|
229
228
|
pathData: 'Home,xCompass,Fields',
|
|
230
229
|
showActions: true,
|
|
@@ -242,7 +241,6 @@ PageTemplatesDemo.argTypes = {
|
|
|
242
241
|
},
|
|
243
242
|
subTitle: { control: { type: 'text' } },
|
|
244
243
|
title: { control: { type: 'text' } },
|
|
245
|
-
hideNavigation: { control: { type: 'boolean' } },
|
|
246
244
|
showBreadcrumbs: { control: { type: 'boolean' } },
|
|
247
245
|
pathData: { control: { type: 'text' } },
|
|
248
246
|
showActions: { control: { type: 'boolean' } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTemplates.stories.jsx","sourceRoot":"","sources":["../../../src/build/PageTemplates/PageTemplates.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["// cSpell:words XPTI\nimport { Meta, Story } from '@storybook/react';\nimport { useState, useMemo, MouseEvent } from 'react';\nimport { action } from '@storybook/addon-actions';\n\nimport {\n Button,\n Banner,\n Configuration,\n Modal,\n BuildTheme,\n Flex,\n Text,\n Actions,\n StatusProps,\n PageTemplateProps,\n useModalManager\n} from '@pega/cosmos-react-core';\nimport { TabbedPage, OneColumnPage, ObjectPreview } from '@pega/cosmos-react-build';\n\nimport { TableDemo } from '../../core/Table/Table.stories';\nimport { WorkbenchDemo } from '../Workbench/Workbench.stories';\nimport { AppShellDemo } from '../AppShell/AppShell.stories';\n\nimport { OneColumnForm, AppShellStory, PreviewMainContent } from './PageTemplates.mocks';\n\nexport default {\n title: 'Build/PageTemplates',\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\nexport interface PageTemplatesStoryProps extends PageTemplateProps {\n template?:\n | 'one column'\n | 'two column'\n | 'three column'\n | 'four column'\n | 'wide narrow'\n | 'narrow wide'\n | 'wide wide narrow'\n | 'narrow wide wide'\n | 'narrow wide narrow'\n | 'tabbed';\n showBreadcrumbs?: boolean;\n pathData?: string;\n showActions?: boolean;\n showBanners?: boolean;\n subTitle?: string;\n showStatus?: boolean;\n statusVariant?: StatusProps['variant'];\n statusLabel?: string;\n showEditButton?: boolean;\n onEdit?: (e: MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const PageTemplatesDemo: Story<PageTemplatesStoryProps & AppShellStory> = (\n args: PageTemplatesStoryProps & AppShellStory\n) => {\n const { create } = useModalManager();\n\n const getPath = () => {\n if (args.showBreadcrumbs) {\n const path = args.pathData;\n\n return path\n ? path.split(',').map((crumb: string, i) => {\n // FIXME: https://stackoverflow.com/questions/63616486/property-replaceall-does-not-exist-on-type-string\n return {\n id: crumb,\n primary: crumb,\n href: i < 3 ? `#${(crumb as any).replace(/\\s/g, '-')}` : undefined\n };\n })\n : [];\n }\n };\n\n const actions: PageTemplateProps['actions'] = args.showActions ? (\n <Flex container>\n <Button variant='primary'>Save</Button>\n <Actions\n menuAt={2}\n items={[\n {\n id: '1',\n text: 'Page action 1'\n },\n {\n id: '2',\n text: 'Page action 2'\n }\n ]}\n />\n </Flex>\n ) : undefined;\n\n const banners: PageTemplateProps['banners'] = args.showBanners ? (\n <Banner variant='warning' messages={['This is a warning banner. You have been warned!']} />\n ) : undefined;\n\n const mainContent = <OneColumnForm />;\n const modal = () => (\n <Configuration theme={BuildTheme}>\n <Modal heading='This is the Modal heading' autoWidth={false} center stretch={false}>\n <Text>This is the content of the Modal.</Text>\n </Modal>\n </Configuration>\n );\n\n const pageTemplateProps = useMemo(() => {\n const status = args.showStatus\n ? {\n type: args.statusVariant || 'pending',\n label: args.statusLabel || 'private change'\n }\n : undefined;\n\n return {\n title: args.title,\n actions,\n banners,\n path: getPath(),\n status,\n metadata: [\n { id: '1', name: 'ID', value: 'InterestRate' },\n { id: '2', name: 'Rule type', value: 'Field' },\n {\n id: '3',\n name: 'Scope',\n value: 'O1XPTI-CCompass-Work-MortgageRequest'\n },\n { id: '4', name: 'Application', value: 'XCompass' }\n ],\n additionalInfo: {\n title: 'Interest rate',\n description: 'Interest rate for the savings account',\n fields: [\n {\n id: '1',\n name: 'Id',\n value: 'InterestRate'\n },\n {\n id: '2',\n name: 'Rule type',\n value: 'Field'\n },\n {\n id: '3',\n name: 'Scope',\n value: 'O1XPTI-CCompass-Work-MortgageRequest'\n },\n {\n id: '4',\n name: 'Branch',\n value: 'xCompass (Main)'\n },\n {\n id: '5',\n name: 'Application',\n value: 'XCompass'\n }\n ],\n onEdit: args.showEditButton\n ? (e: MouseEvent<HTMLButtonElement>) => {\n args.onEdit?.(e);\n create(modal);\n }\n : undefined\n }\n };\n }, [args]);\n\n const [tabs, setTabs] = useState([\n { id: 'accounts', name: 'Accounts', content: <TableDemo /> },\n { id: 'form', name: 'Form', content: null },\n { id: 'workbench', name: 'Workbench', content: null }\n ]);\n\n let demo;\n const [openDrawer, setOpenDrawer] = useState(false);\n\n switch (args.template) {\n case 'one column':\n demo = <OneColumnPage a={mainContent} {...pageTemplateProps} />;\n break;\n case 'tabbed':\n default:\n demo = (\n <>\n <TabbedPage\n tabs={{\n tabs,\n type: 'horizontal',\n onTabClick: id => {\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (id) {\n case 'form':\n if (tabs[1].content === null) {\n const updatedTabs = [...tabs];\n updatedTabs[1].content = (\n <OneColumnForm\n previewCallback={() => {\n setOpenDrawer(true);\n }}\n />\n );\n\n setTabs(updatedTabs);\n }\n break;\n case 'workbench':\n if (tabs[2].content === null) {\n const updatedTabs = [...tabs];\n updatedTabs[2].content = <WorkbenchDemo />;\n\n setTabs(updatedTabs);\n }\n break;\n default:\n }\n }\n }}\n {...pageTemplateProps}\n />\n <ObjectPreview\n open={openDrawer}\n onDismiss={() => setOpenDrawer(false)}\n header={{\n title: 'Interest rate',\n metadata: [\n { id: '1', name: 'ID', value: 'InterestRate' },\n { id: '2', name: 'Rule type', value: 'Field' },\n {\n id: '3',\n name: 'Scope',\n value: 'O1XPTI-CCompass-Work-MortgageRequest'\n },\n { id: '4', name: 'Application', value: 'XCompass' }\n ],\n additionalInfo: {\n title: 'Interest rate',\n description: 'Interest rate for the savings account',\n fields: [\n {\n id: '1',\n name: 'Id',\n value: 'InterestRate'\n },\n {\n id: '2',\n name: 'Rule type',\n value: 'Field'\n },\n {\n id: '3',\n name: 'Scope',\n value: 'O1XPTI-CCompass-Work-MortgageRequest'\n },\n {\n id: '4',\n name: 'Branch',\n value: 'xCompass (Main)'\n },\n {\n id: '5',\n name: 'Application',\n value: 'XCompass'\n }\n ],\n onEdit: () => {}\n }\n }}\n content={<PreviewMainContent />}\n primaryAction={{\n id: 'PA',\n text: 'Save',\n onClick: () => {}\n }}\n secondaryAction={{\n id: 'SA',\n text: 'Open rule',\n onClick: () => {}\n }}\n additionalActions={{\n items: [\n {\n id: '1',\n text: 'Page action 1'\n },\n {\n id: '2',\n text: 'Page action 2'\n }\n ]\n }}\n />\n </>\n );\n break;\n }\n\n return (\n <Configuration theme={BuildTheme}>\n <AppShellDemo\n main={demo}\n hideNavigation={args.hideNavigation}\n appName='Compass App'\n text='Launchpad (Main)'\n showAppNameAndVersion\n showPreview\n showBranch\n />\n </Configuration>\n );\n};\n\nPageTemplatesDemo.args = {\n template: 'tabbed',\n title: 'Interest rate',\n subTitle: 'Uplus-Data-Integrations',\n hideNavigation: false,\n showBreadcrumbs: true,\n pathData: 'Home,xCompass,Fields',\n showActions: true,\n showBanners: false,\n showStatus: true,\n statusVariant: 'pending',\n statusLabel: 'private change',\n showEditButton: true,\n // eslint-disable-next-line demo-patterns/literal-args\n onEdit: action('Clicked edit button in popover')\n};\n\nPageTemplatesDemo.argTypes = {\n template: {\n options: ['one column', 'tabbed'],\n control: { type: 'select' }\n },\n subTitle: { control: { type: 'text' } },\n title: { control: { type: 'text' } },\n hideNavigation: { control: { type: 'boolean' } },\n showBreadcrumbs: { control: { type: 'boolean' } },\n pathData: { control: { type: 'text' } },\n showActions: { control: { type: 'boolean' } },\n showBanners: { control: { type: 'boolean' } },\n showStatus: { control: { type: 'boolean' } },\n statusVariant: {\n options: ['success', 'urgent', 'warn', 'pending', 'info'],\n control: { type: 'select' }\n },\n statusLabel: { control: { type: 'text' } },\n showEditButton: { control: { type: 'boolean' } },\n onEdit: { table: { disable: true } }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"PageTemplates.stories.jsx","sourceRoot":"","sources":["../../../src/build/PageTemplates/PageTemplates.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAc,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,KAAK,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,OAAO,EAGP,eAAe,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAiB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEzF,eAAe;IACb,KAAK,EAAE,qBAAqB;IAC5B,UAAU,EAAE;QACV,MAAM,EAAE,YAAY;KACrB;CACM,CAAC;AA0BV,MAAM,CAAC,MAAM,iBAAiB,GAAmD,CAC/E,IAA6C,EAC7C,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE3B,OAAO,IAAI;gBACT,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,CAAC,EAAE,EAAE;oBAEvC,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAK,KAAa,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;qBACnE,CAAC;gBACJ,CAAC,CAAC;gBACJ,CAAC,CAAC,EAAE,CAAC;SACR;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAiC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAC/D,CAAC,IAAI,CAAC,SAAS,CACb;MAAA,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CACtC;MAAA,CAAC,OAAO,CACN,MAAM,CAAC,CAAC,CAAC,CAAC,CACV,KAAK,CAAC,CAAC;YACL;gBACE,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,eAAe;aACtB;YACD;gBACE,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,eAAe;aACtB;SACF,CAAC,EAEN;IAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,OAAO,GAAiC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAC/D,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,EAAG,CAC5F,CAAC,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,WAAW,GAAG,CAAC,aAAa,CAAC,AAAD,EAAG,CAAC;IACtC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,CAClB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAC/B;MAAA,CAAC,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CACjF;QAAA,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAC/C;MAAA,EAAE,KAAK,CACT;IAAA,EAAE,aAAa,CAAC,CACjB,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU;YAC5B,CAAC,CAAC;gBACE,IAAI,EAAE,IAAI,CAAC,aAAa,IAAI,SAAS;gBACrC,KAAK,EAAE,IAAI,CAAC,WAAW,IAAI,gBAAgB;aAC5C;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO;YACP,OAAO;YACP,IAAI,EAAE,OAAO,EAAE;YACf,MAAM;YACN,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE;gBAC9C,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC9C;oBACE,EAAE,EAAE,GAAG;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,sCAAsC;iBAC9C;gBACD,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE;aACpD;YACD,cAAc,EAAE;gBACd,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,uCAAuC;gBACpD,MAAM,EAAE;oBACN;wBACE,EAAE,EAAE,GAAG;wBACP,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,cAAc;qBACtB;oBACD;wBACE,EAAE,EAAE,GAAG;wBACP,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,OAAO;qBACf;oBACD;wBACE,EAAE,EAAE,GAAG;wBACP,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,sCAAsC;qBAC9C;oBACD;wBACE,EAAE,EAAE,GAAG;wBACP,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,iBAAiB;qBACzB;oBACD;wBACE,EAAE,EAAE,GAAG;wBACP,IAAI,EAAE,aAAa;wBACnB,KAAK,EAAE,UAAU;qBAClB;iBACF;gBACD,MAAM,EAAE,IAAI,CAAC,cAAc;oBACzB,CAAC,CAAC,CAAC,CAAgC,EAAE,EAAE;wBACnC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;wBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChB,CAAC;oBACH,CAAC,CAAC,SAAS;aACd;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;QAC/B,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,AAAD,EAAG,EAAE;QAC5D,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3C,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;KACtD,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC;IACT,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,QAAQ,IAAI,CAAC,QAAQ,EAAE;QACrB,KAAK,YAAY;YACf,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,iBAAiB,CAAC,EAAG,CAAC;YAChE,MAAM;QACR,KAAK,QAAQ,CAAC;QACd;YACE,IAAI,GAAG,CACL,EACE;UAAA,CAAC,UAAU,CACT,IAAI,CAAC,CAAC;oBACJ,IAAI;oBACJ,IAAI,EAAE,YAAY;oBAClB,UAAU,EAAE,EAAE,CAAC,EAAE;wBAEf,QAAQ,EAAE,EAAE;4BACV,KAAK,MAAM;gCACT,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE;oCAC5B,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;oCAC9B,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CACvB,CAAC,aAAa,CACZ,eAAe,CAAC,CAAC,GAAG,EAAE;4CACpB,aAAa,CAAC,IAAI,CAAC,CAAC;wCACtB,CAAC,CAAC,EACF,CACH,CAAC;oCAEF,OAAO,CAAC,WAAW,CAAC,CAAC;iCACtB;gCACD,MAAM;4BACR,KAAK,WAAW;gCACd,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE;oCAC5B,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;oCAC9B,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,aAAa,CAAC,AAAD,EAAG,CAAC;oCAE3C,OAAO,CAAC,WAAW,CAAC,CAAC;iCACtB;gCACD,MAAM;4BACR,QAAQ;yBACT;oBACH,CAAC;iBACF,CAAC,CACF,IAAI,iBAAiB,CAAC,EAExB;UAAA,CAAC,aAAa,CACZ,IAAI,CAAC,CAAC,UAAU,CAAC,CACjB,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CACtC,MAAM,CAAC,CAAC;oBACN,KAAK,EAAE,eAAe;oBACtB,QAAQ,EAAE;wBACR,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE;wBAC9C,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE;wBAC9C;4BACE,EAAE,EAAE,GAAG;4BACP,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,sCAAsC;yBAC9C;wBACD,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE;qBACpD;oBACD,cAAc,EAAE;wBACd,KAAK,EAAE,eAAe;wBACtB,WAAW,EAAE,uCAAuC;wBACpD,MAAM,EAAE;4BACN;gCACE,EAAE,EAAE,GAAG;gCACP,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,cAAc;6BACtB;4BACD;gCACE,EAAE,EAAE,GAAG;gCACP,IAAI,EAAE,WAAW;gCACjB,KAAK,EAAE,OAAO;6BACf;4BACD;gCACE,EAAE,EAAE,GAAG;gCACP,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,sCAAsC;6BAC9C;4BACD;gCACE,EAAE,EAAE,GAAG;gCACP,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,iBAAiB;6BACzB;4BACD;gCACE,EAAE,EAAE,GAAG;gCACP,IAAI,EAAE,aAAa;gCACnB,KAAK,EAAE,UAAU;6BAClB;yBACF;wBACD,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;qBACjB;iBACF,CAAC,CACF,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,AAAD,EAAG,CAAC,CAChC,aAAa,CAAC,CAAC;oBACb,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;iBAClB,CAAC,CACF,eAAe,CAAC,CAAC;oBACf,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;iBAClB,CAAC,CACF,iBAAiB,CAAC,CAAC;oBACjB,KAAK,EAAE;wBACL;4BACE,EAAE,EAAE,GAAG;4BACP,IAAI,EAAE,eAAe;yBACtB;wBACD;4BACE,EAAE,EAAE,GAAG;4BACP,IAAI,EAAE,eAAe;yBACtB;qBACF;iBACF,CAAC,EAEN;QAAA,GAAG,CACJ,CAAC;YACF,MAAM;KACT;IAED,OAAO,CACL,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAC/B;MAAA,CAAC,YAAY,CACX,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,OAAO,CAAC,aAAa,CACrB,IAAI,CAAC,kBAAkB,CACvB,qBAAqB,CACrB,WAAW,CACX,UAAU,EAEd;IAAA,EAAE,aAAa,CAAC,CACjB,CAAC;AACJ,CAAC,CAAC;AAEF,iBAAiB,CAAC,IAAI,GAAG;IACvB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,yBAAyB;IACnC,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,sBAAsB;IAChC,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,SAAS;IACxB,WAAW,EAAE,gBAAgB;IAC7B,cAAc,EAAE,IAAI;IAEpB,MAAM,EAAE,MAAM,CAAC,gCAAgC,CAAC;CACjD,CAAC;AAEF,iBAAiB,CAAC,QAAQ,GAAG;IAC3B,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;QACjC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC5B;IACD,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACvC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACpC,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACjD,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACvC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC7C,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC7C,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC5C,aAAa,EAAE;QACb,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;QACzD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC5B;IACD,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC1C,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAChD,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;CACrC,CAAC","sourcesContent":["// cSpell:words XPTI\nimport { Meta, Story } from '@storybook/react';\nimport { useState, useMemo, MouseEvent } from 'react';\nimport { action } from '@storybook/addon-actions';\n\nimport {\n Button,\n Banner,\n Configuration,\n Modal,\n BuildTheme,\n Flex,\n Text,\n Actions,\n StatusProps,\n PageTemplateProps,\n useModalManager\n} from '@pega/cosmos-react-core';\nimport { TabbedPage, OneColumnPage, ObjectPreview } from '@pega/cosmos-react-build';\n\nimport { TableDemo } from '../../core/Table/Table.stories';\nimport { WorkbenchDemo } from '../Workbench/Workbench.stories';\nimport { AppShellDemo } from '../AppShell/AppShell.stories';\n\nimport { OneColumnForm, AppShellStory, PreviewMainContent } from './PageTemplates.mocks';\n\nexport default {\n title: 'Build/PageTemplates',\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\nexport interface PageTemplatesStoryProps extends PageTemplateProps {\n template?:\n | 'one column'\n | 'two column'\n | 'three column'\n | 'four column'\n | 'wide narrow'\n | 'narrow wide'\n | 'wide wide narrow'\n | 'narrow wide wide'\n | 'narrow wide narrow'\n | 'tabbed';\n showBreadcrumbs?: boolean;\n pathData?: string;\n showActions?: boolean;\n showBanners?: boolean;\n subTitle?: string;\n showStatus?: boolean;\n statusVariant?: StatusProps['variant'];\n statusLabel?: string;\n showEditButton?: boolean;\n onEdit?: (e: MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const PageTemplatesDemo: Story<PageTemplatesStoryProps & AppShellStory> = (\n args: PageTemplatesStoryProps & AppShellStory\n) => {\n const { create } = useModalManager();\n\n const getPath = () => {\n if (args.showBreadcrumbs) {\n const path = args.pathData;\n\n return path\n ? path.split(',').map((crumb: string, i) => {\n // FIXME: https://stackoverflow.com/questions/63616486/property-replaceall-does-not-exist-on-type-string\n return {\n id: crumb,\n primary: crumb,\n href: i < 3 ? `#${(crumb as any).replace(/\\s/g, '-')}` : undefined\n };\n })\n : [];\n }\n };\n\n const actions: PageTemplateProps['actions'] = args.showActions ? (\n <Flex container>\n <Button variant='primary'>Save</Button>\n <Actions\n menuAt={2}\n items={[\n {\n id: '1',\n text: 'Page action 1'\n },\n {\n id: '2',\n text: 'Page action 2'\n }\n ]}\n />\n </Flex>\n ) : undefined;\n\n const banners: PageTemplateProps['banners'] = args.showBanners ? (\n <Banner variant='warning' messages={['This is a warning banner. You have been warned!']} />\n ) : undefined;\n\n const mainContent = <OneColumnForm />;\n const modal = () => (\n <Configuration theme={BuildTheme}>\n <Modal heading='This is the Modal heading' autoWidth={false} center stretch={false}>\n <Text>This is the content of the Modal.</Text>\n </Modal>\n </Configuration>\n );\n\n const pageTemplateProps = useMemo(() => {\n const status = args.showStatus\n ? {\n type: args.statusVariant || 'pending',\n label: args.statusLabel || 'private change'\n }\n : undefined;\n\n return {\n title: args.title,\n actions,\n banners,\n path: getPath(),\n status,\n metadata: [\n { id: '1', name: 'ID', value: 'InterestRate' },\n { id: '2', name: 'Rule type', value: 'Field' },\n {\n id: '3',\n name: 'Scope',\n value: 'O1XPTI-CCompass-Work-MortgageRequest'\n },\n { id: '4', name: 'Application', value: 'XCompass' }\n ],\n additionalInfo: {\n title: 'Interest rate',\n description: 'Interest rate for the savings account',\n fields: [\n {\n id: '1',\n name: 'Id',\n value: 'InterestRate'\n },\n {\n id: '2',\n name: 'Rule type',\n value: 'Field'\n },\n {\n id: '3',\n name: 'Scope',\n value: 'O1XPTI-CCompass-Work-MortgageRequest'\n },\n {\n id: '4',\n name: 'Branch',\n value: 'xCompass (Main)'\n },\n {\n id: '5',\n name: 'Application',\n value: 'XCompass'\n }\n ],\n onEdit: args.showEditButton\n ? (e: MouseEvent<HTMLButtonElement>) => {\n args.onEdit?.(e);\n create(modal);\n }\n : undefined\n }\n };\n }, [args]);\n\n const [tabs, setTabs] = useState([\n { id: 'accounts', name: 'Accounts', content: <TableDemo /> },\n { id: 'form', name: 'Form', content: null },\n { id: 'workbench', name: 'Workbench', content: null }\n ]);\n\n let demo;\n const [openDrawer, setOpenDrawer] = useState(false);\n\n switch (args.template) {\n case 'one column':\n demo = <OneColumnPage a={mainContent} {...pageTemplateProps} />;\n break;\n case 'tabbed':\n default:\n demo = (\n <>\n <TabbedPage\n tabs={{\n tabs,\n type: 'horizontal',\n onTabClick: id => {\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (id) {\n case 'form':\n if (tabs[1].content === null) {\n const updatedTabs = [...tabs];\n updatedTabs[1].content = (\n <OneColumnForm\n previewCallback={() => {\n setOpenDrawer(true);\n }}\n />\n );\n\n setTabs(updatedTabs);\n }\n break;\n case 'workbench':\n if (tabs[2].content === null) {\n const updatedTabs = [...tabs];\n updatedTabs[2].content = <WorkbenchDemo />;\n\n setTabs(updatedTabs);\n }\n break;\n default:\n }\n }\n }}\n {...pageTemplateProps}\n />\n <ObjectPreview\n open={openDrawer}\n onDismiss={() => setOpenDrawer(false)}\n header={{\n title: 'Interest rate',\n metadata: [\n { id: '1', name: 'ID', value: 'InterestRate' },\n { id: '2', name: 'Rule type', value: 'Field' },\n {\n id: '3',\n name: 'Scope',\n value: 'O1XPTI-CCompass-Work-MortgageRequest'\n },\n { id: '4', name: 'Application', value: 'XCompass' }\n ],\n additionalInfo: {\n title: 'Interest rate',\n description: 'Interest rate for the savings account',\n fields: [\n {\n id: '1',\n name: 'Id',\n value: 'InterestRate'\n },\n {\n id: '2',\n name: 'Rule type',\n value: 'Field'\n },\n {\n id: '3',\n name: 'Scope',\n value: 'O1XPTI-CCompass-Work-MortgageRequest'\n },\n {\n id: '4',\n name: 'Branch',\n value: 'xCompass (Main)'\n },\n {\n id: '5',\n name: 'Application',\n value: 'XCompass'\n }\n ],\n onEdit: () => {}\n }\n }}\n content={<PreviewMainContent />}\n primaryAction={{\n id: 'PA',\n text: 'Save',\n onClick: () => {}\n }}\n secondaryAction={{\n id: 'SA',\n text: 'Open rule',\n onClick: () => {}\n }}\n additionalActions={{\n items: [\n {\n id: '1',\n text: 'Page action 1'\n },\n {\n id: '2',\n text: 'Page action 2'\n }\n ]\n }}\n />\n </>\n );\n break;\n }\n\n return (\n <Configuration theme={BuildTheme}>\n <AppShellDemo\n main={demo}\n appName='Compass App'\n text='Launchpad (Main)'\n showAppNameAndVersion\n showPreview\n showBranch\n />\n </Configuration>\n );\n};\n\nPageTemplatesDemo.args = {\n template: 'tabbed',\n title: 'Interest rate',\n subTitle: 'Uplus-Data-Integrations',\n showBreadcrumbs: true,\n pathData: 'Home,xCompass,Fields',\n showActions: true,\n showBanners: false,\n showStatus: true,\n statusVariant: 'pending',\n statusLabel: 'private change',\n showEditButton: true,\n // eslint-disable-next-line demo-patterns/literal-args\n onEdit: action('Clicked edit button in popover')\n};\n\nPageTemplatesDemo.argTypes = {\n template: {\n options: ['one column', 'tabbed'],\n control: { type: 'select' }\n },\n subTitle: { control: { type: 'text' } },\n title: { control: { type: 'text' } },\n showBreadcrumbs: { control: { type: 'boolean' } },\n pathData: { control: { type: 'text' } },\n showActions: { control: { type: 'boolean' } },\n showBanners: { control: { type: 'boolean' } },\n showStatus: { control: { type: 'boolean' } },\n statusVariant: {\n options: ['success', 'urgent', 'warn', 'pending', 'info'],\n control: { type: 'select' }\n },\n statusLabel: { control: { type: 'text' } },\n showEditButton: { control: { type: 'boolean' } },\n onEdit: { table: { disable: true } }\n};\n"]}
|
|
@@ -4,6 +4,7 @@ declare const _default: Meta<import("@storybook/react").Args>;
|
|
|
4
4
|
export default _default;
|
|
5
5
|
interface BannerDemoProps extends Pick<BannerProps, 'variant'> {
|
|
6
6
|
count?: number;
|
|
7
|
+
noActions?: boolean;
|
|
7
8
|
}
|
|
8
9
|
export declare const BannerDemo: Story<BannerDemoProps>;
|
|
9
10
|
interface ConfigurableErrorBannerProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Banner/Banner.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,
|
|
1
|
+
{"version":3,"file":"Banner.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Banner/Banner.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAEL,WAAW,EAQZ,MAAM,yBAAyB,CAAC;;AAMjC,wBAIU;AAEV,UAAU,eAAgB,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,eAAe,CA2F7C,CAAC;AAcF,UAAU,4BAA4B;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,4BAA4B,CAqBvE,CAAC;AAcF,eAAO,MAAM,WAAW,EAAE,KAsDzB,CAAC;AAKF,eAAO,MAAM,eAAe,EAAE,KAkB7B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useState, useCallback, useReducer } from 'react';
|
|
2
|
-
import { Banner, Button, Configuration, Form, Input } from '@pega/cosmos-react-core';
|
|
1
|
+
import { useEffect, useState, useCallback, useReducer, useRef } from 'react';
|
|
2
|
+
import { Banner, Button, Configuration, Flex, Form, Input } from '@pega/cosmos-react-core';
|
|
3
3
|
import { AppShellDemo } from '../AppShell/AppShell.stories';
|
|
4
4
|
import { demoFields, fieldReducer, formActions } from './Banner.mocks';
|
|
5
5
|
export default {
|
|
@@ -9,19 +9,36 @@ export default {
|
|
|
9
9
|
};
|
|
10
10
|
export const BannerDemo = (args) => {
|
|
11
11
|
const [show, setShow] = useState(true);
|
|
12
|
+
const bannerHandleRef = useRef(null);
|
|
13
|
+
const action = args.noActions
|
|
14
|
+
? undefined
|
|
15
|
+
: {
|
|
16
|
+
text: `Individual ${args.variant} action.`,
|
|
17
|
+
onClick: e => {
|
|
18
|
+
e.preventDefault();
|
|
19
|
+
},
|
|
20
|
+
href: 'https://pega.com'
|
|
21
|
+
};
|
|
12
22
|
const sliceMessages = (messages, count) => {
|
|
13
23
|
const currentMessages = [];
|
|
14
24
|
let currentCount = 0;
|
|
15
25
|
messages.forEach(msg => {
|
|
16
26
|
if (currentCount < count) {
|
|
17
27
|
currentCount += 1;
|
|
18
|
-
if (typeof msg === 'string'
|
|
28
|
+
if (typeof msg === 'string') {
|
|
19
29
|
currentMessages.push(msg);
|
|
20
30
|
}
|
|
31
|
+
else if (!msg.items) {
|
|
32
|
+
currentMessages.push({ ...msg, action });
|
|
33
|
+
}
|
|
21
34
|
else {
|
|
22
35
|
const [items, subCount] = sliceMessages(msg.items, count - currentCount);
|
|
23
36
|
currentCount += subCount;
|
|
24
|
-
currentMessages.push({
|
|
37
|
+
currentMessages.push({
|
|
38
|
+
...msg,
|
|
39
|
+
action,
|
|
40
|
+
items: items.length > 0 ? items : undefined
|
|
41
|
+
});
|
|
25
42
|
}
|
|
26
43
|
}
|
|
27
44
|
});
|
|
@@ -30,37 +47,16 @@ export const BannerDemo = (args) => {
|
|
|
30
47
|
const [messagesToRender] = sliceMessages([
|
|
31
48
|
{
|
|
32
49
|
label: `Individual ${args.variant} label.`,
|
|
33
|
-
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
|
|
34
|
-
action: {
|
|
35
|
-
text: `Individual ${args.variant} action.`,
|
|
36
|
-
onClick: e => {
|
|
37
|
-
e.preventDefault();
|
|
38
|
-
},
|
|
39
|
-
href: 'https://pega.com'
|
|
40
|
-
}
|
|
50
|
+
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
|
|
41
51
|
},
|
|
42
52
|
{
|
|
43
53
|
label: `Individual ${args.variant} label.`,
|
|
44
|
-
description: `Individual ${args.variant} description
|
|
45
|
-
action: {
|
|
46
|
-
text: `Individual ${args.variant} action.`,
|
|
47
|
-
onClick: e => {
|
|
48
|
-
e.preventDefault();
|
|
49
|
-
},
|
|
50
|
-
href: 'https://pega.com'
|
|
51
|
-
}
|
|
54
|
+
description: `Individual ${args.variant} description.`
|
|
52
55
|
},
|
|
53
56
|
`Individual ${args.variant} label.`,
|
|
54
57
|
{
|
|
55
58
|
label: `Individual ${args.variant} label.`,
|
|
56
|
-
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
|
|
57
|
-
action: {
|
|
58
|
-
text: `Individual ${args.variant} action.`,
|
|
59
|
-
onClick: e => {
|
|
60
|
-
e.preventDefault();
|
|
61
|
-
},
|
|
62
|
-
href: 'https://pega.com'
|
|
63
|
-
}
|
|
59
|
+
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
|
|
64
60
|
},
|
|
65
61
|
{
|
|
66
62
|
label: `Grandparent ${args.variant} label.`,
|
|
@@ -72,17 +68,22 @@ export const BannerDemo = (args) => {
|
|
|
72
68
|
]
|
|
73
69
|
}
|
|
74
70
|
], args.count ?? Infinity);
|
|
75
|
-
return (
|
|
76
|
-
{show ? (<Banner variant={args.variant} messages={messagesToRender} onDismiss={() => setShow(false)}/>) : (<Button onClick={() => setShow(true)}>Open banner</Button>)}
|
|
77
|
-
|
|
71
|
+
return (<Flex container={{ direction: 'column', gap: 2 }}>
|
|
72
|
+
{show ? (<Banner variant={args.variant} messages={messagesToRender} onDismiss={() => setShow(false)} handle={bannerHandleRef}/>) : (<Button onClick={() => setShow(true)}>Open banner</Button>)}
|
|
73
|
+
<Button onClick={() => bannerHandleRef.current?.focus()} style={{ maxWidth: 'fit-content' }}>
|
|
74
|
+
Focus
|
|
75
|
+
</Button>
|
|
76
|
+
</Flex>);
|
|
78
77
|
};
|
|
79
78
|
BannerDemo.args = {
|
|
80
79
|
variant: 'info',
|
|
81
|
-
count: 7
|
|
80
|
+
count: 7,
|
|
81
|
+
noActions: false
|
|
82
82
|
};
|
|
83
83
|
BannerDemo.argTypes = {
|
|
84
84
|
variant: { options: ['urgent', 'warning', 'success', 'info'], control: { type: 'select' } },
|
|
85
|
-
count: { control: { type: 'range', min: 1, max: 7 } }
|
|
85
|
+
count: { control: { type: 'range', min: 1, max: 7 } },
|
|
86
|
+
noActions: { control: { type: 'boolean' } }
|
|
86
87
|
};
|
|
87
88
|
export const ConfigurableErrorBanner = (args) => {
|
|
88
89
|
return (<Configuration theme={{
|
|
@@ -106,6 +107,7 @@ ConfigurableErrorBanner.argTypes = {
|
|
|
106
107
|
export const ShownInForm = () => {
|
|
107
108
|
const [fields, setField] = useReducer(fieldReducer, demoFields);
|
|
108
109
|
const [banner, setBanner] = useState();
|
|
110
|
+
const bannerHandleRef = useRef(null);
|
|
109
111
|
const onSubmit = useCallback((e) => {
|
|
110
112
|
e.preventDefault();
|
|
111
113
|
const errorFields = fields.filter(field => !field.validator(field.value));
|
|
@@ -117,8 +119,12 @@ export const ShownInForm = () => {
|
|
|
117
119
|
}
|
|
118
120
|
setBanner(<Banner variant={variant} messages={messages} onDismiss={() => {
|
|
119
121
|
setBanner(false);
|
|
120
|
-
}}/>);
|
|
122
|
+
}} handle={bannerHandleRef}/>);
|
|
121
123
|
}, []);
|
|
124
|
+
useEffect(() => {
|
|
125
|
+
if (banner && fields.some(field => !field.validator(field.value)) && bannerHandleRef.current)
|
|
126
|
+
bannerHandleRef.current.focus();
|
|
127
|
+
}, [banner]);
|
|
122
128
|
return (<Form banners={banner} actions={formActions} onSubmit={onSubmit} style={{ margin: 'auto', padding: '2.5rem', maxWidth: '37.5rem' }}>
|
|
123
129
|
{fields.map((field) => {
|
|
124
130
|
return (<Input key={field.name} name={field.name} label={field.label} info={field.info} value={field.value} onChange={(e) => setField(e.target)}/>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.stories.jsx","sourceRoot":"","sources":["../../../src/core/Banner/Banner.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useState, useCallback, FormEvent, useReducer } from 'react';\n\nimport { Banner, BannerProps, Button, Configuration, Form, Input } from '@pega/cosmos-react-core';\n\nimport { AppShellDemo } from '../AppShell/AppShell.stories';\n\nimport { demoFields, DemoFormField, fieldReducer, formActions } from './Banner.mocks';\n\nexport default {\n title: 'Core/Banner',\n component: Banner,\n excludeStories: ['ConfigurableErrorBanner']\n} as Meta;\n\ninterface BannerDemoProps extends Pick<BannerProps, 'variant'> {\n count?: number;\n}\n\nexport const BannerDemo: Story<BannerDemoProps> = (args: BannerDemoProps) => {\n const [show, setShow] = useState(true);\n\n const sliceMessages = (\n messages: BannerProps['messages'],\n count: number\n ): [messages: BannerProps['messages'], count: number] => {\n const currentMessages: BannerProps['messages'] = [];\n let currentCount = 0;\n\n messages.forEach(msg => {\n if (currentCount < count) {\n currentCount += 1;\n\n if (typeof msg === 'string' || !msg.items) {\n currentMessages.push(msg);\n } else {\n const [items, subCount] = sliceMessages(msg.items, count - currentCount);\n currentCount += subCount;\n currentMessages.push({ ...msg, items: items.length > 0 ? items : undefined });\n }\n }\n });\n\n return [currentMessages, currentCount];\n };\n\n const [messagesToRender] = sliceMessages(\n [\n {\n label: `Individual ${args.variant} label.`,\n description:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',\n action: {\n text: `Individual ${args.variant} action.`,\n onClick: e => {\n e.preventDefault();\n },\n href: 'https://pega.com'\n }\n },\n {\n label: `Individual ${args.variant} label.`,\n description: `Individual ${args.variant} description.`,\n action: {\n text: `Individual ${args.variant} action.`,\n onClick: e => {\n e.preventDefault();\n },\n href: 'https://pega.com'\n }\n },\n `Individual ${args.variant} label.`,\n {\n label: `Individual ${args.variant} label.`,\n description:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',\n action: {\n text: `Individual ${args.variant} action.`,\n onClick: e => {\n e.preventDefault();\n },\n href: 'https://pega.com'\n }\n },\n {\n label: `Grandparent ${args.variant} label.`,\n items: [\n {\n label: `Parent ${args.variant} label.`,\n items: [`Child ${args.variant} label.`]\n }\n ]\n }\n ],\n args.count ?? Infinity\n );\n\n return (\n <>\n {show ? (\n <Banner\n variant={args.variant}\n messages={messagesToRender}\n onDismiss={() => setShow(false)}\n />\n ) : (\n <Button onClick={() => setShow(true)}>Open banner</Button>\n )}\n </>\n );\n};\n\nBannerDemo.args = {\n variant: 'info',\n count: 7\n};\n\nBannerDemo.argTypes = {\n variant: { options: ['urgent', 'warning', 'success', 'info'], control: { type: 'select' } },\n count: { control: { type: 'range', min: 1, max: 7 } }\n};\n\ninterface ConfigurableErrorBannerProps {\n background?: string;\n}\n\nexport const ConfigurableErrorBanner: Story<ConfigurableErrorBannerProps> = (\n args: ConfigurableErrorBannerProps\n) => {\n return (\n <Configuration\n theme={{\n components: {\n banner: {\n urgent: {\n background: args.background\n }\n }\n }\n }}\n >\n <Banner\n variant='urgent'\n messages={['Your request failed to send!', 'Please review your request and try again']}\n />\n </Configuration>\n );\n};\n\nConfigurableErrorBanner.args = {\n background: '#d91c29'\n};\n\nConfigurableErrorBanner.argTypes = {\n background: { control: { type: 'color' } }\n};\n\n// -----------------------------------------------------------------------------\n// Form story\n// -----------------------------------------------------------------------------\n\nexport const ShownInForm: Story = () => {\n const [fields, setField] = useReducer(fieldReducer, demoFields);\n const [banner, setBanner] = useState<any>();\n\n const onSubmit = useCallback((e: FormEvent) => {\n e.preventDefault();\n const errorFields = fields.filter(field => !field.validator(field.value));\n let variant: 'success' | 'urgent' = 'success';\n let messages = fields.map(f => `${f.name} was typed perfectly`);\n\n if (errorFields.length > 0) {\n variant = 'urgent';\n messages = errorFields.map(f => `${f.name} was not typed correctly`);\n }\n\n setBanner(\n <Banner\n variant={variant}\n messages={messages}\n onDismiss={() => {\n setBanner(false);\n }}\n />\n );\n }, []);\n\n return (\n <Form\n banners={banner}\n actions={formActions}\n onSubmit={onSubmit}\n style={{ margin: 'auto', padding: '2.5rem', maxWidth: '37.5rem' }}\n >\n {fields.map((field: DemoFormField) => {\n return (\n <Input\n key={field.name}\n name={field.name}\n label={field.label}\n info={field.info}\n value={field.value}\n onChange={(e: InputEvent) => setField(e.target as any)}\n />\n );\n })}\n </Form>\n );\n};\n\n// -----------------------------------------------------------------------------\n// AppShell story\n// -----------------------------------------------------------------------------\nexport const ShownInAppShell: Story = () => {\n const [hasBanner, setHasBanner] = useState(true);\n return (\n <AppShellDemo\n banners={\n hasBanner && (\n <Banner\n onDismiss={() => setHasBanner(false)}\n variant='success'\n messages={[\n 'Uploaded pega_data.json successfully',\n 'Uploaded business-earnings.xlsx successfully'\n ]}\n />\n )\n }\n />\n );\n};\n\nShownInAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Banner.stories.jsx","sourceRoot":"","sources":["../../../src/core/Banner/Banner.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useEffect, useState, useCallback, FormEvent, useReducer, useRef } from 'react';\n\nimport {\n Banner,\n BannerProps,\n BannerMessage,\n BannerHandleValue,\n Button,\n Configuration,\n Flex,\n Form,\n Input\n} from '@pega/cosmos-react-core';\n\nimport { AppShellDemo } from '../AppShell/AppShell.stories';\n\nimport { demoFields, DemoFormField, fieldReducer, formActions } from './Banner.mocks';\n\nexport default {\n title: 'Core/Banner',\n component: Banner,\n excludeStories: ['ConfigurableErrorBanner']\n} as Meta;\n\ninterface BannerDemoProps extends Pick<BannerProps, 'variant'> {\n count?: number;\n noActions?: boolean;\n}\n\nexport const BannerDemo: Story<BannerDemoProps> = (args: BannerDemoProps) => {\n const [show, setShow] = useState(true);\n const bannerHandleRef = useRef<BannerHandleValue>(null);\n\n const action: BannerMessage['action'] = args.noActions\n ? undefined\n : {\n text: `Individual ${args.variant} action.`,\n onClick: e => {\n e.preventDefault();\n },\n href: 'https://pega.com'\n };\n\n const sliceMessages = (\n messages: BannerProps['messages'],\n count: number\n ): [messages: BannerProps['messages'], count: number] => {\n const currentMessages: BannerProps['messages'] = [];\n let currentCount = 0;\n\n messages.forEach(msg => {\n if (currentCount < count) {\n currentCount += 1;\n\n if (typeof msg === 'string') {\n currentMessages.push(msg);\n } else if (!msg.items) {\n currentMessages.push({ ...msg, action });\n } else {\n const [items, subCount] = sliceMessages(msg.items, count - currentCount);\n currentCount += subCount;\n currentMessages.push({\n ...msg,\n action,\n items: items.length > 0 ? items : undefined\n });\n }\n }\n });\n\n return [currentMessages, currentCount];\n };\n\n const [messagesToRender] = sliceMessages(\n [\n {\n label: `Individual ${args.variant} label.`,\n description:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'\n },\n {\n label: `Individual ${args.variant} label.`,\n description: `Individual ${args.variant} description.`\n },\n `Individual ${args.variant} label.`,\n {\n label: `Individual ${args.variant} label.`,\n description:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'\n },\n {\n label: `Grandparent ${args.variant} label.`,\n items: [\n {\n label: `Parent ${args.variant} label.`,\n items: [`Child ${args.variant} label.`]\n }\n ]\n }\n ],\n args.count ?? Infinity\n );\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n {show ? (\n <Banner\n variant={args.variant}\n messages={messagesToRender}\n onDismiss={() => setShow(false)}\n handle={bannerHandleRef}\n />\n ) : (\n <Button onClick={() => setShow(true)}>Open banner</Button>\n )}\n <Button onClick={() => bannerHandleRef.current?.focus()} style={{ maxWidth: 'fit-content' }}>\n Focus\n </Button>\n </Flex>\n );\n};\n\nBannerDemo.args = {\n variant: 'info',\n count: 7,\n noActions: false\n};\n\nBannerDemo.argTypes = {\n variant: { options: ['urgent', 'warning', 'success', 'info'], control: { type: 'select' } },\n count: { control: { type: 'range', min: 1, max: 7 } },\n noActions: { control: { type: 'boolean' } }\n};\n\ninterface ConfigurableErrorBannerProps {\n background?: string;\n}\n\nexport const ConfigurableErrorBanner: Story<ConfigurableErrorBannerProps> = (\n args: ConfigurableErrorBannerProps\n) => {\n return (\n <Configuration\n theme={{\n components: {\n banner: {\n urgent: {\n background: args.background\n }\n }\n }\n }}\n >\n <Banner\n variant='urgent'\n messages={['Your request failed to send!', 'Please review your request and try again']}\n />\n </Configuration>\n );\n};\n\nConfigurableErrorBanner.args = {\n background: '#d91c29'\n};\n\nConfigurableErrorBanner.argTypes = {\n background: { control: { type: 'color' } }\n};\n\n// -----------------------------------------------------------------------------\n// Form story\n// -----------------------------------------------------------------------------\n\nexport const ShownInForm: Story = () => {\n const [fields, setField] = useReducer(fieldReducer, demoFields);\n const [banner, setBanner] = useState<any>();\n const bannerHandleRef = useRef<BannerHandleValue>(null);\n\n const onSubmit = useCallback((e: FormEvent) => {\n e.preventDefault();\n const errorFields = fields.filter(field => !field.validator(field.value));\n let variant: 'success' | 'urgent' = 'success';\n let messages = fields.map(f => `${f.name} was typed perfectly`);\n\n if (errorFields.length > 0) {\n variant = 'urgent';\n messages = errorFields.map(f => `${f.name} was not typed correctly`);\n }\n\n setBanner(\n <Banner\n variant={variant}\n messages={messages}\n onDismiss={() => {\n setBanner(false);\n }}\n handle={bannerHandleRef}\n />\n );\n }, []);\n\n useEffect(() => {\n if (banner && fields.some(field => !field.validator(field.value)) && bannerHandleRef.current)\n bannerHandleRef.current.focus();\n }, [banner]);\n\n return (\n <Form\n banners={banner}\n actions={formActions}\n onSubmit={onSubmit}\n style={{ margin: 'auto', padding: '2.5rem', maxWidth: '37.5rem' }}\n >\n {fields.map((field: DemoFormField) => {\n return (\n <Input\n key={field.name}\n name={field.name}\n label={field.label}\n info={field.info}\n value={field.value}\n onChange={(e: InputEvent) => setField(e.target as any)}\n />\n );\n })}\n </Form>\n );\n};\n\n// -----------------------------------------------------------------------------\n// AppShell story\n// -----------------------------------------------------------------------------\nexport const ShownInAppShell: Story = () => {\n const [hasBanner, setHasBanner] = useState(true);\n return (\n <AppShellDemo\n banners={\n hasBanner && (\n <Banner\n onDismiss={() => setHasBanner(false)}\n variant='success'\n messages={[\n 'Uploaded pega_data.json successfully',\n 'Uploaded business-earnings.xlsx successfully'\n ]}\n />\n )\n }\n />\n );\n};\n\nShownInAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|