@uipath/apollo-react 3.34.0 → 3.34.2

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.
@@ -1,9 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Checkbox, FormControlLabel } from "@mui/material";
3
- import { FontVariantToken } from "@uipath/apollo-core";
4
- import { Column, Row } from "../../layouts/index.js";
2
+ import { Column } from "../../layouts/index.js";
5
3
  import { Panel } from "../../xyflow/react.js";
6
- import { ApButton, ApIcon, ApIconButton, ApTypography } from "../../../material/index.js";
4
+ import { Button, Input, Label, Slider, Switch } from "@uipath/apollo-wind";
7
5
  import { useCallback, useEffect, useMemo, useState } from "react";
8
6
  import { NodeRegistryContext, NodeTypeRegistry } from "../../core/index.js";
9
7
  import { StoryInfoPanel, createNode, useCanvasStory, withCanvasProviders } from "../../storybook-utils/index.js";
@@ -30,6 +28,15 @@ const sampleManifest = {
30
28
  colorDark: '#495057',
31
29
  icon: 'layers',
32
30
  tags: []
31
+ },
32
+ {
33
+ id: 'control',
34
+ name: 'Control Flow',
35
+ sortOrder: 3,
36
+ color: '#6c757d',
37
+ colorDark: '#495057',
38
+ icon: 'git-branch',
39
+ tags: []
33
40
  }
34
41
  ],
35
42
  nodes: [
@@ -184,6 +191,50 @@ const sampleManifest = {
184
191
  ]
185
192
  }
186
193
  ]
194
+ },
195
+ {
196
+ nodeType: 'uipath.decision',
197
+ version: '1.0.0',
198
+ category: 'control',
199
+ tags: [
200
+ 'control',
201
+ 'decision'
202
+ ],
203
+ sortOrder: 6,
204
+ display: {
205
+ label: 'Decision',
206
+ icon: 'git-branch',
207
+ shape: 'square'
208
+ },
209
+ handleConfiguration: [
210
+ {
211
+ position: 'left',
212
+ handles: [
213
+ {
214
+ id: 'input',
215
+ type: 'target',
216
+ handleType: 'input'
217
+ }
218
+ ]
219
+ },
220
+ {
221
+ position: 'right',
222
+ handles: [
223
+ {
224
+ id: 'true',
225
+ type: 'source',
226
+ handleType: 'output',
227
+ label: '{inputs.trueLabel}'
228
+ },
229
+ {
230
+ id: 'false',
231
+ type: 'source',
232
+ handleType: 'output',
233
+ label: '{inputs.falseLabel}'
234
+ }
235
+ ]
236
+ }
237
+ ]
187
238
  }
188
239
  ]
189
240
  };
@@ -416,7 +467,7 @@ function CustomizedSizesStory() {
416
467
  });
417
468
  }
