From d90a4cfb16cc0daed9b905de9780f44cca1323f9 Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Tue, 21 Jan 2025 11:20:34 -0500 Subject: [PATCH] feat(resizable-side-panels): Make the left and right side panels (optionally) resizable. (#4672) --- bun.lockb | Bin 1136176 -> 1136696 bytes .../src/Components/SidePanelWithServices.tsx | 50 ++- .../src/ViewerLayout/ResizablePanelsHook.tsx | 325 ++++++++++++++++++ extensions/default/src/ViewerLayout/index.tsx | 95 +++-- modes/longitudinal/src/index.ts | 41 ++- .../OHIFMeasurementPanel.spec.js | 2 +- .../services/PanelService/PanelService.tsx | 8 +- platform/ui-next/package.json | 1 + .../src/components/Resizable/Resizable.tsx | 43 +++ .../ui-next/src/components/Resizable/index.ts | 3 + .../src/components/SidePanel/SidePanel.tsx | 197 +++++++---- platform/ui-next/src/components/index.ts | 4 + platform/ui-next/src/index.ts | 6 + yarn.lock | 163 +++------ 14 files changed, 694 insertions(+), 244 deletions(-) create mode 100644 extensions/default/src/ViewerLayout/ResizablePanelsHook.tsx create mode 100644 platform/ui-next/src/components/Resizable/Resizable.tsx create mode 100644 platform/ui-next/src/components/Resizable/index.ts diff --git a/bun.lockb b/bun.lockb index 0ffd08fccbc53a890ce94304856de48a19692ecf..e6df1f25624c742dd52591a7bce9573665b33322 100755 GIT binary patch delta 200849 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 Pz{>j7GW)kT&er)KFf{9w delta 200948 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ڠrF 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 void; + onOpen: () => void; + isExpanded: boolean; + collapsedWidth?: number; + expandedInsideBorderSize?: number; + collapsedInsideBorderSize?: number; + collapsedOutsideBorderSize?: number; }; const SidePanelWithServices = ({ servicesManager, side, activeTabIndex: activeTabIndexProp, + isExpanded, tabs: tabsProp, - expandedWidth, + onOpen, + onClose, ...props }: SidePanelWithServicesProps) => { const panelService = servicesManager?.services?.panelService; // Tracks whether this SidePanel has been opened at least once since this SidePanel was inserted into the DOM. // Thus going to the Study List page and back to the viewer resets this flag for a SidePanel. - const [sidePanelOpen, setSidePanelOpen] = useState(activeTabIndexProp !== null); - const [activeTabIndex, setActiveTabIndex] = useState(activeTabIndexProp); + const [sidePanelExpanded, setSidePanelExpanded] = useState(isExpanded); + const [activeTabIndex, setActiveTabIndex] = useState(activeTabIndexProp ?? 0); + const [closedManually, setClosedManually] = useState(false); const [tabs, setTabs] = useState(tabsProp ?? panelService.getPanels(side)); const handleActiveTabIndexChange = useCallback(({ activeTabIndex }) => { setActiveTabIndex(activeTabIndex); - setSidePanelOpen(activeTabIndex !== null); }, []); const handleOpen = useCallback(() => { - setSidePanelOpen(true); - // If panel is being opened but no tab is active, set first tab as active - if (activeTabIndex === null && tabs.length > 0) { - setActiveTabIndex(0); - } - }, [activeTabIndex, tabs]); + setSidePanelExpanded(true); + onOpen?.(); + }, [onOpen]); const handleClose = useCallback(() => { - setSidePanelOpen(false); - setActiveTabIndex(null); - }, []); + setSidePanelExpanded(false); + setClosedManually(true); + onClose?.(); + }, [onClose]); + + useEffect(() => { + setSidePanelExpanded(isExpanded); + }, [isExpanded]); /** update the active tab index from outside */ useEffect(() => { - setActiveTabIndex(activeTabIndexProp); + setActiveTabIndex(activeTabIndexProp ?? 0); }, [activeTabIndexProp]); useEffect(() => { @@ -71,9 +82,12 @@ const SidePanelWithServices = ({ const activatePanelSubscription = panelService.subscribe( panelService.EVENTS.ACTIVATE_PANEL, (activatePanelEvent: Types.ActivatePanelEvent) => { - if (sidePanelOpen || activatePanelEvent.forceActive) { + if (sidePanelExpanded || activatePanelEvent.forceActive) { const tabIndex = tabs.findIndex(tab => tab.id === activatePanelEvent.panelId); if (tabIndex !== -1) { + if (!closedManually) { + setSidePanelExpanded(true); + } setActiveTabIndex(tabIndex); } } @@ -83,7 +97,7 @@ const SidePanelWithServices = ({ return () => { activatePanelSubscription.unsubscribe(); }; - }, [tabs, sidePanelOpen, panelService]); + }, [tabs, sidePanelExpanded, panelService, closedManually]); return ( ); }; diff --git a/extensions/default/src/ViewerLayout/ResizablePanelsHook.tsx b/extensions/default/src/ViewerLayout/ResizablePanelsHook.tsx new file mode 100644 index 000000000..9b7c37796 --- /dev/null +++ b/extensions/default/src/ViewerLayout/ResizablePanelsHook.tsx @@ -0,0 +1,325 @@ +import { useState, useCallback, useLayoutEffect, useRef } from 'react'; +import { getPanelElement, getPanelGroupElement } from 'react-resizable-panels'; + +// Id needed to grab the panel group for converting pixels to percentages +const viewerLayoutResizablePanelGroupId = 'viewerLayoutResizablePanelGroup'; +const viewerLayoutResizableLeftPanelId = 'viewerLayoutResizableLeftPanel'; +const viewerLayoutResizableRightPanelId = 'viewerLayoutResizableRightPanel'; + +const sidePanelExpandedDefaultWidth = 280; +const sidePanelExpandedInsideBorderSize = 4; +const sidePanelExpandedDefaultOffsetWidth = + sidePanelExpandedDefaultWidth + sidePanelExpandedInsideBorderSize; +const sidePanelCollapsedInsideBorderSize = 4; +const sidePanelCollapsedOutsideBorderSize = 8; +const sidePanelCollapsedWidth = 25; +const sidePanelCollapsedOffsetWidth = + sidePanelCollapsedWidth + + sidePanelCollapsedInsideBorderSize + + sidePanelCollapsedOutsideBorderSize; + +/** + * Set the minimum and maximum css style width attributes for the given element. + * The two style attributes are cleared whenever the width + * arguments is undefined. + *

+ * This utility is used as part of a HACK throughout the ViewerLayout component as + * the means of restricting the side panel widths during the resizing of the + * browser window. In general, the widths are always set unless the resize + * handle for either side panel is being dragged (i.e. a side panel is being resized). + * + * @param elem the element + * @param width the max and min width to set on the element + */ +const setMinMaxWidth = (elem, width?) => { + elem.style.minWidth = width === undefined ? '' : `${width}px`; + elem.style.maxWidth = elem.style.minWidth; +}; + +const useResizablePanels = ( + leftPanelClosed, + setLeftPanelClosed, + rightPanelClosed, + setRightPanelClosed +) => { + const [leftPanelExpandedWidth, setLeftPanelExpandedWidth] = useState( + sidePanelExpandedDefaultWidth + ); + const [rightPanelExpandedWidth, setRightPanelExpandedWidth] = useState( + sidePanelExpandedDefaultWidth + ); + + // Percentage sizes. + const [resizablePanelCollapsedSize, setResizablePanelCollapsedSize] = useState(0); + const [resizablePanelDefaultSize, setResizablePanelDefaultSize] = useState(0); + + const resizablePanelGroupElemRef = useRef(null); + const resizableLeftPanelElemRef = useRef(null); + const resizableRightPanelElemRef = useRef(null); + const resizableLeftPanelAPIRef = useRef(null); + const resizableRightPanelAPIRef = useRef(null); + const isResizableHandleDraggingRef = useRef(false); + + // This useLayoutEffect is used to... + // - Grab a reference to the various resizable panel elements needed for + // converting between percentages and pixels in various callbacks. + // - Expand those panels that are initially expanded. + useLayoutEffect(() => { + const panelGroupElem = getPanelGroupElement(viewerLayoutResizablePanelGroupId); + + resizablePanelGroupElemRef.current = panelGroupElem; + const { width: panelGroupWidth } = panelGroupElem.getBoundingClientRect(); + + const leftPanelElem = getPanelElement(viewerLayoutResizableLeftPanelId); + resizableLeftPanelElemRef.current = leftPanelElem; + + const rightPanelElem = getPanelElement(viewerLayoutResizableRightPanelId); + resizableRightPanelElemRef.current = rightPanelElem; + + const resizablePanelExpandedSize = + (sidePanelExpandedDefaultOffsetWidth / panelGroupWidth) * 100; + + // Since both resizable panels are collapsed by default (i.e. their default size is zero), + // on the very first render check if either/both side panels should be expanded. + if (!leftPanelClosed) { + resizableLeftPanelAPIRef?.current?.expand(resizablePanelExpandedSize); + setMinMaxWidth(leftPanelElem, sidePanelExpandedDefaultOffsetWidth); + } + + if (!rightPanelClosed) { + resizableRightPanelAPIRef?.current?.expand(resizablePanelExpandedSize); + setMinMaxWidth(rightPanelElem, sidePanelExpandedDefaultOffsetWidth); + } + }, []); // no dependencies because this useLayoutEffect is only needed on the very first render + + // This useLayoutEffect follows the pattern prescribed by the react-resizable-panels + // readme for converting between pixel values and percentages. An example of + // the pattern can be found here: + // https://github.com/bvaughn/react-resizable-panels/issues/46#issuecomment-1368108416 + // This useLayoutEffect is used to... + // - Ensure that the percentage size is up-to-date with the pixel sizes + // - Add a resize observer to the resizable panel group to reset various state + // values whenever the resizable panel group is resized (e.g. whenever the + // browser window is resized). + useLayoutEffect(() => { + const { width: panelGroupWidth } = resizablePanelGroupElemRef.current.getBoundingClientRect(); + + // Ensure the side panels' percentage size is in synch with the pixel width of the + // expanded side panels. In general the two get out-of-sync during a browser + // window resize. Note that this code is here and NOT in the ResizeObserver + // because it has to be done AFTER the minimum percentage size for a panel is + // updated which occurs only AFTER the render following a resize. And by virtue + // of the dependency on the `resizablePanelDefaultSize` state, this code + // is executed on the render following an update of the minimum percentage size + // for a panel. + if (!resizableLeftPanelAPIRef.current.isCollapsed()) { + const leftSize = + ((leftPanelExpandedWidth + sidePanelExpandedInsideBorderSize) / panelGroupWidth) * 100; + resizableLeftPanelAPIRef.current.resize(leftSize); + } + + if (!resizableRightPanelAPIRef.current.isCollapsed()) { + const rightSize = + ((rightPanelExpandedWidth + sidePanelExpandedInsideBorderSize) / panelGroupWidth) * 100; + resizableRightPanelAPIRef.current.resize(rightSize); + } + + // This observer kicks in when the ViewportLayout resizable panel group + // component is resized. This typically occurs when the browser window resizes. + const observer = new ResizeObserver(() => { + const { width: panelGroupWidth } = resizablePanelGroupElemRef.current.getBoundingClientRect(); + const defaultSize = (sidePanelExpandedDefaultOffsetWidth / panelGroupWidth) * 100; + + // Set the new default and collapsed resizable panel sizes. + setResizablePanelDefaultSize(Math.min(50, defaultSize)); + setResizablePanelCollapsedSize((sidePanelCollapsedOffsetWidth / panelGroupWidth) * 100); + + if ( + resizableLeftPanelAPIRef.current.isCollapsed() && + resizableRightPanelAPIRef.current.isCollapsed() + ) { + return; + } + + // The code that follows is to handle cases when the group panel is resized to be + // too small to display either side panel at its current width. + + // Determine the current widths of the two side panels. + let leftPanelOffsetWidth = resizableLeftPanelAPIRef.current.isCollapsed() + ? sidePanelCollapsedOffsetWidth + : leftPanelExpandedWidth + sidePanelExpandedInsideBorderSize; + + let rightPanelOffsetWidth = resizableRightPanelAPIRef.current.isCollapsed() + ? sidePanelCollapsedOffsetWidth + : rightPanelExpandedWidth + sidePanelExpandedInsideBorderSize; + + if ( + !resizableLeftPanelAPIRef.current.isCollapsed() && + leftPanelOffsetWidth + rightPanelOffsetWidth > panelGroupWidth + ) { + // There is not enough space to show both panels at their pre-resize widths. + // Note that at this point, the viewport grid component is zero width. + // Reduce the left panel width so that both panels might fit. + leftPanelOffsetWidth = Math.max( + panelGroupWidth - rightPanelOffsetWidth, + sidePanelExpandedDefaultOffsetWidth + ); + setLeftPanelExpandedWidth(leftPanelOffsetWidth - sidePanelExpandedInsideBorderSize); + setMinMaxWidth(resizableLeftPanelElemRef.current, leftPanelOffsetWidth); + } + + if ( + !resizableRightPanelAPIRef.current.isCollapsed() && + rightPanelOffsetWidth + leftPanelOffsetWidth > panelGroupWidth + ) { + // There is not enough space to show both panels at their pre-resize widths. + // Note that at this point, the viewport grid component is zero width. + // Reduce the right panel width so that both panels might fit. + rightPanelOffsetWidth = Math.max( + panelGroupWidth - leftPanelOffsetWidth, + sidePanelExpandedDefaultOffsetWidth + ); + setRightPanelExpandedWidth(rightPanelOffsetWidth - sidePanelExpandedInsideBorderSize); + setMinMaxWidth(resizableRightPanelElemRef.current, rightPanelOffsetWidth); + } + }); + + observer.observe(resizablePanelGroupElemRef.current); + + return () => { + observer.disconnect(); + }; + }, [leftPanelExpandedWidth, resizablePanelDefaultSize, rightPanelExpandedWidth]); + + /** + * Handles dragging of either side panel resize handle. + */ + const onHandleDragging = useCallback( + isStartDrag => { + if (isStartDrag) { + isResizableHandleDraggingRef.current = true; + + setMinMaxWidth(resizableLeftPanelElemRef.current); + setMinMaxWidth(resizableRightPanelElemRef.current); + } else { + isResizableHandleDraggingRef.current = false; + + if (resizableLeftPanelAPIRef?.current?.isExpanded()) { + setMinMaxWidth( + resizableLeftPanelElemRef.current, + leftPanelExpandedWidth + sidePanelExpandedInsideBorderSize + ); + } + + if (resizableRightPanelAPIRef?.current?.isExpanded()) { + setMinMaxWidth( + resizableRightPanelElemRef.current, + rightPanelExpandedWidth + sidePanelExpandedInsideBorderSize + ); + } + } + }, + [leftPanelExpandedWidth, rightPanelExpandedWidth] + ); + + const onLeftPanelClose = useCallback(() => { + setLeftPanelClosed(true); + setMinMaxWidth(resizableLeftPanelElemRef.current); + resizableLeftPanelAPIRef?.current?.collapse(); + }, [setLeftPanelClosed]); + + const onLeftPanelOpen = useCallback(() => { + resizableLeftPanelAPIRef?.current?.expand(); + if (!isResizableHandleDraggingRef.current) { + setMinMaxWidth( + resizableLeftPanelElemRef.current, + leftPanelExpandedWidth + sidePanelExpandedInsideBorderSize + ); + } + setLeftPanelClosed(false); + }, [leftPanelExpandedWidth, setLeftPanelClosed]); + + const onLeftPanelResize = useCallback(size => { + if (resizableLeftPanelAPIRef.current.isCollapsed()) { + return; + } + + const { width: panelGroupWidth } = resizablePanelGroupElemRef.current.getBoundingClientRect(); + setLeftPanelExpandedWidth((size / 100) * panelGroupWidth - sidePanelExpandedInsideBorderSize); + }, []); + + const onRightPanelClose = useCallback(() => { + setRightPanelClosed(true); + setMinMaxWidth(resizableRightPanelElemRef.current); + resizableRightPanelAPIRef?.current?.collapse(); + }, [setRightPanelClosed]); + + const onRightPanelOpen = useCallback(() => { + resizableRightPanelAPIRef?.current?.expand(); + if (!isResizableHandleDraggingRef.current) { + setMinMaxWidth( + resizableRightPanelElemRef.current, + rightPanelExpandedWidth + sidePanelExpandedInsideBorderSize + ); + } + setRightPanelClosed(false); + }, [rightPanelExpandedWidth, setRightPanelClosed]); + + const onRightPanelResize = useCallback(size => { + if (resizableRightPanelAPIRef?.current?.isCollapsed()) { + return; + } + const { width: panelGroupWidth } = resizablePanelGroupElemRef.current.getBoundingClientRect(); + setRightPanelExpandedWidth((size / 100) * panelGroupWidth - sidePanelExpandedInsideBorderSize); + }, []); + + return [ + { + expandedWidth: leftPanelExpandedWidth, + collapsedWidth: sidePanelCollapsedWidth, + collapsedInsideBorderSize: sidePanelCollapsedInsideBorderSize, + collapsedOutsideBorderSize: sidePanelCollapsedOutsideBorderSize, + expandedInsideBorderSize: sidePanelExpandedInsideBorderSize, + onClose: onLeftPanelClose, + onOpen: onLeftPanelOpen, + }, + { + expandedWidth: rightPanelExpandedWidth, + collapsedWidth: sidePanelCollapsedWidth, + collapsedInsideBorderSize: sidePanelCollapsedInsideBorderSize, + collapsedOutsideBorderSize: sidePanelCollapsedOutsideBorderSize, + expandedInsideBorderSize: sidePanelExpandedInsideBorderSize, + onClose: onRightPanelClose, + onOpen: onRightPanelOpen, + }, + { direction: 'horizontal', id: viewerLayoutResizablePanelGroupId }, + { + defaultSize: resizablePanelDefaultSize, + minSize: resizablePanelDefaultSize, + onResize: onLeftPanelResize, + collapsible: true, + collapsedSize: resizablePanelCollapsedSize, + onCollapse: () => setLeftPanelClosed(true), + onExpand: () => setLeftPanelClosed(false), + ref: resizableLeftPanelAPIRef, + order: 0, + id: viewerLayoutResizableLeftPanelId, + }, + { order: 1, id: 'viewerLayoutResizableViewportGridPanel' }, + { + defaultSize: resizablePanelDefaultSize, + minSize: resizablePanelDefaultSize, + onResize: onRightPanelResize, + collapsible: true, + collapsedSize: resizablePanelCollapsedSize, + onCollapse: () => setRightPanelClosed(true), + onExpand: () => setRightPanelClosed(false), + ref: resizableRightPanelAPIRef, + order: 2, + id: viewerLayoutResizableRightPanelId, + }, + onHandleDragging, + ]; +}; + +export default useResizablePanels; diff --git a/extensions/default/src/ViewerLayout/index.tsx b/extensions/default/src/ViewerLayout/index.tsx index e19a24c68..b11ec0da4 100644 --- a/extensions/default/src/ViewerLayout/index.tsx +++ b/extensions/default/src/ViewerLayout/index.tsx @@ -6,7 +6,8 @@ import { HangingProtocolService, CommandsManager } from '@ohif/core'; import { useAppConfig } from '@state'; import ViewerHeader from './ViewerHeader'; import SidePanelWithServices from '../Components/SidePanelWithServices'; -import { Onboarding } from '@ohif/ui-next'; +import { Onboarding, ResizablePanelGroup, ResizablePanel, ResizableHandle } from '@ohif/ui-next'; +import useResizablePanels from './ResizablePanelsHook'; function ViewerLayout({ // From Extension Module Params @@ -19,6 +20,8 @@ function ViewerLayout({ ViewportGridComp, leftPanelClosed = false, rightPanelClosed = false, + leftPanelResizable = false, + rightPanelResizable = false, }: withAppTypes): React.FunctionComponent { const [appConfig] = useAppConfig(); @@ -35,6 +38,21 @@ function ViewerLayout({ const [leftPanelClosedState, setLeftPanelClosed] = useState(leftPanelClosed); const [rightPanelClosedState, setRightPanelClosed] = useState(rightPanelClosed); + const [ + leftPanelProps, + rightPanelProps, + resizablePanelGroupProps, + resizableLeftPanelProps, + resizableViewportGridPanelProps, + resizableRightPanelProps, + onHandleDragging, + ] = useResizablePanels( + leftPanelClosed, + setLeftPanelClosed, + rightPanelClosed, + setRightPanelClosed + ); + /** * Set body classes (tailwindcss) that don't allow vertical * or horizontal overflow (no scrolling). Also guarantee window @@ -123,31 +141,56 @@ function ViewerLayout({ > {showLoadingIndicator && } - {/* LEFT SIDEPANELS */} - {hasLeftPanels ? ( - - ) : null} - {/* TOOLBAR + GRID */} -

-
- -
-
- {hasRightPanels ? ( - - ) : null} + + {/* LEFT SIDEPANELS */} + + {hasLeftPanels ? ( + <> + + + + + + ) : null} + {/* TOOLBAR + GRID */} + +
+
+ +
+
+
+ {hasRightPanels ? ( + <> + + + + + + ) : null} +
diff --git a/modes/longitudinal/src/index.ts b/modes/longitudinal/src/index.ts index 68ce4ae38..6afe135fa 100644 --- a/modes/longitudinal/src/index.ts +++ b/modes/longitudinal/src/index.ts @@ -117,21 +117,30 @@ function modeFactory({ modeConfiguration }) { // // ActivatePanel event trigger for when a segmentation or measurement is added. // // Do not force activation so as to respect the state the user may have left the UI in. _activatePanelTriggersSubscriptions = [ - ...panelService.addActivatePanelTriggers(cornerstone.segmentation, [ - { - sourcePubSubService: segmentationService, - sourceEvents: [segmentationService.EVENTS.SEGMENTATION_ADDED], - }, - ]), - ...panelService.addActivatePanelTriggers(tracked.measurements, [ - { - sourcePubSubService: measurementService, - sourceEvents: [ - measurementService.EVENTS.MEASUREMENT_ADDED, - measurementService.EVENTS.RAW_MEASUREMENT_ADDED, - ], - }, - ]), + ...panelService.addActivatePanelTriggers( + cornerstone.segmentation, + [ + { + sourcePubSubService: segmentationService, + sourceEvents: [segmentationService.EVENTS.SEGMENTATION_ADDED], + }, + ], + true + ), + ...panelService.addActivatePanelTriggers( + tracked.measurements, + [ + { + sourcePubSubService: measurementService, + sourceEvents: [ + measurementService.EVENTS.MEASUREMENT_ADDED, + measurementService.EVENTS.RAW_MEASUREMENT_ADDED, + ], + }, + ], + true + ), + true, ]; }, onModeExit: ({ servicesManager }: withAppTypes) => { @@ -181,8 +190,10 @@ function modeFactory({ modeConfiguration }) { id: ohif.layout, props: { leftPanels: [tracked.thumbnailList], + leftPanelResizable: true, rightPanels: [cornerstone.segmentation, tracked.measurements], rightPanelClosed: true, + rightPanelResizable: true, viewports: [ { namespace: tracked.viewport, diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js index ad6837564..febbaf41a 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js @@ -15,7 +15,7 @@ describe('OHIF Measurement Panel', function () { cy.get('@RightCollapseBtn').click(); cy.get('@measurementsPanel').should('not.exist'); - cy.get('@RightCollapseBtn').click(); + cy.get('@RightCollapseBtn').click({ force: true }); // segmentation panel should be visible cy.get('@segmentationPanel').should('be.visible'); diff --git a/platform/core/src/services/PanelService/PanelService.tsx b/platform/core/src/services/PanelService/PanelService.tsx index 4900283e9..91a01ac91 100644 --- a/platform/core/src/services/PanelService/PanelService.tsx +++ b/platform/core/src/services/PanelService/PanelService.tsx @@ -151,13 +151,7 @@ export default class PanelService extends PubSubService { panelsIds.forEach(panelId => this.addPanel(position, panelId, options)); } - public setPanels( - panels: { [key in PanelPosition]: string[] }, - options: { - rightPanelClosed?: boolean; - leftPanelClosed?: boolean; - } - ): void { + public setPanels(panels: { [key in PanelPosition]: string[] }, options): void { this.reset(); Object.keys(panels).forEach((position: PanelPosition) => { diff --git a/platform/ui-next/package.json b/platform/ui-next/package.json index e7f60255b..30d7c3340 100644 --- a/platform/ui-next/package.json +++ b/platform/ui-next/package.json @@ -53,6 +53,7 @@ "next-themes": "^0.3.0", "react": "^18.3.1", "react-day-picker": "^8.10.1", + "react-resizable-panels": "^2.1.7", "react-shepherd": "6.1.1", "shepherd.js": "13.0.3", "sonner": "^1.5.0", diff --git a/platform/ui-next/src/components/Resizable/Resizable.tsx b/platform/ui-next/src/components/Resizable/Resizable.tsx new file mode 100644 index 000000000..967152b6b --- /dev/null +++ b/platform/ui-next/src/components/Resizable/Resizable.tsx @@ -0,0 +1,43 @@ +'use client'; +import React from 'react'; + +import { GripVertical } from 'lucide-react'; +import * as ResizablePrimitive from 'react-resizable-panels'; + +import cn from 'classnames'; + +const ResizablePanelGroup = ({ + className, + ...props +}: React.ComponentProps) => ( + +); + +const ResizablePanel = ResizablePrimitive.Panel; + +const ResizableHandle = ({ + withHandle, + className, + ...props +}: React.ComponentProps & { + withHandle?: boolean; +}) => ( + div]:rotate-90', + className + )} + {...props} + > + {withHandle && ( +
+ +
+ )} +
+); + +export { ResizablePanelGroup, ResizablePanel, ResizableHandle }; diff --git a/platform/ui-next/src/components/Resizable/index.ts b/platform/ui-next/src/components/Resizable/index.ts new file mode 100644 index 000000000..88432781a --- /dev/null +++ b/platform/ui-next/src/components/Resizable/index.ts @@ -0,0 +1,3 @@ +import { ResizablePanelGroup, ResizablePanel, ResizableHandle } from './Resizable'; + +export { ResizablePanelGroup, ResizablePanel, ResizableHandle }; diff --git a/platform/ui-next/src/components/SidePanel/SidePanel.tsx b/platform/ui-next/src/components/SidePanel/SidePanel.tsx index f331edb6a..5d8be607c 100644 --- a/platform/ui-next/src/components/SidePanel/SidePanel.tsx +++ b/platform/ui-next/src/components/SidePanel/SidePanel.tsx @@ -1,39 +1,64 @@ import classnames from 'classnames'; -import PropTypes from 'prop-types'; import React, { useCallback, useEffect, useState } from 'react'; import { Icons } from '../Icons'; -import { TooltipTrigger, TooltipContent, TooltipProvider, Tooltip } from '../Tooltip'; +import { TooltipTrigger, TooltipContent, Tooltip } from '../Tooltip'; import { Separator } from '../Separator'; +/** + * SidePanel component properties. + * Note that the component monitors changes to the various widths and border sizes and will resize dynamically + * @property {boolean} isExpanded - boolean indicating if the side panel is expanded/open or collapsed + * @property {number} expandedWidth - the width of this side panel when expanded not including any borders or margins + * @property {number} collapsedWidth - the width of this side panel when collapsed not including any borders or margins + * @property {number} expandedInsideBorderSize - the width of the space between the expanded side panel content and viewport grid + * @property {number} collapsedInsideBorderSize - the width of the space between the collapsed side panel content and the viewport grid + * @property {number} collapsedOutsideBorderSize - the width of the space between the collapsed side panel content and the edge of the browser window + */ +type SidePanelProps = { + side: 'left' | 'right'; + className: string; + activeTabIndex: number; + onOpen: () => void; + onClose: () => void; + onActiveTabIndexChange: () => void; + isExpanded: boolean; + expandedWidth: number; + collapsedWidth: number; + expandedInsideBorderSize: number; + collapsedInsideBorderSize: number; + collapsedOutsideBorderSize: number; + tabs: any; +}; + type StyleMap = { open: { - left: { marginLeft: string }; - right: { marginRight: string }; + left: { + marginLeft: string; // the space between the expanded/open left side panel and the browser window left edge + marginRight: string; // the space between the expanded/open left side panel and the viewport grid + }; + right: { + marginLeft: string; // the space between the expanded/open right side panel and the viewport grid + marginRight: string; // the space between the expanded/open right side panel and the browser window right edge + }; }; closed: { - left: { marginLeft: string }; - right: { marginRight: string }; + left: { + marginLeft: string; // the space between the collapsed/closed left panel and the browser window left edge + marginRight: string; // the space between the collapsed/closed left panel and the viewport grid + alignItems: 'flex-end'; // the flexbox layout align-items property + }; + right: { + marginLeft: string; // the space between the collapsed/closed right panel and the viewport grid + marginRight: string; // the space between the collapsed/closed right panel and the browser window right edge + alignItems: 'flex-start'; // the flexbox layout align-items property + }; }; }; -const borderSize = 4; -const collapsedWidth = 25; const closeIconWidth = 30; const gridHorizontalPadding = 10; const tabSpacerWidth = 2; -const baseClasses = - 'transition-all duration-300 ease-in-out bg-black border-black justify-start box-content flex flex-col'; - -const classesMap = { - open: { - left: `mr-1`, - right: `ml-1`, - }, - closed: { - left: `mr-2 items-end`, - right: `ml-2 items-start`, - }, -}; +const baseClasses = 'bg-black border-black justify-start box-content flex flex-col'; const openStateIconName = { left: 'SidePanelCloseLeft', @@ -106,19 +131,29 @@ const getTabIconClassNames = (numTabs: number, isActiveTab: boolean) => { }; const createStyleMap = ( expandedWidth: number, - borderSize: number, - collapsedWidth: number + expandedInsideBorderSize: number, + collapsedWidth: number, + collapsedInsideBorderSize: number, + collapsedOutsideBorderSize: number ): StyleMap => { - const collapsedHideWidth = expandedWidth - collapsedWidth - borderSize; + const collapsedHideWidth = expandedWidth - collapsedWidth - collapsedInsideBorderSize; return { open: { - left: { marginLeft: '0px' }, - right: { marginRight: '0px' }, + left: { marginLeft: '0px', marginRight: `${expandedInsideBorderSize}px` }, + right: { marginLeft: `${expandedInsideBorderSize}px`, marginRight: '0px' }, }, closed: { - left: { marginLeft: `-${collapsedHideWidth}px` }, - right: { marginRight: `-${collapsedHideWidth}px` }, + left: { + marginLeft: `-${collapsedHideWidth}px`, + marginRight: `${collapsedOutsideBorderSize}px`, + alignItems: `flex-end`, + }, + right: { + marginLeft: `${collapsedOutsideBorderSize}px`, + marginRight: `-${collapsedHideWidth}px`, + alignItems: `flex-start`, + }, }, }; }; @@ -143,47 +178,67 @@ const createBaseStyle = (expandedWidth: number) => { height: '99.8%', }; }; + const SidePanel = ({ side, className, - activeTabIndex: activeTabIndexProp = null, + activeTabIndex: activeTabIndexProp, + isExpanded, tabs, onOpen, onClose, - expandedWidth = 280, onActiveTabIndexChange, -}) => { - const [panelOpen, setPanelOpen] = useState(activeTabIndexProp !== null); - const [activeTabIndex, setActiveTabIndex] = useState(0); + expandedWidth = 280, + collapsedWidth = 25, + expandedInsideBorderSize = 4, + collapsedInsideBorderSize = 8, + collapsedOutsideBorderSize = 4, +}: SidePanelProps) => { + const [panelOpen, setPanelOpen] = useState(isExpanded); + const [activeTabIndex, setActiveTabIndex] = useState(activeTabIndexProp ?? 0); - const styleMap = createStyleMap(expandedWidth, borderSize, collapsedWidth); - const baseStyle = createBaseStyle(expandedWidth); - const gridAvailableWidth = expandedWidth - closeIconWidth - gridHorizontalPadding; - const gridWidth = getGridWidth(tabs.length, gridAvailableWidth); + const [styleMap, setStyleMap] = useState( + createStyleMap( + expandedWidth, + expandedInsideBorderSize, + collapsedWidth, + collapsedInsideBorderSize, + collapsedOutsideBorderSize + ) + ); + + const [baseStyle, setBaseStyle] = useState(createBaseStyle(expandedWidth)); + + const [gridAvailableWidth, setGridAvailableWidth] = useState( + expandedWidth - closeIconWidth - gridHorizontalPadding + ); + + const [gridWidth, setGridWidth] = useState(getGridWidth(tabs.length, gridAvailableWidth)); const openStatus = panelOpen ? 'open' : 'closed'; const style = Object.assign({}, styleMap[openStatus][side], baseStyle); const updatePanelOpen = useCallback( - (panelOpen: boolean) => { - setPanelOpen(panelOpen); - if (panelOpen && onOpen) { - onOpen(); - } else if (onClose && !panelOpen) { - onClose(); + (isOpen: boolean) => { + setPanelOpen(isOpen); + if (isOpen !== panelOpen) { + // only fire events for changes + if (isOpen && onOpen) { + onOpen(); + } else if (onClose && !isOpen) { + onClose(); + } } }, - [onOpen, onClose] + [panelOpen, onOpen, onClose] ); const updateActiveTabIndex = useCallback( - (activeTabIndex: number) => { - if (activeTabIndex === null) { - updatePanelOpen(false); - return; + (activeTabIndex: number, forceOpen: boolean = false) => { + if (forceOpen) { + updatePanelOpen(true); } setActiveTabIndex(activeTabIndex); - updatePanelOpen(true); if (onActiveTabIndexChange) { onActiveTabIndexChange({ activeTabIndex }); @@ -193,7 +248,35 @@ const SidePanel = ({ ); useEffect(() => { - updateActiveTabIndex(activeTabIndexProp); + updatePanelOpen(isExpanded); + }, [isExpanded, updatePanelOpen]); + + useEffect(() => { + setStyleMap( + createStyleMap( + expandedWidth, + expandedInsideBorderSize, + collapsedWidth, + collapsedInsideBorderSize, + collapsedOutsideBorderSize + ) + ); + setBaseStyle(createBaseStyle(expandedWidth)); + + const gridAvailableWidth = expandedWidth - closeIconWidth - gridHorizontalPadding; + setGridAvailableWidth(gridAvailableWidth); + setGridWidth(getGridWidth(tabs.length, gridAvailableWidth)); + }, [ + collapsedInsideBorderSize, + collapsedWidth, + expandedWidth, + expandedInsideBorderSize, + tabs.length, + collapsedOutsideBorderSize, + ]); + + useEffect(() => { + updateActiveTabIndex(activeTabIndexProp ?? 0); }, [activeTabIndexProp, updateActiveTabIndex]); const getCloseStateComponent = () => { @@ -223,7 +306,7 @@ const SidePanel = ({ data-cy={`${childComponent.name}-btn`} className="text-primary-active hover:cursor-pointer" onClick={() => { - return childComponent.disabled ? null : updateActiveTabIndex(index); + return childComponent.disabled ? null : updateActiveTabIndex(index, true); }} > {React.createElement(Icons[childComponent.iconName] || Icons.MissingIcon, { @@ -374,7 +457,7 @@ const SidePanel = ({ return (
{panelOpen ? ( @@ -394,14 +477,4 @@ const SidePanel = ({ ); }; -SidePanel.propTypes = { - side: PropTypes.oneOf(['left', 'right']).isRequired, - className: PropTypes.string, - activeTabIndex: PropTypes.number, - onOpen: PropTypes.func, - onClose: PropTypes.func, - onActiveTabIndexChange: PropTypes.func, - expandedWidth: PropTypes.number, -}; - export { SidePanel }; diff --git a/platform/ui-next/src/components/index.ts b/platform/ui-next/src/components/index.ts index 20e613921..c2d57b748 100644 --- a/platform/ui-next/src/components/index.ts +++ b/platform/ui-next/src/components/index.ts @@ -27,6 +27,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '. import { Clipboard } from './Clipboard'; import { Combobox } from './Combobox'; import { Popover, PopoverContent, PopoverTrigger, PopoverAnchor } from './Popover'; +import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './Resizable'; import { Calendar } from './Calendar'; import { DatePickerWithRange } from './DateRange'; import { Separator } from './Separator'; @@ -121,6 +122,9 @@ export { PopoverContent, PopoverTrigger, PopoverAnchor, + ResizableHandle, + ResizablePanel, + ResizablePanelGroup, Calendar, DatePickerWithRange, Input, diff --git a/platform/ui-next/src/index.ts b/platform/ui-next/src/index.ts index 874f222da..a37eb59ca 100644 --- a/platform/ui-next/src/index.ts +++ b/platform/ui-next/src/index.ts @@ -44,6 +44,9 @@ import { PopoverAnchor, PopoverContent, PopoverTrigger, + ResizablePanelGroup, + ResizablePanel, + ResizableHandle, Select, SelectTrigger, SelectContent, @@ -150,6 +153,9 @@ export { PopoverAnchor, PopoverContent, PopoverTrigger, + ResizablePanelGroup, + ResizablePanel, + ResizableHandle, Select, SelectTrigger, SelectContent, diff --git a/yarn.lock b/yarn.lock index 54a49352d..e53f588a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1394,9 +1394,9 @@ integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@cornerstonejs/adapters@^2.15.3": - version "2.15.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-2.15.3.tgz#0b29519748fd1a51522f5a0c362317d51af98a7f" - integrity sha512-TeYSM+qUh+x1XrPR4Tqowp3+T6X+g+H9i2siF33gOw+cIDi4EQ14WNcvWSB2tHmqHvg/Rmta9Kvgha0dSoWTzA== + version "2.15.5" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-2.15.5.tgz#2fce5e7ad5a3e7b5f229c5a1f4e07d6c91f9836c" + integrity sha512-ohdp8waX52ZpPhnrJJnM64Dlc2+X+DCL8HvYB/SjvE/H1YsHk1Pa5trd5taEKq1GJks3LX19XIuWTpKj/wXTUA== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -1430,18 +1430,18 @@ integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== "@cornerstonejs/core@^2.15.3": - version "2.15.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-2.15.3.tgz#62b82ac8ebc6a5cf30f96e358bf7654f4eee71b4" - integrity sha512-qQDvDUtONz7ydI6yf2RPI+p7/846IxnSPgCPgqLaVohjWjHeZkyhV5oY6lN50ZxgHkWmBvinw6l2wjvh4x1bKw== + version "2.15.5" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-2.15.5.tgz#2c81bf28a1e15dfbe25215a7df6ae29b70e7d621" + integrity sha512-P+Dzsdgp9uSqcIBRECHI0Kj1G2//2UacstRmsRc3uxXgJ0lJ7AaLS31F4xVNOf+5mHMsB8BUsxdDg6iujX9lQA== dependencies: "@kitware/vtk.js" "32.9.0" comlink "^4.4.1" gl-matrix "^3.4.3" "@cornerstonejs/dicom-image-loader@^2.15.3": - version "2.15.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-2.15.3.tgz#1ab90d03fab2674cbdfd6a56f4d3da585f69abf6" - integrity sha512-/njbngdKBV3DEcD5UrPD9B3QC/eXS8gx9U3hfAvABFihaSQFd7/rEgKte1EbShQ9Qdtx1FPiaX+uMmhGPxVsQA== + version "2.15.5" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-2.15.5.tgz#867636c95321dc03d5eb960266af300609f28d54" + integrity sha512-XbWHlfNe6/+W6xFYSSBcOQNTJfCg0FRduh+AXfMxES96xTSdK/1LObeOOtVq5QCslUU90ERHuUYSY8wDNiys7w== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" @@ -1453,9 +1453,9 @@ uuid "^9.0.0" "@cornerstonejs/tools@^2.15.3": - version "2.15.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-2.15.3.tgz#b778f67f13faf62d625c6ce8bbe8eed656f29ba0" - integrity sha512-NzEeII/xTc4kFjvCZ0HV3LNOtlkFvPobxwHePuMq9wa8/2M89+blDrbrm1IOkO0xKrKMNnTqt1wTzBjcy+TKGA== + version "2.15.5" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-2.15.5.tgz#e38ff0e5a7158f073f361068ff0bbc2fe337fe7b" + integrity sha512-uOphCv2ulmRijy72emPUkXYw1JXYYygTPKWNmaEA6PX17fE6NlQfYdJc4GHVkXiqj2YJCDzN1PwukI1dWfL9Vg== dependencies: "@types/offscreencanvas" "2019.7.3" comlink "^4.4.1" @@ -3731,10 +3731,10 @@ resolved "https://registry.yarnpkg.com/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz#a3031eb54129f2c66b2753f8404266ec7bf67f0a" integrity sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg== -"@remix-run/router@1.21.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.21.0.tgz#c65ae4262bdcfe415dbd4f64ec87676e4a56e2b5" - integrity sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA== +"@remix-run/router@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.19.2.tgz#0c896535473291cb41f152c180bedd5680a3b273" + integrity sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA== "@rollup/plugin-babel@^5.2.0": version "5.3.1" @@ -5068,9 +5068,9 @@ "@types/node" "*" "@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.4.tgz#88c29e3052cec3536d64b6ce5015a30dfcbefca7" - integrity sha512-5kz9ScmzBdzTgB/3susoCgfqNDzBjvLL4taparufgSvlwjdLy6UyUy9T/tCpYd2GIdIilCatC4iSQS0QSYHt0w== + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz#91f06cda1049e8f17eeab364798ed79c97488a1c" + integrity sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw== dependencies: "@types/node" "*" "@types/qs" "*" @@ -5480,9 +5480,9 @@ integrity sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg== "@types/ws@^8.2.2": - version "8.5.13" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" - integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== + version "8.5.12" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e" + integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== dependencies: "@types/node" "*" @@ -10099,44 +10099,7 @@ exponential-backoff@^3.1.1: resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== -express@^4.17.1: - version "4.21.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" - integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.3" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.12" - proxy-addr "~2.0.7" - qs "6.13.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -express@^4.17.3: +express@^4.17.1, express@^4.17.3: version "4.21.1" resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281" integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ== @@ -10531,12 +10494,7 @@ flow-parser@0.*: resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.247.1.tgz#4a512c882cd08126825fe00b1ee452637ef44371" integrity sha512-DHwcm06fWbn2Z6uFD3NaBZ5lMOoABIQ4asrVA80IWvYjjT5WdbghkUOL1wIcbLcagnFTdCZYOlSNnKNp/xnRZQ== -follow-redirects@^1.0.0: - version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" - integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== - -follow-redirects@^1.14.9, follow-redirects@^1.15.0, follow-redirects@^1.15.6: +follow-redirects@^1.0.0, follow-redirects@^1.14.9, follow-redirects@^1.15.0, follow-redirects@^1.15.6: version "1.15.6" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== @@ -11468,9 +11426,9 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.5.1: - version "0.5.9" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.9.tgz#b817b3ca0edea6236225000d795378707c169cec" - integrity sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw== + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== http-proxy-agent@^5.0.0: version "5.0.0" @@ -15701,11 +15659,6 @@ path-to-regexp@0.1.10: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== -path-to-regexp@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" - integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== - path-to-regexp@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-3.3.0.tgz#f7f31d32e8518c2660862b644414b6d5c63a611b" @@ -17160,6 +17113,11 @@ react-remove-scroll@^2.6.1: use-callback-ref "^1.3.3" use-sidecar "^1.1.2" +react-resizable-panels@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/react-resizable-panels/-/react-resizable-panels-2.1.7.tgz#afd29d8a3d708786a9f95183a38803c89f13c2e7" + integrity sha512-JtT6gI+nURzhMYQYsx8DKkx6bSoOGFp7A3CwMrOb8y5jFHFyqwo9m68UhmXRw57fRVJksFn1TSlm3ywEQ9vMgA== + react-resize-detector@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-10.0.1.tgz#ae9a8c5b6b93c4c11e03b3eb87e57fd7b62f1020" @@ -17168,19 +17126,19 @@ react-resize-detector@^10.0.1: lodash "^4.17.21" react-router-dom@^6.8.1: - version "6.28.1" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.28.1.tgz#b78fe452d2cd31919b80e57047a896bfa1509f8c" - integrity sha512-YraE27C/RdjcZwl5UCqF/ffXnZDxpJdk9Q6jw38SZHjXs7NNdpViq2l2c7fO7+4uWaEfcwfGCv3RSg4e1By/fQ== + version "6.26.2" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.26.2.tgz#a6e3b0cbd6bfd508e42b9342099d015a0ac59680" + integrity sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ== dependencies: - "@remix-run/router" "1.21.0" - react-router "6.28.1" + "@remix-run/router" "1.19.2" + react-router "6.26.2" -react-router@6.28.1, react-router@^6.23.1: - version "6.28.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.28.1.tgz#f82317ab24eee67d7beb7b304c0378b2b48fa178" - integrity sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA== +react-router@6.26.2, react-router@^6.23.1: + version "6.26.2" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.26.2.tgz#2f0a68999168954431cdc29dd36cec3b6fa44a7e" + integrity sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A== dependencies: - "@remix-run/router" "1.21.0" + "@remix-run/router" "1.19.2" react-select@5.7.4: version "5.7.4" @@ -17406,9 +17364,9 @@ readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable util-deprecate "^1.0.1" readable-stream@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" - integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + version "4.7.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.7.0.tgz#cedbd8a1146c13dfff8dab14068028d58c15ac91" + integrity sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg== dependencies: abort-controller "^3.0.0" buffer "^6.0.3" @@ -18699,7 +18657,7 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0": +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -18717,15 +18675,6 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -18828,7 +18777,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -18849,13 +18798,6 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.0, strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -20687,7 +20629,7 @@ worker-loader@3.0.8, worker-loader@^3.0.8: loader-utils "^2.0.0" schema-utils "^3.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -20713,15 +20655,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"