@jbrowse/plugin-wiggle 1.6.8 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/BigWigAdapter/BigWigAdapter.d.ts +24 -24
  2. package/dist/BigWigAdapter/BigWigAdapter.js +288 -0
  3. package/dist/BigWigAdapter/BigWigAdapter.test.js +157 -0
  4. package/dist/BigWigAdapter/configSchema.d.ts +2 -2
  5. package/dist/BigWigAdapter/configSchema.js +22 -0
  6. package/dist/BigWigAdapter/index.d.ts +1 -1
  7. package/dist/BigWigAdapter/index.js +15 -0
  8. package/dist/DensityRenderer/DensityRenderer.test.js +84 -0
  9. package/dist/DensityRenderer/index.d.ts +6 -6
  10. package/dist/DensityRenderer/index.js +137 -0
  11. package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +4 -9
  12. package/dist/LinePlotRenderer/LinePlotRenderer.js +171 -0
  13. package/dist/LinePlotRenderer/configSchema.d.ts +2 -2
  14. package/dist/LinePlotRenderer/configSchema.js +70 -0
  15. package/dist/LinePlotRenderer/index.d.ts +3 -3
  16. package/dist/LinePlotRenderer/index.js +34 -0
  17. package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +10 -10
  18. package/dist/LinearWiggleDisplay/components/SetColorDialog.js +111 -0
  19. package/dist/LinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -11
  20. package/dist/LinearWiggleDisplay/components/SetMinMaxDialog.js +112 -0
  21. package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +24 -24
  22. package/dist/LinearWiggleDisplay/components/Tooltip.js +167 -0
  23. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +8 -8
  24. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +52 -0
  25. package/dist/LinearWiggleDisplay/components/YScaleBar.d.ts +7 -7
  26. package/dist/LinearWiggleDisplay/components/YScaleBar.js +33 -0
  27. package/dist/LinearWiggleDisplay/index.d.ts +3 -3
  28. package/dist/LinearWiggleDisplay/index.js +43 -0
  29. package/dist/LinearWiggleDisplay/models/configSchema.d.ts +2 -2
  30. package/dist/LinearWiggleDisplay/models/configSchema.js +71 -0
  31. package/dist/LinearWiggleDisplay/models/model.d.ts +288 -288
  32. package/dist/LinearWiggleDisplay/models/model.js +706 -0
  33. package/dist/WiggleBaseRenderer.d.ts +44 -42
  34. package/dist/WiggleBaseRenderer.js +131 -0
  35. package/dist/WiggleRPC/rpcMethods.d.ts +31 -31
  36. package/dist/WiggleRPC/rpcMethods.js +295 -0
  37. package/dist/WiggleRendering.d.ts +16 -16
  38. package/dist/WiggleRendering.js +109 -0
  39. package/dist/WiggleRendering.test.js +52 -0
  40. package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +4 -4
  41. package/dist/XYPlotRenderer/XYPlotRenderer.js +199 -0
  42. package/dist/XYPlotRenderer/XYPlotRenderer.test.js +83 -0
  43. package/dist/XYPlotRenderer/index.d.ts +3 -3
  44. package/dist/XYPlotRenderer/index.js +34 -0
  45. package/dist/configSchema.d.ts +2 -2
  46. package/dist/configSchema.js +75 -0
  47. package/dist/declare.d.js +1 -0
  48. package/dist/index.d.ts +866 -866
  49. package/dist/index.js +251 -6
  50. package/dist/index.test.js +24 -0
  51. package/dist/util.d.ts +41 -41
  52. package/dist/util.js +178 -0
  53. package/dist/util.test.js +66 -0
  54. package/package.json +4 -6
  55. package/src/LinearWiggleDisplay/models/model.tsx +2 -2
  56. package/src/WiggleBaseRenderer.tsx +1 -0
  57. package/dist/DensityRenderer/DensityRenderer.test.d.ts +0 -1
  58. package/dist/WiggleRendering.test.d.ts +0 -1
  59. package/dist/XYPlotRenderer/XYPlotRenderer.test.d.ts +0 -1
  60. package/dist/index.test.d.ts +0 -1
  61. package/dist/plugin-wiggle.cjs.development.js +0 -3556
  62. package/dist/plugin-wiggle.cjs.development.js.map +0 -1
  63. package/dist/plugin-wiggle.cjs.production.min.js +0 -2
  64. package/dist/plugin-wiggle.cjs.production.min.js.map +0 -1
  65. package/dist/plugin-wiggle.esm.js +0 -3541
  66. package/dist/plugin-wiggle.esm.js.map +0 -1
  67. package/dist/util.test.d.ts +0 -1
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = SetMinMaxDlg;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _styles = require("@material-ui/core/styles");
17
+
18
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
19
+
20
+ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
21
+
22
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
23
+
24
+ var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
25
+
26
+ var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent"));
27
+
28
+ var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle"));
29
+
30
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
31
+
32
+ var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
33
+
34
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
+
36
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
+
38
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
39
+ return {
40
+ root: {},
41
+ closeButton: {
42
+ position: 'absolute',
43
+ right: theme.spacing(1),
44
+ top: theme.spacing(1),
45
+ color: theme.palette.grey[500]
46
+ }
47
+ };
48
+ });
49
+
50
+ function SetMinMaxDlg(props) {
51
+ var classes = useStyles();
52
+ var model = props.model,
53
+ handleClose = props.handleClose;
54
+ var minScore = model.minScore,
55
+ maxScore = model.maxScore,
56
+ scaleType = model.scaleType;
57
+
58
+ var _useState = (0, _react.useState)("".concat(minScore !== Number.MIN_VALUE ? minScore : '')),
59
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
+ min = _useState2[0],
61
+ setMin = _useState2[1];
62
+
63
+ var _useState3 = (0, _react.useState)("".concat(maxScore !== Number.MAX_VALUE ? maxScore : '')),
64
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
65
+ max = _useState4[0],
66
+ setMax = _useState4[1];
67
+
68
+ var ok = min !== '' && max !== '' && !Number.isNaN(+min) && !Number.isNaN(+max) ? +max > +min : true;
69
+ var logOk = scaleType === 'log' && min !== '' && !Number.isNaN(+min) ? +min > 0 : true;
70
+ return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
71
+ open: true,
72
+ onClose: handleClose
73
+ }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], null, "Set min/max score for track", /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
74
+ className: classes.closeButton,
75
+ onClick: handleClose
76
+ }, /*#__PURE__*/_react["default"].createElement(_Close["default"], null))), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
77
+ style: {
78
+ overflowX: 'hidden'
79
+ }
80
+ }, /*#__PURE__*/_react["default"].createElement("div", {
81
+ className: classes.root
82
+ }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, "Enter min/max score: "), !ok ? /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
83
+ color: "error"
84
+ }, "Max is greater than or equal to min") : null, !logOk ? /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
85
+ color: "error"
86
+ }, "Min score should be greater than 0 for log scale") : null, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
87
+ value: min,
88
+ onChange: function onChange(event) {
89
+ setMin(event.target.value);
90
+ },
91
+ placeholder: "Enter min score"
92
+ }), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
93
+ value: max,
94
+ onChange: function onChange(event) {
95
+ setMax(event.target.value);
96
+ },
97
+ placeholder: "Enter max score"
98
+ }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
99
+ variant: "contained",
100
+ color: "primary",
101
+ type: "submit",
102
+ style: {
103
+ marginLeft: 20
104
+ },
105
+ disabled: !ok,
106
+ onClick: function onClick() {
107
+ model.setMinScore(min !== '' && !Number.isNaN(+min) ? +min : undefined);
108
+ model.setMaxScore(max !== '' && !Number.isNaN(+max) ? +max : undefined);
109
+ handleClose();
110
+ }
111
+ }, "Submit"))));
112
+ }
@@ -1,24 +1,24 @@
1
- import React from 'react';
2
- import { Feature } from '@jbrowse/core/util/simpleFeature';
3
- declare type Coord = [number, number];
4
- declare const Tooltip: ({ model, height, clientMouseCoord, offsetMouseCoord, clientRect, TooltipContents, }: {
5
- model: {
6
- featureUnderMouse: Feature;
7
- };
8
- height: number;
9
- clientMouseCoord: Coord;
10
- offsetMouseCoord: Coord;
11
- clientRect?: DOMRect | undefined;
12
- TooltipContents: React.FC<any>;
13
- }) => JSX.Element | null;
14
- declare const WiggleTooltip: (props: {
15
- model: {
16
- featureUnderMouse: Feature;
17
- };
18
- height: number;
19
- offsetMouseCoord: Coord;
20
- clientMouseCoord: Coord;
21
- clientRect?: DOMRect;
22
- }) => JSX.Element;
23
- export default WiggleTooltip;
24
- export { Tooltip };
1
+ import React from 'react';
2
+ import { Feature } from '@jbrowse/core/util/simpleFeature';
3
+ declare type Coord = [number, number];
4
+ declare const Tooltip: ({ model, height, clientMouseCoord, offsetMouseCoord, clientRect, TooltipContents, }: {
5
+ model: {
6
+ featureUnderMouse: Feature;
7
+ };
8
+ height: number;
9
+ clientMouseCoord: Coord;
10
+ offsetMouseCoord: Coord;
11
+ clientRect?: DOMRect | undefined;
12
+ TooltipContents: React.FC<any>;
13
+ }) => JSX.Element | null;
14
+ declare const WiggleTooltip: (props: {
15
+ model: {
16
+ featureUnderMouse: Feature;
17
+ };
18
+ height: number;
19
+ offsetMouseCoord: Coord;
20
+ clientMouseCoord: Coord;
21
+ clientRect?: DOMRect;
22
+ }) => JSX.Element;
23
+ export default WiggleTooltip;
24
+ export { Tooltip };
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = exports.Tooltip = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _mobxReact = require("mobx-react");
21
+
22
+ var _core = require("@material-ui/core");
23
+
24
+ var _model = require("../models/model");
25
+
26
+ var _reactPopper = require("react-popper");
27
+
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
+
36
+ // convert to number, apply shortened precision, and render
37
+ function toP() {
38
+ var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
39
+ return +(+s).toPrecision(6);
40
+ }
41
+
42
+ function round(value) {
43
+ return Math.round(value * 1e5) / 1e5;
44
+ }
45
+
46
+ var en = function en(n) {
47
+ return n.toLocaleString('en-US');
48
+ };
49
+
50
+ var useStyles = (0, _core.makeStyles)(function (theme) {
51
+ return {
52
+ // these styles come from
53
+ // https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Tooltip/Tooltip.js
54
+ tooltip: {
55
+ position: 'absolute',
56
+ pointerEvents: 'none',
57
+ backgroundColor: (0, _core.alpha)(theme.palette.grey[700], 0.9),
58
+ borderRadius: theme.shape.borderRadius,
59
+ color: theme.palette.common.white,
60
+ fontFamily: theme.typography.fontFamily,
61
+ padding: '4px 8px',
62
+ fontSize: theme.typography.pxToRem(12),
63
+ lineHeight: "".concat(round(14 / 10), "em"),
64
+ maxWidth: 300,
65
+ wordWrap: 'break-word'
66
+ },
67
+ hoverVertical: {
68
+ background: '#333',
69
+ border: 'none',
70
+ width: 1,
71
+ height: '100%',
72
+ top: _model.YSCALEBAR_LABEL_OFFSET,
73
+ cursor: 'default',
74
+ position: 'absolute',
75
+ pointerEvents: 'none'
76
+ }
77
+ };
78
+ });
79
+
80
+ var TooltipContents = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
81
+ var feature = _ref.feature;
82
+ var start = feature.get('start');
83
+ var end = feature.get('end');
84
+ var name = feature.get('refName');
85
+ var loc = [name, start === end ? en(start) : "".concat(en(start), "..").concat(en(end))].filter(function (f) {
86
+ return !!f;
87
+ }).join(':');
88
+ return feature.get('summary') !== undefined ? /*#__PURE__*/_react["default"].createElement("div", {
89
+ ref: ref
90
+ }, loc, /*#__PURE__*/_react["default"].createElement("br", null), "Max: ", toP(feature.get('maxScore')), /*#__PURE__*/_react["default"].createElement("br", null), "Avg: ", toP(feature.get('score')), /*#__PURE__*/_react["default"].createElement("br", null), "Min: ", toP(feature.get('minScore'))) : /*#__PURE__*/_react["default"].createElement("div", {
91
+ ref: ref
92
+ }, loc, /*#__PURE__*/_react["default"].createElement("br", null), "".concat(toP(feature.get('score'))));
93
+ });
94
+
95
+ var Tooltip = (0, _mobxReact.observer)(function (_ref2) {
96
+ var model = _ref2.model,
97
+ height = _ref2.height,
98
+ clientMouseCoord = _ref2.clientMouseCoord,
99
+ offsetMouseCoord = _ref2.offsetMouseCoord,
100
+ clientRect = _ref2.clientRect,
101
+ TooltipContents = _ref2.TooltipContents;
102
+ var featureUnderMouse = model.featureUnderMouse;
103
+
104
+ var _useState = (0, _react.useState)(0),
105
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
106
+ width = _useState2[0],
107
+ setWidth = _useState2[1];
108
+
109
+ var _useState3 = (0, _react.useState)(null),
110
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
111
+ anchorEl = _useState4[0],
112
+ setAnchorEl = _useState4[1];
113
+
114
+ var classes = useStyles(); // must be memoized a la https://github.com/popperjs/react-popper/issues/391
115
+
116
+ var virtElement = (0, _react.useMemo)(function () {
117
+ return {
118
+ getBoundingClientRect: function getBoundingClientRect() {
119
+ var x = clientMouseCoord[0] + width / 2 + 20;
120
+ var y = (clientRect === null || clientRect === void 0 ? void 0 : clientRect.top) || 0;
121
+ return {
122
+ top: y,
123
+ left: x,
124
+ bottom: y,
125
+ right: x,
126
+ width: 0,
127
+ height: 0,
128
+ x: x,
129
+ y: y,
130
+ toJSON: function toJSON() {}
131
+ };
132
+ }
133
+ };
134
+ }, [clientRect === null || clientRect === void 0 ? void 0 : clientRect.top, clientMouseCoord, width]);
135
+
136
+ var _usePopper = (0, _reactPopper.usePopper)(virtElement, anchorEl),
137
+ styles = _usePopper.styles,
138
+ attributes = _usePopper.attributes;
139
+
140
+ return featureUnderMouse ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.Portal, null, /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
141
+ ref: setAnchorEl,
142
+ className: classes.tooltip // zIndex needed to go over widget drawer
143
+ ,
144
+ style: _objectSpread(_objectSpread({}, styles.popper), {}, {
145
+ zIndex: 100000
146
+ })
147
+ }, attributes.popper), /*#__PURE__*/_react["default"].createElement(TooltipContents, {
148
+ ref: function ref(elt) {
149
+ setWidth((elt === null || elt === void 0 ? void 0 : elt.getBoundingClientRect().width) || 0);
150
+ },
151
+ feature: featureUnderMouse
152
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
153
+ className: classes.hoverVertical,
154
+ style: {
155
+ left: offsetMouseCoord[0],
156
+ height: height - _model.YSCALEBAR_LABEL_OFFSET * 2
157
+ }
158
+ })) : null;
159
+ });
160
+ exports.Tooltip = Tooltip;
161
+ var WiggleTooltip = (0, _mobxReact.observer)(function (props) {
162
+ return /*#__PURE__*/_react["default"].createElement(Tooltip, (0, _extends2["default"])({
163
+ TooltipContents: TooltipContents
164
+ }, props));
165
+ });
166
+ var _default = WiggleTooltip;
167
+ exports["default"] = _default;
@@ -1,8 +1,8 @@
1
- /// <reference types="react" />
2
- import { WiggleDisplayModel } from '../models/model';
3
- import YScaleBar from './YScaleBar';
4
- declare const LinearWiggleDisplay: (props: {
5
- model: WiggleDisplayModel;
6
- }) => JSX.Element;
7
- export default LinearWiggleDisplay;
8
- export { YScaleBar };
1
+ /// <reference types="react" />
2
+ import { WiggleDisplayModel } from '../models/model';
3
+ import YScaleBar from './YScaleBar';
4
+ declare const LinearWiggleDisplay: (props: {
5
+ model: WiggleDisplayModel;
6
+ }) => JSX.Element;
7
+ export default LinearWiggleDisplay;
8
+ export { YScaleBar };
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "YScaleBar", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _YScaleBar["default"];
12
+ }
13
+ });
14
+ exports["default"] = void 0;
15
+
16
+ var _react = _interopRequireDefault(require("react"));
17
+
18
+ var _util = require("@jbrowse/core/util");
19
+
20
+ var _configuration = require("@jbrowse/core/configuration");
21
+
22
+ var _pluginLinearGenomeView = require("@jbrowse/plugin-linear-genome-view");
23
+
24
+ var _mobxReact = require("mobx-react");
25
+
26
+ var _YScaleBar = _interopRequireDefault(require("./YScaleBar"));
27
+
28
+ var LinearWiggleDisplay = (0, _mobxReact.observer)(function (props) {
29
+ var model = props.model;
30
+ var stats = model.stats,
31
+ height = model.height,
32
+ needsScalebar = model.needsScalebar; // @ts-ignore
33
+
34
+ var _getContainingView = (0, _util.getContainingView)(model),
35
+ trackLabels = _getContainingView.trackLabels;
36
+
37
+ var left = trackLabels === 'overlapping' ? (0, _util.measureText)((0, _configuration.getConf)((0, _util.getContainingTrack)(model), 'name'), 12.8) + 100 : 50;
38
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_pluginLinearGenomeView.BaseLinearDisplayComponent, props), stats && needsScalebar ? /*#__PURE__*/_react["default"].createElement("svg", {
39
+ style: {
40
+ position: 'absolute',
41
+ top: 0,
42
+ left: left,
43
+ pointerEvents: 'none',
44
+ height: height,
45
+ width: 50
46
+ }
47
+ }, /*#__PURE__*/_react["default"].createElement(_YScaleBar["default"], {
48
+ model: model
49
+ })) : null);
50
+ });
51
+ var _default = LinearWiggleDisplay;
52
+ exports["default"] = _default;
@@ -1,7 +1,7 @@
1
- /// <reference types="react" />
2
- import { WiggleDisplayModel } from '../models/model';
3
- declare const YScaleBar: ({ model, orientation, }: {
4
- model: WiggleDisplayModel;
5
- orientation?: string | undefined;
6
- }) => JSX.Element | null;
7
- export default YScaleBar;
1
+ /// <reference types="react" />
2
+ import { WiggleDisplayModel } from '../models/model';
3
+ declare const YScaleBar: ({ model, orientation, }: {
4
+ model: WiggleDisplayModel;
5
+ orientation?: string | undefined;
6
+ }) => JSX.Element | null;
7
+ export default YScaleBar;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _mobxReact = require("mobx-react");
15
+
16
+ var _reactD3AxisMod = require("react-d3-axis-mod");
17
+
18
+ var YScaleBar = (0, _mobxReact.observer)(function (_ref) {
19
+ var model = _ref.model,
20
+ orientation = _ref.orientation;
21
+ var ticks = model.ticks;
22
+ return ticks ? /*#__PURE__*/_react["default"].createElement(_reactD3AxisMod.Axis, (0, _extends2["default"])({}, ticks, {
23
+ shadow: 2,
24
+ format: function format(n) {
25
+ return n;
26
+ },
27
+ style: {
28
+ orient: orientation === 'left' ? _reactD3AxisMod.LEFT : _reactD3AxisMod.RIGHT
29
+ }
30
+ })) : null;
31
+ });
32
+ var _default = YScaleBar;
33
+ exports["default"] = _default;
@@ -1,3 +1,3 @@
1
- export { default as configSchemaFactory } from './models/configSchema';
2
- export { default as modelFactory, YSCALEBAR_LABEL_OFFSET } from './models/model';
3
- export { default as ReactComponent } from './components/WiggleDisplayComponent';
1
+ export { default as configSchemaFactory } from './models/configSchema';
2
+ export { default as modelFactory, YSCALEBAR_LABEL_OFFSET } from './models/model';
3
+ export { default as ReactComponent } from './components/WiggleDisplayComponent';
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ Object.defineProperty(exports, "ReactComponent", {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _WiggleDisplayComponent["default"];
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "YSCALEBAR_LABEL_OFFSET", {
17
+ enumerable: true,
18
+ get: function get() {
19
+ return _model.YSCALEBAR_LABEL_OFFSET;
20
+ }
21
+ });
22
+ Object.defineProperty(exports, "configSchemaFactory", {
23
+ enumerable: true,
24
+ get: function get() {
25
+ return _configSchema["default"];
26
+ }
27
+ });
28
+ Object.defineProperty(exports, "modelFactory", {
29
+ enumerable: true,
30
+ get: function get() {
31
+ return _model["default"];
32
+ }
33
+ });
34
+
35
+ var _configSchema = _interopRequireDefault(require("./models/configSchema"));
36
+
37
+ var _model = _interopRequireWildcard(require("./models/model"));
38
+
39
+ var _WiggleDisplayComponent = _interopRequireDefault(require("./components/WiggleDisplayComponent"));
40
+
41
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
42
+
43
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
2
- export default function WiggleConfigFactory(pluginManager: PluginManager): import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ export default function WiggleConfigFactory(pluginManager: PluginManager): import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = WiggleConfigFactory;
7
+
8
+ var _configuration = require("@jbrowse/core/configuration");
9
+
10
+ var _pluginLinearGenomeView = require("@jbrowse/plugin-linear-genome-view");
11
+
12
+ var _mobxStateTree = require("mobx-state-tree");
13
+
14
+ function WiggleConfigFactory(pluginManager) {
15
+ var XYPlotRendererConfigSchema = pluginManager.getRendererType('XYPlotRenderer').configSchema;
16
+ var DensityRendererConfigSchema = pluginManager.getRendererType('DensityRenderer').configSchema;
17
+ var LinePlotRendererConfigSchema = pluginManager.getRendererType('LinePlotRenderer').configSchema;
18
+ return (0, _configuration.ConfigurationSchema)('LinearWiggleDisplay', {
19
+ autoscale: {
20
+ type: 'stringEnum',
21
+ defaultValue: 'local',
22
+ model: _mobxStateTree.types.enumeration('Autoscale type', ['global', 'local', 'globalsd', 'localsd', 'zscore']),
23
+ description: 'global/local using their min/max values or w/ standard deviations (globalsd/localsd)'
24
+ },
25
+ minimalTicks: {
26
+ type: 'boolean',
27
+ defaultValue: false,
28
+ description: 'use the minimal amount of ticks'
29
+ },
30
+ minScore: {
31
+ type: 'number',
32
+ defaultValue: Number.MIN_VALUE,
33
+ description: 'minimum value for the y-scale'
34
+ },
35
+ maxScore: {
36
+ type: 'number',
37
+ description: 'maximum value for the y-scale',
38
+ defaultValue: Number.MAX_VALUE
39
+ },
40
+ numStdDev: {
41
+ type: 'number',
42
+ description: 'number of standard deviations to use for autoscale types globalsd or localsd',
43
+ defaultValue: 3
44
+ },
45
+ scaleType: {
46
+ type: 'stringEnum',
47
+ model: _mobxStateTree.types.enumeration('Scale type', ['linear', 'log']),
48
+ // todo zscale
49
+ description: 'The type of scale to use',
50
+ defaultValue: 'linear'
51
+ },
52
+ inverted: {
53
+ type: 'boolean',
54
+ description: 'draw upside down',
55
+ defaultValue: false
56
+ },
57
+ defaultRendering: {
58
+ type: 'stringEnum',
59
+ model: _mobxStateTree.types.enumeration('Rendering', ['density', 'xyplot', 'line']),
60
+ defaultValue: 'xyplot'
61
+ },
62
+ renderers: (0, _configuration.ConfigurationSchema)('RenderersConfiguration', {
63
+ DensityRenderer: DensityRendererConfigSchema,
64
+ XYPlotRenderer: XYPlotRendererConfigSchema,
65
+ LinePlotRenderer: LinePlotRendererConfigSchema
66
+ })
67
+ }, {
68
+ baseConfiguration: _pluginLinearGenomeView.baseLinearDisplayConfigSchema,
69
+ explicitlyTyped: true
70
+ });
71
+ }