@uipath/apollo-react 4.32.0 → 4.32.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.
- package/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +1 -0
- package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/AddNodeManager.js +1 -0
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.cjs +21 -2
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.d.ts +2 -1
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.d.ts.map +1 -1
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.js +21 -2
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.cjs +4 -2
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.d.ts +2 -1
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.d.ts.map +1 -1
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.js +4 -2
- package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.cjs +18 -0
- package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.d.ts +1 -0
- package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.d.ts.map +1 -1
- package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.js +20 -2
- package/dist/canvas/components/LoopNode/IterationNavigator.cjs +29 -13
- package/dist/canvas/components/LoopNode/IterationNavigator.d.ts.map +1 -1
- package/dist/canvas/components/LoopNode/IterationNavigator.js +27 -11
- package/dist/canvas/components/LoopNode/LoopNode.cjs +39 -18
- package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -1
- package/dist/canvas/components/LoopNode/LoopNode.js +37 -16
- package/dist/canvas/components/Toolbox/Toolbox.cjs +15 -0
- package/dist/canvas/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/canvas/components/Toolbox/Toolbox.js +15 -0
- package/dist/canvas/components/Toolbox/Toolbox.styles.cjs +2 -2
- package/dist/canvas/components/Toolbox/Toolbox.styles.js +2 -2
- package/dist/canvas/locales/en.cjs +1 -1
- package/dist/canvas/locales/en.d.ts.map +1 -1
- package/dist/canvas/locales/en.js +1 -1
- package/dist/canvas/styles/tailwind.canvas.css +1 -1
- package/dist/i18n/useSafeLingui.cjs +12 -1
- package/dist/i18n/useSafeLingui.d.ts.map +1 -1
- package/dist/i18n/useSafeLingui.js +12 -1
- package/package.json +1 -1
|
@@ -184,6 +184,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
|
|
|
184
184
|
nodeId: external_constants_cjs_namespaceObject.PREVIEW_NODE_ID,
|
|
185
185
|
placement: "right-start",
|
|
186
186
|
offset: external_constants_cjs_namespaceObject.FLOATING_CANVAS_PANEL_OFFSET,
|
|
187
|
+
scrollableContent: !!CustomPanel,
|
|
187
188
|
children: CustomPanel ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(CustomPanel, {
|
|
188
189
|
onNodeSelect: (item)=>handleNodeSelect(item),
|
|
189
190
|
onClose: handleClose
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddNodeManager.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/AddNodeManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAKlC,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC;IAI7E,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAK7F,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC;IAOtE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAK7F,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAMpF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AASD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AddNodeManager.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/AddNodePanel/AddNodeManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAKlC,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC;IAI7E,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAK7F,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC;IAOtE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAK7F,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAMpF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AASD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA8NxD,CAAC"}
|
|
@@ -156,6 +156,7 @@ const AddNodeManager = ({ initializing, customPanel: CustomPanel, createNodeData
|
|
|
156
156
|
nodeId: PREVIEW_NODE_ID,
|
|
157
157
|
placement: "right-start",
|
|
158
158
|
offset: FLOATING_CANVAS_PANEL_OFFSET,
|
|
159
|
+
scrollableContent: !!CustomPanel,
|
|
159
160
|
children: CustomPanel ? /*#__PURE__*/ jsx(CustomPanel, {
|
|
160
161
|
onNodeSelect: (item)=>handleNodeSelect(item),
|
|
161
162
|
onClose: handleClose
|
|
@@ -35,10 +35,12 @@ const external_CanvasPortal_cjs_namespaceObject = require("./CanvasPortal.cjs");
|
|
|
35
35
|
const external_PanelChrome_cjs_namespaceObject = require("./PanelChrome.cjs");
|
|
36
36
|
const external_useFloatingPosition_cjs_namespaceObject = require("./useFloatingPosition.cjs");
|
|
37
37
|
const PANEL_BASE_CLASS = 'text-(--canvas-foreground) bg-(--canvas-background-raised) border border-(--canvas-border-de-emp) text-sm flex flex-col transition-opacity duration-200 ease-in-out';
|
|
38
|
+
const PANEL_FLOATING_MAX_HEIGHT = 600;
|
|
39
|
+
const PANEL_FLOATING_MIN_HEIGHT = 100;
|
|
38
40
|
const PANEL_FLOATING_CLASS = 'rounded-lg shadow-[0_4px_16px_rgba(0,0,0,0.12)] w-auto min-w-[280px] max-w-none h-auto max-h-[600px]';
|
|
39
41
|
const PANEL_PINNED_CLASS = 'rounded-none shadow-none w-[320px] min-w-[320px] max-w-[320px] h-screen max-h-screen';
|
|
40
|
-
function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'right-start', offset = 20, fallbackPlacement, isPinned = false, useFixedPosition = false, portalToBody = false, title, header, headerActions, children, onClose, scrollKey, onMouseEnter, onMouseLeave }) {
|
|
41
|
-
const { computedAnchor, floatingStyles, refs, mergedReferenceRef } = (0, external_useFloatingPosition_cjs_namespaceObject.useFloatingPosition)({
|
|
42
|
+
function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'right-start', offset = 20, fallbackPlacement, isPinned = false, useFixedPosition = false, portalToBody = false, title, header, headerActions, children, onClose, scrollKey, scrollableContent = true, onMouseEnter, onMouseLeave }) {
|
|
43
|
+
const { computedAnchor, floatingStyles, availableHeight, refs, mergedReferenceRef } = (0, external_useFloatingPosition_cjs_namespaceObject.useFloatingPosition)({
|
|
42
44
|
open,
|
|
43
45
|
nodeId,
|
|
44
46
|
anchorRect,
|
|
@@ -49,6 +51,19 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
49
51
|
const panelClassName = (0, external_react_namespaceObject.useMemo)(()=>(0, apollo_wind_namespaceObject.cn)(PANEL_BASE_CLASS, isPinned ? PANEL_PINNED_CLASS : PANEL_FLOATING_CLASS), [
|
|
50
52
|
isPinned
|
|
51
53
|
]);
|
|
54
|
+
const sizingStyle = (0, external_react_namespaceObject.useMemo)(()=>{
|
|
55
|
+
if (isPinned || null == availableHeight) return {};
|
|
56
|
+
const maxHeight = Math.min(PANEL_FLOATING_MAX_HEIGHT, availableHeight);
|
|
57
|
+
const occupiedHeight = Math.max(PANEL_FLOATING_MIN_HEIGHT, maxHeight);
|
|
58
|
+
return {
|
|
59
|
+
maxHeight: `${maxHeight}px`,
|
|
60
|
+
minHeight: `${PANEL_FLOATING_MIN_HEIGHT}px`,
|
|
61
|
+
['--floating-available-height']: `${occupiedHeight}px`
|
|
62
|
+
};
|
|
63
|
+
}, [
|
|
64
|
+
isPinned,
|
|
65
|
+
availableHeight
|
|
66
|
+
]);
|
|
52
67
|
if (!open || !computedAnchor) return null;
|
|
53
68
|
if (useFixedPosition && anchorRect) {
|
|
54
69
|
const getScreenSpacePosition = ()=>{
|
|
@@ -100,6 +115,7 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
100
115
|
style: {
|
|
101
116
|
position: 'fixed',
|
|
102
117
|
...screenPosition,
|
|
118
|
+
...sizingStyle,
|
|
103
119
|
zIndex: 1100,
|
|
104
120
|
pointerEvents: 'auto'
|
|
105
121
|
},
|
|
@@ -109,6 +125,7 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
109
125
|
headerActions: headerActions,
|
|
110
126
|
onClose: onClose,
|
|
111
127
|
scrollKey: scrollKey,
|
|
128
|
+
scrollableContent: scrollableContent,
|
|
112
129
|
children: children
|
|
113
130
|
})
|
|
114
131
|
});
|
|
@@ -123,6 +140,7 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
123
140
|
onPointerLeave: onMouseLeave,
|
|
124
141
|
style: {
|
|
125
142
|
...isPinned ? {} : floatingStyles,
|
|
143
|
+
...sizingStyle,
|
|
126
144
|
position: isPinned ? 'fixed' : 'absolute',
|
|
127
145
|
right: isPinned ? 0 : void 0,
|
|
128
146
|
top: isPinned ? 0 : void 0,
|
|
@@ -135,6 +153,7 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
135
153
|
headerActions: headerActions,
|
|
136
154
|
onClose: onClose,
|
|
137
155
|
scrollKey: scrollKey,
|
|
156
|
+
scrollableContent: scrollableContent,
|
|
138
157
|
children: children
|
|
139
158
|
})
|
|
140
159
|
});
|
|
@@ -17,8 +17,9 @@ export type FloatingCanvasPanelProps = {
|
|
|
17
17
|
children?: ReactNode;
|
|
18
18
|
onClose?: () => void;
|
|
19
19
|
scrollKey?: string;
|
|
20
|
+
scrollableContent?: boolean;
|
|
20
21
|
onMouseEnter?: () => void;
|
|
21
22
|
onMouseLeave?: () => void;
|
|
22
23
|
};
|
|
23
|
-
export declare function FloatingCanvasPanel({ open, nodeId, anchorRect, placement, offset, fallbackPlacement, isPinned, useFixedPosition, portalToBody, title, header, headerActions, children, onClose, scrollKey, onMouseEnter, onMouseLeave, }: FloatingCanvasPanelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
24
|
+
export declare function FloatingCanvasPanel({ open, nodeId, anchorRect, placement, offset, fallbackPlacement, isPinned, useFixedPosition, portalToBody, title, header, headerActions, children, onClose, scrollKey, scrollableContent, onMouseEnter, onMouseLeave, }: FloatingCanvasPanelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
24
25
|
//# sourceMappingURL=FloatingCanvasPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingCanvasPanel.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"FloatingCanvasPanel.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAKtD,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AA4B7E,MAAM,MAAM,wBAAwB,GAAG;IAErC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAShB,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAOnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAM3B,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAOnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,IAAW,EACX,MAAM,EACN,UAAU,EACV,SAAyB,EACzB,MAAW,EACX,iBAAiB,EACjB,QAAgB,EAChB,gBAAwB,EACxB,YAAoB,EACpB,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAwB,EACxB,YAAY,EACZ,YAAY,GACb,EAAE,wBAAwB,kDAmK1B"}
|
|
@@ -7,10 +7,12 @@ import { CanvasPortal } from "./CanvasPortal.js";
|
|
|
7
7
|
import { PanelChrome } from "./PanelChrome.js";
|
|
8
8
|
import { useFloatingPosition } from "./useFloatingPosition.js";
|
|
9
9
|
const PANEL_BASE_CLASS = 'text-(--canvas-foreground) bg-(--canvas-background-raised) border border-(--canvas-border-de-emp) text-sm flex flex-col transition-opacity duration-200 ease-in-out';
|
|
10
|
+
const PANEL_FLOATING_MAX_HEIGHT = 600;
|
|
11
|
+
const PANEL_FLOATING_MIN_HEIGHT = 100;
|
|
10
12
|
const PANEL_FLOATING_CLASS = 'rounded-lg shadow-[0_4px_16px_rgba(0,0,0,0.12)] w-auto min-w-[280px] max-w-none h-auto max-h-[600px]';
|
|
11
13
|
const PANEL_PINNED_CLASS = 'rounded-none shadow-none w-[320px] min-w-[320px] max-w-[320px] h-screen max-h-screen';
|
|
12
|
-
function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'right-start', offset = 20, fallbackPlacement, isPinned = false, useFixedPosition = false, portalToBody = false, title, header, headerActions, children, onClose, scrollKey, onMouseEnter, onMouseLeave }) {
|
|
13
|
-
const { computedAnchor, floatingStyles, refs, mergedReferenceRef } = useFloatingPosition({
|
|
14
|
+
function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'right-start', offset = 20, fallbackPlacement, isPinned = false, useFixedPosition = false, portalToBody = false, title, header, headerActions, children, onClose, scrollKey, scrollableContent = true, onMouseEnter, onMouseLeave }) {
|
|
15
|
+
const { computedAnchor, floatingStyles, availableHeight, refs, mergedReferenceRef } = useFloatingPosition({
|
|
14
16
|
open,
|
|
15
17
|
nodeId,
|
|
16
18
|
anchorRect,
|
|
@@ -21,6 +23,19 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
21
23
|
const panelClassName = useMemo(()=>cn(PANEL_BASE_CLASS, isPinned ? PANEL_PINNED_CLASS : PANEL_FLOATING_CLASS), [
|
|
22
24
|
isPinned
|
|
23
25
|
]);
|
|
26
|
+
const sizingStyle = useMemo(()=>{
|
|
27
|
+
if (isPinned || null == availableHeight) return {};
|
|
28
|
+
const maxHeight = Math.min(PANEL_FLOATING_MAX_HEIGHT, availableHeight);
|
|
29
|
+
const occupiedHeight = Math.max(PANEL_FLOATING_MIN_HEIGHT, maxHeight);
|
|
30
|
+
return {
|
|
31
|
+
maxHeight: `${maxHeight}px`,
|
|
32
|
+
minHeight: `${PANEL_FLOATING_MIN_HEIGHT}px`,
|
|
33
|
+
['--floating-available-height']: `${occupiedHeight}px`
|
|
34
|
+
};
|
|
35
|
+
}, [
|
|
36
|
+
isPinned,
|
|
37
|
+
availableHeight
|
|
38
|
+
]);
|
|
24
39
|
if (!open || !computedAnchor) return null;
|
|
25
40
|
if (useFixedPosition && anchorRect) {
|
|
26
41
|
const getScreenSpacePosition = ()=>{
|
|
@@ -72,6 +87,7 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
72
87
|
style: {
|
|
73
88
|
position: 'fixed',
|
|
74
89
|
...screenPosition,
|
|
90
|
+
...sizingStyle,
|
|
75
91
|
zIndex: 1100,
|
|
76
92
|
pointerEvents: 'auto'
|
|
77
93
|
},
|
|
@@ -81,6 +97,7 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
81
97
|
headerActions: headerActions,
|
|
82
98
|
onClose: onClose,
|
|
83
99
|
scrollKey: scrollKey,
|
|
100
|
+
scrollableContent: scrollableContent,
|
|
84
101
|
children: children
|
|
85
102
|
})
|
|
86
103
|
});
|
|
@@ -95,6 +112,7 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
95
112
|
onPointerLeave: onMouseLeave,
|
|
96
113
|
style: {
|
|
97
114
|
...isPinned ? {} : floatingStyles,
|
|
115
|
+
...sizingStyle,
|
|
98
116
|
position: isPinned ? 'fixed' : 'absolute',
|
|
99
117
|
right: isPinned ? 0 : void 0,
|
|
100
118
|
top: isPinned ? 0 : void 0,
|
|
@@ -107,6 +125,7 @@ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
107
125
|
headerActions: headerActions,
|
|
108
126
|
onClose: onClose,
|
|
109
127
|
scrollKey: scrollKey,
|
|
128
|
+
scrollableContent: scrollableContent,
|
|
110
129
|
children: children
|
|
111
130
|
})
|
|
112
131
|
});
|
|
@@ -51,7 +51,8 @@ const PanelHeader = styled_default().div`
|
|
|
51
51
|
`;
|
|
52
52
|
const PanelContent = styled_default().div`
|
|
53
53
|
flex: 1;
|
|
54
|
-
|
|
54
|
+
min-height: 0;
|
|
55
|
+
overflow-y: ${(props)=>false === props.scrollable ? 'hidden' : 'auto'};
|
|
55
56
|
overflow-x: hidden;
|
|
56
57
|
|
|
57
58
|
&::-webkit-scrollbar {
|
|
@@ -72,7 +73,7 @@ const PanelContent = styled_default().div`
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
`;
|
|
75
|
-
function PanelChrome({ title, header, headerActions, children, onClose, scrollKey }) {
|
|
76
|
+
function PanelChrome({ title, header, headerActions, children, onClose, scrollKey, scrollableContent = true }) {
|
|
76
77
|
const contentRef = (0, external_react_namespaceObject.useRef)(null);
|
|
77
78
|
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
78
79
|
if (contentRef.current && scrollKey) contentRef.current.scrollTop = 0;
|
|
@@ -114,6 +115,7 @@ function PanelChrome({ title, header, headerActions, children, onClose, scrollKe
|
|
|
114
115
|
}),
|
|
115
116
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(PanelContent, {
|
|
116
117
|
ref: contentRef,
|
|
118
|
+
scrollable: scrollableContent,
|
|
117
119
|
children: children
|
|
118
120
|
})
|
|
119
121
|
]
|
|
@@ -6,6 +6,7 @@ export interface PanelChromeProps {
|
|
|
6
6
|
children?: ReactNode;
|
|
7
7
|
onClose?: () => void;
|
|
8
8
|
scrollKey?: string;
|
|
9
|
+
scrollableContent?: boolean;
|
|
9
10
|
}
|
|
10
|
-
export declare function PanelChrome({ title, header, headerActions, children, onClose, scrollKey, }: PanelChromeProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function PanelChrome({ title, header, headerActions, children, onClose, scrollKey, scrollableContent, }: PanelChromeProps): import("react/jsx-runtime").JSX.Element;
|
|
11
12
|
//# sourceMappingURL=PanelChrome.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelChrome.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/PanelChrome.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PanelChrome.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/PanelChrome.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAsCvC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAwB,GACzB,EAAE,gBAAgB,2CAuClB"}
|
|
@@ -13,7 +13,8 @@ const PanelHeader = styled.div`
|
|
|
13
13
|
`;
|
|
14
14
|
const PanelContent = styled.div`
|
|
15
15
|
flex: 1;
|
|
16
|
-
|
|
16
|
+
min-height: 0;
|
|
17
|
+
overflow-y: ${(props)=>false === props.scrollable ? 'hidden' : 'auto'};
|
|
17
18
|
overflow-x: hidden;
|
|
18
19
|
|
|
19
20
|
&::-webkit-scrollbar {
|
|
@@ -34,7 +35,7 @@ const PanelContent = styled.div`
|
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
`;
|
|
37
|
-
function PanelChrome({ title, header, headerActions, children, onClose, scrollKey }) {
|
|
38
|
+
function PanelChrome({ title, header, headerActions, children, onClose, scrollKey, scrollableContent = true }) {
|
|
38
39
|
const contentRef = useRef(null);
|
|
39
40
|
useEffect(()=>{
|
|
40
41
|
if (contentRef.current && scrollKey) contentRef.current.scrollTop = 0;
|
|
@@ -76,6 +77,7 @@ function PanelChrome({ title, header, headerActions, children, onClose, scrollKe
|
|
|
76
77
|
}),
|
|
77
78
|
/*#__PURE__*/ jsx(PanelContent, {
|
|
78
79
|
ref: contentRef,
|
|
80
|
+
scrollable: scrollableContent,
|
|
79
81
|
children: children
|
|
80
82
|
})
|
|
81
83
|
]
|
|
@@ -29,9 +29,11 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
29
29
|
const react_namespaceObject = require("@floating-ui/react");
|
|
30
30
|
const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
|
|
31
31
|
const external_react_namespaceObject = require("react");
|
|
32
|
+
const VIEWPORT_PADDING = 8;
|
|
32
33
|
function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'right-start', offset: offsetValue = 20, fallbackPlacement = 'none' }) {
|
|
33
34
|
const referenceRef = (0, external_react_namespaceObject.useRef)(null);
|
|
34
35
|
const internalNode = (0, react_cjs_namespaceObject.useInternalNode)(nodeId || '');
|
|
36
|
+
const [availableHeight, setAvailableHeight] = (0, external_react_namespaceObject.useState)(null);
|
|
35
37
|
const computedAnchor = (0, external_react_namespaceObject.useMemo)(()=>{
|
|
36
38
|
if (anchorRect) return anchorRect;
|
|
37
39
|
if (!internalNode) return null;
|
|
@@ -58,6 +60,16 @@ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
58
60
|
(0, react_namespaceObject.offset)(offsetValue),
|
|
59
61
|
(0, react_namespaceObject.flip)({
|
|
60
62
|
fallbackAxisSideDirection: fallbackPlacement
|
|
63
|
+
}),
|
|
64
|
+
(0, react_namespaceObject.shift)({
|
|
65
|
+
padding: VIEWPORT_PADDING
|
|
66
|
+
}),
|
|
67
|
+
(0, react_namespaceObject.size)({
|
|
68
|
+
padding: VIEWPORT_PADDING,
|
|
69
|
+
apply ({ availableHeight: ah }) {
|
|
70
|
+
const next = Math.max(0, Math.floor(ah));
|
|
71
|
+
setAvailableHeight((prev)=>prev === next ? prev : next);
|
|
72
|
+
}
|
|
61
73
|
})
|
|
62
74
|
],
|
|
63
75
|
whileElementsMounted: react_namespaceObject.autoUpdate
|
|
@@ -66,6 +78,11 @@ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
66
78
|
refs.setReference,
|
|
67
79
|
referenceRef
|
|
68
80
|
]);
|
|
81
|
+
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
82
|
+
if (!open) setAvailableHeight(null);
|
|
83
|
+
}, [
|
|
84
|
+
open
|
|
85
|
+
]);
|
|
69
86
|
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
70
87
|
if (open) update();
|
|
71
88
|
}, [
|
|
@@ -79,6 +96,7 @@ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
79
96
|
return {
|
|
80
97
|
computedAnchor,
|
|
81
98
|
floatingStyles,
|
|
99
|
+
availableHeight,
|
|
82
100
|
refs,
|
|
83
101
|
mergedReferenceRef
|
|
84
102
|
};
|
|
@@ -17,6 +17,7 @@ export interface UseFloatingPositionOptions {
|
|
|
17
17
|
export interface UseFloatingPositionReturn {
|
|
18
18
|
computedAnchor: AnchorRect | null;
|
|
19
19
|
floatingStyles: CSSProperties;
|
|
20
|
+
availableHeight: number | null;
|
|
20
21
|
refs: {
|
|
21
22
|
setReference: RefCallback<Element>;
|
|
22
23
|
setFloating: RefCallback<HTMLElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFloatingPosition.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/useFloatingPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"useFloatingPosition.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/useFloatingPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EAKf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAwC,MAAM,OAAO,CAAC;AAEnG,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AASjF,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,aAAa,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE;QACJ,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;KACvC,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACjE;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAW,EACX,MAAM,EACN,UAAU,EACV,SAAyB,EACzB,MAAM,EAAE,WAAgB,EACxB,iBAA0B,GAC3B,EAAE,0BAA0B,GAAG,yBAAyB,CAmExD"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { autoUpdate, flip, offset, useFloating, useMergeRefs } from "@floating-ui/react";
|
|
1
|
+
import { autoUpdate, flip, offset, shift, size, useFloating, useMergeRefs } from "@floating-ui/react";
|
|
2
2
|
import { useInternalNode } from "../../xyflow/react.js";
|
|
3
|
-
import { useEffect, useMemo, useRef } from "react";
|
|
3
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
const VIEWPORT_PADDING = 8;
|
|
4
5
|
function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'right-start', offset: offsetValue = 20, fallbackPlacement = 'none' }) {
|
|
5
6
|
const referenceRef = useRef(null);
|
|
6
7
|
const internalNode = useInternalNode(nodeId || '');
|
|
8
|
+
const [availableHeight, setAvailableHeight] = useState(null);
|
|
7
9
|
const computedAnchor = useMemo(()=>{
|
|
8
10
|
if (anchorRect) return anchorRect;
|
|
9
11
|
if (!internalNode) return null;
|
|
@@ -30,6 +32,16 @@ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
30
32
|
offset(offsetValue),
|
|
31
33
|
flip({
|
|
32
34
|
fallbackAxisSideDirection: fallbackPlacement
|
|
35
|
+
}),
|
|
36
|
+
shift({
|
|
37
|
+
padding: VIEWPORT_PADDING
|
|
38
|
+
}),
|
|
39
|
+
size({
|
|
40
|
+
padding: VIEWPORT_PADDING,
|
|
41
|
+
apply ({ availableHeight: ah }) {
|
|
42
|
+
const next = Math.max(0, Math.floor(ah));
|
|
43
|
+
setAvailableHeight((prev)=>prev === next ? prev : next);
|
|
44
|
+
}
|
|
33
45
|
})
|
|
34
46
|
],
|
|
35
47
|
whileElementsMounted: autoUpdate
|
|
@@ -38,6 +50,11 @@ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
38
50
|
refs.setReference,
|
|
39
51
|
referenceRef
|
|
40
52
|
]);
|
|
53
|
+
useEffect(()=>{
|
|
54
|
+
if (!open) setAvailableHeight(null);
|
|
55
|
+
}, [
|
|
56
|
+
open
|
|
57
|
+
]);
|
|
41
58
|
useEffect(()=>{
|
|
42
59
|
if (open) update();
|
|
43
60
|
}, [
|
|
@@ -51,6 +68,7 @@ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'rig
|
|
|
51
68
|
return {
|
|
52
69
|
computedAnchor,
|
|
53
70
|
floatingStyles,
|
|
71
|
+
availableHeight,
|
|
54
72
|
refs,
|
|
55
73
|
mergedReferenceRef
|
|
56
74
|
};
|
|
@@ -29,7 +29,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
29
29
|
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
30
30
|
const apollo_wind_namespaceObject = require("@uipath/apollo-wind");
|
|
31
31
|
const external_react_namespaceObject = require("react");
|
|
32
|
-
const index_cjs_namespaceObject = require("
|
|
32
|
+
const index_cjs_namespaceObject = require("../../../i18n/index.cjs");
|
|
33
|
+
const external_utils_index_cjs_namespaceObject = require("../../utils/index.cjs");
|
|
33
34
|
const icon_registry_cjs_namespaceObject = require("../../utils/icon-registry.cjs");
|
|
34
35
|
function resolveState(iterationState) {
|
|
35
36
|
if (!Number.isFinite(iterationState.total)) return;
|
|
@@ -39,7 +40,7 @@ function resolveState(iterationState) {
|
|
|
39
40
|
return {
|
|
40
41
|
...iterationState,
|
|
41
42
|
total,
|
|
42
|
-
activeIndex: (0,
|
|
43
|
+
activeIndex: (0, external_utils_index_cjs_namespaceObject.clamp)(rawActiveIndex, 0, total - 1)
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
46
|
function stopCanvasControlEvent(event) {
|
|
@@ -53,12 +54,33 @@ function IterationNavigator({ iterationState }) {
|
|
|
53
54
|
});
|
|
54
55
|
}
|
|
55
56
|
function NavigatorContent({ iterationState }) {
|
|
57
|
+
const { _ } = (0, index_cjs_namespaceObject.useSafeLingui)();
|
|
56
58
|
const { activeIndex, total, onActiveIndexChange, disabled, ariaLabel } = iterationState;
|
|
57
59
|
const canInteract = !disabled && 'function' == typeof onActiveIndexChange;
|
|
58
60
|
const canGoPrevious = canInteract && activeIndex > 0;
|
|
59
61
|
const canGoNext = canInteract && activeIndex < total - 1;
|
|
60
|
-
const label = ariaLabel ??
|
|
62
|
+
const label = ariaLabel ?? _({
|
|
63
|
+
id: 'loop-node.iteration.label',
|
|
64
|
+
message: 'Loop iteration'
|
|
65
|
+
});
|
|
61
66
|
const visibleIndex = activeIndex + 1;
|
|
67
|
+
const statusLabel = _({
|
|
68
|
+
id: 'loop-node.iteration.status',
|
|
69
|
+
message: '{label}: {visibleIndex} of {total}',
|
|
70
|
+
values: {
|
|
71
|
+
label,
|
|
72
|
+
visibleIndex,
|
|
73
|
+
total
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
const previousLabel = _({
|
|
77
|
+
id: 'loop-node.iteration.previous',
|
|
78
|
+
message: 'Previous loop iteration'
|
|
79
|
+
});
|
|
80
|
+
const nextLabel = _({
|
|
81
|
+
id: 'loop-node.iteration.next',
|
|
82
|
+
message: 'Next loop iteration'
|
|
83
|
+
});
|
|
62
84
|
const handlePrevious = (0, external_react_namespaceObject.useCallback)((event)=>{
|
|
63
85
|
event.stopPropagation();
|
|
64
86
|
if (!canGoPrevious) return;
|
|
@@ -84,21 +106,15 @@ function NavigatorContent({ iterationState }) {
|
|
|
84
106
|
onMouseDown: stopCanvasControlEvent,
|
|
85
107
|
onDoubleClick: stopCanvasControlEvent,
|
|
86
108
|
children: [
|
|
87
|
-
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.
|
|
109
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("legend", {
|
|
88
110
|
className: "sr-only",
|
|
89
|
-
children:
|
|
90
|
-
label,
|
|
91
|
-
": ",
|
|
92
|
-
visibleIndex,
|
|
93
|
-
" of ",
|
|
94
|
-
total
|
|
95
|
-
]
|
|
111
|
+
children: statusLabel
|
|
96
112
|
}),
|
|
97
113
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
|
|
98
114
|
type: "button",
|
|
99
115
|
className: (0, apollo_wind_namespaceObject.cn)('nodrag nopan inline-flex h-4 w-4 items-center justify-center rounded-full', 'text-foreground transition-opacity', canGoPrevious ? 'cursor-pointer opacity-100' : 'cursor-not-allowed opacity-40'),
|
|
100
116
|
disabled: !canGoPrevious,
|
|
101
|
-
"aria-label":
|
|
117
|
+
"aria-label": previousLabel,
|
|
102
118
|
onClick: handlePrevious,
|
|
103
119
|
onPointerDown: stopCanvasControlEvent,
|
|
104
120
|
onMouseDown: stopCanvasControlEvent,
|
|
@@ -121,7 +137,7 @@ function NavigatorContent({ iterationState }) {
|
|
|
121
137
|
type: "button",
|
|
122
138
|
className: (0, apollo_wind_namespaceObject.cn)('nodrag nopan inline-flex h-4 w-4 items-center justify-center rounded-full', 'text-foreground transition-opacity', canGoNext ? 'cursor-pointer opacity-100' : 'cursor-not-allowed opacity-40'),
|
|
123
139
|
disabled: !canGoNext,
|
|
124
|
-
"aria-label":
|
|
140
|
+
"aria-label": nextLabel,
|
|
125
141
|
onClick: handleNext,
|
|
126
142
|
onPointerDown: stopCanvasControlEvent,
|
|
127
143
|
onMouseDown: stopCanvasControlEvent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IterationNavigator.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/IterationNavigator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IterationNavigator.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/LoopNode/IterationNavigator.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,UAAU,uBAAuB;IAC/B,cAAc,EAAE,kBAAkB,CAAC;CACpC;AA4BD,wBAAgB,kBAAkB,CAAC,EAAE,cAAc,EAAE,EAAE,uBAAuB,kDAQ7E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "@uipath/apollo-wind";
|
|
3
3
|
import { useCallback } from "react";
|
|
4
|
+
import { useSafeLingui } from "../../../i18n/index.js";
|
|
4
5
|
import { clamp } from "../../utils/index.js";
|
|
5
6
|
import { CanvasIcon } from "../../utils/icon-registry.js";
|
|
6
7
|
function resolveState(iterationState) {
|
|
@@ -25,12 +26,33 @@ function IterationNavigator({ iterationState }) {
|
|
|
25
26
|
});
|
|
26
27
|
}
|
|
27
28
|
function NavigatorContent({ iterationState }) {
|
|
29
|
+
const { _ } = useSafeLingui();
|
|
28
30
|
const { activeIndex, total, onActiveIndexChange, disabled, ariaLabel } = iterationState;
|
|
29
31
|
const canInteract = !disabled && 'function' == typeof onActiveIndexChange;
|
|
30
32
|
const canGoPrevious = canInteract && activeIndex > 0;
|
|
31
33
|
const canGoNext = canInteract && activeIndex < total - 1;
|
|
32
|
-
const label = ariaLabel ??
|
|
34
|
+
const label = ariaLabel ?? _({
|
|
35
|
+
id: 'loop-node.iteration.label',
|
|
36
|
+
message: 'Loop iteration'
|
|
37
|
+
});
|
|
33
38
|
const visibleIndex = activeIndex + 1;
|
|
39
|
+
const statusLabel = _({
|
|
40
|
+
id: 'loop-node.iteration.status',
|
|
41
|
+
message: '{label}: {visibleIndex} of {total}',
|
|
42
|
+
values: {
|
|
43
|
+
label,
|
|
44
|
+
visibleIndex,
|
|
45
|
+
total
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
const previousLabel = _({
|
|
49
|
+
id: 'loop-node.iteration.previous',
|
|
50
|
+
message: 'Previous loop iteration'
|
|
51
|
+
});
|
|
52
|
+
const nextLabel = _({
|
|
53
|
+
id: 'loop-node.iteration.next',
|
|
54
|
+
message: 'Next loop iteration'
|
|
55
|
+
});
|
|
34
56
|
const handlePrevious = useCallback((event)=>{
|
|
35
57
|
event.stopPropagation();
|
|
36
58
|
if (!canGoPrevious) return;
|
|
@@ -56,21 +78,15 @@ function NavigatorContent({ iterationState }) {
|
|
|
56
78
|
onMouseDown: stopCanvasControlEvent,
|
|
57
79
|
onDoubleClick: stopCanvasControlEvent,
|
|
58
80
|
children: [
|
|
59
|
-
/*#__PURE__*/
|
|
81
|
+
/*#__PURE__*/ jsx("legend", {
|
|
60
82
|
className: "sr-only",
|
|
61
|
-
children:
|
|
62
|
-
label,
|
|
63
|
-
": ",
|
|
64
|
-
visibleIndex,
|
|
65
|
-
" of ",
|
|
66
|
-
total
|
|
67
|
-
]
|
|
83
|
+
children: statusLabel
|
|
68
84
|
}),
|
|
69
85
|
/*#__PURE__*/ jsx("button", {
|
|
70
86
|
type: "button",
|
|
71
87
|
className: cn('nodrag nopan inline-flex h-4 w-4 items-center justify-center rounded-full', 'text-foreground transition-opacity', canGoPrevious ? 'cursor-pointer opacity-100' : 'cursor-not-allowed opacity-40'),
|
|
72
88
|
disabled: !canGoPrevious,
|
|
73
|
-
"aria-label":
|
|
89
|
+
"aria-label": previousLabel,
|
|
74
90
|
onClick: handlePrevious,
|
|
75
91
|
onPointerDown: stopCanvasControlEvent,
|
|
76
92
|
onMouseDown: stopCanvasControlEvent,
|
|
@@ -93,7 +109,7 @@ function NavigatorContent({ iterationState }) {
|
|
|
93
109
|
type: "button",
|
|
94
110
|
className: cn('nodrag nopan inline-flex h-4 w-4 items-center justify-center rounded-full', 'text-foreground transition-opacity', canGoNext ? 'cursor-pointer opacity-100' : 'cursor-not-allowed opacity-40'),
|
|
95
111
|
disabled: !canGoNext,
|
|
96
|
-
"aria-label":
|
|
112
|
+
"aria-label": nextLabel,
|
|
97
113
|
onClick: handleNext,
|
|
98
114
|
onPointerDown: stopCanvasControlEvent,
|
|
99
115
|
onMouseDown: stopCanvasControlEvent,
|