418
469
  function DynamicHandlesStory() {
419
- const [nodeData, setNodeData] = useState({
470
+ const [switchData, setSwitchData] = useState({
420
471
  dynamicInputs: [
421
472
  {
422
473
  label: 'Primary Input'
@@ -438,26 +489,55 @@ function DynamicHandlesStory() {
438
489
  ],
439
490
  hasDefault: false
440
491
  });
492
+ const [decisionData, setDecisionData] = useState({
493
+ trueLabel: 'Approved',
494
+ falseLabel: 'Rejected'
495
+ });
441
496
  const initialNodes = useMemo(()=>[
442
497
  {
443
498
  ...createNode({
444
499
  id: 'dynamic-handles-node',
445
500
  type: 'uipath.control-switch',
446
501
  position: {
447
- x: 400,
448
- y: 300
502
+ x: 700,
503
+ y: 200
449
504
  },
450
505
  data: {
451
506
  nodeType: 'uipath.control-switch',
452
507
  version: '1.0.0',
453
508
  inputs: {
454
- dynamicInputs: nodeData.dynamicInputs,
455
- dynamicOutputs: nodeData.dynamicOutputs,
456
- hasDefault: nodeData.hasDefault
509
+ dynamicInputs: switchData.dynamicInputs,
510
+ dynamicOutputs: switchData.dynamicOutputs,
511
+ hasDefault: switchData.hasDefault
457
512
  },
458
513
  display: {
459
514
  label: 'Dynamic Handles',
460
- subLabel: `${nodeData.dynamicInputs.length} inputs, ${nodeData.dynamicOutputs.length} outputs`,
515
+ subLabel: `${switchData.dynamicInputs.length} inputs, ${switchData.dynamicOutputs.length} outputs`,
516
+ shape: 'square'
517
+ }
518
+ }
519
+ }),
520
+ height: 96,
521
+ width: 96
522
+ },
523
+ {
524
+ ...createNode({
525
+ id: 'decision-node',
526
+ type: 'uipath.decision',
527
+ position: {
528
+ x: 700,
529
+ y: 600
530
+ },
531
+ data: {
532
+ nodeType: 'uipath.decision',
533
+ version: '1.0.0',
534
+ inputs: {
535
+ trueLabel: decisionData.trueLabel,
536
+ falseLabel: decisionData.falseLabel
537
+ },
538
+ display: {
539
+ label: 'Decision',
540
+ subLabel: 'Templated labels',
461
541
  shape: 'square'
462
542
  }
463
543
  }
@@ -466,77 +546,98 @@ function DynamicHandlesStory() {
466
546
  width: 96
467
547
  }
468
548
  ], [
469
- nodeData
549
+ switchData,
550
+ decisionData
470
551
  ]);
471
552
  const { canvasProps, setNodes } = useCanvasStory({
472
553
  initialNodes
473
554
  });
474
555
  useEffect(()=>{
475
- setNodes((nodes)=>nodes.map((node)=>'dynamic-handles-node' === node.id ? {
556
+ setNodes((nodes)=>nodes.map((node)=>{
557
+ if ('dynamic-handles-node' === node.id) return {
476
558
  ...node,
477
559
  data: {
478
560
  ...node.data,
479
561
  inputs: {
480
- dynamicInputs: nodeData.dynamicInputs,
481
- dynamicOutputs: nodeData.dynamicOutputs,
482
- hasDefault: nodeData.hasDefault
562
+ dynamicInputs: switchData.dynamicInputs,
563
+ dynamicOutputs: switchData.dynamicOutputs,
564
+ hasDefault: switchData.hasDefault
483
565
  },
484
566
  display: {
485
567
  ...node.data.display || {},
486
- subLabel: `${nodeData.dynamicInputs.length} inputs, ${nodeData.dynamicOutputs.length} outputs`
568
+ subLabel: `${switchData.dynamicInputs.length} inputs, ${switchData.dynamicOutputs.length} outputs`
569
+ }
570
+ }
571
+ };
572
+ if ('decision-node' === node.id) return {
573
+ ...node,
574
+ data: {
575
+ ...node.data,
576
+ inputs: {
577
+ trueLabel: decisionData.trueLabel,
578
+ falseLabel: decisionData.falseLabel
487
579
  }
488
580
  }
489
- } : node));
581
+ };
582
+ return node;
583
+ }));
490
584
  }, [
491
- nodeData,
585
+ switchData,
586
+ decisionData,
492
587
  setNodes
493
588
  ]);
494
- const addHandle = useCallback((type)=>{
495
- setNodeData((prev)=>{
496
- const newArray = [
497
- ...prev[type]
498
- ];
499
- if ('dynamicInputs' === type) newArray.push({
500
- label: `Input ${newArray.length + 1}`
501
- });
502
- else if ('dynamicOutputs' === type) newArray.push({
503
- name: `Output ${newArray.length + 1}`
504
- });
589
+ const handleInputCount = useCallback((value)=>{
590
+ const count = value[0] ?? 0;
591
+ setSwitchData((prev)=>{
592
+ const current = prev.dynamicInputs;
593
+ if (count > current.length) {
594
+ const added = Array.from({
595
+ length: count - current.length
596
+ }, (_, i)=>({
597
+ label: `Input ${current.length + i + 1}`
598
+ }));
599
+ return {
600
+ ...prev,
601
+ dynamicInputs: [
602
+ ...current,
603
+ ...added
604
+ ]
605
+ };
606
+ }
505
607
  return {
506
608
  ...prev,
507
- [type]: newArray
609
+ dynamicInputs: current.slice(0, count)
508
610
  };
509
611
  });
510
612
  }, []);
511
- const removeHandle = useCallback((type)=>{
512
- setNodeData((prev)=>{
513
- const newArray = [
514
- ...prev[type]
515
- ];
516
- if (newArray.length > 0) newArray.pop();
613
+ const handleOutputCount = useCallback((value)=>{
614
+ const count = value[0] ?? 0;
615
+ setSwitchData((prev)=>{
616
+ const current = prev.dynamicOutputs;
617
+ if (count > current.length) {
618
+ const added = Array.from({
619
+ length: count - current.length
620
+ }, (_, i)=>({
621
+ name: `Output ${current.length + i + 1}`
622
+ }));
623
+ return {
624
+ ...prev,
625
+ dynamicOutputs: [
626
+ ...current,
627
+ ...added
628
+ ]
629
+ };
630
+ }
517
631
  return {
518
632
  ...prev,
519
- [type]: newArray
633
+ dynamicOutputs: current.slice(0, count)
520
634
  };
521
635
  });
522
636
  }, []);
523
- const handleTypes = [
524
- {
525
- key: 'dynamicInputs',
526
- label: 'Inputs',
527
- icon: 'arrow_back'
528
- },
529
- {
530
- key: 'dynamicOutputs',
531
- label: 'Outputs',
532
- icon: 'arrow_forward'
533
- }
534
- ];
535
637
  return /*#__PURE__*/ jsxs(BaseCanvas, {
536
638
  ...canvasProps,
537
639
  mode: "design",
538
640
  children: [
539
- /*#__PURE__*/ jsx(NodeInspector, {}),
540
641
  /*#__PURE__*/ jsx(Panel, {
541
642
  position: "bottom-right",
542
643
  children: /*#__PURE__*/ jsx(CanvasPositionControls, {
@@ -545,78 +646,124 @@ function DynamicHandlesStory() {
545
646
  }),
546
647
  /*#__PURE__*/ jsx(StoryInfoPanel, {
547
648
  title: "Dynamic Handles",
548
- description: "Interactive demonstration of dynamic handle generation. Use buttons to add/remove handles from arrays.",
649
+ description: "Demonstrates repeat expressions (dynamic handle count) and templated handle labels.",
549
650
  children: /*#__PURE__*/ jsxs(Column, {
550
- gap: 16,
651
+ gap: 20,
551
652
  children: [
552
- handleTypes.map(({ key, label, icon })=>/*#__PURE__*/ jsxs(Column, {
553
- gap: 6,
554
- align: "flex-start",
555
- children: [
556
- /*#__PURE__*/ jsxs(Row, {
557
- gap: 8,
558
- align: "center",
559
- children: [
560
- /*#__PURE__*/ jsx(ApIcon, {
561
- name: icon,
562
- size: "20px"
563
- }),
564
- /*#__PURE__*/ jsx(ApTypography, {
565
- variant: FontVariantToken.fontSizeMBold,
566
- children: label
567
- })
568
- ]
569
- }),
570
- /*#__PURE__*/ jsxs(Row, {
571
- gap: 8,
572
- align: "center",
573
- children: [
574
- /*#__PURE__*/ jsx(ApIconButton, {
575
- onClick: ()=>removeHandle(key),
576
- disabled: 0 === nodeData[key].length,
577
- "aria-label": `Remove ${label.toLowerCase()}`,
578
- children: /*#__PURE__*/ jsx(ApIcon, {
579
- name: "remove"
580
- })
581
- }),
582
- /*#__PURE__*/ jsx(ApTypography, {
583
- variant: FontVariantToken.fontSizeMBold,
584
- style: {
585
- minWidth: 24,
586
- textAlign: 'center'
587
- },
588
- children: nodeData[key].length
589
- }),
590
- /*#__PURE__*/ jsx(ApIconButton, {
591
- onClick: ()=>addHandle(key),
592
- "aria-label": `Add ${label.toLowerCase()}`,
593
- children: /*#__PURE__*/ jsx(ApIcon, {
594
- name: "add"
595
- })
596
- })
597
- ]
598
- })
599
- ]
600
- }, key)),
601
- /*#__PURE__*/ jsx(Column, {
602
- gap: 6,
603
- align: "flex-start",
604
- children: /*#__PURE__*/ jsx(FormControlLabel, {
605
- control: /*#__PURE__*/ jsx(Checkbox, {
606
- checked: nodeData.hasDefault,
607
- onChange: (e)=>setNodeData((prev)=>({
608
- ...prev,
609
- hasDefault: e.target.checked
610
- }))
653
+ /*#__PURE__*/ jsxs(Column, {
654
+ gap: 12,
655
+ children: [
656
+ /*#__PURE__*/ jsx(Label, {
657
+ className: "font-semibold",
658
+ children: "Switch Node — Repeat Handles"
659
+ }),
660
+ /*#__PURE__*/ jsxs(Column, {
661
+ gap: 6,
662
+ align: "flex-start",
663
+ children: [
664
+ /*#__PURE__*/ jsxs(Label, {
665
+ children: [
666
+ "Inputs (",
667
+ switchData.dynamicInputs.length,
668
+ ")"
669
+ ]
670
+ }),
671
+ /*#__PURE__*/ jsx(Slider, {
672
+ value: [
673
+ switchData.dynamicInputs.length
674
+ ],
675
+ onValueChange: handleInputCount,
676
+ min: 0,
677
+ max: 10,
678
+ step: 1
679
+ })
680
+ ]
681
+ }),
682
+ /*#__PURE__*/ jsxs(Column, {
683
+ gap: 6,
684
+ align: "flex-start",
685
+ children: [
686
+ /*#__PURE__*/ jsxs(Label, {
687
+ children: [
688
+ "Outputs (",
689
+ switchData.dynamicOutputs.length,
690
+ ")"
691
+ ]
692
+ }),
693
+ /*#__PURE__*/ jsx(Slider, {
694
+ value: [
695
+ switchData.dynamicOutputs.length
696
+ ],
697
+ onValueChange: handleOutputCount,
698
+ min: 0,
699
+ max: 10,
700
+ step: 1
701
+ })
702
+ ]
703
+ }),
704
+ /*#__PURE__*/ jsxs("div", {
705
+ className: "flex items-center gap-2",
706
+ children: [
707
+ /*#__PURE__*/ jsx(Switch, {
708
+ checked: switchData.hasDefault,
709
+ onCheckedChange: (checked)=>setSwitchData((prev)=>({
710
+ ...prev,
711
+ hasDefault: checked
712
+ }))
713
+ }),
714
+ /*#__PURE__*/ jsx(Label, {
715
+ children: "Has Default Output"
716
+ })
717
+ ]
718
+ })
719
+ ]
720
+ }),
721
+ /*#__PURE__*/ jsxs(Column, {
722
+ gap: 12,
723
+ children: [
724
+ /*#__PURE__*/ jsx(Label, {
725
+ className: "font-semibold",
726
+ children: "Decision Node — Templated Labels"
727
+ }),
728
+ /*#__PURE__*/ jsxs(Column, {
729
+ gap: 6,
730
+ align: "flex-start",
731
+ children: [
732
+ /*#__PURE__*/ jsx(Label, {
733
+ children: "True Label"
734
+ }),
735
+ /*#__PURE__*/ jsx(Input, {
736
+ value: decisionData.trueLabel,
737
+ onChange: (e)=>setDecisionData((prev)=>({
738
+ ...prev,
739
+ trueLabel: e.target.value
740
+ }))
741
+ })
742
+ ]
611
743
  }),
612
- label: "Has Default Output"
613
- })
744
+ /*#__PURE__*/ jsxs(Column, {
745
+ gap: 6,
746
+ align: "flex-start",
747
+ children: [
748
+ /*#__PURE__*/ jsx(Label, {
749
+ children: "False Label"
750
+ }),
751
+ /*#__PURE__*/ jsx(Input, {
752
+ value: decisionData.falseLabel,
753
+ onChange: (e)=>setDecisionData((prev)=>({
754
+ ...prev,
755
+ falseLabel: e.target.value
756
+ }))
757
+ })
758
+ ]
759
+ })
760
+ ]
614
761
  }),
615
- /*#__PURE__*/ jsx(ApButton, {
616
- size: "small",
762
+ /*#__PURE__*/ jsx(Button, {
763
+ size: "sm",
617
764
  variant: "secondary",
618
- label: "Reset",
619
- onClick: ()=>setNodeData({
765
+ onClick: ()=>{
766
+ setSwitchData({
620
767
  dynamicInputs: [
621
768
  {
622
769
  label: 'Primary Input'
@@ -628,7 +775,13 @@ function DynamicHandlesStory() {
628
775
  }
629
776
  ],
630
777
  hasDefault: false
631
- })
778
+ });
779
+ setDecisionData({
780
+ trueLabel: 'Approved',
781
+ falseLabel: 'Rejected'
782
+ });
783
+ },
784
+ children: "Reset All"
632
785
  })
633
786
  ]
634
787
  })
@@ -182,10 +182,10 @@ const ButtonHandlesBase = ({ nodeId, handles, position, selected = false, visibl
182
182
  showAddButton,
183
183
  selected
184
184
  });
185
- const visibleHandles = handles.filter((h)=>visible && (h.visible ?? true));
185
+ const visibleHandles = handles.filter((h)=>h.visible ?? true);
186
186
  const total = visibleHandles.length;
187
187
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(jsx_runtime_namespaceObject.Fragment, {
188
- children: visibleHandles.map((handle, index)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ButtonHandle, {
188
+ children: handles.map((handle, index)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ButtonHandle, {
189
189
  id: handle.id,
190
190
  nodeId: nodeId,
191
191
  type: handle.type,
@@ -197,6 +197,7 @@ const ButtonHandlesBase = ({ nodeId, handles, position, selected = false, visibl
197
197
  index: index,
198
198
  total: total,
199
199
  selected: selected,
200
+ visible: visible && (handle.visible ?? true),
200
201
  showButton: finalSelected && visible && handle.showButton,
201
202
  color: handle.color,
202
203
  onAction: handle.onAction,
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonHandle.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/ButtonHandle.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAKpE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qCAAqC,CAAC;AAY/F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC;CACjC;AA+BD,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,mCAAmC,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA6HF,eAAO,MAAM,YAAY,wPAvGtB,iBAAiB,6CAuG8B,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IAEjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,wBAAwB,CAAC,EAAE,mCAAmC,CAAC;CAChE;AA6ED,eAAO,MAAM,aAAa,8LA/DvB;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,mCAAmC,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAUpB,qBAAqB,CAAC,EAAE,CAAC,EACvB,aAAa,EACb,QAAQ,GACT,EAAE;QACD,aAAa,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,OAAO,CAAC;CACf,6CAoCmD,CAAC"}
1
+ {"version":3,"file":"ButtonHandle.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/ButtonHandle.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAKpE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qCAAqC,CAAC;AAY/F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC;CACjC;AA+BD,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,mCAAmC,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA6HF,eAAO,MAAM,YAAY,wPAvGtB,iBAAiB,6CAuG8B,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IAEjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,wBAAwB,CAAC,EAAE,mCAAmC,CAAC;CAChE;AA+ED,eAAO,MAAM,aAAa,8LAjEvB;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,mCAAmC,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAUpB,qBAAqB,CAAC,EAAE,CAAC,EACvB,aAAa,EACb,QAAQ,GACT,EAAE;QACD,aAAa,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,OAAO,CAAC;CACf,6CAsCmD,CAAC"}
@@ -153,10 +153,10 @@ const ButtonHandlesBase = ({ nodeId, handles, position, selected = false, visibl
153
153
  showAddButton,
154
154
  selected
155
155
  });
156
- const visibleHandles = handles.filter((h)=>visible && (h.visible ?? true));
156
+ const visibleHandles = handles.filter((h)=>h.visible ?? true);
157
157
  const total = visibleHandles.length;
158
158
  return /*#__PURE__*/ jsx(Fragment, {
159
- children: visibleHandles.map((handle, index)=>/*#__PURE__*/ jsx(ButtonHandle, {
159
+ children: handles.map((handle, index)=>/*#__PURE__*/ jsx(ButtonHandle, {
160
160
  id: handle.id,
161
161
  nodeId: nodeId,
162
162
  type: handle.type,
@@ -168,6 +168,7 @@ const ButtonHandlesBase = ({ nodeId, handles, position, selected = false, visibl
168
168
  index: index,
169
169
  total: total,
170
170
  selected: selected,
171
+ visible: visible && (handle.visible ?? true),
171
172
  showButton: finalSelected && visible && handle.showButton,
172
173
  color: handle.color,
173
174
  onAction: handle.onAction,
@@ -1 +1 @@
1
- {"version":3,"file":"StageNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.tsx"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAynBxD,eAAO,MAAM,SAAS,8CA/mBa,cAAc,6CA+mBA,CAAC"}
1
+ {"version":3,"file":"StageNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.tsx"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAwnBxD,eAAO,MAAM,SAAS,8CA9mBa,cAAc,6CA8mBA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"StageNode.stories.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuBvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CA0FD,CAAC;AAEjC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA4CnC,eAAO,MAAM,OAAO,EAAE,KA2DrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAsE3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KA8M7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KA+HvC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAoKpC,CAAC;AA8GF,eAAO,MAAM,uBAAuB,EAAE,KAOrC,CAAC;AAyLF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAyHF,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC"}
1
+ {"version":3,"file":"StageNode.stories.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuBvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CA0FD,CAAC;AAEjC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA4CnC,eAAO,MAAM,OAAO,EAAE,KA2DrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAsE3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KA8M7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KA+HvC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAoKpC,CAAC;AA8GF,eAAO,MAAM,uBAAuB,EAAE,KAOrC,CAAC;AAyLF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAuHF,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/schema/node-instance/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,qBAAqB,EACrB,UAAU,EACV,sBAAsB,EACtB,eAAe,GAChB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/schema/node-instance/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,qBAAqB,EACrB,UAAU,EACV,sBAAsB,EACtB,eAAe,GAChB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC"}
@@ -74,14 +74,23 @@ function createNode(options) {
74
74
  x: 0,
75
75
  y: 0
76
76
  }, data = {}, display, handleConfigurations, selected = false, useSmartHandles, executionStatus } = options;
77
+ const resolvedHandleConfigs = handleConfigurations ?? data.handleConfigurations;
78
+ const resolvedSmartHandles = useSmartHandles ?? data.useSmartHandles;
79
+ const resolvedExecutionStatus = executionStatus ?? data.executionStatus;
77
80
  const baseData = {
78
81
  nodeType: type,
79
82
  version: data.version || '1.0.0',
80
83
  parameters: data.parameters || {},
81
84
  display: display || data.display,
82
- handleConfigurations: handleConfigurations || data.handleConfigurations,
83
- useSmartHandles: useSmartHandles ?? data.useSmartHandles,
84
- executionStatus: executionStatus || data.executionStatus
85
+ ...void 0 !== resolvedHandleConfigs && {
86
+ handleConfigurations: resolvedHandleConfigs
87
+ },
88
+ ...void 0 !== resolvedSmartHandles && {
89
+ useSmartHandles: resolvedSmartHandles
90
+ },
91
+ ...void 0 !== resolvedExecutionStatus && {
92
+ executionStatus: resolvedExecutionStatus
93
+ }
85
94
  };
86
95
  return {
87
96
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../src/canvas/storybook-utils/mocks/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAKnF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBhB,CAAC;AAKX,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE5D,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEpC,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAEjC,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAE7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,eAAe,CAAC,EACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,eAAe,GACf,YAAY,CAAC;CAClB;AAsBD,wBAAgB,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAkCxB;AAiBD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAEtC,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,IAAI,EAAE,KAAK,CACT,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CACzF,CAAC;IAEF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAuCvB;AAKD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAsCE,MAAM,EAAE;;;;;;;;;CAW1B,CAAC;AAkBX,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,iBAAiB,CAAC,GAC5D,IAAI,CAAC,YAAY,CAAC,EAAE,CA6BtB"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../src/canvas/storybook-utils/mocks/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAKnF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBhB,CAAC;AAKX,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE5D,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEpC,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAEjC,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAE7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,eAAe,CAAC,EACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,eAAe,GACf,YAAY,CAAC;CAClB;AAsBD,wBAAgB,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAsCxB;AAiBD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAEtC,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,IAAI,EAAE,KAAK,CACT,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CACzF,CAAC;IAEF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAuCvB;AAKD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAsCE,MAAM,EAAE;;;;;;;;;CAW1B,CAAC;AAkBX,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,iBAAiB,CAAC,GAC5D,IAAI,CAAC,YAAY,CAAC,EAAE,CA6BtB"}
@@ -42,14 +42,23 @@ function createNode(options) {
42
42
  x: 0,
43
43
  y: 0
44
44
  }, data = {}, display, handleConfigurations, selected = false, useSmartHandles, executionStatus } = options;
45
+ const resolvedHandleConfigs = handleConfigurations ?? data.handleConfigurations;
46
+ const resolvedSmartHandles = useSmartHandles ?? data.useSmartHandles;
47
+ const resolvedExecutionStatus = executionStatus ?? data.executionStatus;
45
48
  const baseData = {
46
49
  nodeType: type,
47
50
  version: data.version || '1.0.0',
48
51
  parameters: data.parameters || {},
49
52
  display: display || data.display,
50
- handleConfigurations: handleConfigurations || data.handleConfigurations,
51
- useSmartHandles: useSmartHandles ?? data.useSmartHandles,
52
- executionStatus: executionStatus || data.executionStatus
53
+ ...void 0 !== resolvedHandleConfigs && {
54
+ handleConfigurations: resolvedHandleConfigs
55
+ },
56
+ ...void 0 !== resolvedSmartHandles && {
57
+ useSmartHandles: resolvedSmartHandles
58
+ },
59
+ ...void 0 !== resolvedExecutionStatus && {
60
+ executionStatus: resolvedExecutionStatus
61
+ }
53
62
  };
54
63
  return {
55
64
  id,