@uipath/apollo-react 6.24.0 → 6.26.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 (46) hide show
  1. package/dist/canvas/components/BaseCanvas/BaseCanvas.cjs +18 -2
  2. package/dist/canvas/components/BaseCanvas/BaseCanvas.d.ts.map +1 -1
  3. package/dist/canvas/components/BaseCanvas/BaseCanvas.hooks.cjs +33 -1
  4. package/dist/canvas/components/BaseCanvas/BaseCanvas.hooks.d.ts +2 -1
  5. package/dist/canvas/components/BaseCanvas/BaseCanvas.hooks.d.ts.map +1 -1
  6. package/dist/canvas/components/BaseCanvas/BaseCanvas.hooks.js +31 -2
  7. package/dist/canvas/components/BaseCanvas/BaseCanvas.js +19 -3
  8. package/dist/canvas/components/BaseCanvas/BaseCanvas.types.d.ts +1 -0
  9. package/dist/canvas/components/BaseCanvas/BaseCanvas.types.d.ts.map +1 -1
  10. package/dist/canvas/components/BaseCanvas/CanvasProviders.cjs +10 -6
  11. package/dist/canvas/components/BaseCanvas/CanvasProviders.d.ts +2 -1
  12. package/dist/canvas/components/BaseCanvas/CanvasProviders.d.ts.map +1 -1
  13. package/dist/canvas/components/BaseCanvas/CanvasProviders.js +10 -6
  14. package/dist/canvas/components/BaseCanvas/ConnectedHandlesContext.cjs +4 -11
  15. package/dist/canvas/components/BaseCanvas/ConnectedHandlesContext.d.ts.map +1 -1
  16. package/dist/canvas/components/BaseCanvas/ConnectedHandlesContext.js +1 -8
  17. package/dist/canvas/components/BaseCanvas/ReadOnlyNodesContext.cjs +111 -0
  18. package/dist/canvas/components/BaseCanvas/ReadOnlyNodesContext.d.ts +7 -0
  19. package/dist/canvas/components/BaseCanvas/ReadOnlyNodesContext.d.ts.map +1 -0
  20. package/dist/canvas/components/BaseCanvas/ReadOnlyNodesContext.js +71 -0
  21. package/dist/canvas/components/BaseCanvas/index.cjs +72 -19
  22. package/dist/canvas/components/BaseCanvas/index.d.ts +2 -1
  23. package/dist/canvas/components/BaseCanvas/index.d.ts.map +1 -1
  24. package/dist/canvas/components/BaseCanvas/index.js +3 -2
  25. package/dist/canvas/components/BaseCanvas/set-utils.cjs +46 -0
  26. package/dist/canvas/components/BaseCanvas/set-utils.d.ts +3 -0
  27. package/dist/canvas/components/BaseCanvas/set-utils.d.ts.map +1 -0
  28. package/dist/canvas/components/BaseCanvas/set-utils.js +9 -0
  29. package/dist/canvas/components/BaseNode/BaseNode.cjs +32 -10
  30. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  31. package/dist/canvas/components/BaseNode/BaseNode.js +32 -10
  32. package/dist/canvas/components/BaseNode/NodeLabel.cjs +17 -11
  33. package/dist/canvas/components/BaseNode/NodeLabel.d.ts +2 -1
  34. package/dist/canvas/components/BaseNode/NodeLabel.d.ts.map +1 -1
  35. package/dist/canvas/components/BaseNode/NodeLabel.js +17 -11
  36. package/dist/canvas/components/Toolbar/shared/ToolbarButton.cjs +28 -23
  37. package/dist/canvas/components/Toolbar/shared/ToolbarButton.d.ts.map +1 -1
  38. package/dist/canvas/components/Toolbar/shared/ToolbarButton.js +28 -23
  39. package/dist/canvas/hooks/useIsomorphicLayoutEffect.cjs +37 -0
  40. package/dist/canvas/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  41. package/dist/canvas/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
  42. package/dist/canvas/hooks/useIsomorphicLayoutEffect.js +3 -0
  43. package/dist/canvas/hooks/useLatestRef.cjs +2 -2
  44. package/dist/canvas/hooks/useLatestRef.d.ts.map +1 -1
  45. package/dist/canvas/hooks/useLatestRef.js +2 -2
  46. package/package.json +3 -3
