react-cheminfo 0.27.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -25
- package/lib/chart/core/axisLabels.d.ts +82 -0
- package/lib/chart/core/axisLabels.d.ts.map +1 -0
- package/lib/chart/core/axisLabels.js +111 -0
- package/lib/chart/core/axisLabels.js.map +1 -0
- package/lib/chart/core/boxLayout.d.ts +53 -0
- package/lib/chart/core/boxLayout.d.ts.map +1 -0
- package/lib/chart/core/boxLayout.js +112 -0
- package/lib/chart/core/boxLayout.js.map +1 -0
- package/lib/chart/core/chartAxisScale.d.ts +23 -2
- package/lib/chart/core/chartAxisScale.d.ts.map +1 -1
- package/lib/chart/core/chartAxisScale.js +64 -13
- package/lib/chart/core/chartAxisScale.js.map +1 -1
- package/lib/chart/core/chartDomain.d.ts +160 -0
- package/lib/chart/core/chartDomain.d.ts.map +1 -0
- package/lib/chart/core/chartDomain.js +46 -0
- package/lib/chart/core/chartDomain.js.map +1 -0
- package/lib/chart/core/chartGeometry.d.ts +131 -0
- package/lib/chart/core/chartGeometry.d.ts.map +1 -0
- package/lib/chart/core/chartGeometry.js +101 -0
- package/lib/chart/core/chartGeometry.js.map +1 -0
- package/lib/chart/core/chartPane.d.ts +11 -0
- package/lib/chart/core/chartPane.d.ts.map +1 -0
- package/lib/chart/core/chartPane.js +11 -0
- package/lib/chart/core/chartPane.js.map +1 -0
- package/lib/chart/core/chartScale.d.ts +4 -1
- package/lib/chart/core/chartScale.d.ts.map +1 -1
- package/lib/chart/core/chartScale.js +8 -4
- package/lib/chart/core/chartScale.js.map +1 -1
- package/lib/chart/core/chartTheme.d.ts +156 -0
- package/lib/chart/core/chartTheme.d.ts.map +1 -0
- package/lib/chart/core/chartTheme.js +156 -0
- package/lib/chart/core/chartTheme.js.map +1 -0
- package/lib/chart/core/chartViewport.d.ts +32 -5
- package/lib/chart/core/chartViewport.d.ts.map +1 -1
- package/lib/chart/core/chartViewport.js +40 -11
- package/lib/chart/core/chartViewport.js.map +1 -1
- package/lib/chart/core/guidePlacement.d.ts +52 -0
- package/lib/chart/core/guidePlacement.d.ts.map +1 -0
- package/lib/chart/core/guidePlacement.js +52 -0
- package/lib/chart/core/guidePlacement.js.map +1 -0
- package/lib/chart/core/index.d.ts +29 -2
- package/lib/chart/core/index.d.ts.map +1 -1
- package/lib/chart/core/index.js +19 -2
- package/lib/chart/core/index.js.map +1 -1
- package/lib/chart/core/labelStack.d.ts +27 -0
- package/lib/chart/core/labelStack.d.ts.map +1 -0
- package/lib/chart/core/labelStack.js +62 -0
- package/lib/chart/core/labelStack.js.map +1 -0
- package/lib/chart/core/legendBox.d.ts +152 -0
- package/lib/chart/core/legendBox.d.ts.map +1 -0
- package/lib/chart/core/legendBox.js +169 -0
- package/lib/chart/core/legendBox.js.map +1 -0
- package/lib/chart/core/selectionGeometry.d.ts +45 -0
- package/lib/chart/core/selectionGeometry.d.ts.map +1 -0
- package/lib/chart/core/selectionGeometry.js +49 -0
- package/lib/chart/core/selectionGeometry.js.map +1 -0
- package/lib/chart/core/spectrumColor.d.ts +80 -0
- package/lib/chart/core/spectrumColor.d.ts.map +1 -0
- package/lib/chart/core/spectrumColor.js +120 -0
- package/lib/chart/core/spectrumColor.js.map +1 -0
- package/lib/chart/core/stackCapacity.d.ts +136 -0
- package/lib/chart/core/stackCapacity.d.ts.map +1 -0
- package/lib/chart/core/stackCapacity.js +153 -0
- package/lib/chart/core/stackCapacity.js.map +1 -0
- package/lib/chart/core/svgPoint.d.ts +62 -0
- package/lib/chart/core/svgPoint.d.ts.map +1 -0
- package/lib/chart/core/svgPoint.js +43 -0
- package/lib/chart/core/svgPoint.js.map +1 -0
- package/lib/chart/core/tracePath.d.ts +94 -0
- package/lib/chart/core/tracePath.d.ts.map +1 -0
- package/lib/chart/core/tracePath.js +191 -0
- package/lib/chart/core/tracePath.js.map +1 -0
- package/lib/chart/core/trackerReadout.d.ts +55 -0
- package/lib/chart/core/trackerReadout.d.ts.map +1 -0
- package/lib/chart/core/trackerReadout.js +53 -0
- package/lib/chart/core/trackerReadout.js.map +1 -0
- package/lib/chart/core/viewTransform.d.ts +167 -0
- package/lib/chart/core/viewTransform.d.ts.map +1 -0
- package/lib/chart/core/viewTransform.js +188 -0
- package/lib/chart/core/viewTransform.js.map +1 -0
- package/lib/chart/core/zoomDomain.d.ts +127 -0
- package/lib/chart/core/zoomDomain.d.ts.map +1 -0
- package/lib/chart/core/zoomDomain.js +175 -0
- package/lib/chart/core/zoomDomain.js.map +1 -0
- package/lib/chart/ui/Axes.d.ts +104 -0
- package/lib/chart/ui/Axes.d.ts.map +1 -0
- package/lib/chart/ui/Axes.js +155 -0
- package/lib/chart/ui/Axes.js.map +1 -0
- package/lib/chart/ui/AxisGuide.d.ts +60 -0
- package/lib/chart/ui/AxisGuide.d.ts.map +1 -0
- package/lib/chart/ui/AxisGuide.js +111 -0
- package/lib/chart/ui/AxisGuide.js.map +1 -0
- package/lib/chart/ui/ChartStack.d.ts +81 -0
- package/lib/chart/ui/ChartStack.d.ts.map +1 -0
- package/lib/chart/ui/ChartStack.js +42 -0
- package/lib/chart/ui/ChartStack.js.map +1 -0
- package/lib/chart/ui/ChartTracker.d.ts +36 -0
- package/lib/chart/ui/ChartTracker.d.ts.map +1 -0
- package/lib/chart/ui/ChartTracker.js +27 -0
- package/lib/chart/ui/ChartTracker.js.map +1 -0
- package/lib/chart/ui/PlotCaption.d.ts +44 -0
- package/lib/chart/ui/PlotCaption.d.ts.map +1 -0
- package/lib/chart/ui/PlotCaption.js +68 -0
- package/lib/chart/ui/PlotCaption.js.map +1 -0
- package/lib/chart/ui/SelectionRect.d.ts +27 -0
- package/lib/chart/ui/SelectionRect.d.ts.map +1 -0
- package/lib/chart/ui/SelectionRect.js +31 -0
- package/lib/chart/ui/SelectionRect.js.map +1 -0
- package/lib/chart/ui/TraceLegend.d.ts +99 -0
- package/lib/chart/ui/TraceLegend.d.ts.map +1 -0
- package/lib/chart/ui/TraceLegend.js +45 -0
- package/lib/chart/ui/TraceLegend.js.map +1 -0
- package/lib/chart/ui/chartGestures.d.ts +158 -0
- package/lib/chart/ui/chartGestures.d.ts.map +1 -0
- package/lib/chart/ui/chartGestures.js +145 -0
- package/lib/chart/ui/chartGestures.js.map +1 -0
- package/lib/chart/ui/chartStackLevel.d.ts +115 -0
- package/lib/chart/ui/chartStackLevel.d.ts.map +1 -0
- package/lib/chart/ui/chartStackLevel.js +96 -0
- package/lib/chart/ui/chartStackLevel.js.map +1 -0
- package/lib/chart/ui/chartSurface.d.ts +35 -0
- package/lib/chart/ui/chartSurface.d.ts.map +1 -0
- package/lib/chart/ui/chartSurface.js +58 -0
- package/lib/chart/ui/chartSurface.js.map +1 -0
- package/lib/chart/ui/index.d.ts +24 -0
- package/lib/chart/ui/index.d.ts.map +1 -1
- package/lib/chart/ui/index.js +13 -0
- package/lib/chart/ui/index.js.map +1 -1
- package/lib/chart/ui/useChartPointer.d.ts +124 -0
- package/lib/chart/ui/useChartPointer.d.ts.map +1 -0
- package/lib/chart/ui/useChartPointer.js +152 -0
- package/lib/chart/ui/useChartPointer.js.map +1 -0
- package/lib/chart/ui/useChartSize.d.ts +49 -0
- package/lib/chart/ui/useChartSize.d.ts.map +1 -0
- package/lib/chart/ui/useChartSize.js +91 -0
- package/lib/chart/ui/useChartSize.js.map +1 -0
- package/lib/chart/ui/useChartWindow.d.ts +147 -0
- package/lib/chart/ui/useChartWindow.d.ts.map +1 -0
- package/lib/chart/ui/useChartWindow.js +135 -0
- package/lib/chart/ui/useChartWindow.js.map +1 -0
- package/lib/chart/ui/useChartZoom.d.ts +88 -0
- package/lib/chart/ui/useChartZoom.d.ts.map +1 -0
- package/lib/chart/ui/useChartZoom.js +142 -0
- package/lib/chart/ui/useChartZoom.js.map +1 -0
- package/lib/chart/ui/useWheelListener.d.ts +30 -0
- package/lib/chart/ui/useWheelListener.d.ts.map +1 -0
- package/lib/chart/ui/useWheelListener.js +57 -0
- package/lib/chart/ui/useWheelListener.js.map +1 -0
- package/lib/clipboard/core/copyPng.d.ts +13 -0
- package/lib/clipboard/core/copyPng.d.ts.map +1 -0
- package/lib/clipboard/core/copyPng.js +19 -0
- package/lib/clipboard/core/copyPng.js.map +1 -0
- package/lib/clipboard/core/index.d.ts +1 -0
- package/lib/clipboard/core/index.d.ts.map +1 -1
- package/lib/clipboard/core/index.js +1 -0
- package/lib/clipboard/core/index.js.map +1 -1
- package/lib/clipboard/ui/CopyableValue.d.ts +12 -9
- package/lib/clipboard/ui/CopyableValue.d.ts.map +1 -1
- package/lib/clipboard/ui/CopyableValue.js +11 -15
- package/lib/clipboard/ui/CopyableValue.js.map +1 -1
- package/lib/core.d.ts +1 -0
- package/lib/core.d.ts.map +1 -1
- package/lib/core.js +1 -0
- package/lib/core.js.map +1 -1
- package/lib/download/core/exportStyles.d.ts +22 -0
- package/lib/download/core/exportStyles.d.ts.map +1 -0
- package/lib/download/core/exportStyles.js +19 -0
- package/lib/download/core/exportStyles.js.map +1 -0
- package/lib/download/core/imageResolution.d.ts +88 -0
- package/lib/download/core/imageResolution.d.ts.map +1 -0
- package/lib/download/core/imageResolution.js +77 -0
- package/lib/download/core/imageResolution.js.map +1 -0
- package/lib/download/core/index.d.ts +13 -0
- package/lib/download/core/index.d.ts.map +1 -1
- package/lib/download/core/index.js +8 -0
- package/lib/download/core/index.js.map +1 -1
- package/lib/download/core/pictureExport.d.ts +93 -0
- package/lib/download/core/pictureExport.d.ts.map +1 -0
- package/lib/download/core/pictureExport.js +116 -0
- package/lib/download/core/pictureExport.js.map +1 -0
- package/lib/download/core/stackedDrawing.d.ts +36 -0
- package/lib/download/core/stackedDrawing.d.ts.map +1 -0
- package/lib/download/core/stackedDrawing.js +98 -0
- package/lib/download/core/stackedDrawing.js.map +1 -0
- package/lib/download/core/svgBounds.d.ts +44 -0
- package/lib/download/core/svgBounds.d.ts.map +1 -0
- package/lib/download/core/svgBounds.js +69 -0
- package/lib/download/core/svgBounds.js.map +1 -0
- package/lib/download/core/svgNamespace.d.ts +9 -0
- package/lib/download/core/svgNamespace.d.ts.map +1 -0
- package/lib/download/core/svgNamespace.js +10 -0
- package/lib/download/core/svgNamespace.js.map +1 -0
- package/lib/download/core/svgToPng.d.ts +43 -0
- package/lib/download/core/svgToPng.d.ts.map +1 -0
- package/lib/download/core/svgToPng.js +79 -0
- package/lib/download/core/svgToPng.js.map +1 -0
- package/lib/download/core/svgToString.d.ts +45 -0
- package/lib/download/core/svgToString.d.ts.map +1 -0
- package/lib/download/core/svgToString.js +58 -0
- package/lib/download/core/svgToString.js.map +1 -0
- package/lib/download/ui/ExportDialogFrame.d.ts +46 -0
- package/lib/download/ui/ExportDialogFrame.d.ts.map +1 -0
- package/lib/download/ui/ExportDialogFrame.js +24 -0
- package/lib/download/ui/ExportDialogFrame.js.map +1 -0
- package/lib/download/ui/ExportImageDialog.d.ts +47 -0
- package/lib/download/ui/ExportImageDialog.d.ts.map +1 -0
- package/lib/download/ui/ExportImageDialog.js +25 -0
- package/lib/download/ui/ExportImageDialog.js.map +1 -0
- package/lib/download/ui/ExportNameField.d.ts +29 -0
- package/lib/download/ui/ExportNameField.d.ts.map +1 -0
- package/lib/download/ui/ExportNameField.js +99 -0
- package/lib/download/ui/ExportNameField.js.map +1 -0
- package/lib/download/ui/ExportPictureSection.d.ts +38 -0
- package/lib/download/ui/ExportPictureSection.d.ts.map +1 -0
- package/lib/download/ui/ExportPictureSection.js +48 -0
- package/lib/download/ui/ExportPictureSection.js.map +1 -0
- package/lib/download/ui/index.d.ts +10 -0
- package/lib/download/ui/index.d.ts.map +1 -1
- package/lib/download/ui/index.js +5 -0
- package/lib/download/ui/index.js.map +1 -1
- package/lib/download/ui/useDrawingBox.d.ts +23 -0
- package/lib/download/ui/useDrawingBox.d.ts.map +1 -0
- package/lib/download/ui/useDrawingBox.js +21 -0
- package/lib/download/ui/useDrawingBox.js.map +1 -0
- package/lib/error/core/describeSource.d.ts +17 -0
- package/lib/error/core/describeSource.d.ts.map +1 -0
- package/lib/error/core/describeSource.js +19 -0
- package/lib/error/core/describeSource.js.map +1 -0
- package/lib/error/core/index.d.ts +1 -0
- package/lib/error/core/index.d.ts.map +1 -1
- package/lib/error/core/index.js +1 -0
- package/lib/error/core/index.js.map +1 -1
- package/lib/help/ui/HelpBody.d.ts +10 -1
- package/lib/help/ui/HelpBody.d.ts.map +1 -1
- package/lib/help/ui/HelpBody.js +24 -1
- package/lib/help/ui/HelpBody.js.map +1 -1
- package/lib/help/ui/index.d.ts +1 -1
- package/lib/help/ui/index.d.ts.map +1 -1
- package/lib/help/ui/index.js.map +1 -1
- package/lib/ir/core/analysisSpectra.d.ts +46 -0
- package/lib/ir/core/analysisSpectra.d.ts.map +1 -0
- package/lib/ir/core/analysisSpectra.js +187 -0
- package/lib/ir/core/analysisSpectra.js.map +1 -0
- package/lib/ir/core/assignBands.d.ts +83 -0
- package/lib/ir/core/assignBands.d.ts.map +1 -0
- package/lib/ir/core/assignBands.js +83 -0
- package/lib/ir/core/assignBands.js.map +1 -0
- package/lib/ir/core/bandAssignments.d.ts +47 -0
- package/lib/ir/core/bandAssignments.d.ts.map +1 -0
- package/lib/ir/core/bandAssignments.js +305 -0
- package/lib/ir/core/bandAssignments.js.map +1 -0
- package/lib/ir/core/bandLabelPlan.d.ts +93 -0
- package/lib/ir/core/bandLabelPlan.d.ts.map +1 -0
- package/lib/ir/core/bandLabelPlan.js +104 -0
- package/lib/ir/core/bandLabelPlan.js.map +1 -0
- package/lib/ir/core/detectIrFormat.d.ts +23 -0
- package/lib/ir/core/detectIrFormat.d.ts.map +1 -0
- package/lib/ir/core/detectIrFormat.js +133 -0
- package/lib/ir/core/detectIrFormat.js.map +1 -0
- package/lib/ir/core/downloadSpectra.d.ts +26 -0
- package/lib/ir/core/downloadSpectra.d.ts.map +1 -0
- package/lib/ir/core/downloadSpectra.js +37 -0
- package/lib/ir/core/downloadSpectra.js.map +1 -0
- package/lib/ir/core/fromJcamp.d.ts +35 -0
- package/lib/ir/core/fromJcamp.d.ts.map +1 -0
- package/lib/ir/core/fromJcamp.js +48 -0
- package/lib/ir/core/fromJcamp.js.map +1 -0
- package/lib/ir/core/fromSpc.d.ts +30 -0
- package/lib/ir/core/fromSpc.d.ts.map +1 -0
- package/lib/ir/core/fromSpc.js +40 -0
- package/lib/ir/core/fromSpc.js.map +1 -0
- package/lib/ir/core/index.d.ts +51 -0
- package/lib/ir/core/index.d.ts.map +1 -0
- package/lib/ir/core/index.js +35 -0
- package/lib/ir/core/index.js.map +1 -0
- package/lib/ir/core/irBand.d.ts +45 -0
- package/lib/ir/core/irBand.d.ts.map +1 -0
- package/lib/ir/core/irBand.js +30 -0
- package/lib/ir/core/irBand.js.map +1 -0
- package/lib/ir/core/irCommands.d.ts +168 -0
- package/lib/ir/core/irCommands.d.ts.map +1 -0
- package/lib/ir/core/irCommands.js +94 -0
- package/lib/ir/core/irCommands.js.map +1 -0
- package/lib/ir/core/irDomain.d.ts +63 -0
- package/lib/ir/core/irDomain.d.ts.map +1 -0
- package/lib/ir/core/irDomain.js +136 -0
- package/lib/ir/core/irDomain.js.map +1 -0
- package/lib/ir/core/irEditorApi.d.ts +42 -0
- package/lib/ir/core/irEditorApi.d.ts.map +1 -0
- package/lib/ir/core/irEditorApi.js +10 -0
- package/lib/ir/core/irEditorApi.js.map +1 -0
- package/lib/ir/core/irFormat.d.ts +42 -0
- package/lib/ir/core/irFormat.d.ts.map +1 -0
- package/lib/ir/core/irFormat.js +51 -0
- package/lib/ir/core/irFormat.js.map +1 -0
- package/lib/ir/core/irMode.d.ts +160 -0
- package/lib/ir/core/irMode.d.ts.map +1 -0
- package/lib/ir/core/irMode.js +175 -0
- package/lib/ir/core/irMode.js.map +1 -0
- package/lib/ir/core/irReducer.d.ts +101 -0
- package/lib/ir/core/irReducer.d.ts.map +1 -0
- package/lib/ir/core/irReducer.js +207 -0
- package/lib/ir/core/irReducer.js.map +1 -0
- package/lib/ir/core/irSidePanels.d.ts +22 -0
- package/lib/ir/core/irSidePanels.d.ts.map +1 -0
- package/lib/ir/core/irSidePanels.js +12 -0
- package/lib/ir/core/irSidePanels.js.map +1 -0
- package/lib/ir/core/irSpectrum.d.ts +140 -0
- package/lib/ir/core/irSpectrum.d.ts.map +1 -0
- package/lib/ir/core/irSpectrum.js +34 -0
- package/lib/ir/core/irSpectrum.js.map +1 -0
- package/lib/ir/core/irState.d.ts +119 -0
- package/lib/ir/core/irState.d.ts.map +1 -0
- package/lib/ir/core/irState.js +92 -0
- package/lib/ir/core/irState.js.map +1 -0
- package/lib/ir/core/loadIrSpectra.d.ts +36 -0
- package/lib/ir/core/loadIrSpectra.d.ts.map +1 -0
- package/lib/ir/core/loadIrSpectra.js +44 -0
- package/lib/ir/core/loadIrSpectra.js.map +1 -0
- package/lib/ir/core/nearestBand.d.ts +35 -0
- package/lib/ir/core/nearestBand.d.ts.map +1 -0
- package/lib/ir/core/nearestBand.js +47 -0
- package/lib/ir/core/nearestBand.js.map +1 -0
- package/lib/ir/core/pickBands.d.ts +70 -0
- package/lib/ir/core/pickBands.d.ts.map +1 -0
- package/lib/ir/core/pickBands.js +125 -0
- package/lib/ir/core/pickBands.js.map +1 -0
- package/lib/ir/core/spectrumJcamp.d.ts +58 -0
- package/lib/ir/core/spectrumJcamp.d.ts.map +1 -0
- package/lib/ir/core/spectrumJcamp.js +156 -0
- package/lib/ir/core/spectrumJcamp.js.map +1 -0
- package/lib/ir/core/toIrSpectrum.d.ts +59 -0
- package/lib/ir/core/toIrSpectrum.d.ts.map +1 -0
- package/lib/ir/core/toIrSpectrum.js +56 -0
- package/lib/ir/core/toIrSpectrum.js.map +1 -0
- package/lib/ir/ui/BandMarks.d.ts +52 -0
- package/lib/ir/ui/BandMarks.d.ts.map +1 -0
- package/lib/ir/ui/BandMarks.js +71 -0
- package/lib/ir/ui/BandMarks.js.map +1 -0
- package/lib/ir/ui/BandsPanel.d.ts +31 -0
- package/lib/ir/ui/BandsPanel.d.ts.map +1 -0
- package/lib/ir/ui/BandsPanel.js +94 -0
- package/lib/ir/ui/BandsPanel.js.map +1 -0
- package/lib/ir/ui/IrAboutDialog.d.ts +18 -0
- package/lib/ir/ui/IrAboutDialog.d.ts.map +1 -0
- package/lib/ir/ui/IrAboutDialog.js +32 -0
- package/lib/ir/ui/IrAboutDialog.js.map +1 -0
- package/lib/ir/ui/IrCanvas.d.ts +38 -0
- package/lib/ir/ui/IrCanvas.d.ts.map +1 -0
- package/lib/ir/ui/IrCanvas.js +41 -0
- package/lib/ir/ui/IrCanvas.js.map +1 -0
- package/lib/ir/ui/IrChart.d.ts +28 -0
- package/lib/ir/ui/IrChart.d.ts.map +1 -0
- package/lib/ir/ui/IrChart.js +114 -0
- package/lib/ir/ui/IrChart.js.map +1 -0
- package/lib/ir/ui/IrCommandProvider.d.ts +15 -0
- package/lib/ir/ui/IrCommandProvider.d.ts.map +1 -0
- package/lib/ir/ui/IrCommandProvider.js +14 -0
- package/lib/ir/ui/IrCommandProvider.js.map +1 -0
- package/lib/ir/ui/IrCommandTooltip.d.ts +16 -0
- package/lib/ir/ui/IrCommandTooltip.d.ts.map +1 -0
- package/lib/ir/ui/IrCommandTooltip.js +22 -0
- package/lib/ir/ui/IrCommandTooltip.js.map +1 -0
- package/lib/ir/ui/IrDocumentationDialog.d.ts +18 -0
- package/lib/ir/ui/IrDocumentationDialog.d.ts.map +1 -0
- package/lib/ir/ui/IrDocumentationDialog.js +68 -0
- package/lib/ir/ui/IrDocumentationDialog.js.map +1 -0
- package/lib/ir/ui/IrEditor.d.ts +60 -0
- package/lib/ir/ui/IrEditor.d.ts.map +1 -0
- package/lib/ir/ui/IrEditor.js +42 -0
- package/lib/ir/ui/IrEditor.js.map +1 -0
- package/lib/ir/ui/IrHeader.d.ts +13 -0
- package/lib/ir/ui/IrHeader.d.ts.map +1 -0
- package/lib/ir/ui/IrHeader.js +21 -0
- package/lib/ir/ui/IrHeader.js.map +1 -0
- package/lib/ir/ui/IrLogo.d.ts +20 -0
- package/lib/ir/ui/IrLogo.d.ts.map +1 -0
- package/lib/ir/ui/IrLogo.js +17 -0
- package/lib/ir/ui/IrLogo.js.map +1 -0
- package/lib/ir/ui/IrPointerTracker.d.ts +29 -0
- package/lib/ir/ui/IrPointerTracker.d.ts.map +1 -0
- package/lib/ir/ui/IrPointerTracker.js +47 -0
- package/lib/ir/ui/IrPointerTracker.js.map +1 -0
- package/lib/ir/ui/IrShell.d.ts +25 -0
- package/lib/ir/ui/IrShell.d.ts.map +1 -0
- package/lib/ir/ui/IrShell.js +178 -0
- package/lib/ir/ui/IrShell.js.map +1 -0
- package/lib/ir/ui/IrSidePanel.d.ts +26 -0
- package/lib/ir/ui/IrSidePanel.d.ts.map +1 -0
- package/lib/ir/ui/IrSidePanel.js +39 -0
- package/lib/ir/ui/IrSidePanel.js.map +1 -0
- package/lib/ir/ui/IrStateProvider.d.ts +19 -0
- package/lib/ir/ui/IrStateProvider.d.ts.map +1 -0
- package/lib/ir/ui/IrStateProvider.js +16 -0
- package/lib/ir/ui/IrStateProvider.js.map +1 -0
- package/lib/ir/ui/IrStatusBar.d.ts +14 -0
- package/lib/ir/ui/IrStatusBar.d.ts.map +1 -0
- package/lib/ir/ui/IrStatusBar.js +48 -0
- package/lib/ir/ui/IrStatusBar.js.map +1 -0
- package/lib/ir/ui/IrToolbar.d.ts +18 -0
- package/lib/ir/ui/IrToolbar.d.ts.map +1 -0
- package/lib/ir/ui/IrToolbar.js +32 -0
- package/lib/ir/ui/IrToolbar.js.map +1 -0
- package/lib/ir/ui/IrTraces.d.ts +63 -0
- package/lib/ir/ui/IrTraces.d.ts.map +1 -0
- package/lib/ir/ui/IrTraces.js +72 -0
- package/lib/ir/ui/IrTraces.js.map +1 -0
- package/lib/ir/ui/MetadataPanel.d.ts +15 -0
- package/lib/ir/ui/MetadataPanel.d.ts.map +1 -0
- package/lib/ir/ui/MetadataPanel.js +49 -0
- package/lib/ir/ui/MetadataPanel.js.map +1 -0
- package/lib/ir/ui/SpectraPanel.d.ts +20 -0
- package/lib/ir/ui/SpectraPanel.d.ts.map +1 -0
- package/lib/ir/ui/SpectraPanel.js +42 -0
- package/lib/ir/ui/SpectraPanel.js.map +1 -0
- package/lib/ir/ui/SpectrumRow.d.ts +26 -0
- package/lib/ir/ui/SpectrumRow.d.ts.map +1 -0
- package/lib/ir/ui/SpectrumRow.js +41 -0
- package/lib/ir/ui/SpectrumRow.js.map +1 -0
- package/lib/ir/ui/index.d.ts +56 -0
- package/lib/ir/ui/index.d.ts.map +1 -0
- package/lib/ir/ui/index.js +36 -0
- package/lib/ir/ui/index.js.map +1 -0
- package/lib/ir/ui/irActions.d.ts +52 -0
- package/lib/ir/ui/irActions.d.ts.map +1 -0
- package/lib/ir/ui/irActions.js +62 -0
- package/lib/ir/ui/irActions.js.map +1 -0
- package/lib/ir/ui/irChartProps.d.ts +116 -0
- package/lib/ir/ui/irChartProps.d.ts.map +1 -0
- package/lib/ir/ui/irChartProps.js +14 -0
- package/lib/ir/ui/irChartProps.js.map +1 -0
- package/lib/ir/ui/irCommandContext.d.ts +35 -0
- package/lib/ir/ui/irCommandContext.d.ts.map +1 -0
- package/lib/ir/ui/irCommandContext.js +44 -0
- package/lib/ir/ui/irCommandContext.js.map +1 -0
- package/lib/ir/ui/irStateContext.d.ts +26 -0
- package/lib/ir/ui/irStateContext.d.ts.map +1 -0
- package/lib/ir/ui/irStateContext.js +37 -0
- package/lib/ir/ui/irStateContext.js.map +1 -0
- package/lib/ir/ui/useIrEditor.d.ts +51 -0
- package/lib/ir/ui/useIrEditor.d.ts.map +1 -0
- package/lib/ir/ui/useIrEditor.js +88 -0
- package/lib/ir/ui/useIrEditor.js.map +1 -0
- package/lib/ir/ui/useIrPointer.d.ts +66 -0
- package/lib/ir/ui/useIrPointer.d.ts.map +1 -0
- package/lib/ir/ui/useIrPointer.js +53 -0
- package/lib/ir/ui/useIrPointer.js.map +1 -0
- package/lib/ir/ui/useIrShortcuts.d.ts +24 -0
- package/lib/ir/ui/useIrShortcuts.d.ts.map +1 -0
- package/lib/ir/ui/useIrShortcuts.js +73 -0
- package/lib/ir/ui/useIrShortcuts.js.map +1 -0
- package/lib/ir/ui/useIrZoom.d.ts +51 -0
- package/lib/ir/ui/useIrZoom.d.ts.map +1 -0
- package/lib/ir/ui/useIrZoom.js +46 -0
- package/lib/ir/ui/useIrZoom.js.map +1 -0
- package/lib/ir.d.ts +13 -0
- package/lib/ir.d.ts.map +1 -0
- package/lib/ir.js +13 -0
- package/lib/ir.js.map +1 -0
- package/lib/panel/core/dialogStyles.d.ts +13 -0
- package/lib/panel/core/dialogStyles.d.ts.map +1 -0
- package/lib/panel/core/dialogStyles.js +11 -0
- package/lib/panel/core/dialogStyles.js.map +1 -0
- package/lib/panel/core/index.d.ts +19 -0
- package/lib/panel/core/index.d.ts.map +1 -0
- package/lib/panel/core/index.js +18 -0
- package/lib/panel/core/index.js.map +1 -0
- package/lib/panel/core/isEditingField.d.ts +17 -0
- package/lib/panel/core/isEditingField.d.ts.map +1 -0
- package/lib/panel/core/isEditingField.js +25 -0
- package/lib/panel/core/isEditingField.js.map +1 -0
- package/lib/panel/core/panelStyles.d.ts +242 -0
- package/lib/panel/core/panelStyles.d.ts.map +1 -0
- package/lib/panel/core/panelStyles.js +228 -0
- package/lib/panel/core/panelStyles.js.map +1 -0
- package/lib/panel/core/rowSpacers.d.ts +38 -0
- package/lib/panel/core/rowSpacers.d.ts.map +1 -0
- package/lib/panel/core/rowSpacers.js +31 -0
- package/lib/panel/core/rowSpacers.js.map +1 -0
- package/lib/panel/core/statusBar.d.ts +44 -0
- package/lib/panel/core/statusBar.d.ts.map +1 -0
- package/lib/panel/core/statusBar.js +40 -0
- package/lib/panel/core/statusBar.js.map +1 -0
- package/lib/panel/core/textFilter.d.ts +22 -0
- package/lib/panel/core/textFilter.d.ts.map +1 -0
- package/lib/panel/core/textFilter.js +32 -0
- package/lib/panel/core/textFilter.js.map +1 -0
- package/lib/panel/core/yieldToPainting.d.ts +17 -0
- package/lib/panel/core/yieldToPainting.d.ts.map +1 -0
- package/lib/panel/core/yieldToPainting.js +21 -0
- package/lib/panel/core/yieldToPainting.js.map +1 -0
- package/lib/panel/ui/AboutDialogFrame.d.ts +36 -0
- package/lib/panel/ui/AboutDialogFrame.d.ts.map +1 -0
- package/lib/panel/ui/AboutDialogFrame.js +43 -0
- package/lib/panel/ui/AboutDialogFrame.js.map +1 -0
- package/lib/panel/ui/ClearButton.d.ts +28 -0
- package/lib/panel/ui/ClearButton.d.ts.map +1 -0
- package/lib/panel/ui/ClearButton.js +23 -0
- package/lib/panel/ui/ClearButton.js.map +1 -0
- package/lib/panel/ui/DocumentationDialogFrame.d.ts +39 -0
- package/lib/panel/ui/DocumentationDialogFrame.d.ts.map +1 -0
- package/lib/panel/ui/DocumentationDialogFrame.js +29 -0
- package/lib/panel/ui/DocumentationDialogFrame.js.map +1 -0
- package/lib/panel/ui/FilterInput.d.ts +31 -0
- package/lib/panel/ui/FilterInput.d.ts.map +1 -0
- package/lib/panel/ui/FilterInput.js +23 -0
- package/lib/panel/ui/FilterInput.js.map +1 -0
- package/lib/panel/ui/HelpLabel.d.ts +24 -0
- package/lib/panel/ui/HelpLabel.d.ts.map +1 -0
- package/lib/panel/ui/HelpLabel.js +23 -0
- package/lib/panel/ui/HelpLabel.js.map +1 -0
- package/lib/panel/ui/PanelMessage.d.ts +41 -0
- package/lib/panel/ui/PanelMessage.d.ts.map +1 -0
- package/lib/panel/ui/PanelMessage.js +30 -0
- package/lib/panel/ui/PanelMessage.js.map +1 -0
- package/lib/panel/ui/PanelRail.d.ts +41 -0
- package/lib/panel/ui/PanelRail.d.ts.map +1 -0
- package/lib/panel/ui/PanelRail.js +12 -0
- package/lib/panel/ui/PanelRail.js.map +1 -0
- package/lib/panel/ui/Section.d.ts +25 -0
- package/lib/panel/ui/Section.d.ts.map +1 -0
- package/lib/panel/ui/Section.js +41 -0
- package/lib/panel/ui/Section.js.map +1 -0
- package/lib/panel/ui/SidePanelStack.d.ts +62 -0
- package/lib/panel/ui/SidePanelStack.d.ts.map +1 -0
- package/lib/panel/ui/SidePanelStack.js +40 -0
- package/lib/panel/ui/SidePanelStack.js.map +1 -0
- package/lib/panel/ui/SpectrumColorSwatch.d.ts +33 -0
- package/lib/panel/ui/SpectrumColorSwatch.d.ts.map +1 -0
- package/lib/panel/ui/SpectrumColorSwatch.js +76 -0
- package/lib/panel/ui/SpectrumColorSwatch.js.map +1 -0
- package/lib/panel/ui/index.d.ts +37 -0
- package/lib/panel/ui/index.d.ts.map +1 -0
- package/lib/panel/ui/index.js +24 -0
- package/lib/panel/ui/index.js.map +1 -0
- package/lib/panel/ui/useConfirmOnEnter.d.ts +19 -0
- package/lib/panel/ui/useConfirmOnEnter.d.ts.map +1 -0
- package/lib/panel/ui/useConfirmOnEnter.js +64 -0
- package/lib/panel/ui/useConfirmOnEnter.js.map +1 -0
- package/lib/panel/ui/useFilterBox.d.ts +23 -0
- package/lib/panel/ui/useFilterBox.d.ts.map +1 -0
- package/lib/panel/ui/useFilterBox.js +22 -0
- package/lib/panel/ui/useFilterBox.js.map +1 -0
- package/lib/panel/ui/useVirtualRows.d.ts +46 -0
- package/lib/panel/ui/useVirtualRows.d.ts.map +1 -0
- package/lib/panel/ui/useVirtualRows.js +56 -0
- package/lib/panel/ui/useVirtualRows.js.map +1 -0
- package/lib/panel/ui/useVirtualWindowRows.d.ts +40 -0
- package/lib/panel/ui/useVirtualWindowRows.d.ts.map +1 -0
- package/lib/panel/ui/useVirtualWindowRows.js +65 -0
- package/lib/panel/ui/useVirtualWindowRows.js.map +1 -0
- package/lib/ui.d.ts +1 -0
- package/lib/ui.d.ts.map +1 -1
- package/lib/ui.js +1 -0
- package/lib/ui.js.map +1 -1
- package/package.json +8 -1
- package/src/chart/core/axisLabels.ts +117 -0
- package/src/chart/core/boxLayout.ts +126 -0
- package/src/chart/core/chartAxisScale.ts +92 -10
- package/src/chart/core/chartDomain.ts +185 -0
- package/src/chart/core/chartGeometry.ts +159 -0
- package/src/chart/core/chartPane.ts +10 -0
- package/src/chart/core/chartScale.ts +7 -4
- package/src/chart/core/chartTheme.ts +161 -0
- package/src/chart/core/chartViewport.ts +40 -13
- package/src/chart/core/guidePlacement.ts +66 -0
- package/src/chart/core/index.ts +121 -2
- package/src/chart/core/labelStack.ts +72 -0
- package/src/chart/core/legendBox.ts +263 -0
- package/src/chart/core/selectionGeometry.ts +68 -0
- package/src/chart/core/spectrumColor.ts +129 -0
- package/src/chart/core/stackCapacity.ts +162 -0
- package/src/chart/core/svgPoint.ts +77 -0
- package/src/chart/core/tracePath.ts +228 -0
- package/src/chart/core/trackerReadout.ts +78 -0
- package/src/chart/core/viewTransform.ts +287 -0
- package/src/chart/core/zoomDomain.ts +235 -0
- package/src/chart/ui/Axes.tsx +361 -0
- package/src/chart/ui/AxisGuide.tsx +187 -0
- package/src/chart/ui/ChartStack.tsx +130 -0
- package/src/chart/ui/ChartTracker.tsx +101 -0
- package/src/chart/ui/PlotCaption.tsx +108 -0
- package/src/chart/ui/SelectionRect.tsx +52 -0
- package/src/chart/ui/TraceLegend.tsx +193 -0
- package/src/chart/ui/chartGestures.ts +270 -0
- package/src/chart/ui/chartStackLevel.tsx +210 -0
- package/src/chart/ui/chartSurface.ts +66 -0
- package/src/chart/ui/index.ts +35 -0
- package/src/chart/ui/useChartPointer.ts +223 -0
- package/src/chart/ui/useChartSize.ts +115 -0
- package/src/chart/ui/useChartWindow.ts +240 -0
- package/src/chart/ui/useChartZoom.ts +255 -0
- package/src/chart/ui/useWheelListener.ts +62 -0
- package/src/clipboard/core/copyPng.ts +20 -0
- package/src/clipboard/core/index.ts +1 -0
- package/src/clipboard/ui/CopyableValue.tsx +22 -35
- package/src/core.ts +1 -0
- package/src/download/core/exportStyles.ts +20 -0
- package/src/download/core/imageResolution.ts +118 -0
- package/src/download/core/index.ts +34 -0
- package/src/download/core/pictureExport.ts +207 -0
- package/src/download/core/stackedDrawing.ts +108 -0
- package/src/download/core/svgBounds.ts +80 -0
- package/src/download/core/svgNamespace.ts +9 -0
- package/src/download/core/svgToPng.ts +121 -0
- package/src/download/core/svgToString.ts +95 -0
- package/src/download/ui/ExportDialogFrame.tsx +86 -0
- package/src/download/ui/ExportImageDialog.tsx +91 -0
- package/src/download/ui/ExportNameField.tsx +148 -0
- package/src/download/ui/ExportPictureSection.tsx +142 -0
- package/src/download/ui/index.ts +11 -0
- package/src/download/ui/useDrawingBox.ts +37 -0
- package/src/error/core/describeSource.ts +18 -0
- package/src/error/core/index.ts +1 -0
- package/src/help/ui/HelpBody.tsx +41 -2
- package/src/help/ui/index.ts +6 -1
- package/src/ir/core/analysisSpectra.ts +231 -0
- package/src/ir/core/assignBands.ts +144 -0
- package/src/ir/core/bandAssignments.ts +329 -0
- package/src/ir/core/bandLabelPlan.ts +194 -0
- package/src/ir/core/detectIrFormat.ts +139 -0
- package/src/ir/core/downloadSpectra.ts +57 -0
- package/src/ir/core/fromJcamp.ts +70 -0
- package/src/ir/core/fromSpc.ts +61 -0
- package/src/ir/core/index.ts +113 -0
- package/src/ir/core/irBand.ts +57 -0
- package/src/ir/core/irCommands.ts +154 -0
- package/src/ir/core/irDomain.ts +163 -0
- package/src/ir/core/irEditorApi.ts +44 -0
- package/src/ir/core/irFormat.ts +57 -0
- package/src/ir/core/irMode.ts +203 -0
- package/src/ir/core/irReducer.ts +273 -0
- package/src/ir/core/irSidePanels.ts +20 -0
- package/src/ir/core/irSpectrum.ts +155 -0
- package/src/ir/core/irState.ts +173 -0
- package/src/ir/core/loadIrSpectra.ts +79 -0
- package/src/ir/core/nearestBand.ts +57 -0
- package/src/ir/core/pickBands.ts +181 -0
- package/src/ir/core/spectrumJcamp.ts +178 -0
- package/src/ir/core/toIrSpectrum.ts +102 -0
- package/src/ir/ui/BandMarks.tsx +166 -0
- package/src/ir/ui/BandsPanel.tsx +271 -0
- package/src/ir/ui/IrAboutDialog.tsx +121 -0
- package/src/ir/ui/IrCanvas.tsx +91 -0
- package/src/ir/ui/IrChart.tsx +215 -0
- package/src/ir/ui/IrCommandProvider.tsx +32 -0
- package/src/ir/ui/IrCommandTooltip.tsx +36 -0
- package/src/ir/ui/IrDocumentationDialog.tsx +174 -0
- package/src/ir/ui/IrEditor.tsx +99 -0
- package/src/ir/ui/IrHeader.tsx +39 -0
- package/src/ir/ui/IrLogo.tsx +49 -0
- package/src/ir/ui/IrPointerTracker.tsx +102 -0
- package/src/ir/ui/IrShell.tsx +285 -0
- package/src/ir/ui/IrSidePanel.tsx +78 -0
- package/src/ir/ui/IrStateProvider.tsx +32 -0
- package/src/ir/ui/IrStatusBar.tsx +97 -0
- package/src/ir/ui/IrToolbar.tsx +102 -0
- package/src/ir/ui/IrTraces.tsx +134 -0
- package/src/ir/ui/MetadataPanel.tsx +88 -0
- package/src/ir/ui/SpectraPanel.tsx +114 -0
- package/src/ir/ui/SpectrumRow.tsx +127 -0
- package/src/ir/ui/index.ts +56 -0
- package/src/ir/ui/irActions.ts +103 -0
- package/src/ir/ui/irChartProps.ts +118 -0
- package/src/ir/ui/irCommandContext.tsx +62 -0
- package/src/ir/ui/irStateContext.ts +48 -0
- package/src/ir/ui/useIrEditor.ts +139 -0
- package/src/ir/ui/useIrPointer.ts +109 -0
- package/src/ir/ui/useIrShortcuts.ts +95 -0
- package/src/ir/ui/useIrZoom.ts +86 -0
- package/src/ir.ts +13 -0
- package/src/panel/core/dialogStyles.ts +11 -0
- package/src/panel/core/index.ts +47 -0
- package/src/panel/core/isEditingField.ts +23 -0
- package/src/panel/core/panelStyles.ts +248 -0
- package/src/panel/core/rowSpacers.ts +50 -0
- package/src/panel/core/statusBar.ts +48 -0
- package/src/panel/core/textFilter.ts +33 -0
- package/src/panel/core/yieldToPainting.ts +20 -0
- package/src/panel/ui/AboutDialogFrame.tsx +100 -0
- package/src/panel/ui/ClearButton.tsx +42 -0
- package/src/panel/ui/DocumentationDialogFrame.tsx +86 -0
- package/src/panel/ui/FilterInput.tsx +60 -0
- package/src/panel/ui/HelpLabel.tsx +43 -0
- package/src/panel/ui/PanelMessage.tsx +64 -0
- package/src/panel/ui/PanelRail.tsx +64 -0
- package/src/panel/ui/Section.tsx +66 -0
- package/src/panel/ui/SidePanelStack.tsx +109 -0
- package/src/panel/ui/SpectrumColorSwatch.tsx +119 -0
- package/src/panel/ui/index.ts +47 -0
- package/src/panel/ui/useConfirmOnEnter.ts +68 -0
- package/src/panel/ui/useFilterBox.ts +35 -0
- package/src/panel/ui/useVirtualRows.ts +82 -0
- package/src/panel/ui/useVirtualWindowRows.ts +86 -0
- package/src/ui.ts +1 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One level of a chart stack: the pane drawn at it, and everything under it.
|
|
3
|
+
*
|
|
4
|
+
* `SplitPane` takes exactly two children, so a stack is a recursion rather than
|
|
5
|
+
* a list — the pane at each level is the controlled side and is given a height
|
|
6
|
+
* in pixels, everything below it is the other side and takes what is left. It
|
|
7
|
+
* stands beside `ChartStack.tsx` rather than inside it so that the component is
|
|
8
|
+
* the state and this is the picture drawn from it. Why a height is held above a
|
|
9
|
+
* floor, and why every pane is wrapped in a box of its own, is in that file's
|
|
10
|
+
* header.
|
|
11
|
+
*
|
|
12
|
+
* The pane at the foot has nothing under it and so needs no split at all, and is
|
|
13
|
+
* given one regardless. React rebuilds whatever sits at a position the moment
|
|
14
|
+
* the element there changes type, so a pane drawn as a bare box while it is last
|
|
15
|
+
* and as a split once something is appended under it would be torn down and
|
|
16
|
+
* stood up again by the appending — and a chart stood up again is empty: it has
|
|
17
|
+
* to be measured, fitted and drawn from its twenty thousand points before it is
|
|
18
|
+
* a picture of anything. Every pane is therefore a split, the last one holding
|
|
19
|
+
* nothing on its other side, which is exactly what makes it draw no splitter and
|
|
20
|
+
* answer no drag.
|
|
21
|
+
*/
|
|
22
|
+
import type { ReactNode } from 'react';
|
|
23
|
+
import type { SplitPaneSize } from 'react-science/ui';
|
|
24
|
+
/** One pane of the stack, and how tall it stands. */
|
|
25
|
+
export interface ChartStackPane {
|
|
26
|
+
/**
|
|
27
|
+
* Identity, which is what a height is remembered against.
|
|
28
|
+
*
|
|
29
|
+
* A pane leaves the stack whenever what it draws stops existing, and comes
|
|
30
|
+
* back when it exists again. The height is held against this rather than
|
|
31
|
+
* against the pane's place in the array, so a pane that returns returns the
|
|
32
|
+
* size it was left at rather than at its default.
|
|
33
|
+
*/
|
|
34
|
+
id: string;
|
|
35
|
+
/** What is drawn in it — a chart, and whatever bar is drawn over it. */
|
|
36
|
+
content: ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* How tall it stands the first time it is stacked, in pixels.
|
|
39
|
+
*
|
|
40
|
+
* A default rather than a controlled value: the stack holds the live height
|
|
41
|
+
* from then on, so a viewer restoring a layout it saved hands it in here and
|
|
42
|
+
* hears every later change back through `onHeightChange`. A change to this
|
|
43
|
+
* number afterwards is ignored, the way a defaulted prop always is — what is
|
|
44
|
+
* on screen is what a chemist dragged it to.
|
|
45
|
+
* @default 220
|
|
46
|
+
*/
|
|
47
|
+
defaultHeight?: number;
|
|
48
|
+
/**
|
|
49
|
+
* The shortest it may be dragged to, in pixels.
|
|
50
|
+
*
|
|
51
|
+
* A hundred and twenty is a plot that still reads: `MARGIN` spends 44 of them
|
|
52
|
+
* on the tick row and the axis title, which leaves the trace the rest of it.
|
|
53
|
+
* @default 120
|
|
54
|
+
*/
|
|
55
|
+
minimumHeight?: number;
|
|
56
|
+
}
|
|
57
|
+
/** Everything one level of the nesting needs to draw itself and the rest. */
|
|
58
|
+
export interface StackLevel {
|
|
59
|
+
/** Every pane of the stack, top to bottom. */
|
|
60
|
+
panes: readonly ChartStackPane[];
|
|
61
|
+
/**
|
|
62
|
+
* How tall a pane stands.
|
|
63
|
+
* @param pane - The pane to measure.
|
|
64
|
+
* @returns Its height, in pixels.
|
|
65
|
+
*/
|
|
66
|
+
heightOf: (pane: ChartStackPane) => number;
|
|
67
|
+
/**
|
|
68
|
+
* Take what a drag in progress is asking for.
|
|
69
|
+
* @param pane - The pane being resized.
|
|
70
|
+
* @param asked - The size its splitter asked for.
|
|
71
|
+
*/
|
|
72
|
+
resize: (pane: ChartStackPane, asked: SplitPaneSize) => void;
|
|
73
|
+
/**
|
|
74
|
+
* Take where a drag came to rest.
|
|
75
|
+
* @param pane - The pane that was resized.
|
|
76
|
+
* @param asked - The size its splitter was let go at.
|
|
77
|
+
*/
|
|
78
|
+
rest: (pane: ChartStackPane, asked: SplitPaneSize) => void;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The pane at one level of the stack, and everything under it.
|
|
82
|
+
*
|
|
83
|
+
* The pane at the foot is given the whole of what it is handed rather than a
|
|
84
|
+
* height, since there is nothing under it to leave room for, and it is given
|
|
85
|
+
* neither a close threshold nor anywhere to report a drag: a split with nothing
|
|
86
|
+
* on its other side draws no splitter, so there is no drag to report and nothing
|
|
87
|
+
* to close it against — a threshold there would hide the only pane on a stack
|
|
88
|
+
* squeezed short.
|
|
89
|
+
* @param level - The panes and what is done with a drag on them.
|
|
90
|
+
* @param index - Which pane this level draws.
|
|
91
|
+
* @returns The pane split against the rest below it, the pane alone in a split
|
|
92
|
+
* of its own at the foot of the stack, and nothing at all for a stack of no
|
|
93
|
+
* panes.
|
|
94
|
+
*/
|
|
95
|
+
export declare function stackFrom(level: StackLevel, index: number): ReactNode;
|
|
96
|
+
/**
|
|
97
|
+
* How tall a pane stands, given the height it was last left at.
|
|
98
|
+
*
|
|
99
|
+
* The floor is applied to the default as much as to a stored height: a pane
|
|
100
|
+
* asking for 40 pixels against a minimum of 150 would otherwise draw the stub
|
|
101
|
+
* with a full set of axes over it that the header of `ChartStack.tsx` describes,
|
|
102
|
+
* on its first render and until somebody touched a splitter.
|
|
103
|
+
* @param pane - The pane to measure.
|
|
104
|
+
* @param stored - The height it was left at, absent until one is dragged.
|
|
105
|
+
* @returns Its height, in pixels.
|
|
106
|
+
*/
|
|
107
|
+
export declare function paneHeight(pane: ChartStackPane, stored: number | undefined): number;
|
|
108
|
+
/**
|
|
109
|
+
* The height to keep, given what a splitter asked for.
|
|
110
|
+
* @param asked - The size the splitter reported, in the pixels it was handed.
|
|
111
|
+
* @param pane - The pane it belongs to, for its minimum.
|
|
112
|
+
* @returns The height to store, `null` for a size that is not a length at all.
|
|
113
|
+
*/
|
|
114
|
+
export declare function keptHeight(asked: SplitPaneSize, pane: ChartStackPane): number | null;
|
|
115
|
+
//# sourceMappingURL=chartStackLevel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartStackLevel.d.ts","sourceRoot":"","sources":["../../../src/chart/ui/chartStackLevel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,OAAO,EAAE,SAAS,CAAC;IACnB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IACjC;;;;OAIG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,CAAC;IAC3C;;;;OAIG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D;;;;OAIG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAyBrE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,cAAc,GACnB,MAAM,GAAG,IAAI,CAIf"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { SplitPane } from 'react-science/ui';
|
|
3
|
+
/**
|
|
4
|
+
* The pane at one level of the stack, and everything under it.
|
|
5
|
+
*
|
|
6
|
+
* The pane at the foot is given the whole of what it is handed rather than a
|
|
7
|
+
* height, since there is nothing under it to leave room for, and it is given
|
|
8
|
+
* neither a close threshold nor anywhere to report a drag: a split with nothing
|
|
9
|
+
* on its other side draws no splitter, so there is no drag to report and nothing
|
|
10
|
+
* to close it against — a threshold there would hide the only pane on a stack
|
|
11
|
+
* squeezed short.
|
|
12
|
+
* @param level - The panes and what is done with a drag on them.
|
|
13
|
+
* @param index - Which pane this level draws.
|
|
14
|
+
* @returns The pane split against the rest below it, the pane alone in a split
|
|
15
|
+
* of its own at the foot of the stack, and nothing at all for a stack of no
|
|
16
|
+
* panes.
|
|
17
|
+
*/
|
|
18
|
+
export function stackFrom(level, index) {
|
|
19
|
+
const { panes, heightOf, resize, rest } = level;
|
|
20
|
+
const pane = panes[index];
|
|
21
|
+
if (pane === undefined)
|
|
22
|
+
return null;
|
|
23
|
+
const under = stackFrom(level, index + 1);
|
|
24
|
+
const isLast = under === null;
|
|
25
|
+
return (_jsxs(SplitPane, { direction: "vertical", controlledSide: "start", size: isLast ? WHOLE_STACK : `${heightOf(pane)}px`, onSizeChange: isLast ? undefined : (asked) => resize(pane, asked), onResize: isLast ? undefined : (asked) => rest(pane, asked), closeThreshold: isLast ? undefined : CLOSE_THRESHOLD, unmountChildren: false, children: [_jsx("div", { "data-chart-pane": pane.id, style: paneStyle, children: pane.content }, pane.id), under] }, pane.id));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* How tall a pane stands, given the height it was last left at.
|
|
29
|
+
*
|
|
30
|
+
* The floor is applied to the default as much as to a stored height: a pane
|
|
31
|
+
* asking for 40 pixels against a minimum of 150 would otherwise draw the stub
|
|
32
|
+
* with a full set of axes over it that the header of `ChartStack.tsx` describes,
|
|
33
|
+
* on its first render and until somebody touched a splitter.
|
|
34
|
+
* @param pane - The pane to measure.
|
|
35
|
+
* @param stored - The height it was left at, absent until one is dragged.
|
|
36
|
+
* @returns Its height, in pixels.
|
|
37
|
+
*/
|
|
38
|
+
export function paneHeight(pane, stored) {
|
|
39
|
+
return Math.max(stored ?? pane.defaultHeight ?? DEFAULT_PANE_HEIGHT, floorOf(pane));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The height to keep, given what a splitter asked for.
|
|
43
|
+
* @param asked - The size the splitter reported, in the pixels it was handed.
|
|
44
|
+
* @param pane - The pane it belongs to, for its minimum.
|
|
45
|
+
* @returns The height to store, `null` for a size that is not a length at all.
|
|
46
|
+
*/
|
|
47
|
+
export function keptHeight(asked, pane) {
|
|
48
|
+
const value = Number.parseFloat(asked);
|
|
49
|
+
if (!Number.isFinite(value))
|
|
50
|
+
return null;
|
|
51
|
+
return Math.max(value, floorOf(pane));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The shortest a pane may stand, whether it said so itself or not.
|
|
55
|
+
* @param pane - The pane being held up.
|
|
56
|
+
* @returns Its floor, in pixels.
|
|
57
|
+
*/
|
|
58
|
+
function floorOf(pane) {
|
|
59
|
+
return pane.minimumHeight ?? MINIMUM_PANE_HEIGHT;
|
|
60
|
+
}
|
|
61
|
+
/** How tall a pane stands when nobody has said, in pixels. */
|
|
62
|
+
const DEFAULT_PANE_HEIGHT = 220;
|
|
63
|
+
/** The shortest a pane may be dragged to when nobody has said, in pixels. */
|
|
64
|
+
const MINIMUM_PANE_HEIGHT = 120;
|
|
65
|
+
/**
|
|
66
|
+
* What the pane at the foot is given, having nothing under it to leave room for.
|
|
67
|
+
*
|
|
68
|
+
* A share rather than a length: handed a percentage, `SplitPane` lays its
|
|
69
|
+
* controlled side out as a flexible share instead of at a fixed height, so the
|
|
70
|
+
* pane takes whatever the panes above it left rather than standing at some
|
|
71
|
+
* number and leaving a gap under itself.
|
|
72
|
+
*/
|
|
73
|
+
const WHOLE_STACK = '100%';
|
|
74
|
+
/**
|
|
75
|
+
* The height below which a split closes its pane rather than squeezing it.
|
|
76
|
+
*
|
|
77
|
+
* A stack squeezed to under ninety pixels has no room for a chart of any kind,
|
|
78
|
+
* and that is under the shortest pane this stack will otherwise keep.
|
|
79
|
+
* `SplitPane` stops doing this the moment a splitter is touched, so it settles
|
|
80
|
+
* what a pane does before anyone has an opinion and nothing after that.
|
|
81
|
+
*/
|
|
82
|
+
const CLOSE_THRESHOLD = 90;
|
|
83
|
+
/**
|
|
84
|
+
* The box one pane fills — `minHeight: 0` is the whole reason it exists rather
|
|
85
|
+
* than the pane's content sitting in the split itself; see the header of
|
|
86
|
+
* `ChartStack.tsx`.
|
|
87
|
+
*/
|
|
88
|
+
const paneStyle = {
|
|
89
|
+
display: 'flex',
|
|
90
|
+
flexDirection: 'column',
|
|
91
|
+
flex: '1 1 0%',
|
|
92
|
+
minWidth: 0,
|
|
93
|
+
minHeight: 0,
|
|
94
|
+
overflow: 'hidden',
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=chartStackLevel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartStackLevel.js","sourceRoot":"","sources":["../../../src/chart/ui/chartStackLevel.tsx"],"names":[],"mappings":";AAwBA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA4D7C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,KAAa;IACxD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC;IAE9B,OAAO,CACL,MAAC,SAAS,IAER,SAAS,EAAC,UAAU,EACpB,cAAc,EAAC,OAAO,EACtB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAClD,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EACjE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAC3D,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,EACpD,eAAe,EAAE,KAAK,aAEtB,iCAAoC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,YAC1D,IAAI,CAAC,OAAO,IADL,IAAI,CAAC,EAAE,CAEX,EACL,KAAK,KAZD,IAAI,CAAC,EAAE,CAaF,CACb,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACxB,IAAoB,EACpB,MAA0B;IAE1B,OAAO,IAAI,CAAC,GAAG,CACb,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,mBAAmB,EACnD,OAAO,CAAC,IAAI,CAAC,CACd,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,KAAoB,EACpB,IAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAC,IAAoB;IACnC,OAAO,IAAI,CAAC,aAAa,IAAI,mBAAmB,CAAC;AACnD,CAAC;AAED,8DAA8D;AAC9D,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,6EAA6E;AAC7E,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,WAAW,GAAkB,MAAM,CAAC;AAE1C;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;;;GAIG;AACH,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,QAAQ;CACV,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The style the SVG a chart is drawn on carries, and the one thing about it
|
|
3
|
+
* that moves: the cursor.
|
|
4
|
+
*
|
|
5
|
+
* A chart drawing its own crosshair has two pointers on it — the dashed rules
|
|
6
|
+
* that read the axes, and the operating system's arrow beside them — and only
|
|
7
|
+
* one of the two is saying anything. The arrow is also the one in the way: it
|
|
8
|
+
* is drawn down and to the right of its own hot spot, which is exactly where
|
|
9
|
+
* the crosshair meets and exactly the place being read. So the arrow is hidden
|
|
10
|
+
* while the crosshair is up, and it comes back the moment the pointer leaves
|
|
11
|
+
* the plot, where there is no crosshair and the margins are ordinary furniture.
|
|
12
|
+
*
|
|
13
|
+
* `target` is why this is a function rather than a constant. Something under
|
|
14
|
+
* the pointer can be opened — a ring on a peak a survey scan was fragmented at
|
|
15
|
+
* — and a cursor that never changes is a chart with no way of saying so. The
|
|
16
|
+
* hand wins over the hidden arrow, and the crosshair goes on being drawn under
|
|
17
|
+
* it, since where you are is still worth reading while you decide to click.
|
|
18
|
+
*
|
|
19
|
+
* One helper for every chart in this package rather than a `svgStyle` constant
|
|
20
|
+
* in each: a mass spectrum stacked under a chromatogram is two charts a reader
|
|
21
|
+
* takes to be one instrument, and an arrow over one of them and nothing over
|
|
22
|
+
* the other is the sort of difference that reads as a fault.
|
|
23
|
+
*/
|
|
24
|
+
import type { CSSProperties } from 'react';
|
|
25
|
+
/**
|
|
26
|
+
* What the SVG a chart is drawn on is styled with.
|
|
27
|
+
* @param tracked - Whether the chart is drawing its crosshair where the pointer
|
|
28
|
+
* is, which is true exactly while the pointer is over the plot.
|
|
29
|
+
* @param target - Whether what is under the pointer can be clicked open.
|
|
30
|
+
* Defaults to `false`, which is every chart offering nothing to click.
|
|
31
|
+
* @returns The style, one of three objects that never change — a fresh one per
|
|
32
|
+
* pointer move would replace the `style` prop on every tremor of a hand.
|
|
33
|
+
*/
|
|
34
|
+
export declare function chartSurfaceStyle(tracked: boolean, target?: boolean): CSSProperties;
|
|
35
|
+
//# sourceMappingURL=chartSurface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartSurface.d.ts","sourceRoot":"","sources":["../../../src/chart/ui/chartSurface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,MAAM,UAAQ,GACb,aAAa,CAGf"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The style the SVG a chart is drawn on carries, and the one thing about it
|
|
3
|
+
* that moves: the cursor.
|
|
4
|
+
*
|
|
5
|
+
* A chart drawing its own crosshair has two pointers on it — the dashed rules
|
|
6
|
+
* that read the axes, and the operating system's arrow beside them — and only
|
|
7
|
+
* one of the two is saying anything. The arrow is also the one in the way: it
|
|
8
|
+
* is drawn down and to the right of its own hot spot, which is exactly where
|
|
9
|
+
* the crosshair meets and exactly the place being read. So the arrow is hidden
|
|
10
|
+
* while the crosshair is up, and it comes back the moment the pointer leaves
|
|
11
|
+
* the plot, where there is no crosshair and the margins are ordinary furniture.
|
|
12
|
+
*
|
|
13
|
+
* `target` is why this is a function rather than a constant. Something under
|
|
14
|
+
* the pointer can be opened — a ring on a peak a survey scan was fragmented at
|
|
15
|
+
* — and a cursor that never changes is a chart with no way of saying so. The
|
|
16
|
+
* hand wins over the hidden arrow, and the crosshair goes on being drawn under
|
|
17
|
+
* it, since where you are is still worth reading while you decide to click.
|
|
18
|
+
*
|
|
19
|
+
* One helper for every chart in this package rather than a `svgStyle` constant
|
|
20
|
+
* in each: a mass spectrum stacked under a chromatogram is two charts a reader
|
|
21
|
+
* takes to be one instrument, and an arrow over one of them and nothing over
|
|
22
|
+
* the other is the sort of difference that reads as a fault.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* What the SVG a chart is drawn on is styled with.
|
|
26
|
+
* @param tracked - Whether the chart is drawing its crosshair where the pointer
|
|
27
|
+
* is, which is true exactly while the pointer is over the plot.
|
|
28
|
+
* @param target - Whether what is under the pointer can be clicked open.
|
|
29
|
+
* Defaults to `false`, which is every chart offering nothing to click.
|
|
30
|
+
* @returns The style, one of three objects that never change — a fresh one per
|
|
31
|
+
* pointer move would replace the `style` prop on every tremor of a hand.
|
|
32
|
+
*/
|
|
33
|
+
export function chartSurfaceStyle(tracked, target = false) {
|
|
34
|
+
if (!tracked)
|
|
35
|
+
return IDLE_SURFACE;
|
|
36
|
+
return target ? TARGET_SURFACE : TRACKED_SURFACE;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Everything about the surface that is not the cursor.
|
|
40
|
+
*
|
|
41
|
+
* `touchAction` because every gesture is a pointer gesture and a browser that
|
|
42
|
+
* scrolled the page instead would take the drag with it; `userSelect` because a
|
|
43
|
+
* drag across a chart is a gesture and not a selection — without it the tick
|
|
44
|
+
* labels come up highlighted behind the rectangle, and stay highlighted in the
|
|
45
|
+
* picture the chart is exported as.
|
|
46
|
+
*/
|
|
47
|
+
const SURFACE = {
|
|
48
|
+
display: 'block',
|
|
49
|
+
touchAction: 'none',
|
|
50
|
+
userSelect: 'none',
|
|
51
|
+
};
|
|
52
|
+
/** The pointer is off the plot: whatever cursor the page would have shown. */
|
|
53
|
+
const IDLE_SURFACE = { ...SURFACE };
|
|
54
|
+
/** The chart is drawing the crosshair, so the arrow beside it is hidden. */
|
|
55
|
+
const TRACKED_SURFACE = { ...SURFACE, cursor: 'none' };
|
|
56
|
+
/** Something under the pointer can be opened. */
|
|
57
|
+
const TARGET_SURFACE = { ...SURFACE, cursor: 'pointer' };
|
|
58
|
+
//# sourceMappingURL=chartSurface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartSurface.js","sourceRoot":"","sources":["../../../src/chart/ui/chartSurface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAgB,EAChB,MAAM,GAAG,KAAK;IAEd,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAClC,OAAO,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;AACnD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,GAAG;IACd,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;CACV,CAAC;AAEX,8EAA8E;AAC9E,MAAM,YAAY,GAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;AAEnD,4EAA4E;AAC5E,MAAM,eAAe,GAAkB,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAEtE,iDAAiD;AACjD,MAAM,cAAc,GAAkB,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC"}
|
package/lib/chart/ui/index.d.ts
CHANGED
|
@@ -19,4 +19,28 @@ export { TrackedLineChart } from './TrackedLineChart.tsx';
|
|
|
19
19
|
export type { ChartStickSeries } from './stickChartModel.ts';
|
|
20
20
|
export type { TrackedStickChartProps } from './TrackedStickChart.tsx';
|
|
21
21
|
export { TrackedStickChart } from './TrackedStickChart.tsx';
|
|
22
|
+
export type { AxesProps } from './Axes.tsx';
|
|
23
|
+
export { Axes } from './Axes.tsx';
|
|
24
|
+
export type { AxisGuideProps } from './AxisGuide.tsx';
|
|
25
|
+
export { AxisGuide } from './AxisGuide.tsx';
|
|
26
|
+
export type { ChartStackPane, ChartStackProps } from './ChartStack.tsx';
|
|
27
|
+
export { ChartStack } from './ChartStack.tsx';
|
|
28
|
+
export type { ChartTrackerProps } from './ChartTracker.tsx';
|
|
29
|
+
export { ChartTracker } from './ChartTracker.tsx';
|
|
30
|
+
export type { PlotCaptionProps } from './PlotCaption.tsx';
|
|
31
|
+
export { PlotCaption } from './PlotCaption.tsx';
|
|
32
|
+
export type { SelectionRectProps } from './SelectionRect.tsx';
|
|
33
|
+
export { SelectionRect } from './SelectionRect.tsx';
|
|
34
|
+
export type { LegendEntry, TraceLegendProps } from './TraceLegend.tsx';
|
|
35
|
+
export { TraceLegend } from './TraceLegend.tsx';
|
|
36
|
+
export type { ChartClickModifiers } from './chartGestures.ts';
|
|
37
|
+
export { NO_MODIFIERS } from './chartGestures.ts';
|
|
38
|
+
export { chartSurfaceStyle } from './chartSurface.ts';
|
|
39
|
+
export type { ChartPointer, ChartPointerOptions } from './useChartPointer.ts';
|
|
40
|
+
export { isInsidePlot, leftChart, nextChartPointer, sameReading, useChartPointer, } from './useChartPointer.ts';
|
|
41
|
+
export type { ChartSizeHandle } from './useChartSize.ts';
|
|
42
|
+
export { nextChartSize, useChartSize } from './useChartSize.ts';
|
|
43
|
+
export type { ChartZoom, ChartZoomHandlers, ChartZoomOptions, } from './useChartZoom.ts';
|
|
44
|
+
export { useChartZoom } from './useChartZoom.ts';
|
|
45
|
+
export { useWheelListener } from './useWheelListener.ts';
|
|
22
46
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,YAAY,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,YAAY,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAChE,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/lib/chart/ui/index.js
CHANGED
|
@@ -11,4 +11,17 @@ export { ChartSeriesMarks } from "./ChartSeriesMarks.js";
|
|
|
11
11
|
export { ChartTrackingLayer } from "./ChartTrackingLayer.js";
|
|
12
12
|
export { TrackedLineChart } from "./TrackedLineChart.js";
|
|
13
13
|
export { TrackedStickChart } from "./TrackedStickChart.js";
|
|
14
|
+
export { Axes } from "./Axes.js";
|
|
15
|
+
export { AxisGuide } from "./AxisGuide.js";
|
|
16
|
+
export { ChartStack } from "./ChartStack.js";
|
|
17
|
+
export { ChartTracker } from "./ChartTracker.js";
|
|
18
|
+
export { PlotCaption } from "./PlotCaption.js";
|
|
19
|
+
export { SelectionRect } from "./SelectionRect.js";
|
|
20
|
+
export { TraceLegend } from "./TraceLegend.js";
|
|
21
|
+
export { NO_MODIFIERS } from "./chartGestures.js";
|
|
22
|
+
export { chartSurfaceStyle } from "./chartSurface.js";
|
|
23
|
+
export { isInsidePlot, leftChart, nextChartPointer, sameReading, useChartPointer, } from "./useChartPointer.js";
|
|
24
|
+
export { nextChartSize, useChartSize } from "./useChartSize.js";
|
|
25
|
+
export { useChartZoom } from "./useChartZoom.js";
|
|
26
|
+
export { useWheelListener } from "./useWheelListener.js";
|
|
14
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAQ5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAA0B,CAAC;AAO9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAQ5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAA0B,CAAC;AAO9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAyB,CAAC;AAG5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAY,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMhE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the pointer is over a chart, and what that place means.
|
|
3
|
+
*
|
|
4
|
+
* What it *means* is the one thing this hook does not decide. A mass spectrum
|
|
5
|
+
* reads an m/z, an intensity and the peak within reach; an infrared spectrum
|
|
6
|
+
* reads a wavenumber, an absorbance and the band it falls in. Both are the same
|
|
7
|
+
* mechanism — place the pointer in user units, refuse the margins, and report
|
|
8
|
+
* only when the answer changed — so the mechanism is here and the reading is
|
|
9
|
+
* handed in.
|
|
10
|
+
*
|
|
11
|
+
* Every value is compared before it is stored or reported. A pointer resting on
|
|
12
|
+
* one feature fires `pointermove` on every sub-pixel tremor of a hand, and a
|
|
13
|
+
* fresh answer each time would re-render the panel beside the chart — and, where
|
|
14
|
+
* that panel is a linked viewer that reports its own hovers back, would
|
|
15
|
+
* ping-pong between the two until the tab stops answering.
|
|
16
|
+
*/
|
|
17
|
+
import type { RefObject } from 'react';
|
|
18
|
+
import type { PlotRect } from '../core/chartGeometry.ts';
|
|
19
|
+
import type { ChartPoint } from '../core/svgPoint.ts';
|
|
20
|
+
/** Where the pointer is, and what that place means. */
|
|
21
|
+
export interface ChartPointer<TReadout> {
|
|
22
|
+
/** Its position in user units, `null` whenever it is off the plot. */
|
|
23
|
+
position: ChartPoint | null;
|
|
24
|
+
/** What the chart reads under it, `null` whenever it is off the plot. */
|
|
25
|
+
readout: TReadout | null;
|
|
26
|
+
}
|
|
27
|
+
export interface ChartPointerOptions<TReadout> {
|
|
28
|
+
/** The SVG the chart is drawn on, as it was handed to its `ref`. */
|
|
29
|
+
svgRef: RefObject<SVGSVGElement | null>;
|
|
30
|
+
/**
|
|
31
|
+
* Where the plot sits inside that SVG. The pointer is only followed inside
|
|
32
|
+
* it: the margins carry the axis labels, and a crosshair drawn across them
|
|
33
|
+
* claims to read a value off a place where none is drawn.
|
|
34
|
+
*/
|
|
35
|
+
plot: PlotRect;
|
|
36
|
+
/**
|
|
37
|
+
* What the chart reads at a point. Called on every move the pointer makes
|
|
38
|
+
* inside the plot, and read live rather than closed over, so it may capture
|
|
39
|
+
* the scales as they are currently zoomed.
|
|
40
|
+
*/
|
|
41
|
+
read: (point: ChartPoint) => TReadout;
|
|
42
|
+
/**
|
|
43
|
+
* Whether two readings say the same thing, which is what suppresses the
|
|
44
|
+
* report of a hand resting still.
|
|
45
|
+
*
|
|
46
|
+
* A viewer normally compares less than the whole reading: the pointer's own
|
|
47
|
+
* position has already been compared by the time this is asked, so what is
|
|
48
|
+
* left is whichever *feature* the reading is about — the peak, the band — and
|
|
49
|
+
* not the fractional value under the crosshair, which changes on every pixel.
|
|
50
|
+
*/
|
|
51
|
+
sameReadout: (current: TReadout, next: TReadout) => boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Told what the chart reads under the pointer, and told `null` when it leaves
|
|
54
|
+
* the plot — called only when `sameReadout` says the answer changed, so it is
|
|
55
|
+
* safe to hang a highlight that redraws half the page on it.
|
|
56
|
+
* @default undefined
|
|
57
|
+
*/
|
|
58
|
+
onReadout?: (readout: TReadout | null) => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Follow the pointer over a chart.
|
|
62
|
+
*
|
|
63
|
+
* The listeners are attached to the element rather than returned as props, so
|
|
64
|
+
* that a chart already spreading another hook's `onPointerMove` onto its SVG
|
|
65
|
+
* does not have to merge two handlers into one — and so that the options are
|
|
66
|
+
* read live, at the moment the pointer moves, rather than closed over when the
|
|
67
|
+
* listener was attached.
|
|
68
|
+
*
|
|
69
|
+
* The pointer leaving is heard as `pointerout` and not as the `pointerleave`
|
|
70
|
+
* that reads so much more naturally, because a chart with a control laid over
|
|
71
|
+
* it — a legend whose rows answer a hover — has two writers of one highlight
|
|
72
|
+
* and they must be sequenced. React synthesises the overlay's `pointerenter`
|
|
73
|
+
* from the *earlier* `pointerout` and dispatches it at the root, so a browser
|
|
74
|
+
* fires `pointerout` on the SVG, then React's `onPointerEnter` on the row, then
|
|
75
|
+
* `pointerleave` on the SVG: listening for the leave puts this hook's "nothing
|
|
76
|
+
* is under the pointer" **after** the row's "this trace is being read", and
|
|
77
|
+
* wipes it. Heard as `pointerout`, the report lands first and the row has the
|
|
78
|
+
* last word. The containment test is what `pointerleave` was giving for free.
|
|
79
|
+
* @param options - The chart, and how to read a point on it.
|
|
80
|
+
* @returns Where the pointer is and what it reads, both `null` while it is
|
|
81
|
+
* anywhere but over the plot.
|
|
82
|
+
*/
|
|
83
|
+
export declare function useChartPointer<TReadout>(options: ChartPointerOptions<TReadout>): ChartPointer<TReadout>;
|
|
84
|
+
/**
|
|
85
|
+
* Whether a `pointerout` means the pointer has left the chart.
|
|
86
|
+
*
|
|
87
|
+
* It also fires on the way *into* a child of the SVG — a trace, a label, the
|
|
88
|
+
* rectangle behind a legend — which is not leaving the chart at all, and is the
|
|
89
|
+
* one thing `pointerleave` was giving for free.
|
|
90
|
+
* @param svg - The chart, `null` before it is on screen.
|
|
91
|
+
* @param related - What the pointer moved onto, `null` when it left the window
|
|
92
|
+
* altogether.
|
|
93
|
+
* @returns Whether the chart no longer has the pointer.
|
|
94
|
+
*/
|
|
95
|
+
export declare function leftChart(svg: Element | null, related: EventTarget | null): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Whether two readings — either of which may be absent — say the same thing.
|
|
98
|
+
* @param current - What was last read, `null` while the pointer was away.
|
|
99
|
+
* @param next - What has just been read, `null` when it has left the plot.
|
|
100
|
+
* @param sameReadout - The viewer's own comparison.
|
|
101
|
+
* @returns Whether the report can be skipped.
|
|
102
|
+
*/
|
|
103
|
+
export declare function sameReading<TReadout>(current: TReadout | null, next: TReadout | null, sameReadout: (current: TReadout, next: TReadout) => boolean): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* What to hold, given where the pointer has just been seen.
|
|
106
|
+
*
|
|
107
|
+
* The answer already held comes back whenever it still stands, so the whole
|
|
108
|
+
* chart is left alone while a hand rests on a feature — `pointermove` fires on
|
|
109
|
+
* every tremor, and several of those land on the very same user-unit position.
|
|
110
|
+
* @param current - What is held.
|
|
111
|
+
* @param next - What has just been read.
|
|
112
|
+
* @param sameReadout - The viewer's own comparison, asked only once the pointer
|
|
113
|
+
* turns out not to have moved.
|
|
114
|
+
* @returns `current` itself when it already says it, `next` otherwise.
|
|
115
|
+
*/
|
|
116
|
+
export declare function nextChartPointer<TReadout>(current: ChartPointer<TReadout>, next: ChartPointer<TReadout>, sameReadout: (current: TReadout, next: TReadout) => boolean): ChartPointer<TReadout>;
|
|
117
|
+
/**
|
|
118
|
+
* Whether a point is over the data rather than over an axis.
|
|
119
|
+
* @param plot - Where the plot sits inside the SVG.
|
|
120
|
+
* @param point - The point to test, in user units.
|
|
121
|
+
* @returns Whether it is inside the plot, edges included.
|
|
122
|
+
*/
|
|
123
|
+
export declare function isInsidePlot(plot: PlotRect, point: ChartPoint): boolean;
|
|
124
|
+
//# sourceMappingURL=useChartPointer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChartPointer.d.ts","sourceRoot":"","sources":["../../../src/chart/ui/useChartPointer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,uDAAuD;AACvD,MAAM,WAAW,YAAY,CAAC,QAAQ;IACpC,sEAAsE;IACtE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5B,yEAAyE;IACzE,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB,CAAC,QAAQ;IAC3C,oEAAoE;IACpE,MAAM,EAAE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACxC;;;;OAIG;IACH,IAAI,EAAE,QAAQ,CAAC;IACf;;;;OAIG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,QAAQ,CAAC;IACtC;;;;;;;;OAQG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC5D;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EACtC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GACrC,YAAY,CAAC,QAAQ,CAAC,CA6CxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,OAAO,GAAG,IAAI,EACnB,OAAO,EAAE,WAAW,GAAG,IAAI,GAC1B,OAAO,CAGT;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAClC,OAAO,EAAE,QAAQ,GAAG,IAAI,EACxB,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,GAC1D,OAAO,CAIT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EACvC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC/B,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC5B,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,GAC1D,YAAY,CAAC,QAAQ,CAAC,CAcxB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAOvE"}
|