@jbrowse/plugin-wiggle 2.0.1 → 2.1.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/dist/BigWigAdapter/BigWigAdapter.d.ts +8 -7
- package/dist/BigWigAdapter/BigWigAdapter.js +59 -29
- package/dist/BigWigAdapter/BigWigAdapter.js.map +1 -1
- package/dist/BigWigAdapter/configSchema.js +5 -0
- package/dist/BigWigAdapter/configSchema.js.map +1 -1
- package/dist/BigWigAdapter/index.d.ts +3 -1
- package/dist/BigWigAdapter/index.js +39 -3
- package/dist/BigWigAdapter/index.js.map +1 -1
- package/dist/CreateMultiWiggleExtension/ConfirmDialog.d.ts +9 -0
- package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +68 -0
- package/dist/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -0
- package/dist/CreateMultiWiggleExtension/index.d.ts +2 -0
- package/dist/CreateMultiWiggleExtension/index.js +111 -0
- package/dist/CreateMultiWiggleExtension/index.js.map +1 -0
- package/dist/DensityRenderer/DensityRenderer.d.ts +6 -0
- package/dist/DensityRenderer/DensityRenderer.js +74 -0
- package/dist/DensityRenderer/DensityRenderer.js.map +1 -0
- package/dist/DensityRenderer/configSchema.d.ts +2 -0
- package/dist/DensityRenderer/configSchema.js +10 -0
- package/dist/DensityRenderer/configSchema.js.map +1 -0
- package/dist/DensityRenderer/index.d.ts +3 -6
- package/dist/DensityRenderer/index.js +12 -149
- package/dist/DensityRenderer/index.js.map +1 -1
- package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +4 -2
- package/dist/LinePlotRenderer/LinePlotRenderer.js +4 -103
- package/dist/LinePlotRenderer/LinePlotRenderer.js.map +1 -1
- package/dist/LinePlotRenderer/configSchema.d.ts +2 -0
- package/dist/LinePlotRenderer/configSchema.js +16 -0
- package/dist/LinePlotRenderer/configSchema.js.map +1 -0
- package/dist/LinePlotRenderer/index.d.ts +3 -3
- package/dist/LinePlotRenderer/index.js +13 -14
- package/dist/LinePlotRenderer/index.js.map +1 -1
- package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +6 -2
- package/dist/LinearWiggleDisplay/components/SetColorDialog.js +8 -16
- package/dist/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
- package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +6 -11
- package/dist/LinearWiggleDisplay/components/Tooltip.js +11 -122
- package/dist/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
- package/dist/LinearWiggleDisplay/index.d.ts +7 -3
- package/dist/LinearWiggleDisplay/index.js +23 -8
- package/dist/LinearWiggleDisplay/index.js.map +1 -1
- package/dist/LinearWiggleDisplay/models/model.d.ts +24 -5
- package/dist/LinearWiggleDisplay/models/model.js +79 -126
- package/dist/LinearWiggleDisplay/models/model.js.map +1 -1
- package/dist/MultiDensityRenderer/MultiDensityRenderer.d.ts +7 -0
- package/dist/MultiDensityRenderer/MultiDensityRenderer.js +135 -0
- package/dist/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -0
- package/dist/MultiDensityRenderer/configSchema.d.ts +2 -0
- package/dist/MultiDensityRenderer/configSchema.js +10 -0
- package/dist/MultiDensityRenderer/configSchema.js.map +1 -0
- package/dist/MultiDensityRenderer/index.d.ts +3 -0
- package/dist/MultiDensityRenderer/index.js +19 -0
- package/dist/MultiDensityRenderer/index.js.map +1 -0
- package/dist/MultiLineRenderer/MultiLineRenderer.d.ts +7 -0
- package/dist/MultiLineRenderer/MultiLineRenderer.js +124 -0
- package/dist/MultiLineRenderer/MultiLineRenderer.js.map +1 -0
- package/dist/MultiLineRenderer/configSchema.d.ts +2 -0
- package/dist/MultiLineRenderer/configSchema.js +23 -0
- package/dist/MultiLineRenderer/configSchema.js.map +1 -0
- package/dist/MultiLineRenderer/index.d.ts +3 -0
- package/dist/MultiLineRenderer/index.js +19 -0
- package/dist/MultiLineRenderer/index.js.map +1 -0
- package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +10 -0
- package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +239 -0
- package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
- package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -0
- package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js +91 -0
- package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +25 -0
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +78 -0
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -0
- package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +13 -0
- package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +144 -0
- package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
- package/dist/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +7 -0
- package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js +26 -0
- package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js.map +1 -0
- package/dist/MultiLinearWiggleDisplay/components/util.d.ts +10 -0
- package/dist/MultiLinearWiggleDisplay/components/util.js +38 -0
- package/dist/MultiLinearWiggleDisplay/components/util.js.map +1 -0
- package/dist/MultiLinearWiggleDisplay/index.d.ts +3 -0
- package/dist/MultiLinearWiggleDisplay/index.js +23 -0
- package/dist/MultiLinearWiggleDisplay/index.js.map +1 -0
- package/dist/MultiLinearWiggleDisplay/models/configSchema.d.ts +2 -0
- package/dist/MultiLinearWiggleDisplay/models/configSchema.js +77 -0
- package/dist/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -0
- package/dist/MultiLinearWiggleDisplay/models/model.d.ts +339 -0
- package/dist/MultiLinearWiggleDisplay/models/model.js +675 -0
- package/dist/MultiLinearWiggleDisplay/models/model.js.map +1 -0
- package/dist/MultiQuantitativeTrack/index.d.ts +3 -0
- package/dist/MultiQuantitativeTrack/index.js +19 -0
- package/dist/MultiQuantitativeTrack/index.js.map +1 -0
- package/dist/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +7 -0
- package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +131 -0
- package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -0
- package/dist/MultiRowLineRenderer/configSchema.d.ts +2 -0
- package/dist/MultiRowLineRenderer/configSchema.js +23 -0
- package/dist/MultiRowLineRenderer/configSchema.js.map +1 -0
- package/dist/MultiRowLineRenderer/index.d.ts +3 -0
- package/dist/MultiRowLineRenderer/index.js +19 -0
- package/dist/MultiRowLineRenderer/index.js.map +1 -0
- package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +7 -0
- package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +164 -0
- package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -0
- package/dist/MultiRowXYPlotRenderer/configSchema.d.ts +2 -0
- package/dist/MultiRowXYPlotRenderer/configSchema.js +31 -0
- package/dist/MultiRowXYPlotRenderer/configSchema.js.map +1 -0
- package/dist/MultiRowXYPlotRenderer/index.d.ts +3 -0
- package/dist/MultiRowXYPlotRenderer/index.js +19 -0
- package/dist/MultiRowXYPlotRenderer/index.js.map +1 -0
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +28 -0
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +244 -0
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -0
- package/dist/MultiWiggleAdapter/configSchema.d.ts +2 -0
- package/dist/MultiWiggleAdapter/configSchema.js +14 -0
- package/dist/MultiWiggleAdapter/configSchema.js.map +1 -0
- package/dist/MultiWiggleAdapter/index.d.ts +3 -0
- package/dist/MultiWiggleAdapter/index.js +47 -0
- package/dist/MultiWiggleAdapter/index.js.map +1 -0
- package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +5 -0
- package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +139 -0
- package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -0
- package/dist/MultiWiggleAddTrackWidget/index.d.ts +3 -0
- package/dist/MultiWiggleAddTrackWidget/index.js +19 -0
- package/dist/MultiWiggleAddTrackWidget/index.js.map +1 -0
- package/dist/MultiWiggleRendering.d.ts +21 -0
- package/dist/MultiWiggleRendering.js +164 -0
- package/dist/MultiWiggleRendering.js.map +1 -0
- package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +7 -0
- package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +153 -0
- package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -0
- package/dist/MultiXYPlotRenderer/configSchema.d.ts +2 -0
- package/dist/MultiXYPlotRenderer/configSchema.js +31 -0
- package/dist/MultiXYPlotRenderer/configSchema.js.map +1 -0
- package/dist/MultiXYPlotRenderer/index.d.ts +3 -0
- package/dist/MultiXYPlotRenderer/index.js +19 -0
- package/dist/MultiXYPlotRenderer/index.js.map +1 -0
- package/dist/QuantitativeTrack/index.d.ts +3 -0
- package/dist/QuantitativeTrack/index.js +19 -0
- package/dist/QuantitativeTrack/index.js.map +1 -0
- package/dist/Tooltip.d.ts +20 -0
- package/dist/Tooltip.js +124 -0
- package/dist/Tooltip.js.map +1 -0
- package/dist/WiggleBaseRenderer.d.ts +9 -10
- package/dist/WiggleBaseRenderer.js +23 -10
- package/dist/WiggleBaseRenderer.js.map +1 -1
- package/dist/WiggleRPC/rpcMethods.d.ts +17 -1
- package/dist/WiggleRPC/rpcMethods.js +91 -16
- package/dist/WiggleRPC/rpcMethods.js.map +1 -1
- package/dist/WiggleRendering.d.ts +1 -1
- package/dist/WiggleRendering.js +4 -8
- package/dist/WiggleRendering.js.map +1 -1
- package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +4 -1
- package/dist/XYPlotRenderer/XYPlotRenderer.js +23 -126
- package/dist/XYPlotRenderer/XYPlotRenderer.js.map +1 -1
- package/dist/XYPlotRenderer/configSchema.d.ts +2 -0
- package/dist/XYPlotRenderer/configSchema.js +31 -0
- package/dist/XYPlotRenderer/configSchema.js.map +1 -0
- package/dist/XYPlotRenderer/index.d.ts +7 -3
- package/dist/XYPlotRenderer/index.js +17 -25
- package/dist/XYPlotRenderer/index.js.map +1 -1
- package/dist/configSchema.js +0 -5
- package/dist/configSchema.js.map +1 -1
- package/dist/drawxy.d.ts +50 -0
- package/dist/drawxy.js +411 -0
- package/dist/drawxy.js.map +1 -0
- package/dist/index.d.ts +79 -21
- package/dist/index.js +56 -89
- package/dist/index.js.map +1 -1
- package/dist/util.d.ts +34 -1
- package/dist/util.js +159 -1
- package/dist/util.js.map +1 -1
- package/esm/BigWigAdapter/BigWigAdapter.d.ts +8 -7
- package/esm/BigWigAdapter/BigWigAdapter.js +37 -18
- package/esm/BigWigAdapter/BigWigAdapter.js.map +1 -1
- package/esm/BigWigAdapter/configSchema.js +5 -0
- package/esm/BigWigAdapter/configSchema.js.map +1 -1
- package/esm/BigWigAdapter/index.d.ts +3 -1
- package/esm/BigWigAdapter/index.js +14 -1
- package/esm/BigWigAdapter/index.js.map +1 -1
- package/esm/CreateMultiWiggleExtension/ConfirmDialog.d.ts +9 -0
- package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +26 -0
- package/esm/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -0
- package/esm/CreateMultiWiggleExtension/index.d.ts +2 -0
- package/esm/CreateMultiWiggleExtension/index.js +51 -0
- package/esm/CreateMultiWiggleExtension/index.js.map +1 -0
- package/esm/DensityRenderer/DensityRenderer.d.ts +6 -0
- package/esm/DensityRenderer/DensityRenderer.js +8 -0
- package/esm/DensityRenderer/DensityRenderer.js.map +1 -0
- package/esm/DensityRenderer/configSchema.d.ts +2 -0
- package/esm/DensityRenderer/configSchema.js +5 -0
- package/esm/DensityRenderer/configSchema.js.map +1 -0
- package/esm/DensityRenderer/index.d.ts +3 -6
- package/esm/DensityRenderer/index.js +11 -38
- package/esm/DensityRenderer/index.js.map +1 -1
- package/esm/LinePlotRenderer/LinePlotRenderer.d.ts +4 -2
- package/esm/LinePlotRenderer/LinePlotRenderer.js +7 -65
- package/esm/LinePlotRenderer/LinePlotRenderer.js.map +1 -1
- package/esm/LinePlotRenderer/configSchema.d.ts +2 -0
- package/esm/LinePlotRenderer/configSchema.js +11 -0
- package/esm/LinePlotRenderer/configSchema.js.map +1 -0
- package/esm/LinePlotRenderer/index.d.ts +3 -3
- package/esm/LinePlotRenderer/index.js +11 -11
- package/esm/LinePlotRenderer/index.js.map +1 -1
- package/esm/LinearWiggleDisplay/components/SetColorDialog.d.ts +6 -2
- package/esm/LinearWiggleDisplay/components/SetColorDialog.js +9 -16
- package/esm/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
- package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +6 -11
- package/esm/LinearWiggleDisplay/components/Tooltip.js +3 -76
- package/esm/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
- package/esm/LinearWiggleDisplay/index.d.ts +7 -3
- package/esm/LinearWiggleDisplay/index.js +20 -3
- package/esm/LinearWiggleDisplay/index.js.map +1 -1
- package/esm/LinearWiggleDisplay/models/model.d.ts +24 -5
- package/esm/LinearWiggleDisplay/models/model.js +87 -133
- package/esm/LinearWiggleDisplay/models/model.js.map +1 -1
- package/esm/MultiDensityRenderer/MultiDensityRenderer.d.ts +7 -0
- package/esm/MultiDensityRenderer/MultiDensityRenderer.js +36 -0
- package/esm/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -0
- package/esm/MultiDensityRenderer/configSchema.d.ts +2 -0
- package/esm/MultiDensityRenderer/configSchema.js +5 -0
- package/esm/MultiDensityRenderer/configSchema.js.map +1 -0
- package/esm/MultiDensityRenderer/index.d.ts +3 -0
- package/esm/MultiDensityRenderer/index.js +12 -0
- package/esm/MultiDensityRenderer/index.js.map +1 -0
- package/esm/MultiLineRenderer/MultiLineRenderer.d.ts +7 -0
- package/esm/MultiLineRenderer/MultiLineRenderer.js +25 -0
- package/esm/MultiLineRenderer/MultiLineRenderer.js.map +1 -0
- package/esm/MultiLineRenderer/configSchema.d.ts +2 -0
- package/esm/MultiLineRenderer/configSchema.js +18 -0
- package/esm/MultiLineRenderer/configSchema.js.map +1 -0
- package/esm/MultiLineRenderer/index.d.ts +3 -0
- package/esm/MultiLineRenderer/index.js +12 -0
- package/esm/MultiLineRenderer/index.js.map +1 -0
- package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +10 -0
- package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +162 -0
- package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
- package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -0
- package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js +46 -0
- package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
- package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +25 -0
- package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +43 -0
- package/esm/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -0
- package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +13 -0
- package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +99 -0
- package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
- package/esm/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +7 -0
- package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js +9 -0
- package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js.map +1 -0
- package/esm/MultiLinearWiggleDisplay/components/util.d.ts +10 -0
- package/esm/MultiLinearWiggleDisplay/components/util.js +31 -0
- package/esm/MultiLinearWiggleDisplay/components/util.js.map +1 -0
- package/esm/MultiLinearWiggleDisplay/index.d.ts +3 -0
- package/esm/MultiLinearWiggleDisplay/index.js +18 -0
- package/esm/MultiLinearWiggleDisplay/index.js.map +1 -0
- package/esm/MultiLinearWiggleDisplay/models/configSchema.d.ts +2 -0
- package/esm/MultiLinearWiggleDisplay/models/configSchema.js +74 -0
- package/esm/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -0
- package/esm/MultiLinearWiggleDisplay/models/model.d.ts +339 -0
- package/esm/MultiLinearWiggleDisplay/models/model.js +570 -0
- package/esm/MultiLinearWiggleDisplay/models/model.js.map +1 -0
- package/esm/MultiQuantitativeTrack/index.d.ts +3 -0
- package/esm/MultiQuantitativeTrack/index.js +14 -0
- package/esm/MultiQuantitativeTrack/index.js.map +1 -0
- package/esm/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +7 -0
- package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +33 -0
- package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -0
- package/esm/MultiRowLineRenderer/configSchema.d.ts +2 -0
- package/esm/MultiRowLineRenderer/configSchema.js +18 -0
- package/esm/MultiRowLineRenderer/configSchema.js.map +1 -0
- package/esm/MultiRowLineRenderer/index.d.ts +3 -0
- package/esm/MultiRowLineRenderer/index.js +12 -0
- package/esm/MultiRowLineRenderer/index.js.map +1 -0
- package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +7 -0
- package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +39 -0
- package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -0
- package/esm/MultiRowXYPlotRenderer/configSchema.d.ts +2 -0
- package/esm/MultiRowXYPlotRenderer/configSchema.js +26 -0
- package/esm/MultiRowXYPlotRenderer/configSchema.js.map +1 -0
- package/esm/MultiRowXYPlotRenderer/index.d.ts +3 -0
- package/esm/MultiRowXYPlotRenderer/index.js +12 -0
- package/esm/MultiRowXYPlotRenderer/index.js.map +1 -0
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +28 -0
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +87 -0
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -0
- package/esm/MultiWiggleAdapter/configSchema.d.ts +2 -0
- package/esm/MultiWiggleAdapter/configSchema.js +12 -0
- package/esm/MultiWiggleAdapter/configSchema.js.map +1 -0
- package/esm/MultiWiggleAdapter/index.d.ts +3 -0
- package/esm/MultiWiggleAdapter/index.js +15 -0
- package/esm/MultiWiggleAdapter/index.js.map +1 -0
- package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +5 -0
- package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +87 -0
- package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -0
- package/esm/MultiWiggleAddTrackWidget/index.d.ts +3 -0
- package/esm/MultiWiggleAddTrackWidget/index.js +12 -0
- package/esm/MultiWiggleAddTrackWidget/index.js.map +1 -0
- package/esm/MultiWiggleRendering.d.ts +21 -0
- package/esm/MultiWiggleRendering.js +75 -0
- package/esm/MultiWiggleRendering.js.map +1 -0
- package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +7 -0
- package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +28 -0
- package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -0
- package/esm/MultiXYPlotRenderer/configSchema.d.ts +2 -0
- package/esm/MultiXYPlotRenderer/configSchema.js +26 -0
- package/esm/MultiXYPlotRenderer/configSchema.js.map +1 -0
- package/esm/MultiXYPlotRenderer/index.d.ts +3 -0
- package/esm/MultiXYPlotRenderer/index.js +12 -0
- package/esm/MultiXYPlotRenderer/index.js.map +1 -0
- package/esm/QuantitativeTrack/index.d.ts +3 -0
- package/esm/QuantitativeTrack/index.js +14 -0
- package/esm/QuantitativeTrack/index.js.map +1 -0
- package/esm/Tooltip.d.ts +20 -0
- package/esm/Tooltip.js +71 -0
- package/esm/Tooltip.js.map +1 -0
- package/esm/WiggleBaseRenderer.d.ts +9 -10
- package/esm/WiggleBaseRenderer.js +7 -5
- package/esm/WiggleBaseRenderer.js.map +1 -1
- package/esm/WiggleRPC/rpcMethods.d.ts +17 -1
- package/esm/WiggleRPC/rpcMethods.js +49 -7
- package/esm/WiggleRPC/rpcMethods.js.map +1 -1
- package/esm/WiggleRendering.d.ts +1 -1
- package/esm/WiggleRendering.js +4 -8
- package/esm/WiggleRendering.js.map +1 -1
- package/esm/XYPlotRenderer/XYPlotRenderer.d.ts +4 -1
- package/esm/XYPlotRenderer/XYPlotRenderer.js +16 -99
- package/esm/XYPlotRenderer/XYPlotRenderer.js.map +1 -1
- package/esm/XYPlotRenderer/configSchema.d.ts +2 -0
- package/esm/XYPlotRenderer/configSchema.js +26 -0
- package/esm/XYPlotRenderer/configSchema.js.map +1 -0
- package/esm/XYPlotRenderer/index.d.ts +7 -3
- package/esm/XYPlotRenderer/index.js +12 -22
- package/esm/XYPlotRenderer/index.js.map +1 -1
- package/esm/configSchema.js +0 -5
- package/esm/configSchema.js.map +1 -1
- package/esm/drawxy.d.ts +50 -0
- package/esm/drawxy.js +286 -0
- package/esm/drawxy.js.map +1 -0
- package/esm/index.d.ts +79 -21
- package/esm/index.js +49 -74
- package/esm/index.js.map +1 -1
- package/esm/util.d.ts +34 -1
- package/esm/util.js +108 -0
- package/esm/util.js.map +1 -1
- package/package.json +11 -5
- package/src/BigWigAdapter/BigWigAdapter.ts +53 -35
- package/src/BigWigAdapter/__snapshots__/BigWigAdapter.test.ts.snap +10 -10
- package/src/BigWigAdapter/configSchema.ts +5 -0
- package/src/BigWigAdapter/index.ts +19 -1
- package/src/CreateMultiWiggleExtension/ConfirmDialog.tsx +66 -0
- package/src/CreateMultiWiggleExtension/index.ts +57 -0
- package/src/DensityRenderer/DensityRenderer.test.js +8 -2
- package/src/DensityRenderer/DensityRenderer.ts +14 -0
- package/src/DensityRenderer/__snapshots__/DensityRenderer.test.js.snap +8 -0
- package/src/DensityRenderer/configSchema.ts +11 -0
- package/src/DensityRenderer/index.ts +14 -53
- package/src/LinePlotRenderer/LinePlotRenderer.ts +19 -0
- package/src/LinePlotRenderer/{index.js → configSchema.ts} +3 -4
- package/src/LinePlotRenderer/index.ts +16 -0
- package/src/LinearWiggleDisplay/components/SetColorDialog.tsx +17 -19
- package/src/LinearWiggleDisplay/components/Tooltip.tsx +6 -122
- package/src/LinearWiggleDisplay/index.ts +24 -3
- package/src/LinearWiggleDisplay/models/model.tsx +98 -174
- package/src/MultiDensityRenderer/MultiDensityRenderer.ts +39 -0
- package/src/MultiDensityRenderer/configSchema.ts +10 -0
- package/src/MultiDensityRenderer/index.ts +16 -0
- package/src/MultiLineRenderer/MultiLineRenderer.ts +29 -0
- package/src/MultiLineRenderer/configSchema.ts +24 -0
- package/src/MultiLineRenderer/index.ts +17 -0
- package/src/MultiLinearWiggleDisplay/components/SetColorDialog.tsx +322 -0
- package/src/MultiLinearWiggleDisplay/components/SetMinMaxDialog.tsx +113 -0
- package/src/MultiLinearWiggleDisplay/components/Tooltip.tsx +76 -0
- package/src/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.tsx +261 -0
- package/src/MultiLinearWiggleDisplay/components/YScaleBar.tsx +25 -0
- package/src/MultiLinearWiggleDisplay/components/declare.d.ts +1 -0
- package/src/MultiLinearWiggleDisplay/components/util.test.ts +69 -0
- package/src/MultiLinearWiggleDisplay/components/util.ts +33 -0
- package/src/MultiLinearWiggleDisplay/index.ts +20 -0
- package/src/MultiLinearWiggleDisplay/models/configSchema.ts +94 -0
- package/src/MultiLinearWiggleDisplay/models/model.tsx +721 -0
- package/src/MultiQuantitativeTrack/index.ts +26 -0
- package/src/MultiRowLineRenderer/MultiRowLineRenderer.ts +36 -0
- package/src/MultiRowLineRenderer/configSchema.ts +25 -0
- package/src/MultiRowLineRenderer/index.ts +16 -0
- package/src/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.ts +43 -0
- package/src/MultiRowXYPlotRenderer/configSchema.ts +33 -0
- package/src/MultiRowXYPlotRenderer/index.ts +16 -0
- package/src/MultiWiggleAdapter/MultiWiggleAdapter.ts +120 -0
- package/src/MultiWiggleAdapter/configSchema.ts +16 -0
- package/src/MultiWiggleAdapter/index.ts +20 -0
- package/src/MultiWiggleAdapter/test_data/volvox.bw +0 -0
- package/src/MultiWiggleAddTrackWidget/AddTrackWorkflow.tsx +130 -0
- package/src/MultiWiggleAddTrackWidget/index.ts +17 -0
- package/src/MultiWiggleRendering.tsx +125 -0
- package/src/MultiXYPlotRenderer/MultiXYPlotRenderer.ts +32 -0
- package/src/MultiXYPlotRenderer/configSchema.ts +31 -0
- package/src/MultiXYPlotRenderer/index.ts +17 -0
- package/src/QuantitativeTrack/index.ts +26 -0
- package/src/Tooltip.tsx +123 -0
- package/src/WiggleBaseRenderer.tsx +15 -9
- package/src/WiggleRPC/rpcMethods.ts +68 -17
- package/src/WiggleRendering.tsx +12 -18
- package/src/XYPlotRenderer/XYPlotRenderer.test.js +3 -1
- package/src/XYPlotRenderer/XYPlotRenderer.ts +19 -171
- package/src/XYPlotRenderer/__snapshots__/XYPlotRenderer.test.js.snap +8 -0
- package/src/XYPlotRenderer/configSchema.ts +32 -0
- package/src/XYPlotRenderer/index.ts +16 -27
- package/src/__snapshots__/WiggleRendering.test.js.snap +0 -2
- package/src/configSchema.ts +0 -5
- package/src/declare.d.ts +0 -1
- package/src/drawxy.ts +387 -0
- package/src/index.ts +75 -129
- package/src/util.ts +174 -0
- package/src/LinePlotRenderer/LinePlotRenderer.js +0 -91
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Button, Dialog, DialogContent, DialogActions, DialogTitle, IconButton, Paper, } from '@mui/material';
|
|
3
|
+
import { makeStyles } from 'tss-react/mui';
|
|
4
|
+
import { getStr, isUriLocation, measureGridWidth, useLocalStorage, } from '@jbrowse/core/util';
|
|
5
|
+
import { DataGrid } from '@mui/x-data-grid';
|
|
6
|
+
import Draggable from 'react-draggable';
|
|
7
|
+
import clone from 'clone';
|
|
8
|
+
// locals
|
|
9
|
+
import ColorPicker, { ColorPopover } from '@jbrowse/core/ui/ColorPicker';
|
|
10
|
+
import { UriLink } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';
|
|
11
|
+
import { moveUp, moveDown } from './util';
|
|
12
|
+
// icons
|
|
13
|
+
import CloseIcon from '@mui/icons-material/Close';
|
|
14
|
+
import KeyboardDoubleArrowUpIcon from '@mui/icons-material/KeyboardDoubleArrowUp';
|
|
15
|
+
import KeyboardDoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown';
|
|
16
|
+
import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
|
|
17
|
+
import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';
|
|
18
|
+
const useStyles = makeStyles()(theme => ({
|
|
19
|
+
closeButton: {
|
|
20
|
+
position: 'absolute',
|
|
21
|
+
right: theme.spacing(1),
|
|
22
|
+
top: theme.spacing(1),
|
|
23
|
+
color: theme.palette.grey[500],
|
|
24
|
+
},
|
|
25
|
+
content: {
|
|
26
|
+
minWidth: 800,
|
|
27
|
+
},
|
|
28
|
+
}));
|
|
29
|
+
// draggable dialog demo https://mui.com/material-ui/react-dialog/#draggable-dialog
|
|
30
|
+
function PaperComponent(props) {
|
|
31
|
+
return (React.createElement(Draggable, { handle: "#draggable-dialog-title", cancel: '[class*="MuiDialogContent-root"]' },
|
|
32
|
+
React.createElement(Paper, { ...props })));
|
|
33
|
+
}
|
|
34
|
+
export default function SetColorDialog({ model, handleClose, }) {
|
|
35
|
+
const { classes } = useStyles();
|
|
36
|
+
const { sources } = model;
|
|
37
|
+
const [currLayout, setCurrLayout] = useState(clone(sources || []));
|
|
38
|
+
const [showTipsTmp, setShowTips] = useLocalStorage('multiwiggle-showTips', 'true');
|
|
39
|
+
const showTips = showTipsTmp === 'true';
|
|
40
|
+
return (React.createElement(Dialog, { PaperComponent: PaperComponent, open: true, onClose: handleClose, maxWidth: "xl", "aria-labelledby": "draggable-dialog-title" // this area is important for the draggable functionality
|
|
41
|
+
},
|
|
42
|
+
React.createElement(DialogTitle, { style: { cursor: 'move' }, id: "draggable-dialog-title" },
|
|
43
|
+
"Multi-wiggle color/arrangement editor",
|
|
44
|
+
' ',
|
|
45
|
+
React.createElement(IconButton, { className: classes.closeButton, onClick: handleClose },
|
|
46
|
+
React.createElement(CloseIcon, null))),
|
|
47
|
+
React.createElement(DialogContent, { className: classes.content },
|
|
48
|
+
React.createElement(Button, { variant: "contained", style: { float: 'right' }, onClick: () => setShowTips(showTips ? 'false' : 'true') }, showTips ? 'Hide tips' : 'Show tips'),
|
|
49
|
+
React.createElement("br", null),
|
|
50
|
+
showTips ? (React.createElement(React.Fragment, null,
|
|
51
|
+
"Helpful tips",
|
|
52
|
+
React.createElement("ul", null,
|
|
53
|
+
React.createElement("li", null, "You can select rows in the table with the checkboxes"),
|
|
54
|
+
React.createElement("li", null, "Multi-select is enabled with shift-click and control-click"),
|
|
55
|
+
React.createElement("li", null, "The \"Move selected items up/down\" can re-arrange subtracks"),
|
|
56
|
+
React.createElement("li", null, "Sorting the data grid itself can also re-arrange subtracks"),
|
|
57
|
+
React.createElement("li", null, "Changes are applied when you hit Submit"),
|
|
58
|
+
React.createElement("li", null, "You can click and drag the dialog box to move it on the screen"),
|
|
59
|
+
React.createElement("li", null, "Columns in the table can be hidden using a vertical '...' menu on the right side of each column")))) : null,
|
|
60
|
+
React.createElement(SourcesGrid, { rows: currLayout, onChange: setCurrLayout, showTips: showTips })),
|
|
61
|
+
React.createElement(DialogActions, null,
|
|
62
|
+
React.createElement(Button, { variant: "contained", type: "submit", color: "inherit", onClick: () => {
|
|
63
|
+
model.clearLayout();
|
|
64
|
+
setCurrLayout(model.sources);
|
|
65
|
+
} }, "Clear custom settings"),
|
|
66
|
+
React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
67
|
+
handleClose();
|
|
68
|
+
setCurrLayout([...model.sources]);
|
|
69
|
+
} }, "Cancel"),
|
|
70
|
+
React.createElement(Button, { variant: "contained", color: "primary", type: "submit", onClick: () => {
|
|
71
|
+
model.setLayout(currLayout);
|
|
72
|
+
handleClose();
|
|
73
|
+
} }, "Submit"))));
|
|
74
|
+
}
|
|
75
|
+
function SourcesGrid({ rows, onChange, showTips, }) {
|
|
76
|
+
const [anchorEl, setAnchorEl] = useState(null);
|
|
77
|
+
const [selected, setSelected] = useState([]);
|
|
78
|
+
// @ts-ignore
|
|
79
|
+
const { name: _name, color: _color, baseUri: _baseUri, ...rest } = rows[0];
|
|
80
|
+
// similar to BaseFeatureDetail data-grid for auto-measuring columns
|
|
81
|
+
const columns = [
|
|
82
|
+
{
|
|
83
|
+
field: 'color',
|
|
84
|
+
headerName: 'Color',
|
|
85
|
+
renderCell: (params) => {
|
|
86
|
+
const { value, id } = params;
|
|
87
|
+
return (React.createElement(ColorPicker, { color: value || 'blue', onChange: c => {
|
|
88
|
+
const elt = rows.find(f => f.name === id);
|
|
89
|
+
if (elt) {
|
|
90
|
+
elt.color = c;
|
|
91
|
+
}
|
|
92
|
+
onChange([...rows]);
|
|
93
|
+
} }));
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
field: 'name',
|
|
98
|
+
sortingOrder: [null],
|
|
99
|
+
headerName: 'Name',
|
|
100
|
+
width: measureGridWidth(rows.map(r => r.name)),
|
|
101
|
+
},
|
|
102
|
+
...Object.keys(rest).map(val => ({
|
|
103
|
+
field: val,
|
|
104
|
+
sortingOrder: [null],
|
|
105
|
+
renderCell: (params) => {
|
|
106
|
+
const { value } = params;
|
|
107
|
+
return isUriLocation(value) ? React.createElement(UriLink, { value: value }) : getStr(value);
|
|
108
|
+
},
|
|
109
|
+
// @ts-ignore
|
|
110
|
+
width: measureGridWidth(rows.map(r => r[val])),
|
|
111
|
+
})),
|
|
112
|
+
];
|
|
113
|
+
// this helps keep track of the selection, even though it is not used
|
|
114
|
+
// anywhere except inside the picker
|
|
115
|
+
const [widgetColor, setWidgetColor] = useState('blue');
|
|
116
|
+
const [currSort, setCurrSort] = useState({ idx: 0, field: null });
|
|
117
|
+
return (React.createElement("div", null,
|
|
118
|
+
React.createElement(Button, { disabled: !selected.length, onClick: event => setAnchorEl(event.currentTarget) }, "Change color of selected items"),
|
|
119
|
+
React.createElement(Button, { onClick: () => onChange(moveUp([...rows], selected)), disabled: !selected.length },
|
|
120
|
+
React.createElement(KeyboardArrowUpIcon, null),
|
|
121
|
+
showTips ? 'Move selected items up' : null),
|
|
122
|
+
React.createElement(Button, { onClick: () => onChange(moveDown([...rows], selected)), disabled: !selected.length },
|
|
123
|
+
React.createElement(KeyboardArrowDownIcon, null),
|
|
124
|
+
showTips ? 'Move selected items down' : null),
|
|
125
|
+
React.createElement(Button, { onClick: () => onChange(moveUp([...rows], selected, rows.length)), disabled: !selected.length },
|
|
126
|
+
React.createElement(KeyboardDoubleArrowUpIcon, null),
|
|
127
|
+
showTips ? 'Move selected items to top' : null),
|
|
128
|
+
React.createElement(Button, { onClick: () => onChange(moveDown([...rows], selected, rows.length)), disabled: !selected.length },
|
|
129
|
+
React.createElement(KeyboardDoubleArrowDownIcon, null),
|
|
130
|
+
showTips ? 'Move selected items to bottom' : null),
|
|
131
|
+
React.createElement(ColorPopover, { anchorEl: anchorEl, color: widgetColor, onChange: c => {
|
|
132
|
+
setWidgetColor(c);
|
|
133
|
+
selected.forEach(id => {
|
|
134
|
+
const elt = rows.find(f => f.name === id);
|
|
135
|
+
if (elt) {
|
|
136
|
+
elt.color = c;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
onChange([...rows]);
|
|
140
|
+
}, onClose: () => setAnchorEl(null) }),
|
|
141
|
+
React.createElement("div", { style: { height: 400, width: '100%' } },
|
|
142
|
+
React.createElement(DataGrid, { getRowId: row => row.name, checkboxSelection: true, disableSelectionOnClick: true, onSelectionModelChange: arg => setSelected(arg), rows: rows, rowHeight: 25, headerHeight: 33, columns: columns, sortModel: [
|
|
143
|
+
/* we control the sort as a controlled component using onSortModelChange */
|
|
144
|
+
], onSortModelChange: args => {
|
|
145
|
+
const sort = args[0];
|
|
146
|
+
const idx = (currSort.idx + 1) % 2;
|
|
147
|
+
const field = (sort === null || sort === void 0 ? void 0 : sort.field) || currSort.field;
|
|
148
|
+
setCurrSort({ idx, field });
|
|
149
|
+
onChange(field
|
|
150
|
+
? [...rows].sort((a, b) => {
|
|
151
|
+
// @ts-ignore
|
|
152
|
+
const aa = getStr(a[field]);
|
|
153
|
+
// @ts-ignore
|
|
154
|
+
const bb = getStr(b[field]);
|
|
155
|
+
return idx === 1
|
|
156
|
+
? aa.localeCompare(bb)
|
|
157
|
+
: bb.localeCompare(aa);
|
|
158
|
+
})
|
|
159
|
+
: rows);
|
|
160
|
+
} }))));
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=SetColorDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetColorDialog.js","sourceRoot":"","sources":["../../../src/MultiLinearWiggleDisplay/components/SetColorDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Button, Dialog, DialogContent, DialogTitle, IconButton, TextField, Typography, } from '@mui/material';
|
|
3
|
+
import { makeStyles } from 'tss-react/mui';
|
|
4
|
+
import CloseIcon from '@mui/icons-material/Close';
|
|
5
|
+
const useStyles = makeStyles()(theme => ({
|
|
6
|
+
root: {},
|
|
7
|
+
closeButton: {
|
|
8
|
+
position: 'absolute',
|
|
9
|
+
right: theme.spacing(1),
|
|
10
|
+
top: theme.spacing(1),
|
|
11
|
+
color: theme.palette.grey[500],
|
|
12
|
+
},
|
|
13
|
+
}));
|
|
14
|
+
export default function SetMinMaxDlg(props) {
|
|
15
|
+
const { classes } = useStyles();
|
|
16
|
+
const { model, handleClose } = props;
|
|
17
|
+
const { minScore, maxScore, scaleType } = model;
|
|
18
|
+
const [min, setMin] = useState(`${minScore !== Number.MIN_VALUE ? minScore : ''}`);
|
|
19
|
+
const [max, setMax] = useState(`${maxScore !== Number.MAX_VALUE ? maxScore : ''}`);
|
|
20
|
+
const ok = min !== '' && max !== '' && !Number.isNaN(+min) && !Number.isNaN(+max)
|
|
21
|
+
? +max > +min
|
|
22
|
+
: true;
|
|
23
|
+
const logOk = scaleType === 'log' && min !== '' && !Number.isNaN(+min) ? +min > 0 : true;
|
|
24
|
+
return (React.createElement(Dialog, { open: true, onClose: handleClose },
|
|
25
|
+
React.createElement(DialogTitle, null,
|
|
26
|
+
"Set min/max score for track",
|
|
27
|
+
React.createElement(IconButton, { className: classes.closeButton, onClick: handleClose },
|
|
28
|
+
React.createElement(CloseIcon, null))),
|
|
29
|
+
React.createElement(DialogContent, { style: { overflowX: 'hidden' } },
|
|
30
|
+
React.createElement("div", { className: classes.root },
|
|
31
|
+
React.createElement(Typography, null, "Enter min/max score: "),
|
|
32
|
+
!ok ? (React.createElement(Typography, { color: "error" }, "Max is greater than or equal to min")) : null,
|
|
33
|
+
!logOk ? (React.createElement(Typography, { color: "error" }, "Min score should be greater than 0 for log scale")) : null,
|
|
34
|
+
React.createElement(TextField, { value: min, onChange: event => {
|
|
35
|
+
setMin(event.target.value);
|
|
36
|
+
}, placeholder: "Enter min score" }),
|
|
37
|
+
React.createElement(TextField, { value: max, onChange: event => {
|
|
38
|
+
setMax(event.target.value);
|
|
39
|
+
}, placeholder: "Enter max score" }),
|
|
40
|
+
React.createElement(Button, { variant: "contained", color: "primary", type: "submit", style: { marginLeft: 20 }, disabled: !ok, onClick: () => {
|
|
41
|
+
model.setMinScore(min !== '' && !Number.isNaN(+min) ? +min : undefined);
|
|
42
|
+
model.setMaxScore(max !== '' && !Number.isNaN(+max) ? +max : undefined);
|
|
43
|
+
handleClose();
|
|
44
|
+
} }, "Submit")))));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=SetMinMaxDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetMinMaxDialog.js","sourceRoot":"","sources":["../../../src/MultiLinearWiggleDisplay/components/SetMinMaxDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Feature } from '@jbrowse/core/util';
|
|
3
|
+
import { Source } from '../../util';
|
|
4
|
+
import Tooltip, { TooltipContentsComponent } from '../../Tooltip';
|
|
5
|
+
declare const TooltipContents: React.ForwardRefExoticComponent<{
|
|
6
|
+
model: {
|
|
7
|
+
sources: Source[];
|
|
8
|
+
};
|
|
9
|
+
feature: Feature;
|
|
10
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
declare type Coord = [number, number];
|
|
12
|
+
declare const WiggleTooltip: (props: {
|
|
13
|
+
model: {
|
|
14
|
+
featureUnderMouse: Feature;
|
|
15
|
+
sources: Source[];
|
|
16
|
+
rowHeight: number;
|
|
17
|
+
};
|
|
18
|
+
height: number;
|
|
19
|
+
offsetMouseCoord: Coord;
|
|
20
|
+
clientMouseCoord: Coord;
|
|
21
|
+
clientRect?: DOMRect;
|
|
22
|
+
TooltipContents?: TooltipContentsComponent;
|
|
23
|
+
}) => JSX.Element;
|
|
24
|
+
export default WiggleTooltip;
|
|
25
|
+
export { Tooltip };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
// locals
|
|
4
|
+
import { toP } from '../../util';
|
|
5
|
+
import Tooltip from '../../Tooltip';
|
|
6
|
+
const en = (n) => n.toLocaleString('en-US');
|
|
7
|
+
const TooltipContents = React.forwardRef(({ model, feature }, ref) => {
|
|
8
|
+
const start = feature.get('start');
|
|
9
|
+
const end = feature.get('end');
|
|
10
|
+
const refName = feature.get('refName');
|
|
11
|
+
const coord = start === end ? en(start) : `${en(start)}..${en(end)}`;
|
|
12
|
+
const sources = feature.get('sources');
|
|
13
|
+
const source = feature.get('source');
|
|
14
|
+
const summary = feature.get('summary');
|
|
15
|
+
const obj = Object.fromEntries(model.sources.map(ent => [ent.name, ent]));
|
|
16
|
+
return (React.createElement("div", { ref: ref },
|
|
17
|
+
[refName, coord].filter(f => !!f).join(':'),
|
|
18
|
+
React.createElement("br", null),
|
|
19
|
+
sources ? (React.createElement("table", null,
|
|
20
|
+
React.createElement("thead", null,
|
|
21
|
+
React.createElement("tr", null,
|
|
22
|
+
React.createElement("th", null, "color"),
|
|
23
|
+
React.createElement("th", null, "source"),
|
|
24
|
+
React.createElement("th", null, "score"))),
|
|
25
|
+
React.createElement("tbody", null, Object.entries(sources).map(([source, data]) => {
|
|
26
|
+
var _a;
|
|
27
|
+
return (React.createElement("tr", { key: source },
|
|
28
|
+
React.createElement("td", { style: { background: (_a = obj[source]) === null || _a === void 0 ? void 0 : _a.color } }, " "),
|
|
29
|
+
React.createElement("td", null, source),
|
|
30
|
+
React.createElement("td", null, toP(data.score))));
|
|
31
|
+
})))) : (React.createElement("span", null,
|
|
32
|
+
source,
|
|
33
|
+
' ',
|
|
34
|
+
summary
|
|
35
|
+
? `min:${toP(feature.get('minScore'))} avg:${toP(feature.get('score'))} max:${toP(feature.get('maxScore'))}`
|
|
36
|
+
: toP(feature.get('score'))))));
|
|
37
|
+
});
|
|
38
|
+
const WiggleTooltip = observer((props) => {
|
|
39
|
+
return React.createElement(Tooltip, { useClientY: true, TooltipContents: TooltipContents, ...props });
|
|
40
|
+
});
|
|
41
|
+
export default WiggleTooltip;
|
|
42
|
+
export { Tooltip };
|
|
43
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/MultiLinearWiggleDisplay/components/Tooltip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { WiggleDisplayModel } from '../models/model';
|
|
3
|
+
import YScaleBar from './YScaleBar';
|
|
4
|
+
export declare const StatBars: (props: {
|
|
5
|
+
model: WiggleDisplayModel;
|
|
6
|
+
orientation?: string;
|
|
7
|
+
exportSVG?: boolean;
|
|
8
|
+
}) => JSX.Element | null;
|
|
9
|
+
declare const LinearWiggleDisplay: (props: {
|
|
10
|
+
model: WiggleDisplayModel;
|
|
11
|
+
}) => JSX.Element;
|
|
12
|
+
export default LinearWiggleDisplay;
|
|
13
|
+
export { YScaleBar };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { measureText, getContainingView, getContainingTrack, } from '@jbrowse/core/util';
|
|
3
|
+
import { getConf } from '@jbrowse/core/configuration';
|
|
4
|
+
import { BaseLinearDisplayComponent, } from '@jbrowse/plugin-linear-genome-view';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
6
|
+
import YScaleBar from './YScaleBar';
|
|
7
|
+
const trackLabelFontSize = 12.8;
|
|
8
|
+
function getOffset(model) {
|
|
9
|
+
const { prefersOffset } = model;
|
|
10
|
+
const { trackLabels } = getContainingView(model);
|
|
11
|
+
const track = getContainingTrack(model);
|
|
12
|
+
const trackName = getConf(track, 'name');
|
|
13
|
+
return trackLabels === 'overlapping' && !prefersOffset
|
|
14
|
+
? measureText(trackName, trackLabelFontSize) + 100
|
|
15
|
+
: 10;
|
|
16
|
+
}
|
|
17
|
+
const Wrapper = observer(({ children, model, exportSVG, }) => {
|
|
18
|
+
if (exportSVG) {
|
|
19
|
+
return React.createElement(React.Fragment, null, children);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const { height } = model;
|
|
23
|
+
return (React.createElement("svg", { style: {
|
|
24
|
+
position: 'absolute',
|
|
25
|
+
top: 0,
|
|
26
|
+
left: 0,
|
|
27
|
+
pointerEvents: 'none',
|
|
28
|
+
height,
|
|
29
|
+
width: 1800,
|
|
30
|
+
} }, children));
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
const RectBg = (props) => {
|
|
34
|
+
const { color = 'rgb(255,255,255,0.8)' } = props;
|
|
35
|
+
return React.createElement("rect", { ...props, fill: color });
|
|
36
|
+
};
|
|
37
|
+
const ScoreLegend = observer(({ model }) => {
|
|
38
|
+
const { ticks, scaleType } = model;
|
|
39
|
+
const { width } = getContainingView(model);
|
|
40
|
+
const legend = `[${ticks.values[0]}-${ticks.values[1]}]` +
|
|
41
|
+
(scaleType === 'log' ? ' (log scale)' : '');
|
|
42
|
+
const len = measureText(legend, 14);
|
|
43
|
+
const padding = 25;
|
|
44
|
+
const xpos = width - len - padding;
|
|
45
|
+
return (React.createElement(React.Fragment, null,
|
|
46
|
+
React.createElement(RectBg, { y: 0, x: xpos, width: len + 6, height: 16 }),
|
|
47
|
+
React.createElement("text", { y: 13, x: xpos }, legend)));
|
|
48
|
+
});
|
|
49
|
+
const ColorLegend = observer(({ model, rowHeight, labelWidth, exportSVG, }) => {
|
|
50
|
+
const { needsCustomLegend, needsScalebar, needsFullHeightScalebar, rowHeightTooSmallForScalebar, renderColorBoxes, sources, } = model;
|
|
51
|
+
const svgFontSize = Math.min(rowHeight, 12);
|
|
52
|
+
const canDisplayLabel = rowHeight > 11;
|
|
53
|
+
const colorBoxWidth = renderColorBoxes ? 15 : 0;
|
|
54
|
+
const legendWidth = labelWidth + colorBoxWidth + 5;
|
|
55
|
+
const svgOffset = exportSVG ? 10 : 0;
|
|
56
|
+
const extraOffset = svgOffset || (needsScalebar && !rowHeightTooSmallForScalebar ? 50 : 0);
|
|
57
|
+
return sources ? (React.createElement(React.Fragment, null,
|
|
58
|
+
/* 0.25 for hanging letters like g */
|
|
59
|
+
needsFullHeightScalebar ? (React.createElement(RectBg, { y: 0, x: extraOffset, width: legendWidth, height: (sources.length + 0.25) * rowHeight })) : null,
|
|
60
|
+
sources.map((source, idx) => {
|
|
61
|
+
const boxHeight = Math.min(20, rowHeight);
|
|
62
|
+
return (React.createElement(React.Fragment, { key: source.name + '-' + idx },
|
|
63
|
+
!needsFullHeightScalebar ? (React.createElement(RectBg, { y: idx * rowHeight + 1, x: extraOffset, width: legendWidth, height: boxHeight })) : null,
|
|
64
|
+
source.color ? (React.createElement(RectBg, { y: idx * rowHeight + 1, x: extraOffset, width: colorBoxWidth, height: needsCustomLegend ? rowHeight : boxHeight, color: source.color })) : null,
|
|
65
|
+
canDisplayLabel ? (React.createElement("text", { y: idx * rowHeight + 13, x: extraOffset + colorBoxWidth + 2, fontSize: svgFontSize }, source.name)) : null));
|
|
66
|
+
}))) : null;
|
|
67
|
+
});
|
|
68
|
+
export const StatBars = observer((props) => {
|
|
69
|
+
const { model, orientation, exportSVG } = props;
|
|
70
|
+
const { stats, needsCustomLegend, needsFullHeightScalebar, rowHeightTooSmallForScalebar, rowHeight, sources, ticks, } = model;
|
|
71
|
+
const svgFontSize = Math.min(rowHeight, 12);
|
|
72
|
+
const canDisplayLabel = rowHeight > 11;
|
|
73
|
+
const { width: viewWidth } = getContainingView(model);
|
|
74
|
+
const minWidth = 20;
|
|
75
|
+
const ready = stats && sources;
|
|
76
|
+
if (!ready) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
const labelWidth = Math.max(...(sources
|
|
80
|
+
.map(s => measureText(s.name, svgFontSize))
|
|
81
|
+
.map(width => (canDisplayLabel ? width : minWidth)) || [0]));
|
|
82
|
+
return (React.createElement(Wrapper, { ...props }, needsFullHeightScalebar ? (React.createElement(React.Fragment, null,
|
|
83
|
+
React.createElement("g", { transform: `translate(${!exportSVG ? getOffset(model) : 0},0)` },
|
|
84
|
+
React.createElement(YScaleBar, { model: model, orientation: orientation })),
|
|
85
|
+
React.createElement("g", { transform: `translate(${viewWidth - labelWidth - 100},0)` },
|
|
86
|
+
React.createElement(ColorLegend, { exportSVG: exportSVG, model: model, rowHeight: 12, labelWidth: labelWidth })))) : (React.createElement(React.Fragment, null,
|
|
87
|
+
React.createElement(ColorLegend, { exportSVG: exportSVG, model: model, rowHeight: model.rowHeight, labelWidth: labelWidth }),
|
|
88
|
+
rowHeightTooSmallForScalebar || needsCustomLegend ? (React.createElement(ScoreLegend, { ...props })) : (sources.map((_source, idx) => (React.createElement("g", { transform: `translate(0 ${rowHeight * idx})`, key: JSON.stringify(ticks) + '-' + idx },
|
|
89
|
+
React.createElement(YScaleBar, { model: model, orientation: orientation })))))))));
|
|
90
|
+
});
|
|
91
|
+
const LinearWiggleDisplay = observer((props) => {
|
|
92
|
+
const { model } = props;
|
|
93
|
+
return (React.createElement("div", null,
|
|
94
|
+
React.createElement(BaseLinearDisplayComponent, { ...props }),
|
|
95
|
+
React.createElement(StatBars, { model: model })));
|
|
96
|
+
});
|
|
97
|
+
export default LinearWiggleDisplay;
|
|
98
|
+
export { YScaleBar };
|
|
99
|
+
//# sourceMappingURL=WiggleDisplayComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WiggleDisplayComponent.js","sourceRoot":"","sources":["../../../src/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import { Axis, LEFT, RIGHT } from 'react-d3-axis-mod';
|
|
4
|
+
const YScaleBar = observer(({ model, orientation, }) => {
|
|
5
|
+
const { ticks } = model;
|
|
6
|
+
return ticks ? (React.createElement(Axis, { ...ticks, shadow: 2, format: (n) => n, style: { orient: orientation === 'left' ? LEFT : RIGHT } })) : null;
|
|
7
|
+
});
|
|
8
|
+
export default YScaleBar;
|
|
9
|
+
//# sourceMappingURL=YScaleBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YScaleBar.js","sourceRoot":"","sources":["../../../src/MultiLinearWiggleDisplay/components/YScaleBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGrD,MAAM,SAAS,GAAG,QAAQ,CACxB,CAAC,EACC,KAAK,EACL,WAAW,GAIZ,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,oBAAC,IAAI,OACC,KAAK,EACT,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GACxD,CACH,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CACF,CAAA;AACD,eAAe,SAAS,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export function moveUp(arr, sel, by = 1) {
|
|
2
|
+
const idxs = sel
|
|
3
|
+
.map(l => arr.findIndex(v => v.name === l))
|
|
4
|
+
.sort((a, b) => a - b);
|
|
5
|
+
let lastIdx = 0;
|
|
6
|
+
for (let i = 0; i < idxs.length; i++) {
|
|
7
|
+
const old = idxs[i];
|
|
8
|
+
const idx = Math.max(lastIdx, old - by);
|
|
9
|
+
if (idx >= lastIdx) {
|
|
10
|
+
arr.splice(idx, 0, arr.splice(old, 1)[0]);
|
|
11
|
+
}
|
|
12
|
+
lastIdx = lastIdx + 1;
|
|
13
|
+
}
|
|
14
|
+
return arr;
|
|
15
|
+
}
|
|
16
|
+
export function moveDown(arr, sel, by = 1) {
|
|
17
|
+
const idxs = sel
|
|
18
|
+
.map(l => arr.findIndex(v => v.name === l))
|
|
19
|
+
.sort((a, b) => b - a);
|
|
20
|
+
let lastIdx = arr.length - 1;
|
|
21
|
+
for (let i = 0; i < idxs.length; i++) {
|
|
22
|
+
const old = idxs[i];
|
|
23
|
+
const idx = Math.min(lastIdx, old + by);
|
|
24
|
+
if (idx <= lastIdx) {
|
|
25
|
+
arr.splice(idx, 0, arr.splice(old, 1)[0]);
|
|
26
|
+
}
|
|
27
|
+
lastIdx = lastIdx - 1;
|
|
28
|
+
}
|
|
29
|
+
return arr;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/MultiLinearWiggleDisplay/components/util.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,GAAuB,EAAE,GAAa,EAAE,EAAE,GAAG,CAAC;IACnE,MAAM,IAAI,GAAG,GAAG;SACb,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;SAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;QACvC,IAAI,GAAG,IAAI,OAAO,EAAE;YAClB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAC1C;QACD,OAAO,GAAG,OAAO,GAAG,CAAC,CAAA;KACtB;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAuB,EAAE,GAAa,EAAE,EAAE,GAAG,CAAC;IACrE,MAAM,IAAI,GAAG,GAAG;SACb,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;SAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;QACvC,IAAI,GAAG,IAAI,OAAO,EAAE;YAClB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAC1C;QACD,OAAO,GAAG,OAAO,GAAG,CAAC,CAAA;KACtB;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType';
|
|
2
|
+
import configSchemaFactory from './models/configSchema';
|
|
3
|
+
import modelFactory from './models/model';
|
|
4
|
+
import ReactComponent from './components/WiggleDisplayComponent';
|
|
5
|
+
export default (pluginManager) => {
|
|
6
|
+
pluginManager.addDisplayType(() => {
|
|
7
|
+
const configSchema = configSchemaFactory(pluginManager);
|
|
8
|
+
return new DisplayType({
|
|
9
|
+
name: 'MultiLinearWiggleDisplay',
|
|
10
|
+
configSchema,
|
|
11
|
+
stateModel: modelFactory(pluginManager, configSchema),
|
|
12
|
+
trackType: 'MultiQuantitativeTrack',
|
|
13
|
+
viewType: 'LinearGenomeView',
|
|
14
|
+
ReactComponent,
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MultiLinearWiggleDisplay/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AAEzE,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,cAAc,MAAM,qCAAqC,CAAA;AAEhE,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;QACvD,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,0BAA0B;YAChC,YAAY;YACZ,UAAU,EAAE,YAAY,CAAC,aAAa,EAAE,YAAY,CAAC;YACrD,SAAS,EAAE,wBAAwB;YACnC,QAAQ,EAAE,kBAAkB;YAC5B,cAAc;SACf,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
+
import { baseLinearDisplayConfigSchema } from '@jbrowse/plugin-linear-genome-view';
|
|
3
|
+
import { types } from 'mobx-state-tree';
|
|
4
|
+
export default function WiggleConfigFactory(pluginManager) {
|
|
5
|
+
const MultiXYPlotRendererConfigSchema = pluginManager.getRendererType('MultiXYPlotRenderer').configSchema;
|
|
6
|
+
const MultiDensityRendererConfigSchema = pluginManager.getRendererType('MultiDensityRenderer').configSchema;
|
|
7
|
+
const MultiRowXYPlotRendererConfigSchema = pluginManager.getRendererType('MultiRowXYPlotRenderer').configSchema;
|
|
8
|
+
const MultiLineRendererConfigSchema = pluginManager.getRendererType('MultiLineRenderer').configSchema;
|
|
9
|
+
const MultiRowLineRendererConfigSchema = pluginManager.getRendererType('MultiRowLineRenderer').configSchema;
|
|
10
|
+
return ConfigurationSchema('MultiLinearWiggleDisplay', {
|
|
11
|
+
autoscale: {
|
|
12
|
+
type: 'stringEnum',
|
|
13
|
+
defaultValue: 'local',
|
|
14
|
+
model: types.enumeration('Autoscale type', [
|
|
15
|
+
'global',
|
|
16
|
+
'local',
|
|
17
|
+
'globalsd',
|
|
18
|
+
'localsd',
|
|
19
|
+
'zscore',
|
|
20
|
+
]),
|
|
21
|
+
description: 'global/local using their min/max values or w/ standard deviations (globalsd/localsd)',
|
|
22
|
+
},
|
|
23
|
+
minimalTicks: {
|
|
24
|
+
type: 'boolean',
|
|
25
|
+
defaultValue: false,
|
|
26
|
+
description: 'use the minimal amount of ticks',
|
|
27
|
+
},
|
|
28
|
+
minScore: {
|
|
29
|
+
type: 'number',
|
|
30
|
+
defaultValue: Number.MIN_VALUE,
|
|
31
|
+
description: 'minimum value for the y-scale',
|
|
32
|
+
},
|
|
33
|
+
maxScore: {
|
|
34
|
+
type: 'number',
|
|
35
|
+
description: 'maximum value for the y-scale',
|
|
36
|
+
defaultValue: Number.MAX_VALUE,
|
|
37
|
+
},
|
|
38
|
+
numStdDev: {
|
|
39
|
+
type: 'number',
|
|
40
|
+
description: 'number of standard deviations to use for autoscale types globalsd or localsd',
|
|
41
|
+
defaultValue: 3,
|
|
42
|
+
},
|
|
43
|
+
scaleType: {
|
|
44
|
+
type: 'stringEnum',
|
|
45
|
+
model: types.enumeration('Scale type', ['linear', 'log']),
|
|
46
|
+
description: 'The type of scale to use',
|
|
47
|
+
defaultValue: 'linear',
|
|
48
|
+
},
|
|
49
|
+
inverted: {
|
|
50
|
+
type: 'boolean',
|
|
51
|
+
description: 'draw upside down',
|
|
52
|
+
defaultValue: false,
|
|
53
|
+
},
|
|
54
|
+
defaultRendering: {
|
|
55
|
+
type: 'stringEnum',
|
|
56
|
+
model: types.enumeration('Rendering', [
|
|
57
|
+
'multirowxy',
|
|
58
|
+
'xyplot',
|
|
59
|
+
'multirowdensity',
|
|
60
|
+
'multiline',
|
|
61
|
+
'multirowline',
|
|
62
|
+
]),
|
|
63
|
+
defaultValue: 'multirowxy',
|
|
64
|
+
},
|
|
65
|
+
renderers: ConfigurationSchema('RenderersConfiguration', {
|
|
66
|
+
MultiXYPlotRenderer: MultiXYPlotRendererConfigSchema,
|
|
67
|
+
MultiDensityRenderer: MultiDensityRendererConfigSchema,
|
|
68
|
+
MultiRowXYPlotRenderer: MultiRowXYPlotRendererConfigSchema,
|
|
69
|
+
MultiLineRenderer: MultiLineRendererConfigSchema,
|
|
70
|
+
MultiRowLineRenderer: MultiRowLineRendererConfigSchema,
|
|
71
|
+
}),
|
|
72
|
+
}, { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true });
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=configSchema.js.map
|