@@ -27,6 +27,9 @@ var __webpack_modules__ = {
27
27
  "./ConnectedHandlesContext" (module) {
28
28
  module.exports = require("./ConnectedHandlesContext.cjs");
29
29
  },
30
+ "./ReadOnlyNodesContext" (module) {
31
+ module.exports = require("./ReadOnlyNodesContext.cjs");
32
+ },
30
33
  "./SelectionStateContext" (module) {
31
34
  module.exports = require("./SelectionStateContext.cjs");
32
35
  }
@@ -75,76 +78,126 @@ var __webpack_exports__ = {};
75
78
  (()=>{
76
79
  __webpack_require__.r(__webpack_exports__);
77
80
  __webpack_require__.d(__webpack_exports__, {
78
- BaseCanvas: ()=>_BaseCanvas__rspack_import_0.BaseCanvas
81
+ BaseCanvas: ()=>_BaseCanvas__rspack_import_0.BaseCanvas,
82
+ useAutoLayout: ()=>_BaseCanvas_hooks__rspack_import_2.useAutoLayout,
83
+ useEnsureNodesInView: ()=>_BaseCanvas_hooks__rspack_import_2.useEnsureNodesInView,
84
+ useFitView: ()=>_BaseCanvas_hooks__rspack_import_2.useFitView,
85
+ useIsNodeReadOnly: ()=>_ReadOnlyNodesContext__rspack_import_9.useIsNodeReadOnly,
86
+ useMaintainNodesInView: ()=>_BaseCanvas_hooks__rspack_import_2.useMaintainNodesInView
79
87
  });
80
88
  var _BaseCanvas__rspack_import_0 = __webpack_require__("./BaseCanvas?388c");
81
89
  var _BaseCanvas_constants__rspack_import_1 = __webpack_require__("./BaseCanvas.constants");
82
90
  var __rspack_reexport = {};
83
91
  for(const __rspack_import_key in _BaseCanvas_constants__rspack_import_1)if ([
92
+ "useAutoLayout",
93
+ "useMaintainNodesInView",
94
+ "useEnsureNodesInView",
95
+ "default",
96
+ "useIsNodeReadOnly",
84
97
  "BaseCanvas",
85
- "default"
98
+ "useFitView"
86
99
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_BaseCanvas_constants__rspack_import_1[__rspack_import_key];
87
100
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
88
101
  var _BaseCanvas_hooks__rspack_import_2 = __webpack_require__("./BaseCanvas.hooks");
89
- var __rspack_reexport = {};
90
- for(const __rspack_import_key in _BaseCanvas_hooks__rspack_import_2)if ([
91
- "BaseCanvas",
92
- "default"
93
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_BaseCanvas_hooks__rspack_import_2[__rspack_import_key];
94
- __webpack_require__.d(__webpack_exports__, __rspack_reexport);
95
102
  var _BaseCanvas_types__rspack_import_3 = __webpack_require__("./BaseCanvas.types");
96
103
  var __rspack_reexport = {};
97
104
  for(const __rspack_import_key in _BaseCanvas_types__rspack_import_3)if ([
105
+ "useAutoLayout",
106
+ "useMaintainNodesInView",
107
+ "useEnsureNodesInView",
108
+ "default",
109
+ "useIsNodeReadOnly",
98
110
  "BaseCanvas",
99
- "default"
111
+ "useFitView"
100
112
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_BaseCanvas_types__rspack_import_3[__rspack_import_key];
101
113
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
102
114
  var _BaseCanvasModeProvider__rspack_import_4 = __webpack_require__("./BaseCanvasModeProvider");
103
115
  var __rspack_reexport = {};
104
116
  for(const __rspack_import_key in _BaseCanvasModeProvider__rspack_import_4)if ([
117
+ "useAutoLayout",
118
+ "useMaintainNodesInView",
119
+ "useEnsureNodesInView",
120
+ "default",
121
+ "useIsNodeReadOnly",
105
122
  "BaseCanvas",
106
- "default"
123
+ "useFitView"
107
124
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_BaseCanvasModeProvider__rspack_import_4[__rspack_import_key];
108
125
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
109
126
  var _CanvasBackground__rspack_import_5 = __webpack_require__("./CanvasBackground");
110
127
  var __rspack_reexport = {};
111
128
  for(const __rspack_import_key in _CanvasBackground__rspack_import_5)if ([
129
+ "useAutoLayout",
130
+ "useMaintainNodesInView",
131
+ "useEnsureNodesInView",
132
+ "default",
133
+ "useIsNodeReadOnly",
112
134
  "BaseCanvas",
113
- "default"
135
+ "useFitView"
114
136
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_CanvasBackground__rspack_import_5[__rspack_import_key];
115
137
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
116
138
  var _CanvasProviders__rspack_import_6 = __webpack_require__("./CanvasProviders");
117
139
  var __rspack_reexport = {};
118
140
  for(const __rspack_import_key in _CanvasProviders__rspack_import_6)if ([
141
+ "useAutoLayout",
142
+ "useMaintainNodesInView",
143
+ "useEnsureNodesInView",
144
+ "default",
145
+ "useIsNodeReadOnly",
119
146
  "BaseCanvas",
120
- "default"
147
+ "useFitView"
121
148
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_CanvasProviders__rspack_import_6[__rspack_import_key];
122
149
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
123
150
  var _CanvasThemeContext__rspack_import_7 = __webpack_require__("./CanvasThemeContext");
124
151
  var __rspack_reexport = {};
125
152
  for(const __rspack_import_key in _CanvasThemeContext__rspack_import_7)if ([
153
+ "useAutoLayout",
154
+ "useMaintainNodesInView",
155
+ "useEnsureNodesInView",
156
+ "default",
157
+ "useIsNodeReadOnly",
126
158
  "BaseCanvas",
127
- "default"
159
+ "useFitView"
128
160
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_CanvasThemeContext__rspack_import_7[__rspack_import_key];
129
161
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
130
162
  var _ConnectedHandlesContext__rspack_import_8 = __webpack_require__("./ConnectedHandlesContext");
131
163
  var __rspack_reexport = {};
132
164
  for(const __rspack_import_key in _ConnectedHandlesContext__rspack_import_8)if ([
165
+ "useAutoLayout",
166
+ "useMaintainNodesInView",
167
+ "useEnsureNodesInView",
168
+ "default",
169
+ "useIsNodeReadOnly",
133
170
  "BaseCanvas",
134
- "default"
171
+ "useFitView"
135
172
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_ConnectedHandlesContext__rspack_import_8[__rspack_import_key];
136
173
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
137
- var _SelectionStateContext__rspack_import_9 = __webpack_require__("./SelectionStateContext");
174
+ var _ReadOnlyNodesContext__rspack_import_9 = __webpack_require__("./ReadOnlyNodesContext");
175
+ var _SelectionStateContext__rspack_import_10 = __webpack_require__("./SelectionStateContext");
138
176
  var __rspack_reexport = {};
139
- for(const __rspack_import_key in _SelectionStateContext__rspack_import_9)if ([
177
+ for(const __rspack_import_key in _SelectionStateContext__rspack_import_10)if ([
178
+ "useAutoLayout",
179
+ "useMaintainNodesInView",
180
+ "useEnsureNodesInView",
181
+ "default",
182
+ "useIsNodeReadOnly",
140
183
  "BaseCanvas",
141
- "default"
142
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_SelectionStateContext__rspack_import_9[__rspack_import_key];
184
+ "useFitView"
185
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_SelectionStateContext__rspack_import_10[__rspack_import_key];
143
186
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
144
187
  })();
145
188
  exports.BaseCanvas = __webpack_exports__.BaseCanvas;
189
+ exports.useAutoLayout = __webpack_exports__.useAutoLayout;
190
+ exports.useEnsureNodesInView = __webpack_exports__.useEnsureNodesInView;
191
+ exports.useFitView = __webpack_exports__.useFitView;
192
+ exports.useIsNodeReadOnly = __webpack_exports__.useIsNodeReadOnly;
193
+ exports.useMaintainNodesInView = __webpack_exports__.useMaintainNodesInView;
146
194
  for(var __rspack_i in __webpack_exports__)if (-1 === [
147
- "BaseCanvas"
195
+ "BaseCanvas",
196
+ "useAutoLayout",
197
+ "useEnsureNodesInView",
198
+ "useFitView",
199
+ "useIsNodeReadOnly",
200
+ "useMaintainNodesInView"
148
201
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
149
202
  Object.defineProperty(exports, '__esModule', {
150
203
  value: true
@@ -1,11 +1,12 @@
1
1
  export { BaseCanvas } from './BaseCanvas';
2
2
  export * from './BaseCanvas.constants';
3
- export * from './BaseCanvas.hooks';
3
+ export { useAutoLayout, useEnsureNodesInView, useFitView, useMaintainNodesInView, } from './BaseCanvas.hooks';
4
4
  export * from './BaseCanvas.types';
5
5
  export * from './BaseCanvasModeProvider';
6
6
  export * from './CanvasBackground';
7
7
  export * from './CanvasProviders';
8
8
  export * from './CanvasThemeContext';
9
9
  export * from './ConnectedHandlesContext';
10
+ export { useIsNodeReadOnly } from './ReadOnlyNodesContext';
10
11
  export * from './SelectionStateContext';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseCanvas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseCanvas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,yBAAyB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { BaseCanvas } from "./BaseCanvas.js";
2
+ import { useAutoLayout, useEnsureNodesInView, useFitView, useMaintainNodesInView } from "./BaseCanvas.hooks.js";
3
+ import { useIsNodeReadOnly } from "./ReadOnlyNodesContext.js";
2
4
  export * from "./BaseCanvas.constants.js";
3
- export * from "./BaseCanvas.hooks.js";
4
5
  export * from "./BaseCanvas.types.js";
5
6
  export * from "./BaseCanvasModeProvider.js";
6
7
  export * from "./CanvasBackground.js";
@@ -8,4 +9,4 @@ export * from "./CanvasProviders.js";
8
9
  export * from "./CanvasThemeContext.js";
9
10
  export * from "./ConnectedHandlesContext.js";
10
11
  export * from "./SelectionStateContext.js";
11
- export { BaseCanvas };
12
+ export { BaseCanvas, useAutoLayout, useEnsureNodesInView, useFitView, useIsNodeReadOnly, useMaintainNodesInView };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ EMPTY_SET: ()=>EMPTY_SET,
28
+ setsEqual: ()=>setsEqual
29
+ });
30
+ const EMPTY_SET = new Set();
31
+ function setsEqual(a, b) {
32
+ if (a === b) return true;
33
+ if (!a || !b) return false;
34
+ if (a.size !== b.size) return false;
35
+ for (const value of a)if (!b.has(value)) return false;
36
+ return true;
37
+ }
38
+ exports.EMPTY_SET = __webpack_exports__.EMPTY_SET;
39
+ exports.setsEqual = __webpack_exports__.setsEqual;
40
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
41
+ "EMPTY_SET",
42
+ "setsEqual"
43
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
44
+ Object.defineProperty(exports, '__esModule', {
45
+ value: true
46
+ });
@@ -0,0 +1,3 @@
1
+ export declare const EMPTY_SET: ReadonlySet<string>;
2
+ export declare function setsEqual(a?: ReadonlySet<string>, b?: ReadonlySet<string>): boolean;
3
+ //# sourceMappingURL=set-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-utils.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseCanvas/set-utils.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,MAAM,CAAqB,CAAC;AAGhE,wBAAgB,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAUnF"}
@@ -0,0 +1,9 @@
1
+ const EMPTY_SET = new Set();
2
+ function setsEqual(a, b) {
3
+ if (a === b) return true;
4
+ if (!a || !b) return false;
5
+ if (a.size !== b.size) return false;
6
+ for (const value of a)if (!b.has(value)) return false;
7
+ return true;
8
+ }
9
+ export { EMPTY_SET, setsEqual };
@@ -41,6 +41,7 @@ const toolbar_resolver_cjs_namespaceObject = require("../../utils/toolbar-resolv
41
41
  const BaseCanvasModeProvider_cjs_namespaceObject = require("../BaseCanvas/BaseCanvasModeProvider.cjs");
42
42
  const CanvasThemeContext_cjs_namespaceObject = require("../BaseCanvas/CanvasThemeContext.cjs");
43
43
  const ConnectedHandlesContext_cjs_namespaceObject = require("../BaseCanvas/ConnectedHandlesContext.cjs");
44
+ const ReadOnlyNodesContext_cjs_namespaceObject = require("../BaseCanvas/ReadOnlyNodesContext.cjs");
44
45
  const SelectionStateContext_cjs_namespaceObject = require("../BaseCanvas/SelectionStateContext.cjs");
45
46
  const SmartHandle_cjs_namespaceObject = require("../ButtonHandle/SmartHandle.cjs");
46
47
  const useButtonHandles_cjs_namespaceObject = require("../ButtonHandle/useButtonHandles.cjs");
@@ -52,6 +53,11 @@ const external_BaseNodeContainer_cjs_namespaceObject = require("./BaseNodeContai
52
53
  const external_BaseNodeInnerShape_cjs_namespaceObject = require("./BaseNodeInnerShape.cjs");
53
54
  const external_BaseNodeMissingManifest_cjs_namespaceObject = require("./BaseNodeMissingManifest.cjs");
54
55
  const external_NodeLabel_cjs_namespaceObject = require("./NodeLabel.cjs");
56
+ const NEVER_SHOW_ADD_BUTTON = ()=>false;
57
+ const disableToolbarActions = (actions)=>actions.map((action)=>'separator' === action.id ? action : {
58
+ ...action,
59
+ disabled: true
60
+ });
55
61
  const getContainerWidth = (shape, width)=>{
56
62
  const defaultWidth = 'rectangle' === shape ? external_constants_cjs_namespaceObject.DEFAULT_RECTANGLE_NODE_WIDTH : external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE;
57
63
  if (width && width !== external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE && width !== external_constants_cjs_namespaceObject.DEFAULT_RECTANGLE_NODE_WIDTH) return width;
@@ -80,6 +86,8 @@ const BaseNodeComponent = (props)=>{
80
86
  const validationState = (0, external_hooks_index_cjs_namespaceObject.useElementValidationStatus)(id);
81
87
  const nodeTypeRegistry = (0, index_cjs_namespaceObject.useNodeTypeRegistry)();
82
88
  const { mode } = (0, BaseCanvasModeProvider_cjs_namespaceObject.useBaseCanvasMode)();
89
+ const isNodeReadOnly = (0, ReadOnlyNodesContext_cjs_namespaceObject.useIsNodeReadOnly)(id);
90
+ const canEdit = 'design' === mode && !isNodeReadOnly;
83
91
  const connectedHandleIds = (0, ConnectedHandlesContext_cjs_namespaceObject.useConnectedHandles)(id);
84
92
  const isConnecting = (0, react_cjs_namespaceObject.useStore)(NodeUtils_cjs_namespaceObject.selectIsConnecting);
85
93
  const { multipleNodesSelected } = (0, SelectionStateContext_cjs_namespaceObject.useSelectionState)();
@@ -107,7 +115,7 @@ const BaseNodeComponent = (props)=>{
107
115
  mode
108
116
  ]);
109
117
  const onHandleActionCallback = onHandleActionProp;
110
- const shouldShowAddButtonFn = shouldShowAddButtonFnProp;
118
+ const shouldShowAddButtonFn = isNodeReadOnly ? NEVER_SHOW_ADD_BUTTON : shouldShowAddButtonFnProp;
111
119
  const shouldShowButtonHandleNotchesFn = shouldShowButtonHandleNotchesFnProp;
112
120
  const executionStatus = executionStatusOverride ?? ('string' == typeof executionState ? executionState : executionState?.status);
113
121
  const display = (0, external_react_namespaceObject.useMemo)(()=>(0, manifest_resolver_cjs_namespaceObject.resolveDisplay)(manifest?.display, {
@@ -171,6 +179,19 @@ const BaseNodeComponent = (props)=>{
171
179
  manifest,
172
180
  statusContext
173
181
  ]);
182
+ const effectiveToolbarConfig = (0, external_react_namespaceObject.useMemo)(()=>{
183
+ if (!toolbarConfig || !isNodeReadOnly) return toolbarConfig;
184
+ return {
185
+ ...toolbarConfig,
186
+ actions: disableToolbarActions(toolbarConfig.actions),
187
+ ...toolbarConfig.overflowActions && {
188
+ overflowActions: disableToolbarActions(toolbarConfig.overflowActions)
189
+ }
190
+ };
191
+ }, [
192
+ toolbarConfig,
193
+ isNodeReadOnly
194
+ ]);
174
195
  const adornments = (0, external_react_namespaceObject.useMemo)(()=>{
175
196
  const adornmentsFromProps = adornmentsProp ?? {};
176
197
  const adornmentsFromResolver = (0, adornment_resolver_cjs_namespaceObject.resolveAdornments)(statusContext);
@@ -339,8 +360,8 @@ const BaseNodeComponent = (props)=>{
339
360
  if (multipleNodesSelected) return false;
340
361
  const { hasButton, hasLabel } = toolbarSideHandleAffordances;
341
362
  const isAddButtonShown = ()=>{
342
- if (useSmartHandles) return 'design' === mode && !!selected;
343
- const showAddButton = 'design' === mode && !isConnecting && !dragging;
363
+ if (useSmartHandles) return canEdit && !!selected;
364
+ const showAddButton = canEdit && !isConnecting && !dragging;
344
365
  if (shouldShowAddButtonFn) return shouldShowAddButtonFn({
345
366
  showAddButton,
346
367
  selected: !!selected
@@ -352,7 +373,7 @@ const BaseNodeComponent = (props)=>{
352
373
  return false;
353
374
  }, [
354
375
  toolbarSideHandleAffordances,
355
- mode,
376
+ canEdit,
356
377
  multipleNodesSelected,
357
378
  useSmartHandles,
358
379
  selected,
@@ -370,7 +391,7 @@ const BaseNodeComponent = (props)=>{
370
391
  nodeId: id,
371
392
  selected: selected ?? false,
372
393
  hovered: isHovered,
373
- showAddButton: 'design' === mode && !multipleNodesSelected && !isConnecting && !dragging,
394
+ showAddButton: canEdit && !multipleNodesSelected && !isConnecting && !dragging,
374
395
  showNotches,
375
396
  nodeWidth: containerWidth,
376
397
  nodeHeight: computedHeight,
@@ -388,7 +409,7 @@ const BaseNodeComponent = (props)=>{
388
409
  const handleVisualType = handle.handleType ?? ('source' === handle.type ? 'output' : 'input');
389
410
  const hasConnection = connectedHandleIds.has(handle.id);
390
411
  const isVisible = hasConnection || shouldShowHandles && configVisible;
391
- const shouldShowButton = 'design' === mode && selected && handle.showButton && !multipleNodesSelected;
412
+ const shouldShowButton = canEdit && selected && handle.showButton && !multipleNodesSelected;
392
413
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(SmartHandle_cjs_namespaceObject.SmartHandle, {
393
414
  type: handle.type,
394
415
  id: handle.id,
@@ -412,7 +433,7 @@ const BaseNodeComponent = (props)=>{
412
433
  shouldShowHandles,
413
434
  containerWidth,
414
435
  computedHeight,
415
- mode,
436
+ canEdit,
416
437
  selected,
417
438
  showNotches,
418
439
  handleAction,
@@ -493,7 +514,8 @@ const BaseNodeComponent = (props)=>{
493
514
  hasBottomHandles: hasVisibleBottomHandles,
494
515
  selected: selected,
495
516
  dragging: dragging,
496
- readonly: 'design' !== mode,
517
+ readonly: !canEdit,
518
+ discardDraftOnReadonly: isNodeReadOnly,
497
519
  onChange: handleLabelChange
498
520
  }),
499
521
  displayFooter && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
@@ -502,9 +524,9 @@ const BaseNodeComponent = (props)=>{
502
524
  })
503
525
  ]
504
526
  }),
505
- toolbarConfig && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_Toolbar_index_cjs_namespaceObject.NodeToolbar, {
527
+ effectiveToolbarConfig && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_Toolbar_index_cjs_namespaceObject.NodeToolbar, {
506
528
  nodeId: id,
507
- config: toolbarConfig,
529
+ config: effectiveToolbarConfig,
508
530
  expanded: selected || isHovered,
509
531
  hidden: dragging || multipleNodesSelected,
510
532
  offsetToolbar: offsetToolbar
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AA4ChF,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAkrB1B,eAAO,MAAM,QAAQ,8CAhpBa,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,6CAgpBmB,CAAC"}
1
+ {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AA8ChF,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAqtB1B,eAAO,MAAM,QAAQ,8CAzqBa,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,6CAyqBmB,CAAC"}
@@ -13,6 +13,7 @@ import { resolveToolbar } from "../../utils/toolbar-resolver.js";
13
13
  import { useBaseCanvasMode } from "../BaseCanvas/BaseCanvasModeProvider.js";
14
14
  import { useCanvasTheme } from "../BaseCanvas/CanvasThemeContext.js";
15
15
  import { useConnectedHandles } from "../BaseCanvas/ConnectedHandlesContext.js";
16
+ import { useIsNodeReadOnly } from "../BaseCanvas/ReadOnlyNodesContext.js";
16
17
  import { useSelectionState } from "../BaseCanvas/SelectionStateContext.js";
17
18
  import { SmartHandle, SmartHandleProvider } from "../ButtonHandle/SmartHandle.js";
18
19
  import { useButtonHandles } from "../ButtonHandle/useButtonHandles.js";
@@ -24,6 +25,11 @@ import { BaseContainer } from "./BaseNodeContainer.js";
24
25
  import { BaseInnerShape } from "./BaseNodeInnerShape.js";
25
26
  import { MissingManifestNode } from "./BaseNodeMissingManifest.js";
26
27
  import { NodeLabel } from "./NodeLabel.js";
28
+ const NEVER_SHOW_ADD_BUTTON = ()=>false;
29
+ const disableToolbarActions = (actions)=>actions.map((action)=>'separator' === action.id ? action : {
30
+ ...action,
31
+ disabled: true
32
+ });
27
33
  const getContainerWidth = (shape, width)=>{
28
34
  const defaultWidth = 'rectangle' === shape ? DEFAULT_RECTANGLE_NODE_WIDTH : DEFAULT_NODE_SIZE;
29
35
  if (width && width !== DEFAULT_NODE_SIZE && width !== DEFAULT_RECTANGLE_NODE_WIDTH) return width;
@@ -52,6 +58,8 @@ const BaseNodeComponent = (props)=>{
52
58
  const validationState = useElementValidationStatus(id);
53
59
  const nodeTypeRegistry = useNodeTypeRegistry();
54
60
  const { mode } = useBaseCanvasMode();
61
+ const isNodeReadOnly = useIsNodeReadOnly(id);
62
+ const canEdit = 'design' === mode && !isNodeReadOnly;
55
63
  const connectedHandleIds = useConnectedHandles(id);
56
64
  const isConnecting = useStore(selectIsConnecting);
57
65
  const { multipleNodesSelected } = useSelectionState();
@@ -79,7 +87,7 @@ const BaseNodeComponent = (props)=>{
79
87
  mode
80
88
  ]);
81
89
  const onHandleActionCallback = onHandleActionProp;
82
- const shouldShowAddButtonFn = shouldShowAddButtonFnProp;
90
+ const shouldShowAddButtonFn = isNodeReadOnly ? NEVER_SHOW_ADD_BUTTON : shouldShowAddButtonFnProp;
83
91
  const shouldShowButtonHandleNotchesFn = shouldShowButtonHandleNotchesFnProp;
84
92
  const executionStatus = executionStatusOverride ?? ('string' == typeof executionState ? executionState : executionState?.status);
85
93
  const display = useMemo(()=>resolveDisplay(manifest?.display, {
@@ -143,6 +151,19 @@ const BaseNodeComponent = (props)=>{
143
151
  manifest,
144
152
  statusContext
145
153
  ]);
154
+ const effectiveToolbarConfig = useMemo(()=>{
155
+ if (!toolbarConfig || !isNodeReadOnly) return toolbarConfig;
156
+ return {
157
+ ...toolbarConfig,
158
+ actions: disableToolbarActions(toolbarConfig.actions),
159
+ ...toolbarConfig.overflowActions && {
160
+ overflowActions: disableToolbarActions(toolbarConfig.overflowActions)
161
+ }
162
+ };
163
+ }, [
164
+ toolbarConfig,
165
+ isNodeReadOnly
166
+ ]);
146
167
  const adornments = useMemo(()=>{
147
168
  const adornmentsFromProps = adornmentsProp ?? {};
148
169
  const adornmentsFromResolver = resolveAdornments(statusContext);
@@ -311,8 +332,8 @@ const BaseNodeComponent = (props)=>{
311
332
  if (multipleNodesSelected) return false;
312
333
  const { hasButton, hasLabel } = toolbarSideHandleAffordances;
313
334
  const isAddButtonShown = ()=>{
314
- if (useSmartHandles) return 'design' === mode && !!selected;
315
- const showAddButton = 'design' === mode && !isConnecting && !dragging;
335
+ if (useSmartHandles) return canEdit && !!selected;
336
+ const showAddButton = canEdit && !isConnecting && !dragging;
316
337
  if (shouldShowAddButtonFn) return shouldShowAddButtonFn({
317
338
  showAddButton,
318
339
  selected: !!selected
@@ -324,7 +345,7 @@ const BaseNodeComponent = (props)=>{
324
345
  return false;
325
346
  }, [
326
347
  toolbarSideHandleAffordances,
327
- mode,
348
+ canEdit,
328
349
  multipleNodesSelected,
329
350
  useSmartHandles,
330
351
  selected,
@@ -342,7 +363,7 @@ const BaseNodeComponent = (props)=>{
342
363
  nodeId: id,
343
364
  selected: selected ?? false,
344
365
  hovered: isHovered,
345
- showAddButton: 'design' === mode && !multipleNodesSelected && !isConnecting && !dragging,
366
+ showAddButton: canEdit && !multipleNodesSelected && !isConnecting && !dragging,
346
367
  showNotches,
347
368
  nodeWidth: containerWidth,
348
369
  nodeHeight: computedHeight,
@@ -360,7 +381,7 @@ const BaseNodeComponent = (props)=>{
360
381
  const handleVisualType = handle.handleType ?? ('source' === handle.type ? 'output' : 'input');
361
382
  const hasConnection = connectedHandleIds.has(handle.id);
362
383
  const isVisible = hasConnection || shouldShowHandles && configVisible;
363
- const shouldShowButton = 'design' === mode && selected && handle.showButton && !multipleNodesSelected;
384
+ const shouldShowButton = canEdit && selected && handle.showButton && !multipleNodesSelected;
364
385
  return /*#__PURE__*/ jsx(SmartHandle, {
365
386
  type: handle.type,
366
387
  id: handle.id,
@@ -384,7 +405,7 @@ const BaseNodeComponent = (props)=>{
384
405
  shouldShowHandles,
385
406
  containerWidth,
386
407
  computedHeight,
387
- mode,
408
+ canEdit,
388
409
  selected,
389
410
  showNotches,
390
411
  handleAction,
@@ -465,7 +486,8 @@ const BaseNodeComponent = (props)=>{
465
486
  hasBottomHandles: hasVisibleBottomHandles,
466
487
  selected: selected,
467
488
  dragging: dragging,
468
- readonly: 'design' !== mode,
489
+ readonly: !canEdit,
490
+ discardDraftOnReadonly: isNodeReadOnly,
469
491
  onChange: handleLabelChange
470
492
  }),
471
493
  displayFooter && /*#__PURE__*/ jsx("div", {
@@ -474,9 +496,9 @@ const BaseNodeComponent = (props)=>{
474
496
  })
475
497
  ]
476
498
  }),
477
- toolbarConfig && /*#__PURE__*/ jsx(NodeToolbar, {
499
+ effectiveToolbarConfig && /*#__PURE__*/ jsx(NodeToolbar, {
478
500
  nodeId: id,
479
- config: toolbarConfig,
501
+ config: effectiveToolbarConfig,
480
502
  expanded: selected || isHovered,
481
503
  hidden: dragging || multipleNodesSelected,
482
504
  offsetToolbar: offsetToolbar
@@ -95,14 +95,15 @@ const EditableLabel = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRe
95
95
  } : void 0
96
96
  }));
97
97
  EditableLabel.displayName = 'EditableLabel';
98
- const EmptyLabelPlaceholder = ({ onDoubleClick })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
98
+ const EmptyLabelPlaceholder = ({ disabled, onDoubleClick })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
99
99
  type: "button",
100
+ disabled: disabled,
100
101
  onDoubleClick: onDoubleClick,
101
102
  className: "nodrag nowheel text-sm leading-[18px] font-semibold text-foreground-muted bg-transparent border border-dashed border-border-de-emp rounded-sm cursor-pointer opacity-0 transition-opacity duration-200 min-w-5 min-h-5 hover:opacity-100",
102
103
  "aria-label": "Add node label",
103
104
  "data-testid": "empty-label-placeholder"
104
105
  });
105
- const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackgroundColor, shape, hasBottomHandles, selected, dragging, centerAdornment, readonly, onChange })=>{
106
+ const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackgroundColor, shape, hasBottomHandles, selected, dragging, centerAdornment, readonly, discardDraftOnReadonly, onChange })=>{
106
107
  const [isEditing, setIsEditing] = (0, external_react_namespaceObject.useState)(false);
107
108
  const [localLabel, setLocalLabel] = (0, external_react_namespaceObject.useState)('');
108
109
  const [localSubLabel, setLocalSubLabel] = (0, external_react_namespaceObject.useState)('');
@@ -147,15 +148,6 @@ const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackg
147
148
  isEditing,
148
149
  focusTarget
149
150
  ]);
150
- (0, external_react_namespaceObject.useEffect)(()=>{
151
- if (isEditing && (!selected || dragging || readonly)) handleSave();
152
- }, [
153
- selected,
154
- dragging,
155
- isEditing,
156
- readonly,
157
- handleSave
158
- ]);
159
151
  const handleCancel = (0, external_react_namespaceObject.useCallback)(()=>{
160
152
  setIsEditing(false);
161
153
  setFocusTarget(null);
@@ -165,6 +157,19 @@ const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackg
165
157
  label,
166
158
  subLabel
167
159
  ]);
160
+ (0, external_react_namespaceObject.useEffect)(()=>{
161
+ if (!isEditing) return;
162
+ if (readonly && discardDraftOnReadonly) handleCancel();
163
+ else if (!selected || dragging || readonly) handleSave();
164
+ }, [
165
+ selected,
166
+ dragging,
167
+ isEditing,
168
+ readonly,
169
+ discardDraftOnReadonly,
170
+ handleSave,
171
+ handleCancel
172
+ ]);
168
173
  const handleKeyDown = (0, external_react_namespaceObject.useCallback)((e)=>{
169
174
  if ('Enter' === e.key) {
170
175
  e.preventDefault();
@@ -191,6 +196,7 @@ const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackg
191
196
  shape: shape,
192
197
  children: [
193
198
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(EmptyLabelPlaceholder, {
199
+ disabled: readonly,
194
200
  onDoubleClick: readonly ? void 0 : handleDoubleClick(labelInputRef)
195
201
  }),
196
202
  centerAdornment
@@ -16,11 +16,12 @@ export interface NodeLabelProps {
16
16
  dragging?: boolean;
17
17
  centerAdornment?: React.ReactNode;
18
18
  readonly?: boolean;
19
+ discardDraftOnReadonly?: boolean;
19
20
  onChange?: (values: {
20
21
  label: string;
21
22
  subLabel: string;
22
23
  }) => void;
23
24
  }
24
- export declare const NodeLabel: import("react").MemoExoticComponent<({ label, subLabel, labelTooltip, labelBackgroundColor, shape, hasBottomHandles, selected, dragging, centerAdornment, readonly, onChange, }: NodeLabelProps) => import("react/jsx-runtime").JSX.Element>;
25
+ export declare const NodeLabel: import("react").MemoExoticComponent<({ label, subLabel, labelTooltip, labelBackgroundColor, shape, hasBottomHandles, selected, dragging, centerAdornment, readonly, discardDraftOnReadonly, onChange, }: NodeLabelProps) => import("react/jsx-runtime").JSX.Element>;
25
26
  export {};
26
27
  //# sourceMappingURL=NodeLabel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeLabel.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/NodeLabel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,UAAU,sBAAsB;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,GAAI,wCAI/B,sBAAsB,4CAmBxB,CAAC;AAqKF,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAClE;AA2LD,eAAO,MAAM,SAAS,mLA7KnB,cAAc,6CA6K+B,CAAC"}
1
+ {"version":3,"file":"NodeLabel.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/NodeLabel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,UAAU,sBAAsB;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,GAAI,wCAI/B,sBAAsB,4CAmBxB,CAAC;AAyKF,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAClE;AAkMD,eAAO,MAAM,SAAS,2MAnLnB,cAAc,6CAmL+B,CAAC"}