@pega/cosmos-react-demos 3.0.0-dev.16.0 → 3.0.0-dev.16.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/Workbench/Workbench.stories.d.ts +1 -0
- package/jsx/build/Workbench/Workbench.stories.d.ts.map +1 -1
- package/jsx/build/Workbench/Workbench.stories.jsx +196 -2
- package/jsx/build/Workbench/Workbench.stories.jsx.map +1 -1
- package/jsx/core/Currency/Currency.stories.d.ts.map +1 -1
- package/jsx/core/Currency/Currency.stories.jsx +0 -1
- package/jsx/core/Currency/Currency.stories.jsx.map +1 -1
- package/jsx/core/Menu/Menu.stories.jsx +1 -1
- package/jsx/core/Menu/Menu.stories.jsx.map +1 -1
- package/lib/build/Workbench/Workbench.stories.d.ts +1 -0
- package/lib/build/Workbench/Workbench.stories.d.ts.map +1 -1
- package/lib/build/Workbench/Workbench.stories.js +191 -2
- package/lib/build/Workbench/Workbench.stories.js.map +1 -1
- package/lib/core/Currency/Currency.stories.d.ts.map +1 -1
- package/lib/core/Currency/Currency.stories.js +0 -1
- package/lib/core/Currency/Currency.stories.js.map +1 -1
- package/lib/core/Menu/Menu.stories.js +1 -1
- package/lib/core/Menu/Menu.stories.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workbench.stories.d.ts","sourceRoot":"","sources":["../../../src/build/Workbench/Workbench.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;;
|
|
1
|
+
{"version":3,"file":"Workbench.stories.d.ts","sourceRoot":"","sources":["../../../src/build/Workbench/Workbench.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;;AAyD/C,wBAYU;AAEV,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,mBAAmB,CA+HpD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,mBAAmB,CAyPjE,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { useState } from 'react';
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
2
|
import { treeHelpers, StandardTree, Flex, SearchInput, TextArea, Input, Configuration, BuildTheme } from '@pega/cosmos-react-core';
|
|
3
|
-
import { FlowModeller, Workbench } from '@pega/cosmos-react-build';
|
|
3
|
+
import { FlowModeller, LifeCycle, Workbench } from '@pega/cosmos-react-build';
|
|
4
4
|
import { DirectedGraph } from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Utils/Graph';
|
|
5
5
|
import FlowModellerHelper from '@pega/cosmos-react-build/lib/components/FlowModeller/helper';
|
|
6
6
|
import { nodeLibrary, nodeActions, exampleCRMNodesData as nodesData, exampleCRMConnectorsData as connectorsData } from '../FlowModeller/FlowModeller.mocks';
|
|
7
|
+
import { LifeCycleWorkFlowData, workFlowNodeLibrary } from '../LifeCycle/LifeCycle.mocks';
|
|
8
|
+
import { addStageCallback, addStepCallback, addTaskCallback, deleteStageCallback, deleteStepCallback, deleteTaskCallback } from '../LifeCycle/utils';
|
|
7
9
|
import { sideList } from './Workbench.mocks';
|
|
8
10
|
export default {
|
|
9
11
|
title: 'Build/Workbench',
|
|
@@ -100,6 +102,198 @@ export const WorkbenchDemo = (args) => {
|
|
|
100
102
|
</Workbench>
|
|
101
103
|
</Configuration>);
|
|
102
104
|
};
|
|
105
|
+
export const WorkbenchWithLifecycleDemo = () => {
|
|
106
|
+
const [open, setOpen] = useState(false);
|
|
107
|
+
const [heading, setHeading] = useState('');
|
|
108
|
+
const ConfigContent = () => {
|
|
109
|
+
return (<Flex container={{ direction: 'column', gap: 2 }}>
|
|
110
|
+
<Input defaultValue={heading}/>
|
|
111
|
+
<TextArea name='Description' required label='Description' displayCharCount maxLength={300} value=''/>
|
|
112
|
+
</Flex>);
|
|
113
|
+
};
|
|
114
|
+
const WorkFlowView = () => {
|
|
115
|
+
const workFlowState = {
|
|
116
|
+
activeElementId: '',
|
|
117
|
+
data: LifeCycleWorkFlowData
|
|
118
|
+
};
|
|
119
|
+
const [workFlowData, setWorkFlowData] = useState(workFlowState);
|
|
120
|
+
const addProcessStep = (stepData, libItem) => {
|
|
121
|
+
const newStep = {
|
|
122
|
+
id: libItem.id,
|
|
123
|
+
label: libItem.primary,
|
|
124
|
+
visual: {
|
|
125
|
+
color: libItem.type.color,
|
|
126
|
+
icon: libItem.type.icon
|
|
127
|
+
},
|
|
128
|
+
error: '',
|
|
129
|
+
status: { label: '' }
|
|
130
|
+
};
|
|
131
|
+
const updatedTask = {
|
|
132
|
+
...stepData.task,
|
|
133
|
+
steps: [...stepData.task.steps, newStep]
|
|
134
|
+
};
|
|
135
|
+
const updatedData = { ...stepData, task: updatedTask };
|
|
136
|
+
const changedData = addStepCallback(updatedData, workFlowData);
|
|
137
|
+
setWorkFlowData(changedData);
|
|
138
|
+
};
|
|
139
|
+
const deleteProcessStep = (stepData) => {
|
|
140
|
+
const changedData = deleteStepCallback(stepData, workFlowData);
|
|
141
|
+
setWorkFlowData(changedData);
|
|
142
|
+
};
|
|
143
|
+
const addProcess = (taskData) => {
|
|
144
|
+
const changedData = addTaskCallback(taskData, workFlowData);
|
|
145
|
+
setWorkFlowData(changedData);
|
|
146
|
+
};
|
|
147
|
+
const addParallelProcess = (taskData) => {
|
|
148
|
+
const changedData = addTaskCallback(taskData, workFlowData, true);
|
|
149
|
+
setWorkFlowData(changedData);
|
|
150
|
+
};
|
|
151
|
+
const deleteProcess = (taskData) => {
|
|
152
|
+
const changedData = deleteTaskCallback(taskData, workFlowData);
|
|
153
|
+
setWorkFlowData(changedData);
|
|
154
|
+
};
|
|
155
|
+
const configureProcess = () => {
|
|
156
|
+
setHeading('Configure Process');
|
|
157
|
+
setOpen(true);
|
|
158
|
+
};
|
|
159
|
+
const onAddStage = () => {
|
|
160
|
+
const changedData = addStageCallback(workFlowData, 'stages');
|
|
161
|
+
setWorkFlowData(changedData);
|
|
162
|
+
};
|
|
163
|
+
const onAddAlternateStage = () => {
|
|
164
|
+
const changedData = addStageCallback(workFlowData, 'alternateStages');
|
|
165
|
+
setWorkFlowData(changedData);
|
|
166
|
+
};
|
|
167
|
+
const onDeleteStage = param => {
|
|
168
|
+
const changedData = deleteStageCallback(param, workFlowData);
|
|
169
|
+
if (changedData === 'firstStage') {
|
|
170
|
+
alert("you can't delete the create stage");
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
setWorkFlowData(changedData);
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
const stepInputFocus = () => { };
|
|
177
|
+
const stepInputBlur = () => { };
|
|
178
|
+
const stepInputChange = () => { };
|
|
179
|
+
const taskInputFocus = () => { };
|
|
180
|
+
const taskInputBlur = () => { };
|
|
181
|
+
const taskInputChange = () => { };
|
|
182
|
+
const onStageInputFocus = () => { };
|
|
183
|
+
const onStageInputBlur = () => { };
|
|
184
|
+
const onStageInputChange = () => { };
|
|
185
|
+
const onAlternateStageInputChange = () => { };
|
|
186
|
+
useEffect(() => {
|
|
187
|
+
if (workFlowData.activeElementId) {
|
|
188
|
+
const elementId = document.getElementById(`${workFlowData.activeElementId}`);
|
|
189
|
+
if (elementId) {
|
|
190
|
+
elementId.focus();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
const stages = workFlowData.data.stages;
|
|
195
|
+
const alternateStages = workFlowData.data.alternateStages;
|
|
196
|
+
const categories = LifeCycleWorkFlowData.categories;
|
|
197
|
+
return (<LifeCycle items={stages} alternateItems={alternateStages} categories={categories} task={[
|
|
198
|
+
{
|
|
199
|
+
actions: [
|
|
200
|
+
{
|
|
201
|
+
text: 'Delete Process',
|
|
202
|
+
id: 'delete9',
|
|
203
|
+
icon: 'trash',
|
|
204
|
+
onClick: deleteProcess
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
text: 'Configure Process',
|
|
208
|
+
id: 'share2',
|
|
209
|
+
icon: 'share',
|
|
210
|
+
onClick: configureProcess
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
addStepTitle: 'step',
|
|
214
|
+
addTask: {
|
|
215
|
+
title: 'Process',
|
|
216
|
+
showOnce: true,
|
|
217
|
+
onAddTask: addProcess
|
|
218
|
+
},
|
|
219
|
+
onFocus: taskInputFocus,
|
|
220
|
+
onBlur: taskInputBlur,
|
|
221
|
+
onChange: taskInputChange,
|
|
222
|
+
onAddStep: addProcessStep,
|
|
223
|
+
nodeLibrary: workFlowNodeLibrary
|
|
224
|
+
}
|
|
225
|
+
]} step={[
|
|
226
|
+
{
|
|
227
|
+
actions: [
|
|
228
|
+
{
|
|
229
|
+
text: 'Delete step',
|
|
230
|
+
id: 'delete10',
|
|
231
|
+
icon: 'trash',
|
|
232
|
+
onClick: deleteProcessStep
|
|
233
|
+
}
|
|
234
|
+
],
|
|
235
|
+
onFocus: stepInputFocus,
|
|
236
|
+
onBlur: stepInputBlur,
|
|
237
|
+
onChange: stepInputChange
|
|
238
|
+
}
|
|
239
|
+
]} stage={{
|
|
240
|
+
actions: {
|
|
241
|
+
start: [
|
|
242
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
243
|
+
{ text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },
|
|
244
|
+
{ text: 'Add Alternate Stage', id: 'add2', onClick: onAddAlternateStage }
|
|
245
|
+
],
|
|
246
|
+
default: [
|
|
247
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
248
|
+
{ text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },
|
|
249
|
+
{ text: 'Add Alternate Stage', id: 'add2', onClick: onAddAlternateStage },
|
|
250
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
251
|
+
],
|
|
252
|
+
'default-wait': [
|
|
253
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
254
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
255
|
+
],
|
|
256
|
+
resolution: [],
|
|
257
|
+
alternate: [
|
|
258
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
259
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
260
|
+
],
|
|
261
|
+
'alternate-wait': [
|
|
262
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
263
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
264
|
+
]
|
|
265
|
+
},
|
|
266
|
+
onFocus: onStageInputFocus,
|
|
267
|
+
onBlur: onStageInputBlur,
|
|
268
|
+
onChange: onStageInputChange
|
|
269
|
+
}} alternateStage={{
|
|
270
|
+
actions: [
|
|
271
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
272
|
+
{ text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },
|
|
273
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
274
|
+
],
|
|
275
|
+
onChange: onAlternateStageInputChange
|
|
276
|
+
}} onAddStage={onAddStage} onAddAlternateStage={onAddAlternateStage}/>);
|
|
277
|
+
};
|
|
278
|
+
const toolbarActions = {
|
|
279
|
+
undo: { id: 'undo', disabled: false, onClick: () => { } },
|
|
280
|
+
redo: { id: 'redo', disabled: true, onClick: () => { } }
|
|
281
|
+
};
|
|
282
|
+
return (<Configuration theme={BuildTheme}>
|
|
283
|
+
<Workbench initiallyVisiblePanelId={undefined} toolbar={{
|
|
284
|
+
toolbarActions
|
|
285
|
+
}} configurationPanel={{
|
|
286
|
+
open,
|
|
287
|
+
content: <ConfigContent />,
|
|
288
|
+
header: heading,
|
|
289
|
+
onDismiss: () => {
|
|
290
|
+
setOpen(false);
|
|
291
|
+
}
|
|
292
|
+
}}>
|
|
293
|
+
<WorkFlowView />
|
|
294
|
+
</Workbench>
|
|
295
|
+
</Configuration>);
|
|
296
|
+
};
|
|
103
297
|
WorkbenchDemo.args = {
|
|
104
298
|
showActions: true,
|
|
105
299
|
hideSidePanel: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workbench.stories.jsx","sourceRoot":"","sources":["../../../src/build/Workbench/Workbench.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useState } from 'react';\n\nimport {\n StandardTreeProps,\n treeHelpers,\n StandardTree,\n Flex,\n SearchInput,\n TextArea,\n Input,\n Configuration,\n BuildTheme\n} from '@pega/cosmos-react-core';\nimport { FlowModeller, Workbench } from '@pega/cosmos-react-build';\nimport { IconNames } from '@pega/cosmos-react-core/lib/components/Icon/iconNames';\nimport {\n NodeProps,\n NodeType\n} from '@pega/cosmos-react-build/lib/components/FlowModeller/Node/Node.types';\nimport {\n DirectedGraph,\n GraphData,\n ConnectorProps\n} from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Utils/Graph';\nimport FlowModellerHelper from '@pega/cosmos-react-build/lib/components/FlowModeller/helper';\nimport { AddNodeHandlerParams } from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Renderer.types';\n\nimport {\n nodeLibrary,\n nodeActions,\n exampleCRMNodesData as nodesData,\n exampleCRMConnectorsData as connectorsData\n} from '../FlowModeller/FlowModeller.mocks';\n\nimport { sideList } from './Workbench.mocks';\n\nexport default {\n title: 'Build/Workbench',\n parameters: {\n layout: 'fullscreen'\n },\n decorators: [\n StoryComp => (\n <div style={{ height: '100vh' }}>\n <StoryComp />\n </div>\n )\n ]\n} as Meta;\n\nexport interface WorkbenchStoryProps {\n showActions?: boolean;\n hideSidePanel?: boolean;\n zoom?: boolean;\n}\n\nexport const WorkbenchDemo: Story<WorkbenchStoryProps> = (args: WorkbenchStoryProps) => {\n const [open, setOpen] = useState(false);\n const [heading, setHeading] = useState('');\n const [description, setDescription] = useState('');\n const Content = () => {\n const [currentNodeId, setCurrentNodeId] = useState<string | undefined>();\n const [allNodes, setAllNodes] = useState<StandardTreeProps['nodes']>(sideList);\n\n return (\n <>\n <SearchInput />\n <StandardTree\n currentNodeId={currentNodeId}\n nodes={allNodes}\n onNodeClick={id => {\n const clickedNode = treeHelpers.getNode(allNodes, id);\n setCurrentNodeId(id);\n // If a leaf node, just set to current\n if (!clickedNode?.nodes) return;\n\n setAllNodes(tree =>\n treeHelpers.mapNode(tree, id, node => {\n return {\n ...node,\n expanded: !node.expanded\n };\n })\n );\n }}\n />\n </>\n );\n };\n\n const ConfigContent = () => {\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input defaultValue={heading} />\n <TextArea\n name='Description'\n required\n label='Description'\n displayCharCount\n maxLength={300}\n value={description}\n />\n </Flex>\n );\n };\n\n const FlowChartView = () => {\n const [graphData, setGraphData] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: nodesData,\n connectors: connectorsData\n });\n\n const launchPropertyModal = (node: NodeProps) => {\n setHeading(node.label);\n setDescription(node.description || '');\n setOpen(true);\n };\n\n const addNode = (nodeType: NodeType, metaData: AddNodeHandlerParams) => {\n const UpdatedData = FlowModellerHelper.addNode({\n nodeType,\n graphData,\n metaData\n });\n if (UpdatedData) {\n const newGraphData: GraphData<NodeProps, ConnectorProps> = UpdatedData.graphData;\n setGraphData(newGraphData);\n }\n };\n\n const selectNode = (nodeId: NodeProps['id']) => {\n const graph = new DirectedGraph(graphData);\n const node = graph.getNode(nodeId);\n launchPropertyModal(node);\n };\n\n return (\n <FlowModeller\n graphData={graphData}\n nodeLibrary={nodeLibrary}\n onNodeAdd={addNode}\n onNodeClick={selectNode}\n actions={nodeActions}\n />\n );\n };\n\n const ExplorerContent = () => {\n return <SearchInput />;\n };\n\n const utilityPanels = [\n { title: 'Steps', id: '1', icon: 'plus' as IconNames, content: <Content /> },\n { title: 'Explorer', id: '2', icon: 'app' as IconNames, content: <ExplorerContent /> },\n { title: 'Views', id: '3', icon: 'headline' as IconNames, content: <Content /> }\n ];\n\n const toolbarActions = {\n undo: { id: 'undo', disabled: false, onClick: () => {} },\n redo: { id: 'redo', disabled: true, onClick: () => {} }\n };\n\n return (\n <Configuration theme={BuildTheme}>\n <Workbench\n utilityPanels={utilityPanels}\n initiallyVisiblePanelId={utilityPanels[0].id}\n toolbar={{\n toolbarActions: args.showActions ? toolbarActions : undefined\n }}\n configurationPanel={{\n open,\n content: <ConfigContent />,\n header: heading,\n onDismiss: () => {\n setOpen(false);\n }\n }}\n >\n <FlowChartView />\n </Workbench>\n </Configuration>\n );\n};\n\nWorkbenchDemo.args = {\n showActions: true,\n hideSidePanel: false\n};\n\nWorkbenchDemo.argTypes = {\n showActions: { control: { type: 'boolean' } },\n hideSidePanel: { control: { type: 'boolean' } }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Workbench.stories.jsx","sourceRoot":"","sources":["../../../src/build/Workbench/Workbench.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useEffect, useState } from 'react';\n\nimport {\n StandardTreeProps,\n treeHelpers,\n StandardTree,\n Flex,\n SearchInput,\n TextArea,\n Input,\n Configuration,\n BuildTheme\n} from '@pega/cosmos-react-core';\nimport {\n CategoriesItemProps,\n FlowModeller,\n LibraryItem,\n LifeCycle,\n LifeCycleAction,\n LifeCycleActionParam,\n StageItemProps,\n StepItemProps,\n Workbench\n} from '@pega/cosmos-react-build';\nimport { IconNames } from '@pega/cosmos-react-core/lib/components/Icon/iconNames';\nimport {\n NodeProps,\n NodeType\n} from '@pega/cosmos-react-build/lib/components/FlowModeller/Node/Node.types';\nimport {\n DirectedGraph,\n GraphData,\n ConnectorProps\n} from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Utils/Graph';\nimport FlowModellerHelper from '@pega/cosmos-react-build/lib/components/FlowModeller/helper';\nimport { AddNodeHandlerParams } from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Renderer.types';\n\nimport {\n nodeLibrary,\n nodeActions,\n exampleCRMNodesData as nodesData,\n exampleCRMConnectorsData as connectorsData\n} from '../FlowModeller/FlowModeller.mocks';\nimport { LifeCycleWorkFlowData, workFlowNodeLibrary } from '../LifeCycle/LifeCycle.mocks';\nimport {\n addStageCallback,\n addStepCallback,\n addTaskCallback,\n deleteStageCallback,\n deleteStepCallback,\n deleteTaskCallback,\n LifeCycleMockState\n} from '../LifeCycle/utils';\n\nimport { sideList } from './Workbench.mocks';\n\nexport default {\n title: 'Build/Workbench',\n parameters: {\n layout: 'fullscreen'\n },\n decorators: [\n StoryComp => (\n <div style={{ height: '100vh' }}>\n <StoryComp />\n </div>\n )\n ]\n} as Meta;\n\nexport interface WorkbenchStoryProps {\n showActions?: boolean;\n hideSidePanel?: boolean;\n zoom?: boolean;\n}\n\nexport const WorkbenchDemo: Story<WorkbenchStoryProps> = (args: WorkbenchStoryProps) => {\n const [open, setOpen] = useState(false);\n const [heading, setHeading] = useState('');\n const [description, setDescription] = useState('');\n const Content = () => {\n const [currentNodeId, setCurrentNodeId] = useState<string | undefined>();\n const [allNodes, setAllNodes] = useState<StandardTreeProps['nodes']>(sideList);\n\n return (\n <>\n <SearchInput />\n <StandardTree\n currentNodeId={currentNodeId}\n nodes={allNodes}\n onNodeClick={id => {\n const clickedNode = treeHelpers.getNode(allNodes, id);\n setCurrentNodeId(id);\n // If a leaf node, just set to current\n if (!clickedNode?.nodes) return;\n\n setAllNodes(tree =>\n treeHelpers.mapNode(tree, id, node => {\n return {\n ...node,\n expanded: !node.expanded\n };\n })\n );\n }}\n />\n </>\n );\n };\n\n const ConfigContent = () => {\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input defaultValue={heading} />\n <TextArea\n name='Description'\n required\n label='Description'\n displayCharCount\n maxLength={300}\n value={description}\n />\n </Flex>\n );\n };\n\n const FlowChartView = () => {\n const [graphData, setGraphData] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: nodesData,\n connectors: connectorsData\n });\n\n const launchPropertyModal = (node: NodeProps) => {\n setHeading(node.label);\n setDescription(node.description || '');\n setOpen(true);\n };\n\n const addNode = (nodeType: NodeType, metaData: AddNodeHandlerParams) => {\n const UpdatedData = FlowModellerHelper.addNode({\n nodeType,\n graphData,\n metaData\n });\n if (UpdatedData) {\n const newGraphData: GraphData<NodeProps, ConnectorProps> = UpdatedData.graphData;\n setGraphData(newGraphData);\n }\n };\n\n const selectNode = (nodeId: NodeProps['id']) => {\n const graph = new DirectedGraph(graphData);\n const node = graph.getNode(nodeId);\n launchPropertyModal(node);\n };\n\n return (\n <FlowModeller\n graphData={graphData}\n nodeLibrary={nodeLibrary}\n onNodeAdd={addNode}\n onNodeClick={selectNode}\n actions={nodeActions}\n />\n );\n };\n\n const ExplorerContent = () => {\n return <SearchInput />;\n };\n\n const utilityPanels = [\n { title: 'Steps', id: '1', icon: 'plus' as IconNames, content: <Content /> },\n { title: 'Explorer', id: '2', icon: 'app' as IconNames, content: <ExplorerContent /> },\n { title: 'Views', id: '3', icon: 'headline' as IconNames, content: <Content /> }\n ];\n\n const toolbarActions = {\n undo: { id: 'undo', disabled: false, onClick: () => {} },\n redo: { id: 'redo', disabled: true, onClick: () => {} }\n };\n\n return (\n <Configuration theme={BuildTheme}>\n <Workbench\n utilityPanels={utilityPanels}\n initiallyVisiblePanelId={utilityPanels[0].id}\n toolbar={{\n toolbarActions: args.showActions ? toolbarActions : undefined\n }}\n configurationPanel={{\n open,\n content: <ConfigContent />,\n header: heading,\n onDismiss: () => {\n setOpen(false);\n }\n }}\n >\n <FlowChartView />\n </Workbench>\n </Configuration>\n );\n};\n\nexport const WorkbenchWithLifecycleDemo: Story<WorkbenchStoryProps> = () => {\n const [open, setOpen] = useState(false);\n const [heading, setHeading] = useState('');\n\n const ConfigContent = () => {\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input defaultValue={heading} />\n <TextArea\n name='Description'\n required\n label='Description'\n displayCharCount\n maxLength={300}\n value=''\n />\n </Flex>\n );\n };\n\n const WorkFlowView = () => {\n const workFlowState = {\n activeElementId: '',\n data: LifeCycleWorkFlowData\n } as LifeCycleMockState;\n\n const [workFlowData, setWorkFlowData] = useState(workFlowState);\n\n const addProcessStep = (stepData: LifeCycleActionParam, libItem: LibraryItem) => {\n const newStep: StepItemProps = {\n id: libItem.id,\n label: libItem.primary,\n visual: {\n color: libItem.type.color as StepItemProps['visual']['color'],\n icon: libItem.type.icon\n } as StepItemProps['visual'],\n error: '',\n status: { label: '' }\n };\n const updatedTask = {\n ...stepData.task,\n steps: [...stepData.task!.steps, newStep]\n } as LifeCycleActionParam['task'];\n\n const updatedData: LifeCycleActionParam = { ...stepData, task: updatedTask };\n\n const changedData = addStepCallback(updatedData, workFlowData);\n setWorkFlowData(changedData);\n };\n\n const deleteProcessStep = (stepData: LifeCycleActionParam) => {\n const changedData = deleteStepCallback(stepData, workFlowData);\n setWorkFlowData(changedData);\n };\n\n const addProcess = (taskData: LifeCycleActionParam) => {\n const changedData = addTaskCallback(taskData, workFlowData);\n setWorkFlowData(changedData);\n };\n\n const addParallelProcess = (taskData: LifeCycleActionParam) => {\n const changedData = addTaskCallback(taskData, workFlowData, true);\n setWorkFlowData(changedData);\n };\n\n const deleteProcess = (taskData: LifeCycleActionParam) => {\n const changedData = deleteTaskCallback(taskData, workFlowData);\n setWorkFlowData(changedData);\n };\n\n const configureProcess = () => {\n setHeading('Configure Process');\n setOpen(true);\n };\n\n const onAddStage = () => {\n const changedData = addStageCallback(workFlowData, 'stages');\n setWorkFlowData(changedData);\n };\n\n const onAddAlternateStage = () => {\n const changedData = addStageCallback(workFlowData, 'alternateStages');\n setWorkFlowData(changedData);\n };\n\n const onDeleteStage: LifeCycleAction['onClick'] = param => {\n const changedData = deleteStageCallback(param, workFlowData);\n if (changedData === 'firstStage') {\n // eslint-disable-next-line no-alert\n alert(\"you can't delete the create stage\");\n } else {\n setWorkFlowData(changedData);\n }\n };\n\n const stepInputFocus = () => {};\n\n const stepInputBlur = () => {};\n\n const stepInputChange = () => {};\n\n const taskInputFocus = () => {};\n\n const taskInputBlur = () => {};\n\n const taskInputChange = () => {};\n\n const onStageInputFocus = () => {};\n\n const onStageInputBlur = () => {};\n\n const onStageInputChange = () => {};\n\n const onAlternateStageInputChange = () => {};\n useEffect(() => {\n if (workFlowData.activeElementId) {\n const elementId: HTMLElement | null = document.getElementById(\n `${workFlowData.activeElementId}`\n );\n if (elementId) {\n elementId.focus();\n }\n }\n });\n\n const stages = workFlowData.data.stages as StageItemProps[];\n const alternateStages = workFlowData.data.alternateStages as StageItemProps[];\n const categories: CategoriesItemProps[] = LifeCycleWorkFlowData.categories;\n\n return (\n <LifeCycle\n items={stages}\n alternateItems={alternateStages}\n categories={categories}\n task={[\n {\n actions: [\n {\n text: 'Delete Process',\n id: 'delete9',\n icon: 'trash',\n onClick: deleteProcess\n },\n {\n text: 'Configure Process',\n id: 'share2',\n icon: 'share',\n onClick: configureProcess\n }\n ],\n addStepTitle: 'step',\n addTask: {\n title: 'Process',\n showOnce: true,\n onAddTask: addProcess\n },\n onFocus: taskInputFocus,\n onBlur: taskInputBlur,\n onChange: taskInputChange,\n onAddStep: addProcessStep,\n nodeLibrary: workFlowNodeLibrary\n }\n ]}\n step={[\n {\n actions: [\n {\n text: 'Delete step',\n id: 'delete10',\n icon: 'trash',\n onClick: deleteProcessStep\n }\n ],\n onFocus: stepInputFocus,\n onBlur: stepInputBlur,\n onChange: stepInputChange\n // disabled: true\n }\n ]}\n stage={{\n actions: {\n start: [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },\n { text: 'Add Alternate Stage', id: 'add2', onClick: onAddAlternateStage }\n ],\n default: [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },\n { text: 'Add Alternate Stage', id: 'add2', onClick: onAddAlternateStage },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ],\n 'default-wait': [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ],\n resolution: [],\n alternate: [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ],\n 'alternate-wait': [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ]\n },\n onFocus: onStageInputFocus,\n onBlur: onStageInputBlur,\n onChange: onStageInputChange\n }}\n alternateStage={{\n actions: [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ],\n onChange: onAlternateStageInputChange\n }}\n onAddStage={onAddStage}\n onAddAlternateStage={onAddAlternateStage}\n />\n );\n };\n\n const toolbarActions = {\n undo: { id: 'undo', disabled: false, onClick: () => {} },\n redo: { id: 'redo', disabled: true, onClick: () => {} }\n };\n\n return (\n <Configuration theme={BuildTheme}>\n <Workbench\n initiallyVisiblePanelId={undefined}\n toolbar={{\n toolbarActions\n }}\n configurationPanel={{\n open,\n content: <ConfigContent />,\n header: heading,\n onDismiss: () => {\n setOpen(false);\n }\n }}\n >\n <WorkFlowView />\n </Workbench>\n </Configuration>\n );\n};\n\nWorkbenchDemo.args = {\n showActions: true,\n hideSidePanel: false\n};\n\nWorkbenchDemo.argTypes = {\n showActions: { control: { type: 'boolean' } },\n hideSidePanel: { control: { type: 'boolean' } }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Currency.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Currency/Currency.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAEL,oBAAoB,EAEpB,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;;AAEjC,wBAGU;AAEV,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"Currency.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Currency/Currency.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAEL,oBAAoB,EAEpB,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;;AAEjC,wBAGU;AAEV,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAuChE,CAAC;AAmCF,UAAU,yBAA0B,SAAQ,oBAAoB;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,QAAQ,EAAE,YAAY,GAAG,aAAa,CAAC;IACvC,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,yBAAyB,CAgBhE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Currency.stories.jsx","sourceRoot":"","sources":["../../../src/core/Currency/Currency.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EACL,eAAe,EAEf,aAAa,EAEb,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAEjC,eAAe;IACb,KAAK,EAAE,eAAe;IACtB,SAAS,EAAE,aAAa;CACjB,CAAC;AAEV,MAAM,CAAC,MAAM,iBAAiB,GAAuC,CACnE,IAAiC,EACjC,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAChC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAC/C,CAAC;IAEF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpF,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,CAAC,aAAa,CACZ,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;YACrB,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC,CAAC,CACF,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE;YACnB,
|
|
1
|
+
{"version":3,"file":"Currency.stories.jsx","sourceRoot":"","sources":["../../../src/core/Currency/Currency.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useEffect, useState } from 'react';\n\nimport {\n CurrencyDisplay,\n CurrencyDisplayProps,\n CurrencyInput,\n CurrencyInputProps,\n usePrevious\n} from '@pega/cosmos-react-core';\n\nexport default {\n title: 'Core/Currency',\n component: CurrencyInput\n} as Meta;\n\nexport const CurrencyInputDemo: Story<Partial<CurrencyInputProps>> = (\n args: Partial<CurrencyInputProps>\n) => {\n const [value, setValue] = useState<string | undefined>(\n args.value ? args.value.toString() : undefined\n );\n\n const prev = usePrevious(args.value);\n useEffect(() => {\n if (prev !== args.value) setValue(args.value ? args.value.toString() : undefined);\n }, [prev, args.value]);\n\n return (\n <CurrencyInput\n value={value}\n onChange={inputValue => {\n setValue(inputValue);\n args.onChange?.(inputValue);\n }}\n onBlur={inputValue => {\n args.onBlur?.(inputValue);\n }}\n onFocus={inputValue => {\n args.onFocus?.(inputValue);\n }}\n currencyISOCode={args.currencyISOCode}\n alwaysShowISOCode={args.alwaysShowISOCode}\n showDecimal={args.showDecimal}\n showGroupSeparators={args.showGroupSeparators}\n step={args.step}\n label={args.label}\n labelHidden={args.labelHidden}\n info={args.info}\n status={args.status}\n required={args.required}\n disabled={args.disabled}\n readOnly={args.readOnly}\n />\n );\n};\n\nCurrencyInputDemo.args = {\n currencyISOCode: 'USD',\n alwaysShowISOCode: false,\n showDecimal: true,\n showGroupSeparators: true,\n step: 1,\n label: 'Currency input',\n labelHidden: false,\n info: 'Enter a numerical value',\n status: undefined,\n required: false,\n disabled: false,\n readOnly: false\n};\n\nCurrencyInputDemo.argTypes = {\n currencyISOCode: {\n options: [undefined, 'USD', 'EUR', 'AUD', 'PLN', 'CZK', 'JPY'],\n control: { type: 'select' }\n },\n alwaysShowISOCode: { control: { type: 'boolean' } },\n showDecimal: { control: { type: 'boolean' } },\n showGroupSeparators: { control: { type: 'boolean' } },\n step: { control: { type: 'number' } },\n label: { control: { type: 'text' } },\n labelHidden: { control: { type: 'boolean' } },\n info: { control: { type: 'text' } },\n status: { options: [undefined, 'success', 'warning', 'error'], control: { type: 'select' } },\n required: { control: { type: 'boolean' } },\n disabled: { control: { type: 'boolean' } },\n readOnly: { control: { type: 'boolean' } }\n};\n\ninterface CurrencyDisplayStoryProps extends CurrencyDisplayProps {\n groupSeparators: boolean;\n fractionDigits: number;\n currency: 'symbol' | 'code' | 'name';\n negative: 'minus-sign' | 'parentheses';\n notation: 'standard' | 'compact';\n}\n\nexport const CurrencyDisplayDemo: Story<CurrencyDisplayStoryProps> = (\n args: CurrencyDisplayStoryProps\n) => {\n return (\n <CurrencyDisplay\n value={args.value}\n currencyISOCode={args.currencyISOCode}\n formattingOptions={{\n fractionDigits: args.fractionDigits,\n groupSeparators: args.groupSeparators,\n currency: args.currency,\n negative: args.negative,\n notation: args.notation\n }}\n />\n );\n};\n\nCurrencyDisplayDemo.args = {\n value: undefined,\n currencyISOCode: 'USD',\n groupSeparators: true,\n fractionDigits: undefined,\n currency: 'symbol',\n negative: 'minus-sign',\n notation: 'standard'\n};\n\nCurrencyDisplayDemo.argTypes = {\n value: { control: { type: 'number' } },\n currencyISOCode: {\n options: [undefined, 'USD', 'EUR', 'AUD', 'PLN', 'CZK', 'JPY'],\n control: { type: 'select' }\n },\n groupSeparators: { control: { type: 'boolean' } },\n fractionDigits: { control: { type: 'number', min: 0, max: 20, step: 1 } },\n negative: {\n control: {\n type: 'inline-radio'\n },\n options: ['minus-sign', 'parentheses']\n },\n currency: {\n control: { type: 'select' },\n options: ['symbol', 'code', 'name']\n },\n notation: {\n control: { type: 'inline-radio' },\n options: ['standard', 'compact']\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.stories.jsx","sourceRoot":"","sources":["../../../src/core/Menu/Menu.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtF,OAAO,EACL,MAAM,EACN,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,WAAW,EAGX,OAAO,EACP,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,aAAa,EAEd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,eAAe;IACb,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,IAAI;IACf,IAAI,EAAE;QACJ,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,QAAQ;QACd,iBAAiB,EAAE,IAAI;QACvB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,UAAU;QACzB,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC3E,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC3F,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;QACnD,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;QAChD,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;QAC/C,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;QACjD,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACpF,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;QAChD,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;QACzC,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QACxC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;KAC9C;CACM,CAAC;AAaV,MAAM,CAAC,MAAM,QAAQ,GAA0B,CAAC,IAAoB,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjD,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACpD,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC5C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAChC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/C,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,UAAU,CAAoB,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,UAAU,CAAc,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QACtE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;IAClG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAEjC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,WAAW,CAAC,OAAO,CACxB,MAAM;YACJ,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAiB,EAAE,EAAE;gBAC/D,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC;YACJ,CAAC,CAAC,KAAK,EACT,IAAI,CAAC,EAAE;YACL,IAAI,UAAU,GAAG,KAAK,CAAC;YAEvB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE;gBACvC,UAAU,GAAG,IAAI,CAAC;aACnB;YAED,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM,EACJ,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;gBACzF,KAAK,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACvE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBAC9D,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAClD,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC9D,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5B,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,EAAE,GAAG,EAAiB,EAAE,EAAE;QACzB,IAAI,GAAG,KAAK,QAAQ;YAAE,SAAS,EAAE,CAAC;IACpC,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,cAAoC,EAAE,EAAE;QACvC,IAAI,CAAC,cAAc,EAAE;YACnB,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,UAAU,CAAC,GAAG,EAAE;gBACd,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,QAAQ,CAAC,SAAS,CAAC,EAAE;oBACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;oBAErE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAAE,UAAU,CAAC,KAAK,CAAC,CAAC;oBAE7C,OAAO,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC,EACD,CAAC,KAAK,EAAE,SAAS,CAAC,CACnB,CAAC;IAEF,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE;QACpD,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBACpC,OAAO,CAAC,CAAC,EAAE,YAAY,WAAW,IAAI,EAAE,CAAC,OAAO,CAAC,kBAAkB,KAAK,MAAM,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;YACH,IAAI,aAAa,EAAE;gBACjB,SAAS,EAAE,CAAC;aACb;SACF;aAAM;YACL,SAAS,EAAE,CAAC;SACb;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE;YACV,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAChC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnC,OAAO,CACL,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CACrC;MAAA,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAChF;;MACF,EAAE,MAAM,CAER;;MAAA,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CACzD;QAAA,CAAC,IAAI,CACH,IAAI,IAAI,CAAC,CACT,EAAE,CAAC,CAAC,MAAM,CAAC,CACX,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CACzC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CACzC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC3D,OAAO,CAAC,CAAC,SAAS,CAAC,CACnB,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CACtB,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAChE,cAAc,CAAC,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,CAAC,CAClD,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;YAChB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;gBACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACjE;iBAAM;gBACL,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/C,IAAI,OAAO,EAAE;oBACX,IAAI,CAAC;wBACH,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;wBACnB,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,QAAQ;qBACpC,CAAC,CAAC;iBACJ;gBACD,SAAS,EAAE,CAAC;aACb;QACH,CAAC,CAAC,CACF,MAAM,CAAC,CACL,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,CAC/B,CAAC,WAAW,CACV,GAAG,CAAC,CAAC,YAAY,CAAC,CAClB,cAAc,CAAC,CAAC,SAAS,CAAC,CAC1B,KAAK,CAAC,CAAC,MAAM,CAAC,CACd,IAAI,CAAC,UAAU,CACf,oBAAoB,CAAC,yBAAyB,EAC9C,CACH,CACF,CACD,MAAM,CAAC,CACL,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC1B,CAAC,WAAW,CACV,GAAG,CAAC,CAAC,YAAY,CAAC,CAClB,cAAc,CAAC,CAAC,SAAS,CAAC,CAC1B,KAAK,CAAC,CAAC,MAAM,CAAC,CACd,IAAI,CAAC,UAAU,CACf,oBAAoB,CAAC,yBAAyB,EAC9C,CACH,CAAC,CAAC,CAAC,CACF,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CACjE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CACtC;kBAAA,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,CAE1C;;kBAAA,CAAC,MAAM,CACL,OAAO,CAAC,SAAS,CACjB,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAC7B,OAAO,CAAC,CAAC,GAAG,EAAE;gBACZ,SAAS,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;oBACnB,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,QAC3B,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAClC,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAEF;;oBACA,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,CACxD,EACE;8BAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,CACzC;sBAAA,GAAG,CACJ,CACH;kBAAA,EAAE,MAAM,CACV;gBAAA,EAAE,IAAI,CAAC,CACR,CACF,CACF,EAEL;MAAA,EAAE,OAAO,CACX;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA0B,CAAC,IAAoB,EAAE,EAAE;IAC1E,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAG,CAAC;AAC5C,CAAC,CAAC","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n Button,\n Count,\n Flex,\n Menu,\n menuHelpers,\n MenuItemProps,\n MenuProps,\n Popover,\n SearchInput,\n ToasterContext,\n createUID,\n useElement,\n useOuterEvent,\n OmitStrict\n} from '@pega/cosmos-react-core';\n\nimport { cars, countries } from './Menu.mocks';\nimport { StyledFlag } from './Menu.styles';\n\nexport default {\n title: 'Core/Menu',\n component: Menu,\n args: {\n variant: 'drill-down',\n mode: 'action',\n showItemSecondary: true,\n showItemVisual: true,\n showItemCount: true,\n parentSelection: false,\n filterPattern: 'contains',\n infiniteScroll: false,\n noItems: false,\n emptyText: 'No items',\n useFlatData: false\n },\n argTypes: {\n variant: { options: ['drill-down', 'flyout'], control: { type: 'select' } },\n mode: { options: ['action', 'single-select', 'multi-select'], control: { type: 'select' } },\n showItemSecondary: { control: { type: 'boolean' } },\n showItemVisual: { control: { type: 'boolean' } },\n showItemCount: { control: { type: 'boolean' } },\n parentSelection: { control: { type: 'boolean' } },\n filterPattern: { options: ['contains', 'starts with'], control: { type: 'select' } },\n infiniteScroll: { control: { type: 'boolean' } },\n noItems: { control: { type: 'boolean' } },\n emptyText: { control: { type: 'text' } },\n useFlatData: { control: { type: 'boolean' } }\n }\n} as Meta;\n\ninterface MenuStoryProps extends OmitStrict<MenuProps, 'items'> {\n showItemSecondary?: boolean;\n showItemVisual?: boolean;\n showItemCount?: boolean;\n parentSelection?: boolean;\n filterPattern?: 'contains' | 'starts with';\n infiniteScroll?: boolean;\n noItems?: boolean;\n useFlatData?: boolean;\n}\n\nexport const MenuDemo: Story<MenuStoryProps> = (args: MenuStoryProps) => {\n const menuID = createUID();\n const data = args.useFlatData ? cars : countries;\n\n const searchEleRef = useRef<HTMLInputElement>(null);\n const { push } = useContext(ToasterContext);\n const [isOpen, setIsOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n const [items, setItems] = useState<MenuProps['items']>(\n args.infiniteScroll ? data.slice(0, 10) : data\n );\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n const [search, setSearch] = useState('');\n const selections = useMemo(() => menuHelpers.getSelected(items), [items]);\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(args.filterPattern === 'contains' ? escapedSearch : `^${escapedSearch}`, 'i');\n }, [search, args.filterPattern]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(items).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : items,\n item => {\n let selectable = false;\n\n if (!item.items || args.parentSelection) {\n selectable = true;\n }\n\n return {\n ...item,\n visual:\n args.showItemVisual && item.visual ? <StyledFlag>{item.visual}</StyledFlag> : undefined,\n count: args.showItemCount && item.items ? item.items.length : undefined,\n secondary: args.showItemSecondary ? item.secondary : undefined,\n selected: selectable ? !!item.selected : undefined,\n tooltip: args.variant === 'flyout' ? item.tooltip : undefined\n };\n }\n );\n }, [search, items, searchRegex, args.showItemVisual]);\n\n const resetMenu = useCallback(() => {\n setIsOpen(false);\n setItems(data.slice(0, 10));\n setSearch('');\n }, []);\n\n const onKeydown = useCallback(\n ({ key }: KeyboardEvent) => {\n if (key === 'Escape') resetMenu();\n },\n [resetMenu]\n );\n\n const loadMore = useCallback(\n (expandedItemId?: MenuItemProps['id']) => {\n if (!expandedItemId) {\n setIsLoading(true);\n setTimeout(() => {\n setIsLoading(false);\n setItems(prevItems => {\n const newItems = data.slice(prevItems.length, prevItems.length + 10);\n\n if (newItems.length === 0) setHasMore(false);\n\n return menuHelpers.appendTo(prevItems, newItems, expandedItemId);\n });\n }, 2000);\n }\n },\n [items, isLoading]\n );\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], e => {\n if (args.variant === 'flyout') {\n const path = e.composedPath();\n const considerEvent = path.every(el => {\n return !(el instanceof HTMLElement && el.dataset.flyoutMenuParentId === menuID);\n });\n if (considerEvent) {\n resetMenu();\n }\n } else {\n resetMenu();\n }\n });\n\n useEffect(() => {\n document.addEventListener('keydown', onKeydown);\n return () => {\n document.removeEventListener('keydown', onKeydown);\n };\n }, []);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n return (\n <Flex container={{ justify: 'center' }}>\n <Button ref={setButtonEl} onClick={() => setIsOpen(cur => !cur)} variant='primary'>\n Open the MENU\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n {...args}\n id={menuID}\n items={args.noItems ? [] : itemsToRender}\n accent={search ? searchRegex : undefined}\n mode={args.variant === 'drill-down' ? args.mode : 'action'}\n loading={isLoading}\n emptyText={args.emptyText}\n variant={args.variant}\n loadMore={args.infiniteScroll && hasMore ? loadMore : undefined}\n focusControlEl={searchEleRef.current || undefined}\n onItemClick={id => {\n if (args.mode === 'single-select' || args.mode === 'multi-select') {\n setItems(cur => menuHelpers.toggleSelected(cur, id, args.mode));\n } else {\n const clicked = menuHelpers.getItem(items, id);\n if (clicked) {\n push({\n id: `${Date.now()}`,\n content: `${clicked.primary} added`\n });\n }\n resetMenu();\n }\n }}\n header={\n args.variant === 'drill-down' && (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='combobox'\n searchInputAriaLabel='Start typing to search.'\n />\n )\n }\n footer={\n args.variant === 'flyout' ? (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='combobox'\n searchInputAriaLabel='Start typing to search.'\n />\n ) : (\n (args.mode === 'single-select' || args.mode === 'multi-select') && (\n <Flex container={{ justify: 'between' }}>\n <Button onClick={resetMenu}>Cancel</Button>\n\n <Button\n variant='primary'\n disabled={!selections.length}\n onClick={() => {\n resetMenu();\n push({\n id: `${Date.now()}`,\n content: `${selections.length} item${\n selections.length !== 1 ? 's' : ''\n } added`\n });\n }}\n >\n Add\n {selections.length > 0 && args.mode === 'multi-select' && (\n <>\n <Count>{selections.length}</Count>\n </>\n )}\n </Button>\n </Flex>\n )\n )\n }\n />\n </Popover>\n </Flex>\n );\n};\n\nexport const FlatMenuDemo: Story<MenuStoryProps> = (args: MenuStoryProps) => {\n return <MenuDemo {...args} useFlatData />;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Menu.stories.jsx","sourceRoot":"","sources":["../../../src/core/Menu/Menu.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n Button,\n Count,\n Flex,\n Menu,\n menuHelpers,\n MenuItemProps,\n MenuProps,\n Popover,\n SearchInput,\n ToasterContext,\n createUID,\n useElement,\n useOuterEvent,\n OmitStrict\n} from '@pega/cosmos-react-core';\n\nimport { cars, countries } from './Menu.mocks';\nimport { StyledFlag } from './Menu.styles';\n\nexport default {\n title: 'Core/Menu',\n component: Menu,\n args: {\n variant: 'drill-down',\n mode: 'action',\n showItemSecondary: true,\n showItemVisual: true,\n showItemCount: true,\n parentSelection: false,\n filterPattern: 'contains',\n infiniteScroll: false,\n noItems: false,\n emptyText: 'No items',\n useFlatData: false\n },\n argTypes: {\n variant: { options: ['drill-down', 'flyout'], control: { type: 'select' } },\n mode: { options: ['action', 'single-select', 'multi-select'], control: { type: 'select' } },\n showItemSecondary: { control: { type: 'boolean' } },\n showItemVisual: { control: { type: 'boolean' } },\n showItemCount: { control: { type: 'boolean' } },\n parentSelection: { control: { type: 'boolean' } },\n filterPattern: { options: ['contains', 'starts with'], control: { type: 'select' } },\n infiniteScroll: { control: { type: 'boolean' } },\n noItems: { control: { type: 'boolean' } },\n emptyText: { control: { type: 'text' } },\n useFlatData: { control: { type: 'boolean' } }\n }\n} as Meta;\n\ninterface MenuStoryProps extends OmitStrict<MenuProps, 'items'> {\n showItemSecondary?: boolean;\n showItemVisual?: boolean;\n showItemCount?: boolean;\n parentSelection?: boolean;\n filterPattern?: 'contains' | 'starts with';\n infiniteScroll?: boolean;\n noItems?: boolean;\n useFlatData?: boolean;\n}\n\nexport const MenuDemo: Story<MenuStoryProps> = (args: MenuStoryProps) => {\n const menuID = createUID();\n const data = args.useFlatData ? cars : countries;\n\n const searchEleRef = useRef<HTMLInputElement>(null);\n const { push } = useContext(ToasterContext);\n const [isOpen, setIsOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n const [items, setItems] = useState<MenuProps['items']>(\n args.infiniteScroll ? data.slice(0, 10) : data\n );\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n const [search, setSearch] = useState('');\n const selections = useMemo(() => menuHelpers.getSelected(items), [items]);\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(args.filterPattern === 'contains' ? escapedSearch : `^${escapedSearch}`, 'i');\n }, [search, args.filterPattern]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(items).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : items,\n item => {\n let selectable = false;\n\n if (!item.items || args.parentSelection) {\n selectable = true;\n }\n\n return {\n ...item,\n visual:\n args.showItemVisual && item.visual ? <StyledFlag>{item.visual}</StyledFlag> : undefined,\n count: args.showItemCount && item.items ? item.items.length : undefined,\n secondary: args.showItemSecondary ? item.secondary : undefined,\n selected: selectable ? !!item.selected : undefined,\n tooltip: args.variant === 'flyout' ? item.tooltip : undefined\n };\n }\n );\n }, [search, items, searchRegex, args.showItemVisual]);\n\n const resetMenu = useCallback(() => {\n setIsOpen(false);\n setItems(data.slice(0, 10));\n setSearch('');\n }, []);\n\n const onKeydown = useCallback(\n ({ key }: KeyboardEvent) => {\n if (key === 'Escape') resetMenu();\n },\n [resetMenu]\n );\n\n const loadMore = useCallback(\n (expandedItemId?: MenuItemProps['id']) => {\n if (!expandedItemId) {\n setIsLoading(true);\n setTimeout(() => {\n setIsLoading(false);\n setItems(prevItems => {\n const newItems = data.slice(prevItems.length, prevItems.length + 10);\n\n if (newItems.length === 0) setHasMore(false);\n\n return menuHelpers.appendTo(prevItems, newItems, expandedItemId);\n });\n }, 2000);\n }\n },\n [data]\n );\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], e => {\n if (args.variant === 'flyout') {\n const path = e.composedPath();\n const considerEvent = path.every(el => {\n return !(el instanceof HTMLElement && el.dataset.flyoutMenuParentId === menuID);\n });\n if (considerEvent) {\n resetMenu();\n }\n } else {\n resetMenu();\n }\n });\n\n useEffect(() => {\n document.addEventListener('keydown', onKeydown);\n return () => {\n document.removeEventListener('keydown', onKeydown);\n };\n }, []);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n return (\n <Flex container={{ justify: 'center' }}>\n <Button ref={setButtonEl} onClick={() => setIsOpen(cur => !cur)} variant='primary'>\n Open the MENU\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n {...args}\n id={menuID}\n items={args.noItems ? [] : itemsToRender}\n accent={search ? searchRegex : undefined}\n mode={args.variant === 'drill-down' ? args.mode : 'action'}\n loading={isLoading}\n emptyText={args.emptyText}\n variant={args.variant}\n loadMore={args.infiniteScroll && hasMore ? loadMore : undefined}\n focusControlEl={searchEleRef.current || undefined}\n onItemClick={id => {\n if (args.mode === 'single-select' || args.mode === 'multi-select') {\n setItems(cur => menuHelpers.toggleSelected(cur, id, args.mode));\n } else {\n const clicked = menuHelpers.getItem(items, id);\n if (clicked) {\n push({\n id: `${Date.now()}`,\n content: `${clicked.primary} added`\n });\n }\n resetMenu();\n }\n }}\n header={\n args.variant === 'drill-down' && (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='combobox'\n searchInputAriaLabel='Start typing to search.'\n />\n )\n }\n footer={\n args.variant === 'flyout' ? (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='combobox'\n searchInputAriaLabel='Start typing to search.'\n />\n ) : (\n (args.mode === 'single-select' || args.mode === 'multi-select') && (\n <Flex container={{ justify: 'between' }}>\n <Button onClick={resetMenu}>Cancel</Button>\n\n <Button\n variant='primary'\n disabled={!selections.length}\n onClick={() => {\n resetMenu();\n push({\n id: `${Date.now()}`,\n content: `${selections.length} item${\n selections.length !== 1 ? 's' : ''\n } added`\n });\n }}\n >\n Add\n {selections.length > 0 && args.mode === 'multi-select' && (\n <>\n <Count>{selections.length}</Count>\n </>\n )}\n </Button>\n </Flex>\n )\n )\n }\n />\n </Popover>\n </Flex>\n );\n};\n\nexport const FlatMenuDemo: Story<MenuStoryProps> = (args: MenuStoryProps) => {\n return <MenuDemo {...args} useFlatData />;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workbench.stories.d.ts","sourceRoot":"","sources":["../../../src/build/Workbench/Workbench.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;;
|
|
1
|
+
{"version":3,"file":"Workbench.stories.d.ts","sourceRoot":"","sources":["../../../src/build/Workbench/Workbench.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;;AAyD/C,wBAYU;AAEV,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,mBAAmB,CA+HpD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,mBAAmB,CAyPjE,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from 'react';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
3
|
import { treeHelpers, StandardTree, Flex, SearchInput, TextArea, Input, Configuration, BuildTheme } from '@pega/cosmos-react-core';
|
|
4
|
-
import { FlowModeller, Workbench } from '@pega/cosmos-react-build';
|
|
4
|
+
import { FlowModeller, LifeCycle, Workbench } from '@pega/cosmos-react-build';
|
|
5
5
|
import { DirectedGraph } from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Utils/Graph';
|
|
6
6
|
import FlowModellerHelper from '@pega/cosmos-react-build/lib/components/FlowModeller/helper';
|
|
7
7
|
import { nodeLibrary, nodeActions, exampleCRMNodesData as nodesData, exampleCRMConnectorsData as connectorsData } from '../FlowModeller/FlowModeller.mocks';
|
|
8
|
+
import { LifeCycleWorkFlowData, workFlowNodeLibrary } from '../LifeCycle/LifeCycle.mocks';
|
|
9
|
+
import { addStageCallback, addStepCallback, addTaskCallback, deleteStageCallback, deleteStepCallback, deleteTaskCallback } from '../LifeCycle/utils';
|
|
8
10
|
import { sideList } from './Workbench.mocks';
|
|
9
11
|
export default {
|
|
10
12
|
title: 'Build/Workbench',
|
|
@@ -90,6 +92,193 @@ export const WorkbenchDemo = (args) => {
|
|
|
90
92
|
}
|
|
91
93
|
}, children: _jsx(FlowChartView, {}) }) }));
|
|
92
94
|
};
|
|
95
|
+
export const WorkbenchWithLifecycleDemo = () => {
|
|
96
|
+
const [open, setOpen] = useState(false);
|
|
97
|
+
const [heading, setHeading] = useState('');
|
|
98
|
+
const ConfigContent = () => {
|
|
99
|
+
return (_jsxs(Flex, { container: { direction: 'column', gap: 2 }, children: [_jsx(Input, { defaultValue: heading }), _jsx(TextArea, { name: 'Description', required: true, label: 'Description', displayCharCount: true, maxLength: 300, value: '' })] }));
|
|
100
|
+
};
|
|
101
|
+
const WorkFlowView = () => {
|
|
102
|
+
const workFlowState = {
|
|
103
|
+
activeElementId: '',
|
|
104
|
+
data: LifeCycleWorkFlowData
|
|
105
|
+
};
|
|
106
|
+
const [workFlowData, setWorkFlowData] = useState(workFlowState);
|
|
107
|
+
const addProcessStep = (stepData, libItem) => {
|
|
108
|
+
const newStep = {
|
|
109
|
+
id: libItem.id,
|
|
110
|
+
label: libItem.primary,
|
|
111
|
+
visual: {
|
|
112
|
+
color: libItem.type.color,
|
|
113
|
+
icon: libItem.type.icon
|
|
114
|
+
},
|
|
115
|
+
error: '',
|
|
116
|
+
status: { label: '' }
|
|
117
|
+
};
|
|
118
|
+
const updatedTask = {
|
|
119
|
+
...stepData.task,
|
|
120
|
+
steps: [...stepData.task.steps, newStep]
|
|
121
|
+
};
|
|
122
|
+
const updatedData = { ...stepData, task: updatedTask };
|
|
123
|
+
const changedData = addStepCallback(updatedData, workFlowData);
|
|
124
|
+
setWorkFlowData(changedData);
|
|
125
|
+
};
|
|
126
|
+
const deleteProcessStep = (stepData) => {
|
|
127
|
+
const changedData = deleteStepCallback(stepData, workFlowData);
|
|
128
|
+
setWorkFlowData(changedData);
|
|
129
|
+
};
|
|
130
|
+
const addProcess = (taskData) => {
|
|
131
|
+
const changedData = addTaskCallback(taskData, workFlowData);
|
|
132
|
+
setWorkFlowData(changedData);
|
|
133
|
+
};
|
|
134
|
+
const addParallelProcess = (taskData) => {
|
|
135
|
+
const changedData = addTaskCallback(taskData, workFlowData, true);
|
|
136
|
+
setWorkFlowData(changedData);
|
|
137
|
+
};
|
|
138
|
+
const deleteProcess = (taskData) => {
|
|
139
|
+
const changedData = deleteTaskCallback(taskData, workFlowData);
|
|
140
|
+
setWorkFlowData(changedData);
|
|
141
|
+
};
|
|
142
|
+
const configureProcess = () => {
|
|
143
|
+
setHeading('Configure Process');
|
|
144
|
+
setOpen(true);
|
|
145
|
+
};
|
|
146
|
+
const onAddStage = () => {
|
|
147
|
+
const changedData = addStageCallback(workFlowData, 'stages');
|
|
148
|
+
setWorkFlowData(changedData);
|
|
149
|
+
};
|
|
150
|
+
const onAddAlternateStage = () => {
|
|
151
|
+
const changedData = addStageCallback(workFlowData, 'alternateStages');
|
|
152
|
+
setWorkFlowData(changedData);
|
|
153
|
+
};
|
|
154
|
+
const onDeleteStage = param => {
|
|
155
|
+
const changedData = deleteStageCallback(param, workFlowData);
|
|
156
|
+
if (changedData === 'firstStage') {
|
|
157
|
+
// eslint-disable-next-line no-alert
|
|
158
|
+
alert("you can't delete the create stage");
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
setWorkFlowData(changedData);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
const stepInputFocus = () => { };
|
|
165
|
+
const stepInputBlur = () => { };
|
|
166
|
+
const stepInputChange = () => { };
|
|
167
|
+
const taskInputFocus = () => { };
|
|
168
|
+
const taskInputBlur = () => { };
|
|
169
|
+
const taskInputChange = () => { };
|
|
170
|
+
const onStageInputFocus = () => { };
|
|
171
|
+
const onStageInputBlur = () => { };
|
|
172
|
+
const onStageInputChange = () => { };
|
|
173
|
+
const onAlternateStageInputChange = () => { };
|
|
174
|
+
useEffect(() => {
|
|
175
|
+
if (workFlowData.activeElementId) {
|
|
176
|
+
const elementId = document.getElementById(`${workFlowData.activeElementId}`);
|
|
177
|
+
if (elementId) {
|
|
178
|
+
elementId.focus();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
const stages = workFlowData.data.stages;
|
|
183
|
+
const alternateStages = workFlowData.data.alternateStages;
|
|
184
|
+
const categories = LifeCycleWorkFlowData.categories;
|
|
185
|
+
return (_jsx(LifeCycle, { items: stages, alternateItems: alternateStages, categories: categories, task: [
|
|
186
|
+
{
|
|
187
|
+
actions: [
|
|
188
|
+
{
|
|
189
|
+
text: 'Delete Process',
|
|
190
|
+
id: 'delete9',
|
|
191
|
+
icon: 'trash',
|
|
192
|
+
onClick: deleteProcess
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
text: 'Configure Process',
|
|
196
|
+
id: 'share2',
|
|
197
|
+
icon: 'share',
|
|
198
|
+
onClick: configureProcess
|
|
199
|
+
}
|
|
200
|
+
],
|
|
201
|
+
addStepTitle: 'step',
|
|
202
|
+
addTask: {
|
|
203
|
+
title: 'Process',
|
|
204
|
+
showOnce: true,
|
|
205
|
+
onAddTask: addProcess
|
|
206
|
+
},
|
|
207
|
+
onFocus: taskInputFocus,
|
|
208
|
+
onBlur: taskInputBlur,
|
|
209
|
+
onChange: taskInputChange,
|
|
210
|
+
onAddStep: addProcessStep,
|
|
211
|
+
nodeLibrary: workFlowNodeLibrary
|
|
212
|
+
}
|
|
213
|
+
], step: [
|
|
214
|
+
{
|
|
215
|
+
actions: [
|
|
216
|
+
{
|
|
217
|
+
text: 'Delete step',
|
|
218
|
+
id: 'delete10',
|
|
219
|
+
icon: 'trash',
|
|
220
|
+
onClick: deleteProcessStep
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
onFocus: stepInputFocus,
|
|
224
|
+
onBlur: stepInputBlur,
|
|
225
|
+
onChange: stepInputChange
|
|
226
|
+
// disabled: true
|
|
227
|
+
}
|
|
228
|
+
], stage: {
|
|
229
|
+
actions: {
|
|
230
|
+
start: [
|
|
231
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
232
|
+
{ text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },
|
|
233
|
+
{ text: 'Add Alternate Stage', id: 'add2', onClick: onAddAlternateStage }
|
|
234
|
+
],
|
|
235
|
+
default: [
|
|
236
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
237
|
+
{ text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },
|
|
238
|
+
{ text: 'Add Alternate Stage', id: 'add2', onClick: onAddAlternateStage },
|
|
239
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
240
|
+
],
|
|
241
|
+
'default-wait': [
|
|
242
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
243
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
244
|
+
],
|
|
245
|
+
resolution: [],
|
|
246
|
+
alternate: [
|
|
247
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
248
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
249
|
+
],
|
|
250
|
+
'alternate-wait': [
|
|
251
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
252
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
253
|
+
]
|
|
254
|
+
},
|
|
255
|
+
onFocus: onStageInputFocus,
|
|
256
|
+
onBlur: onStageInputBlur,
|
|
257
|
+
onChange: onStageInputChange
|
|
258
|
+
}, alternateStage: {
|
|
259
|
+
actions: [
|
|
260
|
+
{ text: 'Add Process', id: 'add1', onClick: addProcess },
|
|
261
|
+
{ text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },
|
|
262
|
+
{ text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }
|
|
263
|
+
],
|
|
264
|
+
onChange: onAlternateStageInputChange
|
|
265
|
+
}, onAddStage: onAddStage, onAddAlternateStage: onAddAlternateStage }));
|
|
266
|
+
};
|
|
267
|
+
const toolbarActions = {
|
|
268
|
+
undo: { id: 'undo', disabled: false, onClick: () => { } },
|
|
269
|
+
redo: { id: 'redo', disabled: true, onClick: () => { } }
|
|
270
|
+
};
|
|
271
|
+
return (_jsx(Configuration, { theme: BuildTheme, children: _jsx(Workbench, { initiallyVisiblePanelId: undefined, toolbar: {
|
|
272
|
+
toolbarActions
|
|
273
|
+
}, configurationPanel: {
|
|
274
|
+
open,
|
|
275
|
+
content: _jsx(ConfigContent, {}),
|
|
276
|
+
header: heading,
|
|
277
|
+
onDismiss: () => {
|
|
278
|
+
setOpen(false);
|
|
279
|
+
}
|
|
280
|
+
}, children: _jsx(WorkFlowView, {}) }) }));
|
|
281
|
+
};
|
|
93
282
|
WorkbenchDemo.args = {
|
|
94
283
|
showActions: true,
|
|
95
284
|
hideSidePanel: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workbench.stories.js","sourceRoot":"","sources":["../../../src/build/Workbench/Workbench.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useState } from 'react';\n\nimport {\n StandardTreeProps,\n treeHelpers,\n StandardTree,\n Flex,\n SearchInput,\n TextArea,\n Input,\n Configuration,\n BuildTheme\n} from '@pega/cosmos-react-core';\nimport { FlowModeller, Workbench } from '@pega/cosmos-react-build';\nimport { IconNames } from '@pega/cosmos-react-core/lib/components/Icon/iconNames';\nimport {\n NodeProps,\n NodeType\n} from '@pega/cosmos-react-build/lib/components/FlowModeller/Node/Node.types';\nimport {\n DirectedGraph,\n GraphData,\n ConnectorProps\n} from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Utils/Graph';\nimport FlowModellerHelper from '@pega/cosmos-react-build/lib/components/FlowModeller/helper';\nimport { AddNodeHandlerParams } from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Renderer.types';\n\nimport {\n nodeLibrary,\n nodeActions,\n exampleCRMNodesData as nodesData,\n exampleCRMConnectorsData as connectorsData\n} from '../FlowModeller/FlowModeller.mocks';\n\nimport { sideList } from './Workbench.mocks';\n\nexport default {\n title: 'Build/Workbench',\n parameters: {\n layout: 'fullscreen'\n },\n decorators: [\n StoryComp => (\n <div style={{ height: '100vh' }}>\n <StoryComp />\n </div>\n )\n ]\n} as Meta;\n\nexport interface WorkbenchStoryProps {\n showActions?: boolean;\n hideSidePanel?: boolean;\n zoom?: boolean;\n}\n\nexport const WorkbenchDemo: Story<WorkbenchStoryProps> = (args: WorkbenchStoryProps) => {\n const [open, setOpen] = useState(false);\n const [heading, setHeading] = useState('');\n const [description, setDescription] = useState('');\n const Content = () => {\n const [currentNodeId, setCurrentNodeId] = useState<string | undefined>();\n const [allNodes, setAllNodes] = useState<StandardTreeProps['nodes']>(sideList);\n\n return (\n <>\n <SearchInput />\n <StandardTree\n currentNodeId={currentNodeId}\n nodes={allNodes}\n onNodeClick={id => {\n const clickedNode = treeHelpers.getNode(allNodes, id);\n setCurrentNodeId(id);\n // If a leaf node, just set to current\n if (!clickedNode?.nodes) return;\n\n setAllNodes(tree =>\n treeHelpers.mapNode(tree, id, node => {\n return {\n ...node,\n expanded: !node.expanded\n };\n })\n );\n }}\n />\n </>\n );\n };\n\n const ConfigContent = () => {\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input defaultValue={heading} />\n <TextArea\n name='Description'\n required\n label='Description'\n displayCharCount\n maxLength={300}\n value={description}\n />\n </Flex>\n );\n };\n\n const FlowChartView = () => {\n const [graphData, setGraphData] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: nodesData,\n connectors: connectorsData\n });\n\n const launchPropertyModal = (node: NodeProps) => {\n setHeading(node.label);\n setDescription(node.description || '');\n setOpen(true);\n };\n\n const addNode = (nodeType: NodeType, metaData: AddNodeHandlerParams) => {\n const UpdatedData = FlowModellerHelper.addNode({\n nodeType,\n graphData,\n metaData\n });\n if (UpdatedData) {\n const newGraphData: GraphData<NodeProps, ConnectorProps> = UpdatedData.graphData;\n setGraphData(newGraphData);\n }\n };\n\n const selectNode = (nodeId: NodeProps['id']) => {\n const graph = new DirectedGraph(graphData);\n const node = graph.getNode(nodeId);\n launchPropertyModal(node);\n };\n\n return (\n <FlowModeller\n graphData={graphData}\n nodeLibrary={nodeLibrary}\n onNodeAdd={addNode}\n onNodeClick={selectNode}\n actions={nodeActions}\n />\n );\n };\n\n const ExplorerContent = () => {\n return <SearchInput />;\n };\n\n const utilityPanels = [\n { title: 'Steps', id: '1', icon: 'plus' as IconNames, content: <Content /> },\n { title: 'Explorer', id: '2', icon: 'app' as IconNames, content: <ExplorerContent /> },\n { title: 'Views', id: '3', icon: 'headline' as IconNames, content: <Content /> }\n ];\n\n const toolbarActions = {\n undo: { id: 'undo', disabled: false, onClick: () => {} },\n redo: { id: 'redo', disabled: true, onClick: () => {} }\n };\n\n return (\n <Configuration theme={BuildTheme}>\n <Workbench\n utilityPanels={utilityPanels}\n initiallyVisiblePanelId={utilityPanels[0].id}\n toolbar={{\n toolbarActions: args.showActions ? toolbarActions : undefined\n }}\n configurationPanel={{\n open,\n content: <ConfigContent />,\n header: heading,\n onDismiss: () => {\n setOpen(false);\n }\n }}\n >\n <FlowChartView />\n </Workbench>\n </Configuration>\n );\n};\n\nWorkbenchDemo.args = {\n showActions: true,\n hideSidePanel: false\n};\n\nWorkbenchDemo.argTypes = {\n showActions: { control: { type: 'boolean' } },\n hideSidePanel: { control: { type: 'boolean' } }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Workbench.stories.js","sourceRoot":"","sources":["../../../src/build/Workbench/Workbench.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useEffect, useState } from 'react';\n\nimport {\n StandardTreeProps,\n treeHelpers,\n StandardTree,\n Flex,\n SearchInput,\n TextArea,\n Input,\n Configuration,\n BuildTheme\n} from '@pega/cosmos-react-core';\nimport {\n CategoriesItemProps,\n FlowModeller,\n LibraryItem,\n LifeCycle,\n LifeCycleAction,\n LifeCycleActionParam,\n StageItemProps,\n StepItemProps,\n Workbench\n} from '@pega/cosmos-react-build';\nimport { IconNames } from '@pega/cosmos-react-core/lib/components/Icon/iconNames';\nimport {\n NodeProps,\n NodeType\n} from '@pega/cosmos-react-build/lib/components/FlowModeller/Node/Node.types';\nimport {\n DirectedGraph,\n GraphData,\n ConnectorProps\n} from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Utils/Graph';\nimport FlowModellerHelper from '@pega/cosmos-react-build/lib/components/FlowModeller/helper';\nimport { AddNodeHandlerParams } from '@pega/cosmos-react-build/lib/components/FlowModeller/Renderer/Renderer.types';\n\nimport {\n nodeLibrary,\n nodeActions,\n exampleCRMNodesData as nodesData,\n exampleCRMConnectorsData as connectorsData\n} from '../FlowModeller/FlowModeller.mocks';\nimport { LifeCycleWorkFlowData, workFlowNodeLibrary } from '../LifeCycle/LifeCycle.mocks';\nimport {\n addStageCallback,\n addStepCallback,\n addTaskCallback,\n deleteStageCallback,\n deleteStepCallback,\n deleteTaskCallback,\n LifeCycleMockState\n} from '../LifeCycle/utils';\n\nimport { sideList } from './Workbench.mocks';\n\nexport default {\n title: 'Build/Workbench',\n parameters: {\n layout: 'fullscreen'\n },\n decorators: [\n StoryComp => (\n <div style={{ height: '100vh' }}>\n <StoryComp />\n </div>\n )\n ]\n} as Meta;\n\nexport interface WorkbenchStoryProps {\n showActions?: boolean;\n hideSidePanel?: boolean;\n zoom?: boolean;\n}\n\nexport const WorkbenchDemo: Story<WorkbenchStoryProps> = (args: WorkbenchStoryProps) => {\n const [open, setOpen] = useState(false);\n const [heading, setHeading] = useState('');\n const [description, setDescription] = useState('');\n const Content = () => {\n const [currentNodeId, setCurrentNodeId] = useState<string | undefined>();\n const [allNodes, setAllNodes] = useState<StandardTreeProps['nodes']>(sideList);\n\n return (\n <>\n <SearchInput />\n <StandardTree\n currentNodeId={currentNodeId}\n nodes={allNodes}\n onNodeClick={id => {\n const clickedNode = treeHelpers.getNode(allNodes, id);\n setCurrentNodeId(id);\n // If a leaf node, just set to current\n if (!clickedNode?.nodes) return;\n\n setAllNodes(tree =>\n treeHelpers.mapNode(tree, id, node => {\n return {\n ...node,\n expanded: !node.expanded\n };\n })\n );\n }}\n />\n </>\n );\n };\n\n const ConfigContent = () => {\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input defaultValue={heading} />\n <TextArea\n name='Description'\n required\n label='Description'\n displayCharCount\n maxLength={300}\n value={description}\n />\n </Flex>\n );\n };\n\n const FlowChartView = () => {\n const [graphData, setGraphData] = useState<GraphData<NodeProps, ConnectorProps>>({\n nodes: nodesData,\n connectors: connectorsData\n });\n\n const launchPropertyModal = (node: NodeProps) => {\n setHeading(node.label);\n setDescription(node.description || '');\n setOpen(true);\n };\n\n const addNode = (nodeType: NodeType, metaData: AddNodeHandlerParams) => {\n const UpdatedData = FlowModellerHelper.addNode({\n nodeType,\n graphData,\n metaData\n });\n if (UpdatedData) {\n const newGraphData: GraphData<NodeProps, ConnectorProps> = UpdatedData.graphData;\n setGraphData(newGraphData);\n }\n };\n\n const selectNode = (nodeId: NodeProps['id']) => {\n const graph = new DirectedGraph(graphData);\n const node = graph.getNode(nodeId);\n launchPropertyModal(node);\n };\n\n return (\n <FlowModeller\n graphData={graphData}\n nodeLibrary={nodeLibrary}\n onNodeAdd={addNode}\n onNodeClick={selectNode}\n actions={nodeActions}\n />\n );\n };\n\n const ExplorerContent = () => {\n return <SearchInput />;\n };\n\n const utilityPanels = [\n { title: 'Steps', id: '1', icon: 'plus' as IconNames, content: <Content /> },\n { title: 'Explorer', id: '2', icon: 'app' as IconNames, content: <ExplorerContent /> },\n { title: 'Views', id: '3', icon: 'headline' as IconNames, content: <Content /> }\n ];\n\n const toolbarActions = {\n undo: { id: 'undo', disabled: false, onClick: () => {} },\n redo: { id: 'redo', disabled: true, onClick: () => {} }\n };\n\n return (\n <Configuration theme={BuildTheme}>\n <Workbench\n utilityPanels={utilityPanels}\n initiallyVisiblePanelId={utilityPanels[0].id}\n toolbar={{\n toolbarActions: args.showActions ? toolbarActions : undefined\n }}\n configurationPanel={{\n open,\n content: <ConfigContent />,\n header: heading,\n onDismiss: () => {\n setOpen(false);\n }\n }}\n >\n <FlowChartView />\n </Workbench>\n </Configuration>\n );\n};\n\nexport const WorkbenchWithLifecycleDemo: Story<WorkbenchStoryProps> = () => {\n const [open, setOpen] = useState(false);\n const [heading, setHeading] = useState('');\n\n const ConfigContent = () => {\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input defaultValue={heading} />\n <TextArea\n name='Description'\n required\n label='Description'\n displayCharCount\n maxLength={300}\n value=''\n />\n </Flex>\n );\n };\n\n const WorkFlowView = () => {\n const workFlowState = {\n activeElementId: '',\n data: LifeCycleWorkFlowData\n } as LifeCycleMockState;\n\n const [workFlowData, setWorkFlowData] = useState(workFlowState);\n\n const addProcessStep = (stepData: LifeCycleActionParam, libItem: LibraryItem) => {\n const newStep: StepItemProps = {\n id: libItem.id,\n label: libItem.primary,\n visual: {\n color: libItem.type.color as StepItemProps['visual']['color'],\n icon: libItem.type.icon\n } as StepItemProps['visual'],\n error: '',\n status: { label: '' }\n };\n const updatedTask = {\n ...stepData.task,\n steps: [...stepData.task!.steps, newStep]\n } as LifeCycleActionParam['task'];\n\n const updatedData: LifeCycleActionParam = { ...stepData, task: updatedTask };\n\n const changedData = addStepCallback(updatedData, workFlowData);\n setWorkFlowData(changedData);\n };\n\n const deleteProcessStep = (stepData: LifeCycleActionParam) => {\n const changedData = deleteStepCallback(stepData, workFlowData);\n setWorkFlowData(changedData);\n };\n\n const addProcess = (taskData: LifeCycleActionParam) => {\n const changedData = addTaskCallback(taskData, workFlowData);\n setWorkFlowData(changedData);\n };\n\n const addParallelProcess = (taskData: LifeCycleActionParam) => {\n const changedData = addTaskCallback(taskData, workFlowData, true);\n setWorkFlowData(changedData);\n };\n\n const deleteProcess = (taskData: LifeCycleActionParam) => {\n const changedData = deleteTaskCallback(taskData, workFlowData);\n setWorkFlowData(changedData);\n };\n\n const configureProcess = () => {\n setHeading('Configure Process');\n setOpen(true);\n };\n\n const onAddStage = () => {\n const changedData = addStageCallback(workFlowData, 'stages');\n setWorkFlowData(changedData);\n };\n\n const onAddAlternateStage = () => {\n const changedData = addStageCallback(workFlowData, 'alternateStages');\n setWorkFlowData(changedData);\n };\n\n const onDeleteStage: LifeCycleAction['onClick'] = param => {\n const changedData = deleteStageCallback(param, workFlowData);\n if (changedData === 'firstStage') {\n // eslint-disable-next-line no-alert\n alert(\"you can't delete the create stage\");\n } else {\n setWorkFlowData(changedData);\n }\n };\n\n const stepInputFocus = () => {};\n\n const stepInputBlur = () => {};\n\n const stepInputChange = () => {};\n\n const taskInputFocus = () => {};\n\n const taskInputBlur = () => {};\n\n const taskInputChange = () => {};\n\n const onStageInputFocus = () => {};\n\n const onStageInputBlur = () => {};\n\n const onStageInputChange = () => {};\n\n const onAlternateStageInputChange = () => {};\n useEffect(() => {\n if (workFlowData.activeElementId) {\n const elementId: HTMLElement | null = document.getElementById(\n `${workFlowData.activeElementId}`\n );\n if (elementId) {\n elementId.focus();\n }\n }\n });\n\n const stages = workFlowData.data.stages as StageItemProps[];\n const alternateStages = workFlowData.data.alternateStages as StageItemProps[];\n const categories: CategoriesItemProps[] = LifeCycleWorkFlowData.categories;\n\n return (\n <LifeCycle\n items={stages}\n alternateItems={alternateStages}\n categories={categories}\n task={[\n {\n actions: [\n {\n text: 'Delete Process',\n id: 'delete9',\n icon: 'trash',\n onClick: deleteProcess\n },\n {\n text: 'Configure Process',\n id: 'share2',\n icon: 'share',\n onClick: configureProcess\n }\n ],\n addStepTitle: 'step',\n addTask: {\n title: 'Process',\n showOnce: true,\n onAddTask: addProcess\n },\n onFocus: taskInputFocus,\n onBlur: taskInputBlur,\n onChange: taskInputChange,\n onAddStep: addProcessStep,\n nodeLibrary: workFlowNodeLibrary\n }\n ]}\n step={[\n {\n actions: [\n {\n text: 'Delete step',\n id: 'delete10',\n icon: 'trash',\n onClick: deleteProcessStep\n }\n ],\n onFocus: stepInputFocus,\n onBlur: stepInputBlur,\n onChange: stepInputChange\n // disabled: true\n }\n ]}\n stage={{\n actions: {\n start: [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },\n { text: 'Add Alternate Stage', id: 'add2', onClick: onAddAlternateStage }\n ],\n default: [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },\n { text: 'Add Alternate Stage', id: 'add2', onClick: onAddAlternateStage },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ],\n 'default-wait': [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ],\n resolution: [],\n alternate: [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ],\n 'alternate-wait': [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ]\n },\n onFocus: onStageInputFocus,\n onBlur: onStageInputBlur,\n onChange: onStageInputChange\n }}\n alternateStage={{\n actions: [\n { text: 'Add Process', id: 'add1', onClick: addProcess },\n { text: 'Add Parallel Process', id: 'add3', onClick: addParallelProcess },\n { text: 'Delete Stage', id: 'delete11', onClick: onDeleteStage }\n ],\n onChange: onAlternateStageInputChange\n }}\n onAddStage={onAddStage}\n onAddAlternateStage={onAddAlternateStage}\n />\n );\n };\n\n const toolbarActions = {\n undo: { id: 'undo', disabled: false, onClick: () => {} },\n redo: { id: 'redo', disabled: true, onClick: () => {} }\n };\n\n return (\n <Configuration theme={BuildTheme}>\n <Workbench\n initiallyVisiblePanelId={undefined}\n toolbar={{\n toolbarActions\n }}\n configurationPanel={{\n open,\n content: <ConfigContent />,\n header: heading,\n onDismiss: () => {\n setOpen(false);\n }\n }}\n >\n <WorkFlowView />\n </Workbench>\n </Configuration>\n );\n};\n\nWorkbenchDemo.args = {\n showActions: true,\n hideSidePanel: false\n};\n\nWorkbenchDemo.argTypes = {\n showActions: { control: { type: 'boolean' } },\n hideSidePanel: { control: { type: 'boolean' } }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Currency.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Currency/Currency.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAEL,oBAAoB,EAEpB,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;;AAEjC,wBAGU;AAEV,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"Currency.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Currency/Currency.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAEL,oBAAoB,EAEpB,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;;AAEjC,wBAGU;AAEV,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAuChE,CAAC;AAmCF,UAAU,yBAA0B,SAAQ,oBAAoB;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,QAAQ,EAAE,YAAY,GAAG,aAAa,CAAC;IACvC,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,yBAAyB,CAgBhE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Currency.stories.js","sourceRoot":"","sources":["../../../src/core/Currency/Currency.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EACL,eAAe,EAEf,aAAa,EAEb,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAEjC,eAAe;IACb,KAAK,EAAE,eAAe;IACtB,SAAS,EAAE,aAAa;CACjB,CAAC;AAEV,MAAM,CAAC,MAAM,iBAAiB,GAAuC,CACnE,IAAiC,EACjC,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAChC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAC/C,CAAC;IAEF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpF,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAU,CAAC,EAAE;YACrB,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC,EACD,MAAM,EAAE,UAAU,CAAC,EAAE;YACnB,
|
|
1
|
+
{"version":3,"file":"Currency.stories.js","sourceRoot":"","sources":["../../../src/core/Currency/Currency.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useEffect, useState } from 'react';\n\nimport {\n CurrencyDisplay,\n CurrencyDisplayProps,\n CurrencyInput,\n CurrencyInputProps,\n usePrevious\n} from '@pega/cosmos-react-core';\n\nexport default {\n title: 'Core/Currency',\n component: CurrencyInput\n} as Meta;\n\nexport const CurrencyInputDemo: Story<Partial<CurrencyInputProps>> = (\n args: Partial<CurrencyInputProps>\n) => {\n const [value, setValue] = useState<string | undefined>(\n args.value ? args.value.toString() : undefined\n );\n\n const prev = usePrevious(args.value);\n useEffect(() => {\n if (prev !== args.value) setValue(args.value ? args.value.toString() : undefined);\n }, [prev, args.value]);\n\n return (\n <CurrencyInput\n value={value}\n onChange={inputValue => {\n setValue(inputValue);\n args.onChange?.(inputValue);\n }}\n onBlur={inputValue => {\n args.onBlur?.(inputValue);\n }}\n onFocus={inputValue => {\n args.onFocus?.(inputValue);\n }}\n currencyISOCode={args.currencyISOCode}\n alwaysShowISOCode={args.alwaysShowISOCode}\n showDecimal={args.showDecimal}\n showGroupSeparators={args.showGroupSeparators}\n step={args.step}\n label={args.label}\n labelHidden={args.labelHidden}\n info={args.info}\n status={args.status}\n required={args.required}\n disabled={args.disabled}\n readOnly={args.readOnly}\n />\n );\n};\n\nCurrencyInputDemo.args = {\n currencyISOCode: 'USD',\n alwaysShowISOCode: false,\n showDecimal: true,\n showGroupSeparators: true,\n step: 1,\n label: 'Currency input',\n labelHidden: false,\n info: 'Enter a numerical value',\n status: undefined,\n required: false,\n disabled: false,\n readOnly: false\n};\n\nCurrencyInputDemo.argTypes = {\n currencyISOCode: {\n options: [undefined, 'USD', 'EUR', 'AUD', 'PLN', 'CZK', 'JPY'],\n control: { type: 'select' }\n },\n alwaysShowISOCode: { control: { type: 'boolean' } },\n showDecimal: { control: { type: 'boolean' } },\n showGroupSeparators: { control: { type: 'boolean' } },\n step: { control: { type: 'number' } },\n label: { control: { type: 'text' } },\n labelHidden: { control: { type: 'boolean' } },\n info: { control: { type: 'text' } },\n status: { options: [undefined, 'success', 'warning', 'error'], control: { type: 'select' } },\n required: { control: { type: 'boolean' } },\n disabled: { control: { type: 'boolean' } },\n readOnly: { control: { type: 'boolean' } }\n};\n\ninterface CurrencyDisplayStoryProps extends CurrencyDisplayProps {\n groupSeparators: boolean;\n fractionDigits: number;\n currency: 'symbol' | 'code' | 'name';\n negative: 'minus-sign' | 'parentheses';\n notation: 'standard' | 'compact';\n}\n\nexport const CurrencyDisplayDemo: Story<CurrencyDisplayStoryProps> = (\n args: CurrencyDisplayStoryProps\n) => {\n return (\n <CurrencyDisplay\n value={args.value}\n currencyISOCode={args.currencyISOCode}\n formattingOptions={{\n fractionDigits: args.fractionDigits,\n groupSeparators: args.groupSeparators,\n currency: args.currency,\n negative: args.negative,\n notation: args.notation\n }}\n />\n );\n};\n\nCurrencyDisplayDemo.args = {\n value: undefined,\n currencyISOCode: 'USD',\n groupSeparators: true,\n fractionDigits: undefined,\n currency: 'symbol',\n negative: 'minus-sign',\n notation: 'standard'\n};\n\nCurrencyDisplayDemo.argTypes = {\n value: { control: { type: 'number' } },\n currencyISOCode: {\n options: [undefined, 'USD', 'EUR', 'AUD', 'PLN', 'CZK', 'JPY'],\n control: { type: 'select' }\n },\n groupSeparators: { control: { type: 'boolean' } },\n fractionDigits: { control: { type: 'number', min: 0, max: 20, step: 1 } },\n negative: {\n control: {\n type: 'inline-radio'\n },\n options: ['minus-sign', 'parentheses']\n },\n currency: {\n control: { type: 'select' },\n options: ['symbol', 'code', 'name']\n },\n notation: {\n control: { type: 'inline-radio' },\n options: ['standard', 'compact']\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.stories.js","sourceRoot":"","sources":["../../../src/core/Menu/Menu.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n Button,\n Count,\n Flex,\n Menu,\n menuHelpers,\n MenuItemProps,\n MenuProps,\n Popover,\n SearchInput,\n ToasterContext,\n createUID,\n useElement,\n useOuterEvent,\n OmitStrict\n} from '@pega/cosmos-react-core';\n\nimport { cars, countries } from './Menu.mocks';\nimport { StyledFlag } from './Menu.styles';\n\nexport default {\n title: 'Core/Menu',\n component: Menu,\n args: {\n variant: 'drill-down',\n mode: 'action',\n showItemSecondary: true,\n showItemVisual: true,\n showItemCount: true,\n parentSelection: false,\n filterPattern: 'contains',\n infiniteScroll: false,\n noItems: false,\n emptyText: 'No items',\n useFlatData: false\n },\n argTypes: {\n variant: { options: ['drill-down', 'flyout'], control: { type: 'select' } },\n mode: { options: ['action', 'single-select', 'multi-select'], control: { type: 'select' } },\n showItemSecondary: { control: { type: 'boolean' } },\n showItemVisual: { control: { type: 'boolean' } },\n showItemCount: { control: { type: 'boolean' } },\n parentSelection: { control: { type: 'boolean' } },\n filterPattern: { options: ['contains', 'starts with'], control: { type: 'select' } },\n infiniteScroll: { control: { type: 'boolean' } },\n noItems: { control: { type: 'boolean' } },\n emptyText: { control: { type: 'text' } },\n useFlatData: { control: { type: 'boolean' } }\n }\n} as Meta;\n\ninterface MenuStoryProps extends OmitStrict<MenuProps, 'items'> {\n showItemSecondary?: boolean;\n showItemVisual?: boolean;\n showItemCount?: boolean;\n parentSelection?: boolean;\n filterPattern?: 'contains' | 'starts with';\n infiniteScroll?: boolean;\n noItems?: boolean;\n useFlatData?: boolean;\n}\n\nexport const MenuDemo: Story<MenuStoryProps> = (args: MenuStoryProps) => {\n const menuID = createUID();\n const data = args.useFlatData ? cars : countries;\n\n const searchEleRef = useRef<HTMLInputElement>(null);\n const { push } = useContext(ToasterContext);\n const [isOpen, setIsOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n const [items, setItems] = useState<MenuProps['items']>(\n args.infiniteScroll ? data.slice(0, 10) : data\n );\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n const [search, setSearch] = useState('');\n const selections = useMemo(() => menuHelpers.getSelected(items), [items]);\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(args.filterPattern === 'contains' ? escapedSearch : `^${escapedSearch}`, 'i');\n }, [search, args.filterPattern]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(items).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : items,\n item => {\n let selectable = false;\n\n if (!item.items || args.parentSelection) {\n selectable = true;\n }\n\n return {\n ...item,\n visual:\n args.showItemVisual && item.visual ? <StyledFlag>{item.visual}</StyledFlag> : undefined,\n count: args.showItemCount && item.items ? item.items.length : undefined,\n secondary: args.showItemSecondary ? item.secondary : undefined,\n selected: selectable ? !!item.selected : undefined,\n tooltip: args.variant === 'flyout' ? item.tooltip : undefined\n };\n }\n );\n }, [search, items, searchRegex, args.showItemVisual]);\n\n const resetMenu = useCallback(() => {\n setIsOpen(false);\n setItems(data.slice(0, 10));\n setSearch('');\n }, []);\n\n const onKeydown = useCallback(\n ({ key }: KeyboardEvent) => {\n if (key === 'Escape') resetMenu();\n },\n [resetMenu]\n );\n\n const loadMore = useCallback(\n (expandedItemId?: MenuItemProps['id']) => {\n if (!expandedItemId) {\n setIsLoading(true);\n setTimeout(() => {\n setIsLoading(false);\n setItems(prevItems => {\n const newItems = data.slice(prevItems.length, prevItems.length + 10);\n\n if (newItems.length === 0) setHasMore(false);\n\n return menuHelpers.appendTo(prevItems, newItems, expandedItemId);\n });\n }, 2000);\n }\n },\n [items, isLoading]\n );\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], e => {\n if (args.variant === 'flyout') {\n const path = e.composedPath();\n const considerEvent = path.every(el => {\n return !(el instanceof HTMLElement && el.dataset.flyoutMenuParentId === menuID);\n });\n if (considerEvent) {\n resetMenu();\n }\n } else {\n resetMenu();\n }\n });\n\n useEffect(() => {\n document.addEventListener('keydown', onKeydown);\n return () => {\n document.removeEventListener('keydown', onKeydown);\n };\n }, []);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n return (\n <Flex container={{ justify: 'center' }}>\n <Button ref={setButtonEl} onClick={() => setIsOpen(cur => !cur)} variant='primary'>\n Open the MENU\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n {...args}\n id={menuID}\n items={args.noItems ? [] : itemsToRender}\n accent={search ? searchRegex : undefined}\n mode={args.variant === 'drill-down' ? args.mode : 'action'}\n loading={isLoading}\n emptyText={args.emptyText}\n variant={args.variant}\n loadMore={args.infiniteScroll && hasMore ? loadMore : undefined}\n focusControlEl={searchEleRef.current || undefined}\n onItemClick={id => {\n if (args.mode === 'single-select' || args.mode === 'multi-select') {\n setItems(cur => menuHelpers.toggleSelected(cur, id, args.mode));\n } else {\n const clicked = menuHelpers.getItem(items, id);\n if (clicked) {\n push({\n id: `${Date.now()}`,\n content: `${clicked.primary} added`\n });\n }\n resetMenu();\n }\n }}\n header={\n args.variant === 'drill-down' && (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='combobox'\n searchInputAriaLabel='Start typing to search.'\n />\n )\n }\n footer={\n args.variant === 'flyout' ? (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='combobox'\n searchInputAriaLabel='Start typing to search.'\n />\n ) : (\n (args.mode === 'single-select' || args.mode === 'multi-select') && (\n <Flex container={{ justify: 'between' }}>\n <Button onClick={resetMenu}>Cancel</Button>\n\n <Button\n variant='primary'\n disabled={!selections.length}\n onClick={() => {\n resetMenu();\n push({\n id: `${Date.now()}`,\n content: `${selections.length} item${\n selections.length !== 1 ? 's' : ''\n } added`\n });\n }}\n >\n Add\n {selections.length > 0 && args.mode === 'multi-select' && (\n <>\n <Count>{selections.length}</Count>\n </>\n )}\n </Button>\n </Flex>\n )\n )\n }\n />\n </Popover>\n </Flex>\n );\n};\n\nexport const FlatMenuDemo: Story<MenuStoryProps> = (args: MenuStoryProps) => {\n return <MenuDemo {...args} useFlatData />;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Menu.stories.js","sourceRoot":"","sources":["../../../src/core/Menu/Menu.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n Button,\n Count,\n Flex,\n Menu,\n menuHelpers,\n MenuItemProps,\n MenuProps,\n Popover,\n SearchInput,\n ToasterContext,\n createUID,\n useElement,\n useOuterEvent,\n OmitStrict\n} from '@pega/cosmos-react-core';\n\nimport { cars, countries } from './Menu.mocks';\nimport { StyledFlag } from './Menu.styles';\n\nexport default {\n title: 'Core/Menu',\n component: Menu,\n args: {\n variant: 'drill-down',\n mode: 'action',\n showItemSecondary: true,\n showItemVisual: true,\n showItemCount: true,\n parentSelection: false,\n filterPattern: 'contains',\n infiniteScroll: false,\n noItems: false,\n emptyText: 'No items',\n useFlatData: false\n },\n argTypes: {\n variant: { options: ['drill-down', 'flyout'], control: { type: 'select' } },\n mode: { options: ['action', 'single-select', 'multi-select'], control: { type: 'select' } },\n showItemSecondary: { control: { type: 'boolean' } },\n showItemVisual: { control: { type: 'boolean' } },\n showItemCount: { control: { type: 'boolean' } },\n parentSelection: { control: { type: 'boolean' } },\n filterPattern: { options: ['contains', 'starts with'], control: { type: 'select' } },\n infiniteScroll: { control: { type: 'boolean' } },\n noItems: { control: { type: 'boolean' } },\n emptyText: { control: { type: 'text' } },\n useFlatData: { control: { type: 'boolean' } }\n }\n} as Meta;\n\ninterface MenuStoryProps extends OmitStrict<MenuProps, 'items'> {\n showItemSecondary?: boolean;\n showItemVisual?: boolean;\n showItemCount?: boolean;\n parentSelection?: boolean;\n filterPattern?: 'contains' | 'starts with';\n infiniteScroll?: boolean;\n noItems?: boolean;\n useFlatData?: boolean;\n}\n\nexport const MenuDemo: Story<MenuStoryProps> = (args: MenuStoryProps) => {\n const menuID = createUID();\n const data = args.useFlatData ? cars : countries;\n\n const searchEleRef = useRef<HTMLInputElement>(null);\n const { push } = useContext(ToasterContext);\n const [isOpen, setIsOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n const [items, setItems] = useState<MenuProps['items']>(\n args.infiniteScroll ? data.slice(0, 10) : data\n );\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n const [search, setSearch] = useState('');\n const selections = useMemo(() => menuHelpers.getSelected(items), [items]);\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(args.filterPattern === 'contains' ? escapedSearch : `^${escapedSearch}`, 'i');\n }, [search, args.filterPattern]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(items).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : items,\n item => {\n let selectable = false;\n\n if (!item.items || args.parentSelection) {\n selectable = true;\n }\n\n return {\n ...item,\n visual:\n args.showItemVisual && item.visual ? <StyledFlag>{item.visual}</StyledFlag> : undefined,\n count: args.showItemCount && item.items ? item.items.length : undefined,\n secondary: args.showItemSecondary ? item.secondary : undefined,\n selected: selectable ? !!item.selected : undefined,\n tooltip: args.variant === 'flyout' ? item.tooltip : undefined\n };\n }\n );\n }, [search, items, searchRegex, args.showItemVisual]);\n\n const resetMenu = useCallback(() => {\n setIsOpen(false);\n setItems(data.slice(0, 10));\n setSearch('');\n }, []);\n\n const onKeydown = useCallback(\n ({ key }: KeyboardEvent) => {\n if (key === 'Escape') resetMenu();\n },\n [resetMenu]\n );\n\n const loadMore = useCallback(\n (expandedItemId?: MenuItemProps['id']) => {\n if (!expandedItemId) {\n setIsLoading(true);\n setTimeout(() => {\n setIsLoading(false);\n setItems(prevItems => {\n const newItems = data.slice(prevItems.length, prevItems.length + 10);\n\n if (newItems.length === 0) setHasMore(false);\n\n return menuHelpers.appendTo(prevItems, newItems, expandedItemId);\n });\n }, 2000);\n }\n },\n [data]\n );\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], e => {\n if (args.variant === 'flyout') {\n const path = e.composedPath();\n const considerEvent = path.every(el => {\n return !(el instanceof HTMLElement && el.dataset.flyoutMenuParentId === menuID);\n });\n if (considerEvent) {\n resetMenu();\n }\n } else {\n resetMenu();\n }\n });\n\n useEffect(() => {\n document.addEventListener('keydown', onKeydown);\n return () => {\n document.removeEventListener('keydown', onKeydown);\n };\n }, []);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n return (\n <Flex container={{ justify: 'center' }}>\n <Button ref={setButtonEl} onClick={() => setIsOpen(cur => !cur)} variant='primary'>\n Open the MENU\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n {...args}\n id={menuID}\n items={args.noItems ? [] : itemsToRender}\n accent={search ? searchRegex : undefined}\n mode={args.variant === 'drill-down' ? args.mode : 'action'}\n loading={isLoading}\n emptyText={args.emptyText}\n variant={args.variant}\n loadMore={args.infiniteScroll && hasMore ? loadMore : undefined}\n focusControlEl={searchEleRef.current || undefined}\n onItemClick={id => {\n if (args.mode === 'single-select' || args.mode === 'multi-select') {\n setItems(cur => menuHelpers.toggleSelected(cur, id, args.mode));\n } else {\n const clicked = menuHelpers.getItem(items, id);\n if (clicked) {\n push({\n id: `${Date.now()}`,\n content: `${clicked.primary} added`\n });\n }\n resetMenu();\n }\n }}\n header={\n args.variant === 'drill-down' && (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='combobox'\n searchInputAriaLabel='Start typing to search.'\n />\n )\n }\n footer={\n args.variant === 'flyout' ? (\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='combobox'\n searchInputAriaLabel='Start typing to search.'\n />\n ) : (\n (args.mode === 'single-select' || args.mode === 'multi-select') && (\n <Flex container={{ justify: 'between' }}>\n <Button onClick={resetMenu}>Cancel</Button>\n\n <Button\n variant='primary'\n disabled={!selections.length}\n onClick={() => {\n resetMenu();\n push({\n id: `${Date.now()}`,\n content: `${selections.length} item${\n selections.length !== 1 ? 's' : ''\n } added`\n });\n }}\n >\n Add\n {selections.length > 0 && args.mode === 'multi-select' && (\n <>\n <Count>{selections.length}</Count>\n </>\n )}\n </Button>\n </Flex>\n )\n )\n }\n />\n </Popover>\n </Flex>\n );\n};\n\nexport const FlatMenuDemo: Story<MenuStoryProps> = (args: MenuStoryProps) => {\n return <MenuDemo {...args} useFlatData />;\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-demos",
|
|
3
|
-
"version": "3.0.0-dev.16.
|
|
3
|
+
"version": "3.0.0-dev.16.1",
|
|
4
4
|
"author": "Pegasystems",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"repository": {
|
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
"build": "tsc -b"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@pega/cosmos-react-build": "3.0.0-dev.16.
|
|
24
|
-
"@pega/cosmos-react-condition-builder": "3.0.0-dev.16.
|
|
25
|
-
"@pega/cosmos-react-core": "3.0.0-dev.16.
|
|
26
|
-
"@pega/cosmos-react-cs": "3.0.0-dev.16.
|
|
27
|
-
"@pega/cosmos-react-dnd": "3.0.0-dev.16.
|
|
28
|
-
"@pega/cosmos-react-rte": "3.0.0-dev.16.
|
|
29
|
-
"@pega/cosmos-react-social": "3.0.0-dev.16.
|
|
30
|
-
"@pega/cosmos-react-work": "3.0.0-dev.16.
|
|
23
|
+
"@pega/cosmos-react-build": "3.0.0-dev.16.1",
|
|
24
|
+
"@pega/cosmos-react-condition-builder": "3.0.0-dev.16.1",
|
|
25
|
+
"@pega/cosmos-react-core": "3.0.0-dev.16.1",
|
|
26
|
+
"@pega/cosmos-react-cs": "3.0.0-dev.16.1",
|
|
27
|
+
"@pega/cosmos-react-dnd": "3.0.0-dev.16.1",
|
|
28
|
+
"@pega/cosmos-react-rte": "3.0.0-dev.16.1",
|
|
29
|
+
"@pega/cosmos-react-social": "3.0.0-dev.16.1",
|
|
30
|
+
"@pega/cosmos-react-work": "3.0.0-dev.16.1",
|
|
31
31
|
"@types/emoji-mart": "^3.0.4",
|
|
32
32
|
"@types/react": "^16.14.24 || ^17.0.38",
|
|
33
33
|
"@types/react-dom": "^16.9.14 || ^17.0.11",
|