@uipath/apollo-react 6.27.0 → 6.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts +2 -0
  2. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts.map +1 -1
  3. package/dist/canvas/components/BaseCanvas/BaseCanvas.cjs +27 -3
  4. package/dist/canvas/components/BaseCanvas/BaseCanvas.d.ts.map +1 -1
  5. package/dist/canvas/components/BaseCanvas/BaseCanvas.hooks.cjs +21 -3
  6. package/dist/canvas/components/BaseCanvas/BaseCanvas.hooks.d.ts +1 -0
  7. package/dist/canvas/components/BaseCanvas/BaseCanvas.hooks.d.ts.map +1 -1
  8. package/dist/canvas/components/BaseCanvas/BaseCanvas.hooks.js +18 -3
  9. package/dist/canvas/components/BaseCanvas/BaseCanvas.js +28 -4
  10. package/dist/canvas/components/BaseCanvas/BaseCanvas.stories.fixtures.cjs +87 -0
  11. package/dist/canvas/components/BaseCanvas/BaseCanvas.stories.fixtures.d.ts +4 -0
  12. package/dist/canvas/components/BaseCanvas/BaseCanvas.stories.fixtures.d.ts.map +1 -0
  13. package/dist/canvas/components/BaseCanvas/BaseCanvas.stories.fixtures.js +53 -0
  14. package/dist/canvas/components/BaseCanvas/BaseCanvas.types.d.ts.map +1 -1
  15. package/dist/canvas/components/BaseCanvas/ReadOnlyNodesContext.cjs +30 -3
  16. package/dist/canvas/components/BaseCanvas/ReadOnlyNodesContext.d.ts +3 -0
  17. package/dist/canvas/components/BaseCanvas/ReadOnlyNodesContext.d.ts.map +1 -1
  18. package/dist/canvas/components/BaseCanvas/ReadOnlyNodesContext.js +21 -3
  19. package/dist/canvas/components/BaseCanvas/index.cjs +43 -32
  20. package/dist/canvas/components/BaseCanvas/index.d.ts +1 -1
  21. package/dist/canvas/components/BaseCanvas/index.d.ts.map +1 -1
  22. package/dist/canvas/components/BaseCanvas/index.js +2 -2
  23. package/dist/canvas/components/BaseCanvas/useReadOnlyConnectionCallbacks.cjs +87 -0
  24. package/dist/canvas/components/BaseCanvas/useReadOnlyConnectionCallbacks.d.ts +13 -0
  25. package/dist/canvas/components/BaseCanvas/useReadOnlyConnectionCallbacks.d.ts.map +1 -0
  26. package/dist/canvas/components/BaseCanvas/useReadOnlyConnectionCallbacks.js +53 -0
  27. package/dist/canvas/components/CaseFlow/case-flow.manifest.d.ts +2 -0
  28. package/dist/canvas/components/CaseFlow/case-flow.manifest.d.ts.map +1 -1
  29. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +21 -3
  30. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
  31. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +21 -3
  32. package/dist/canvas/schema/node-definition/index.cjs +2 -1
  33. package/dist/canvas/schema/node-definition/index.d.ts +4 -2
  34. package/dist/canvas/schema/node-definition/index.d.ts.map +1 -1
  35. package/dist/canvas/schema/node-definition/index.js +2 -1
  36. package/dist/canvas/schema/node-definition/node-manifest.cjs +4 -12
  37. package/dist/canvas/schema/node-definition/node-manifest.d.ts +12 -7
  38. package/dist/canvas/schema/node-definition/node-manifest.d.ts.map +1 -1
  39. package/dist/canvas/schema/node-definition/node-manifest.js +2 -7
  40. package/dist/canvas/schema/node-definition/shape.cjs +42 -0
  41. package/dist/canvas/schema/node-definition/shape.d.ts +9 -0
  42. package/dist/canvas/schema/node-definition/shape.d.ts.map +1 -0
  43. package/dist/canvas/schema/node-definition/shape.js +8 -0
  44. package/dist/canvas/schema/node-instance/base.cjs +2 -2
  45. package/dist/canvas/schema/node-instance/base.js +1 -1
  46. package/dist/canvas/schema/toolbar.cjs +2 -0
  47. package/dist/canvas/schema/toolbar.d.ts +30 -0
  48. package/dist/canvas/schema/toolbar.d.ts.map +1 -1
  49. package/dist/canvas/schema/toolbar.js +2 -0
  50. package/dist/canvas/storybook-utils/manifests/index.d.ts +2 -0
  51. package/dist/canvas/storybook-utils/manifests/index.d.ts.map +1 -1
  52. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  53. package/dist/canvas/utils/createPreviewGraph.cjs +13 -8
  54. package/dist/canvas/utils/createPreviewGraph.d.ts +5 -2
  55. package/dist/canvas/utils/createPreviewGraph.d.ts.map +1 -1
  56. package/dist/canvas/utils/createPreviewGraph.js +13 -8
  57. package/dist/canvas/utils/manifest-resolver.cjs +2 -1
  58. package/dist/canvas/utils/manifest-resolver.d.ts.map +1 -1
  59. package/dist/canvas/utils/manifest-resolver.js +2 -1
  60. package/dist/canvas/utils/toolbar-resolver.cjs +31 -4
  61. package/dist/canvas/utils/toolbar-resolver.d.ts.map +1 -1
  62. package/dist/canvas/utils/toolbar-resolver.js +31 -4
  63. package/package.json +1 -1
@@ -100,14 +100,14 @@ function createPreviewGraph(options) {
100
100
  edges
101
101
  };
102
102
  }
103
- function showPreviewGraph(options) {
103
+ function showPreviewGraph(options, applicationOptions = {}) {
104
104
  const preview = createPreviewGraph(options);
105
- if (preview) applyPreviewGraphToReactFlow(preview, options.reactFlowInstance);
105
+ if (preview) applyPreviewGraphToReactFlow(preview, options.reactFlowInstance, applicationOptions);
106
106
  return preview;
107
107
  }
108
- function applyPreviewGraphToReactFlow(preview, reactFlowInstance) {
108
+ function applyPreviewGraphToReactFlow(preview, reactFlowInstance, { canApply } = {}) {
109
109
  const originalEdge = preview.node.data?.originalEdge;
110
- setTimeout(()=>{
110
+ const applyNodes = ()=>{
111
111
  reactFlowInstance.setNodes((nodes)=>[
112
112
  ...nodes.filter((node)=>node.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID).map((node)=>({
113
113
  ...node,
@@ -115,10 +115,15 @@ function applyPreviewGraphToReactFlow(preview, reactFlowInstance) {
115
115
  })),
116
116
  preview.node
117
117
  ]);
118
- reactFlowInstance.setEdges((edges)=>[
119
- ...edges.filter((edge)=>!(0, external_createPreviewNode_cjs_namespaceObject.isPreviewEdge)(edge) && edge.id !== originalEdge?.id),
120
- ...preview.edges
121
- ]);
118
+ };
119
+ const applyEdges = (edges)=>[
120
+ ...edges.filter((edge)=>!(0, external_createPreviewNode_cjs_namespaceObject.isPreviewEdge)(edge) && edge.id !== originalEdge?.id),
121
+ ...preview.edges
122
+ ];
123
+ setTimeout(()=>{
124
+ if (canApply?.(reactFlowInstance.getEdges()) === false) return;
125
+ applyNodes();
126
+ reactFlowInstance.setEdges(applyEdges);
122
127
  }, 0);
123
128
  }
124
129
  exports.applyPreviewGraphToReactFlow = __webpack_exports__.applyPreviewGraphToReactFlow;
@@ -6,6 +6,9 @@ export interface PreviewGraph {
6
6
  node: Node;
7
7
  edges: Edge[];
8
8
  }
9
+ export interface PreviewApplicationOptions {
10
+ canApply?: (edges: Edge[]) => boolean;
11
+ }
9
12
  export interface PreviewEndpoint {
10
13
  nodeId: string;
11
14
  handleId?: string | null;
@@ -35,6 +38,6 @@ export interface CreatePreviewGraphOptions {
35
38
  export type PreviewGraphOverrides = Partial<Pick<CreatePreviewGraphOptions, 'containerId' | 'data' | 'position' | 'positionMode' | 'target' | 'trailingEdgeId' | 'trailingEdgeStyle'>>;
36
39
  export declare function reparentPreviewNodeToContainer(previewNode: Node, containerId: string, reactFlowInstance: ReactFlowInstance): Node | null;
37
40
  export declare function createPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
38
- export declare function showPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
39
- export declare function applyPreviewGraphToReactFlow(preview: PreviewGraph, reactFlowInstance: ReactFlowInstance): void;
41
+ export declare function showPreviewGraph(options: CreatePreviewGraphOptions, applicationOptions?: PreviewApplicationOptions): PreviewGraph | null;
42
+ export declare function applyPreviewGraphToReactFlow(preview: PreviewGraph, reactFlowInstance: ReactFlowInstance, { canApply }?: PreviewApplicationOptions): void;
40
43
  //# sourceMappingURL=createPreviewGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPreviewGraph.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/createPreviewGraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,iBAAiB,EAClB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAuB,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG/E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAMD,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACvC,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAOlC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CACzC,IAAI,CACF,yBAAyB,EACvB,aAAa,GACb,MAAM,GACN,UAAU,GACV,cAAc,GACd,QAAQ,GACR,gBAAgB,GAChB,mBAAmB,CACtB,CACF,CAAC;AAgCF,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,IAAI,EACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,GAAG,IAAI,CAkBb;AAwDD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,GAAG,IAAI,CAqB1F;AAOD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,GAAG,IAAI,CAMxF;AAOD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,CAgBN"}
1
+ {"version":3,"file":"createPreviewGraph.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/createPreviewGraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,iBAAiB,EAClB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAuB,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG/E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IAKxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC;CACvC;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAMD,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACvC,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAOlC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CACzC,IAAI,CACF,yBAAyB,EACvB,aAAa,GACb,MAAM,GACN,UAAU,GACV,cAAc,GACd,QAAQ,GACR,gBAAgB,GAChB,mBAAmB,CACtB,CACF,CAAC;AAgCF,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,IAAI,EACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,GAAG,IAAI,CAkBb;AAwDD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,GAAG,IAAI,CAqB1F;AAOD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,yBAAyB,EAClC,kBAAkB,GAAE,yBAA8B,GACjD,YAAY,GAAG,IAAI,CAMrB;AAOD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,EAAE,QAAQ,EAAE,GAAE,yBAA8B,GAC3C,IAAI,CAuBN"}
@@ -69,14 +69,14 @@ function createPreviewGraph(options) {
69
69
  edges
70
70
  };
71
71
  }
72
- function showPreviewGraph(options) {
72
+ function showPreviewGraph(options, applicationOptions = {}) {
73
73
  const preview = createPreviewGraph(options);
74
- if (preview) applyPreviewGraphToReactFlow(preview, options.reactFlowInstance);
74
+ if (preview) applyPreviewGraphToReactFlow(preview, options.reactFlowInstance, applicationOptions);
75
75
  return preview;
76
76
  }
77
- function applyPreviewGraphToReactFlow(preview, reactFlowInstance) {
77
+ function applyPreviewGraphToReactFlow(preview, reactFlowInstance, { canApply } = {}) {
78
78
  const originalEdge = preview.node.data?.originalEdge;
79
- setTimeout(()=>{
79
+ const applyNodes = ()=>{
80
80
  reactFlowInstance.setNodes((nodes)=>[
81
81
  ...nodes.filter((node)=>node.id !== PREVIEW_NODE_ID).map((node)=>({
82
82
  ...node,
@@ -84,10 +84,15 @@ function applyPreviewGraphToReactFlow(preview, reactFlowInstance) {
84
84
  })),
85
85
  preview.node
86
86
  ]);
87
- reactFlowInstance.setEdges((edges)=>[
88
- ...edges.filter((edge)=>!isPreviewEdge(edge) && edge.id !== originalEdge?.id),
89
- ...preview.edges
90
- ]);
87
+ };
88
+ const applyEdges = (edges)=>[
89
+ ...edges.filter((edge)=>!isPreviewEdge(edge) && edge.id !== originalEdge?.id),
90
+ ...preview.edges
91
+ ];
92
+ setTimeout(()=>{
93
+ if (canApply?.(reactFlowInstance.getEdges()) === false) return;
94
+ applyNodes();
95
+ reactFlowInstance.setEdges(applyEdges);
91
96
  }, 0);
92
97
  }
93
98
  export { applyPreviewGraphToReactFlow, createPreviewGraph, reparentPreviewNodeToContainer, showPreviewGraph };
@@ -64,10 +64,11 @@ function replaceTemplateVars(template, vars) {
64
64
  function resolveHandles(handleGroups, context) {
65
65
  const isCollapsed = context?.isCollapsed ?? false;
66
66
  return handleGroups.map((group)=>{
67
+ const hidesGroup = isCollapsed && 'inner' === group.boundary;
67
68
  const handles = group.handles.flatMap((handle)=>{
68
69
  const isArtifactHandle = 'artifact' === handle.handleType;
69
70
  const handleBaseVisible = resolveVisibility(handle.visible, context);
70
- const handleVisible = isCollapsed && isArtifactHandle ? false : handleBaseVisible;
71
+ const handleVisible = hidesGroup || isCollapsed && isArtifactHandle ? false : handleBaseVisible;
71
72
  if (handle.repeat) {
72
73
  const array = getPropertyByPath(context, handle.repeat);
73
74
  if (!Array.isArray(array)) {
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-resolver.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/manifest-resolver.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACnG,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKrE,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEhE,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAUD,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5C,CAAC;AAKF,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IAE7F,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAE9C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEjD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAClD;AAKD,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC;IAE/E,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAKD,UAAU,YAAY;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkBD,wBAAgB,cAAc,CAC5B,eAAe,CAAC,EAAE,mBAAmB,EACrC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,eAAe,CAwCjB;AA6BD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,EACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAmBT;AAiCD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAKhF;AAuCD,wBAAgB,cAAc,CAC5B,YAAY,EAAE,mBAAmB,EAAE,EACnC,OAAO,EAAE,iBAAiB,GACzB,mBAAmB,EAAE,CAmEvB"}
1
+ {"version":3,"file":"manifest-resolver.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/manifest-resolver.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACnG,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKrE,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEhE,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAUD,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5C,CAAC;AAKF,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IAE7F,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAE9C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEjD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAClD;AAKD,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC;IAE/E,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAKD,UAAU,YAAY;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkBD,wBAAgB,cAAc,CAC5B,eAAe,CAAC,EAAE,mBAAmB,EACrC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,eAAe,CAwCjB;AA6BD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,EACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAmBT;AAiCD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAKhF;AAuCD,wBAAgB,cAAc,CAC5B,YAAY,EAAE,mBAAmB,EAAE,EACnC,OAAO,EAAE,iBAAiB,GACzB,mBAAmB,EAAE,CAsEvB"}
@@ -33,10 +33,11 @@ function replaceTemplateVars(template, vars) {
33
33
  function resolveHandles(handleGroups, context) {
34
34
  const isCollapsed = context?.isCollapsed ?? false;
35
35
  return handleGroups.map((group)=>{
36
+ const hidesGroup = isCollapsed && 'inner' === group.boundary;
36
37
  const handles = group.handles.flatMap((handle)=>{
37
38
  const isArtifactHandle = 'artifact' === handle.handleType;
38
39
  const handleBaseVisible = resolveVisibility(handle.visible, context);
39
- const handleVisible = isCollapsed && isArtifactHandle ? false : handleBaseVisible;
40
+ const handleVisible = hidesGroup || isCollapsed && isArtifactHandle ? false : handleBaseVisible;
40
41
  if (handle.repeat) {
41
42
  const array = getPropertyByPath(context, handle.repeat);
42
43
  if (!Array.isArray(array)) {
@@ -42,6 +42,16 @@ const DEFAULT_ACTIONS_FOR_ALL_MODES = [
42
42
  }
43
43
  ]
44
44
  }
45
+ },
46
+ {
47
+ id: 'collapse',
48
+ icon: 'chevrons-down-up',
49
+ label: 'Toggle collapse',
50
+ condition: {
51
+ shapes: [
52
+ 'container'
53
+ ]
54
+ }
45
55
  }
46
56
  ];
47
57
  const DEFAULT_MODE_TOOLBARS = {
@@ -95,6 +105,10 @@ function evaluateCondition(manifest, action, nodeType, context) {
95
105
  }
96
106
  if (condition.hideOnExecution && context.executionState) return false;
97
107
  if (condition.nodeTypes && !condition.nodeTypes.includes(nodeType)) return false;
108
+ if (condition.shapes?.length) {
109
+ const shape = manifest.display?.shape;
110
+ if (!shape || !condition.shapes.includes(shape)) return false;
111
+ }
98
112
  if (condition.handles?.length) {
99
113
  const manifestHandles = manifest.handleConfiguration.flatMap((group)=>group.handles);
100
114
  const hasMatchingHandle = condition.handles.some((requiredHandle)=>manifestHandles.some((manifestHandle)=>manifestHandle.handleType === requiredHandle.handleType && (void 0 === requiredHandle.type || manifestHandle.type === requiredHandle.type)));
@@ -122,19 +136,31 @@ function convertToNodeAction(action, mode, nodeData) {
122
136
  }
123
137
  };
124
138
  }
139
+ function dedupeById(actions) {
140
+ const byId = new Map();
141
+ for (const action of actions)byId.set(action.id, action);
142
+ return [
143
+ ...byId.values()
144
+ ];
145
+ }
125
146
  function mergeToolbarConfigs(base, extension) {
126
147
  if (!base && !extension) return {
127
148
  actions: []
128
149
  };
129
150
  if (!base) return extension;
130
151
  if (!extension) return base;
152
+ const extensionIds = new Set([
153
+ ...extension.actions,
154
+ ...extension.overflowActions ?? []
155
+ ].map((action)=>action.id));
156
+ const notOverridden = (action)=>!extensionIds.has(action.id);
131
157
  return {
132
158
  actions: [
133
- ...base.actions,
159
+ ...base.actions.filter(notOverridden),
134
160
  ...extension.actions
135
161
  ],
136
162
  overflowActions: [
137
- ...base.overflowActions ?? [],
163
+ ...(base.overflowActions ?? []).filter(notOverridden),
138
164
  ...extension.overflowActions ?? []
139
165
  ]
140
166
  };
@@ -150,8 +176,9 @@ function resolveToolbar(manifest, context, nodeData) {
150
176
  } : rawDefaults;
151
177
  const nodeExtensions = manifestToolbarExtensions?.[mode];
152
178
  const merged = mergeToolbarConfigs(modeDefaults, nodeExtensions);
153
- const filteredActions = merged.actions.filter((action)=>evaluateCondition(manifest, action, nodeType, context)).map((action)=>convertToNodeAction(action, mode, nodeData));
154
- const filteredOverflow = (merged.overflowActions ?? []).filter((action)=>evaluateCondition(manifest, action, nodeType, context)).map((action)=>convertToNodeAction(action, mode, nodeData));
179
+ const resolveActions = (actions)=>dedupeById(actions.filter((action)=>evaluateCondition(manifest, action, nodeType, context))).map((action)=>convertToNodeAction(action, mode, nodeData));
180
+ const filteredActions = resolveActions(merged.actions);
181
+ const filteredOverflow = resolveActions(merged.overflowActions ?? []);
155
182
  if (0 === filteredActions.length && 0 === filteredOverflow.length) return;
156
183
  return {
157
184
  actions: filteredActions,
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-resolver.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/toolbar-resolver.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAKrC,UAAU,mBAAoB,SAAQ,iBAAiB;IAErD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AA0ID,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,iBAAiB,GAAG,SAAS,CA8C/B"}
1
+ {"version":3,"file":"toolbar-resolver.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/toolbar-resolver.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAKrC,UAAU,mBAAoB,SAAQ,iBAAiB;IAErD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAsKD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,iBAAiB,GAAG,SAAS,CA8C/B"}
@@ -14,6 +14,16 @@ const DEFAULT_ACTIONS_FOR_ALL_MODES = [
14
14
  }
15
15
  ]
16
16
  }
17
+ },
18
+ {
19
+ id: 'collapse',
20
+ icon: 'chevrons-down-up',
21
+ label: 'Toggle collapse',
22
+ condition: {
23
+ shapes: [
24
+ 'container'
25
+ ]
26
+ }
17
27
  }
18
28
  ];
19
29
  const DEFAULT_MODE_TOOLBARS = {
@@ -67,6 +77,10 @@ function evaluateCondition(manifest, action, nodeType, context) {
67
77
  }
68
78
  if (condition.hideOnExecution && context.executionState) return false;
69
79
  if (condition.nodeTypes && !condition.nodeTypes.includes(nodeType)) return false;
80
+ if (condition.shapes?.length) {
81
+ const shape = manifest.display?.shape;
82
+ if (!shape || !condition.shapes.includes(shape)) return false;
83
+ }
70
84
  if (condition.handles?.length) {
71
85
  const manifestHandles = manifest.handleConfiguration.flatMap((group)=>group.handles);
72
86
  const hasMatchingHandle = condition.handles.some((requiredHandle)=>manifestHandles.some((manifestHandle)=>manifestHandle.handleType === requiredHandle.handleType && (void 0 === requiredHandle.type || manifestHandle.type === requiredHandle.type)));
@@ -94,19 +108,31 @@ function convertToNodeAction(action, mode, nodeData) {
94
108
  }
95
109
  };
96
110
  }
111
+ function dedupeById(actions) {
112
+ const byId = new Map();
113
+ for (const action of actions)byId.set(action.id, action);
114
+ return [
115
+ ...byId.values()
116
+ ];
117
+ }
97
118
  function mergeToolbarConfigs(base, extension) {
98
119
  if (!base && !extension) return {
99
120
  actions: []
100
121
  };
101
122
  if (!base) return extension;
102
123
  if (!extension) return base;
124
+ const extensionIds = new Set([
125
+ ...extension.actions,
126
+ ...extension.overflowActions ?? []
127
+ ].map((action)=>action.id));
128
+ const notOverridden = (action)=>!extensionIds.has(action.id);
103
129
  return {
104
130
  actions: [
105
- ...base.actions,
131
+ ...base.actions.filter(notOverridden),
106
132
  ...extension.actions
107
133
  ],
108
134
  overflowActions: [
109
- ...base.overflowActions ?? [],
135
+ ...(base.overflowActions ?? []).filter(notOverridden),
110
136
  ...extension.overflowActions ?? []
111
137
  ]
112
138
  };
@@ -122,8 +148,9 @@ function resolveToolbar(manifest, context, nodeData) {
122
148
  } : rawDefaults;
123
149
  const nodeExtensions = manifestToolbarExtensions?.[mode];
124
150
  const merged = mergeToolbarConfigs(modeDefaults, nodeExtensions);
125
- const filteredActions = merged.actions.filter((action)=>evaluateCondition(manifest, action, nodeType, context)).map((action)=>convertToNodeAction(action, mode, nodeData));
126
- const filteredOverflow = (merged.overflowActions ?? []).filter((action)=>evaluateCondition(manifest, action, nodeType, context)).map((action)=>convertToNodeAction(action, mode, nodeData));
151
+ const resolveActions = (actions)=>dedupeById(actions.filter((action)=>evaluateCondition(manifest, action, nodeType, context))).map((action)=>convertToNodeAction(action, mode, nodeData));
152
+ const filteredActions = resolveActions(merged.actions);
153
+ const filteredOverflow = resolveActions(merged.overflowActions ?? []);
127
154
  if (0 === filteredActions.length && 0 === filteredOverflow.length) return;
128
155
  return {
129
156
  actions: filteredActions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/apollo-react",
3
- "version": "6.27.0",
3
+ "version": "6.29.0",
4
4
  "description": "Apollo Design System - React component library with Material UI theming",
5
5
  "repository": {
6
6
  "type": "git",