@jbrowse/plugin-wiggle 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BigWigAdapter/BigWigAdapter.js +74 -200
- package/dist/BigWigAdapter/BigWigAdapter.js.map +1 -1
- package/dist/BigWigAdapter/configSchema.js +1 -1
- package/dist/BigWigAdapter/configSchema.js.map +1 -1
- package/dist/BigWigAdapter/index.js +14 -16
- package/dist/BigWigAdapter/index.js.map +1 -1
- package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +12 -29
- package/dist/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -1
- package/dist/CreateMultiWiggleExtension/index.js +23 -57
- package/dist/CreateMultiWiggleExtension/index.js.map +1 -1
- package/dist/DensityRenderer/DensityRenderer.js +6 -66
- package/dist/DensityRenderer/DensityRenderer.js.map +1 -1
- package/dist/DensityRenderer/configSchema.js +3 -3
- package/dist/DensityRenderer/configSchema.js.map +1 -1
- package/dist/DensityRenderer/index.js +11 -13
- package/dist/DensityRenderer/index.js.map +1 -1
- package/dist/LinePlotRenderer/LinePlotRenderer.js +11 -78
- package/dist/LinePlotRenderer/LinePlotRenderer.js.map +1 -1
- package/dist/LinePlotRenderer/configSchema.js +3 -3
- package/dist/LinePlotRenderer/configSchema.js.map +1 -1
- package/dist/LinePlotRenderer/index.js +11 -13
- package/dist/LinePlotRenderer/index.js.map +1 -1
- package/dist/LinearWiggleDisplay/components/SetColorDialog.js +18 -35
- package/dist/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
- package/dist/LinearWiggleDisplay/components/SetMinMaxDialog.js +16 -32
- package/dist/LinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -1
- package/dist/LinearWiggleDisplay/components/Tooltip.js +15 -26
- package/dist/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
- package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +15 -26
- package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
- package/dist/LinearWiggleDisplay/components/YScaleBar.js +6 -18
- package/dist/LinearWiggleDisplay/components/YScaleBar.js.map +1 -1
- package/dist/LinearWiggleDisplay/index.js +12 -12
- package/dist/LinearWiggleDisplay/index.js.map +1 -1
- package/dist/LinearWiggleDisplay/models/configSchema.js +6 -6
- package/dist/LinearWiggleDisplay/models/configSchema.js.map +1 -1
- package/dist/LinearWiggleDisplay/models/model.js +378 -451
- package/dist/LinearWiggleDisplay/models/model.js.map +1 -1
- package/dist/MultiDensityRenderer/MultiDensityRenderer.js +32 -125
- package/dist/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -1
- package/dist/MultiDensityRenderer/configSchema.js +3 -3
- package/dist/MultiDensityRenderer/configSchema.js.map +1 -1
- package/dist/MultiDensityRenderer/index.js +11 -13
- package/dist/MultiDensityRenderer/index.js.map +1 -1
- package/dist/MultiLineRenderer/MultiLineRenderer.js +21 -114
- package/dist/MultiLineRenderer/MultiLineRenderer.js.map +1 -1
- package/dist/MultiLineRenderer/configSchema.js +4 -4
- package/dist/MultiLineRenderer/configSchema.js.map +1 -1
- package/dist/MultiLineRenderer/index.js +11 -13
- package/dist/MultiLineRenderer/index.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +72 -120
- package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js +16 -32
- package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +21 -50
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +2 -2
- package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +53 -92
- package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js +6 -18
- package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/components/util.js +16 -18
- package/dist/MultiLinearWiggleDisplay/components/util.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/index.js +9 -9
- package/dist/MultiLinearWiggleDisplay/index.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/models/configSchema.js +8 -8
- package/dist/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/models/model.js +489 -566
- package/dist/MultiLinearWiggleDisplay/models/model.js.map +1 -1
- package/dist/MultiQuantitativeTrack/index.js +8 -8
- package/dist/MultiQuantitativeTrack/index.js.map +1 -1
- package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +29 -121
- package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -1
- package/dist/MultiRowLineRenderer/configSchema.js +4 -4
- package/dist/MultiRowLineRenderer/configSchema.js.map +1 -1
- package/dist/MultiRowLineRenderer/index.js +11 -13
- package/dist/MultiRowLineRenderer/index.js.map +1 -1
- package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +35 -131
- package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -1
- package/dist/MultiRowXYPlotRenderer/configSchema.js +4 -4
- package/dist/MultiRowXYPlotRenderer/configSchema.js.map +1 -1
- package/dist/MultiRowXYPlotRenderer/index.js +11 -13
- package/dist/MultiRowXYPlotRenderer/index.js.map +1 -1
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +1 -0
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +80 -232
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -1
- package/dist/MultiWiggleAdapter/configSchema.js +1 -1
- package/dist/MultiWiggleAdapter/configSchema.js.map +1 -1
- package/dist/MultiWiggleAdapter/index.js +14 -18
- package/dist/MultiWiggleAdapter/index.js.map +1 -1
- package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +30 -56
- package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -1
- package/dist/MultiWiggleAddTrackWidget/index.js +10 -12
- package/dist/MultiWiggleAddTrackWidget/index.js.map +1 -1
- package/dist/MultiWiggleRendering.js +45 -109
- package/dist/MultiWiggleRendering.js.map +1 -1
- package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +24 -120
- package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -1
- package/dist/MultiXYPlotRenderer/configSchema.js +4 -4
- package/dist/MultiXYPlotRenderer/configSchema.js.map +1 -1
- package/dist/MultiXYPlotRenderer/index.js +11 -13
- package/dist/MultiXYPlotRenderer/index.js.map +1 -1
- package/dist/QuantitativeTrack/index.js +8 -8
- package/dist/QuantitativeTrack/index.js.map +1 -1
- package/dist/Tooltip.js +26 -54
- package/dist/Tooltip.js.map +1 -1
- package/dist/WiggleBaseRenderer.d.ts +6 -6
- package/dist/WiggleBaseRenderer.js +34 -125
- package/dist/WiggleBaseRenderer.js.map +1 -1
- package/dist/WiggleRPC/rpcMethods.js +101 -244
- package/dist/WiggleRPC/rpcMethods.js.map +1 -1
- package/dist/WiggleRendering.js +20 -69
- package/dist/WiggleRendering.js.map +1 -1
- package/dist/XYPlotRenderer/XYPlotRenderer.js +24 -121
- package/dist/XYPlotRenderer/XYPlotRenderer.js.map +1 -1
- package/dist/XYPlotRenderer/configSchema.js +4 -4
- package/dist/XYPlotRenderer/configSchema.js.map +1 -1
- package/dist/XYPlotRenderer/index.js +11 -13
- package/dist/XYPlotRenderer/index.js.map +1 -1
- package/dist/configSchema.js +2 -2
- package/dist/configSchema.js.map +1 -1
- package/dist/drawxy.js +192 -311
- package/dist/drawxy.js.map +1 -1
- package/dist/index.js +44 -62
- package/dist/index.js.map +1 -1
- package/dist/util.js +105 -168
- package/dist/util.js.map +1 -1
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +1 -0
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +5 -3
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -1
- package/esm/WiggleBaseRenderer.d.ts +6 -6
- package/esm/WiggleBaseRenderer.js +4 -3
- package/esm/WiggleBaseRenderer.js.map +1 -1
- package/package.json +2 -3
- package/src/MultiWiggleAdapter/MultiWiggleAdapter.ts +7 -3
- package/src/WiggleBaseRenderer.tsx +4 -3
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -33,518 +22,456 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
33
22
|
__setModuleDefault(result, mod);
|
|
34
23
|
return result;
|
|
35
24
|
};
|
|
36
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
37
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
38
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
39
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
40
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
41
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
42
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
46
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
47
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
48
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
49
|
-
function step(op) {
|
|
50
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
51
|
-
while (_) try {
|
|
52
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
53
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
54
|
-
switch (op[0]) {
|
|
55
|
-
case 0: case 1: t = op; break;
|
|
56
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
57
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
58
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
59
|
-
default:
|
|
60
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
61
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
62
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
63
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
64
|
-
if (t[2]) _.ops.pop();
|
|
65
|
-
_.trys.pop(); continue;
|
|
66
|
-
}
|
|
67
|
-
op = body.call(thisArg, _);
|
|
68
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
69
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
73
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
74
|
-
if (!m) return o;
|
|
75
|
-
var i = m.call(o), r, ar = [], e;
|
|
76
|
-
try {
|
|
77
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
78
|
-
}
|
|
79
|
-
catch (error) { e = { error: error }; }
|
|
80
|
-
finally {
|
|
81
|
-
try {
|
|
82
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
83
|
-
}
|
|
84
|
-
finally { if (e) throw e.error; }
|
|
85
|
-
}
|
|
86
|
-
return ar;
|
|
87
|
-
};
|
|
88
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
89
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
90
|
-
if (ar || !(i in from)) {
|
|
91
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
92
|
-
ar[i] = from[i];
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
96
|
-
};
|
|
97
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
98
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
99
27
|
};
|
|
100
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
29
|
+
const react_1 = __importStar(require("react"));
|
|
30
|
+
const configuration_1 = require("@jbrowse/core/configuration");
|
|
31
|
+
const util_1 = require("@jbrowse/core/util");
|
|
32
|
+
const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view");
|
|
33
|
+
const mobx_1 = require("mobx");
|
|
34
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
35
|
+
const react_d3_axis_mod_1 = require("react-d3-axis-mod");
|
|
36
|
+
const util_2 = require("../../util");
|
|
37
|
+
const Tooltip_1 = __importDefault(require("../components/Tooltip"));
|
|
38
|
+
const WiggleDisplayComponent_1 = require("../components/WiggleDisplayComponent");
|
|
39
|
+
const SetMinMaxDlg = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../components/SetMinMaxDialog'))));
|
|
40
|
+
const SetColorDlg = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../components/SetColorDialog'))));
|
|
113
41
|
// using a map because it preserves order
|
|
114
|
-
|
|
42
|
+
const rendererTypes = new Map([
|
|
115
43
|
['xyplot', 'XYPlotRenderer'],
|
|
116
44
|
['density', 'DensityRenderer'],
|
|
117
45
|
['line', 'LinePlotRenderer'],
|
|
118
46
|
]);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
47
|
+
const stateModelFactory = (pluginManager, configSchema) => mobx_state_tree_1.types
|
|
48
|
+
.compose('LinearWiggleDisplay', plugin_linear_genome_view_1.BaseLinearDisplay, mobx_state_tree_1.types.model({
|
|
49
|
+
type: mobx_state_tree_1.types.literal('LinearWiggleDisplay'),
|
|
50
|
+
configuration: (0, configuration_1.ConfigurationReference)(configSchema),
|
|
51
|
+
selectedRendering: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.string, ''),
|
|
52
|
+
resolution: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.number, 1),
|
|
53
|
+
fill: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
|
|
54
|
+
minSize: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
|
|
55
|
+
color: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
56
|
+
posColor: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
57
|
+
negColor: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
58
|
+
summaryScoreMode: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
59
|
+
rendererTypeNameState: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
60
|
+
scale: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
61
|
+
autoscale: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
62
|
+
displayCrossHatches: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
|
|
63
|
+
constraints: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.model({
|
|
64
|
+
max: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
|
|
65
|
+
min: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
|
|
66
|
+
}), {}),
|
|
67
|
+
}))
|
|
68
|
+
.volatile(() => ({
|
|
69
|
+
statsReady: false,
|
|
70
|
+
message: undefined,
|
|
71
|
+
stats: { scoreMin: 0, scoreMax: 50 },
|
|
72
|
+
statsFetchInProgress: undefined,
|
|
73
|
+
}))
|
|
74
|
+
.actions(self => ({
|
|
75
|
+
updateStats(stats) {
|
|
76
|
+
const { scoreMin, scoreMax } = stats;
|
|
77
|
+
const EPSILON = 0.000001;
|
|
78
|
+
if (Math.abs(self.stats.scoreMax - scoreMax) > EPSILON ||
|
|
79
|
+
Math.abs(self.stats.scoreMin - scoreMin) > EPSILON) {
|
|
80
|
+
self.stats = { scoreMin, scoreMax };
|
|
81
|
+
self.statsReady = true;
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
setColor(color) {
|
|
85
|
+
self.color = color;
|
|
86
|
+
},
|
|
87
|
+
setPosColor(color) {
|
|
88
|
+
self.posColor = color;
|
|
89
|
+
},
|
|
90
|
+
setNegColor(color) {
|
|
91
|
+
self.negColor = color;
|
|
92
|
+
},
|
|
93
|
+
setLoading(aborter) {
|
|
94
|
+
const { statsFetchInProgress: statsFetch } = self;
|
|
95
|
+
if (statsFetch !== undefined && !statsFetch.signal.aborted) {
|
|
96
|
+
statsFetch.abort();
|
|
97
|
+
}
|
|
98
|
+
self.statsFetchInProgress = aborter;
|
|
99
|
+
},
|
|
100
|
+
// this overrides the BaseLinearDisplayModel to avoid popping up a
|
|
101
|
+
// feature detail display, but still sets the feature selection on the
|
|
102
|
+
// model so listeners can detect a click
|
|
103
|
+
selectFeature(feature) {
|
|
104
|
+
const session = (0, util_1.getSession)(self);
|
|
105
|
+
if ((0, util_1.isSelectionContainer)(session)) {
|
|
106
|
+
session.setSelection(feature);
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
setResolution(res) {
|
|
110
|
+
self.resolution = res;
|
|
111
|
+
},
|
|
112
|
+
setFill(fill) {
|
|
113
|
+
if (fill === 0) {
|
|
114
|
+
self.fill = true;
|
|
115
|
+
self.minSize = 0;
|
|
116
|
+
}
|
|
117
|
+
else if (fill === 1) {
|
|
118
|
+
self.fill = false;
|
|
119
|
+
self.minSize = 1;
|
|
120
|
+
}
|
|
121
|
+
else if (fill === 2) {
|
|
122
|
+
self.fill = false;
|
|
123
|
+
self.minSize = 2;
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
toggleLogScale() {
|
|
127
|
+
if (self.scale !== 'log') {
|
|
128
|
+
self.scale = 'log';
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
self.scale = 'linear';
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
setScaleType(scale) {
|
|
135
|
+
self.scale = scale;
|
|
136
|
+
},
|
|
137
|
+
setSummaryScoreMode(val) {
|
|
138
|
+
self.summaryScoreMode = val;
|
|
139
|
+
},
|
|
140
|
+
setAutoscale(val) {
|
|
141
|
+
self.autoscale = val;
|
|
142
|
+
},
|
|
143
|
+
setMaxScore(val) {
|
|
144
|
+
self.constraints.max = val;
|
|
145
|
+
},
|
|
146
|
+
setRendererType(val) {
|
|
147
|
+
self.rendererTypeNameState = val;
|
|
148
|
+
},
|
|
149
|
+
setMinScore(val) {
|
|
150
|
+
self.constraints.min = val;
|
|
151
|
+
},
|
|
152
|
+
toggleCrossHatches() {
|
|
153
|
+
self.displayCrossHatches = !self.displayCrossHatches;
|
|
154
|
+
},
|
|
155
|
+
setCrossHatches(cross) {
|
|
156
|
+
self.displayCrossHatches = cross;
|
|
157
|
+
},
|
|
158
|
+
}))
|
|
159
|
+
.views(self => ({
|
|
160
|
+
get TooltipComponent() {
|
|
161
|
+
return Tooltip_1.default;
|
|
162
|
+
},
|
|
163
|
+
get adapterTypeName() {
|
|
164
|
+
return self.adapterConfig.type;
|
|
165
|
+
},
|
|
166
|
+
get rendererTypeNameSimple() {
|
|
167
|
+
return self.rendererTypeNameState || (0, configuration_1.getConf)(self, 'defaultRendering');
|
|
168
|
+
},
|
|
169
|
+
get rendererTypeName() {
|
|
170
|
+
const name = this.rendererTypeNameSimple;
|
|
171
|
+
const rendererType = rendererTypes.get(name);
|
|
172
|
+
if (!rendererType) {
|
|
173
|
+
throw new Error(`unknown renderer ${name}`);
|
|
174
|
+
}
|
|
175
|
+
return rendererType;
|
|
176
|
+
},
|
|
177
|
+
// subclasses can define these, as snpcoverage track does
|
|
178
|
+
get filters() {
|
|
179
|
+
return undefined;
|
|
180
|
+
},
|
|
181
|
+
get scaleType() {
|
|
182
|
+
return self.scale || (0, configuration_1.getConf)(self, 'scaleType');
|
|
183
|
+
},
|
|
184
|
+
get maxScore() {
|
|
185
|
+
var _a;
|
|
186
|
+
return (_a = self.constraints.max) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'maxScore');
|
|
187
|
+
},
|
|
188
|
+
get minScore() {
|
|
189
|
+
var _a;
|
|
190
|
+
return (_a = self.constraints.min) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'minScore');
|
|
191
|
+
},
|
|
192
|
+
}))
|
|
193
|
+
.views(self => ({
|
|
194
|
+
get rendererConfig() {
|
|
195
|
+
const configBlob = (0, configuration_1.getConf)(self, ['renderers', self.rendererTypeName]) || {};
|
|
196
|
+
const { color, displayCrossHatches, fill, minSize, negColor, posColor, summaryScoreMode, scaleType, } = self;
|
|
197
|
+
return self.rendererType.configSchema.create({
|
|
198
|
+
...configBlob,
|
|
199
|
+
...(scaleType ? { scaleType } : {}),
|
|
200
|
+
...(fill !== undefined ? { filled: fill } : {}),
|
|
201
|
+
...(displayCrossHatches !== undefined
|
|
202
|
+
? { displayCrossHatches }
|
|
203
|
+
: {}),
|
|
204
|
+
...(summaryScoreMode !== undefined ? { summaryScoreMode } : {}),
|
|
205
|
+
...(color !== undefined ? { color } : {}),
|
|
206
|
+
...(negColor !== undefined ? { negColor } : {}),
|
|
207
|
+
...(posColor !== undefined ? { posColor } : {}),
|
|
208
|
+
...(minSize !== undefined ? { minSize } : {}),
|
|
209
|
+
}, (0, mobx_state_tree_1.getEnv)(self));
|
|
210
|
+
},
|
|
211
|
+
}))
|
|
212
|
+
.views(self => {
|
|
213
|
+
let oldDomain = [0, 0];
|
|
214
|
+
return {
|
|
215
|
+
get filled() {
|
|
216
|
+
const { fill, rendererConfig: conf } = self;
|
|
217
|
+
return fill !== null && fill !== void 0 ? fill : (0, configuration_1.readConfObject)(conf, 'filled');
|
|
184
218
|
},
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
self.minSize = 0;
|
|
189
|
-
}
|
|
190
|
-
else if (fill === 1) {
|
|
191
|
-
self.fill = false;
|
|
192
|
-
self.minSize = 1;
|
|
193
|
-
}
|
|
194
|
-
else if (fill === 2) {
|
|
195
|
-
self.fill = false;
|
|
196
|
-
self.minSize = 2;
|
|
197
|
-
}
|
|
219
|
+
get summaryScoreModeSetting() {
|
|
220
|
+
const { summaryScoreMode, rendererConfig: conf } = self;
|
|
221
|
+
return summaryScoreMode !== null && summaryScoreMode !== void 0 ? summaryScoreMode : (0, configuration_1.readConfObject)(conf, 'summaryScoreMode');
|
|
198
222
|
},
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
223
|
+
get domain() {
|
|
224
|
+
const { stats, scaleType, minScore, maxScore } = self;
|
|
225
|
+
const ret = (0, util_2.getNiceDomain)({
|
|
226
|
+
domain: [stats.scoreMin, stats.scoreMax],
|
|
227
|
+
bounds: [minScore, maxScore],
|
|
228
|
+
scaleType,
|
|
229
|
+
});
|
|
230
|
+
// avoid weird scalebar if log value and empty region displayed
|
|
231
|
+
if (scaleType === 'log' && ret[1] === Number.MIN_VALUE) {
|
|
232
|
+
return [0, Number.MIN_VALUE];
|
|
202
233
|
}
|
|
203
|
-
|
|
204
|
-
|
|
234
|
+
// avoid returning a new object if it matches the old value
|
|
235
|
+
if (JSON.stringify(oldDomain) !== JSON.stringify(ret)) {
|
|
236
|
+
oldDomain = ret;
|
|
205
237
|
}
|
|
238
|
+
return oldDomain;
|
|
206
239
|
},
|
|
207
|
-
|
|
208
|
-
self.
|
|
209
|
-
|
|
210
|
-
setSummaryScoreMode: function (val) {
|
|
211
|
-
self.summaryScoreMode = val;
|
|
212
|
-
},
|
|
213
|
-
setAutoscale: function (val) {
|
|
214
|
-
self.autoscale = val;
|
|
240
|
+
get needsScalebar() {
|
|
241
|
+
return (self.rendererTypeName === 'XYPlotRenderer' ||
|
|
242
|
+
self.rendererTypeName === 'LinePlotRenderer');
|
|
215
243
|
},
|
|
216
|
-
|
|
217
|
-
|
|
244
|
+
get scaleOpts() {
|
|
245
|
+
return {
|
|
246
|
+
domain: this.domain,
|
|
247
|
+
stats: self.stats,
|
|
248
|
+
autoscaleType: this.autoscaleType,
|
|
249
|
+
scaleType: self.scaleType,
|
|
250
|
+
inverted: (0, configuration_1.getConf)(self, 'inverted'),
|
|
251
|
+
};
|
|
218
252
|
},
|
|
219
|
-
|
|
220
|
-
self.
|
|
253
|
+
get canHaveFill() {
|
|
254
|
+
return self.rendererTypeName === 'XYPlotRenderer';
|
|
221
255
|
},
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
toggleCrossHatches: function () {
|
|
226
|
-
self.displayCrossHatches = !self.displayCrossHatches;
|
|
256
|
+
get autoscaleType() {
|
|
257
|
+
var _a;
|
|
258
|
+
return (_a = self.autoscale) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'autoscale');
|
|
227
259
|
},
|
|
228
|
-
|
|
229
|
-
|
|
260
|
+
get displayCrossHatchesSetting() {
|
|
261
|
+
const { displayCrossHatches: hatches, rendererConfig: conf } = self;
|
|
262
|
+
return hatches !== null && hatches !== void 0 ? hatches : (0, configuration_1.readConfObject)(conf, 'displayCrossHatches');
|
|
230
263
|
},
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
264
|
+
};
|
|
265
|
+
})
|
|
266
|
+
.views(self => ({
|
|
267
|
+
get ticks() {
|
|
268
|
+
const { scaleType, domain, height } = self;
|
|
269
|
+
const minimalTicks = (0, configuration_1.getConf)(self, 'minimalTicks');
|
|
270
|
+
const inverted = (0, configuration_1.getConf)(self, 'inverted');
|
|
271
|
+
const range = [height - util_2.YSCALEBAR_LABEL_OFFSET, util_2.YSCALEBAR_LABEL_OFFSET];
|
|
272
|
+
const scale = (0, util_2.getScale)({
|
|
273
|
+
scaleType,
|
|
274
|
+
domain,
|
|
275
|
+
range,
|
|
276
|
+
inverted,
|
|
277
|
+
});
|
|
278
|
+
const ticks = (0, react_d3_axis_mod_1.axisPropsFromTickScale)(scale, 4);
|
|
279
|
+
return height < 100 || minimalTicks
|
|
280
|
+
? { ...ticks, values: domain }
|
|
281
|
+
: ticks;
|
|
282
|
+
},
|
|
283
|
+
get adapterCapabilities() {
|
|
284
|
+
return pluginManager.getAdapterType(self.adapterTypeName)
|
|
285
|
+
.adapterCapabilities;
|
|
286
|
+
},
|
|
287
|
+
}))
|
|
288
|
+
.views(self => {
|
|
289
|
+
const { renderProps: superRenderProps } = self;
|
|
290
|
+
return {
|
|
291
|
+
renderProps() {
|
|
292
|
+
const superProps = superRenderProps();
|
|
293
|
+
const { filters, ticks, height, resolution, scaleOpts } = self;
|
|
294
|
+
return {
|
|
295
|
+
...superProps,
|
|
296
|
+
notReady: superProps.notReady || !self.statsReady,
|
|
297
|
+
rpcDriverName: self.rpcDriverName,
|
|
298
|
+
displayModel: self,
|
|
299
|
+
config: self.rendererConfig,
|
|
300
|
+
displayCrossHatches: self.displayCrossHatchesSetting,
|
|
301
|
+
scaleOpts,
|
|
302
|
+
resolution,
|
|
303
|
+
height,
|
|
304
|
+
ticks,
|
|
305
|
+
filters,
|
|
306
|
+
};
|
|
235
307
|
},
|
|
236
|
-
get
|
|
237
|
-
return self.
|
|
308
|
+
get hasResolution() {
|
|
309
|
+
return self.adapterCapabilities.includes('hasResolution');
|
|
238
310
|
},
|
|
239
|
-
get
|
|
240
|
-
return self.
|
|
311
|
+
get hasGlobalStats() {
|
|
312
|
+
return self.adapterCapabilities.includes('hasGlobalStats');
|
|
241
313
|
},
|
|
242
|
-
get
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
314
|
+
get fillSetting() {
|
|
315
|
+
if (self.filled) {
|
|
316
|
+
return 0;
|
|
317
|
+
}
|
|
318
|
+
else if (!self.filled && self.minSize === 1) {
|
|
319
|
+
return 1;
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
return 2;
|
|
247
323
|
}
|
|
248
|
-
return rendererType;
|
|
249
|
-
},
|
|
250
|
-
// subclasses can define these, as snpcoverage track does
|
|
251
|
-
get filters() {
|
|
252
|
-
return undefined;
|
|
253
|
-
},
|
|
254
|
-
get scaleType() {
|
|
255
|
-
return self.scale || (0, configuration_1.getConf)(self, 'scaleType');
|
|
256
|
-
},
|
|
257
|
-
get maxScore() {
|
|
258
|
-
var _a;
|
|
259
|
-
return (_a = self.constraints.max) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'maxScore');
|
|
260
|
-
},
|
|
261
|
-
get minScore() {
|
|
262
|
-
var _a;
|
|
263
|
-
return (_a = self.constraints.min) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'minScore');
|
|
264
|
-
},
|
|
265
|
-
}); })
|
|
266
|
-
.views(function (self) { return ({
|
|
267
|
-
get rendererConfig() {
|
|
268
|
-
var configBlob = (0, configuration_1.getConf)(self, ['renderers', self.rendererTypeName]) || {};
|
|
269
|
-
var color = self.color, displayCrossHatches = self.displayCrossHatches, fill = self.fill, minSize = self.minSize, negColor = self.negColor, posColor = self.posColor, summaryScoreMode = self.summaryScoreMode, scaleType = self.scaleType;
|
|
270
|
-
return self.rendererType.configSchema.create(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, configBlob), (scaleType ? { scaleType: scaleType } : {})), (fill !== undefined ? { filled: fill } : {})), (displayCrossHatches !== undefined
|
|
271
|
-
? { displayCrossHatches: displayCrossHatches }
|
|
272
|
-
: {})), (summaryScoreMode !== undefined ? { summaryScoreMode: summaryScoreMode } : {})), (color !== undefined ? { color: color } : {})), (negColor !== undefined ? { negColor: negColor } : {})), (posColor !== undefined ? { posColor: posColor } : {})), (minSize !== undefined ? { minSize: minSize } : {})), (0, mobx_state_tree_1.getEnv)(self));
|
|
273
|
-
},
|
|
274
|
-
}); })
|
|
275
|
-
.views(function (self) {
|
|
276
|
-
var oldDomain = [0, 0];
|
|
277
|
-
return {
|
|
278
|
-
get filled() {
|
|
279
|
-
var fill = self.fill, conf = self.rendererConfig;
|
|
280
|
-
return fill !== null && fill !== void 0 ? fill : (0, configuration_1.readConfObject)(conf, 'filled');
|
|
281
|
-
},
|
|
282
|
-
get summaryScoreModeSetting() {
|
|
283
|
-
var summaryScoreMode = self.summaryScoreMode, conf = self.rendererConfig;
|
|
284
|
-
return summaryScoreMode !== null && summaryScoreMode !== void 0 ? summaryScoreMode : (0, configuration_1.readConfObject)(conf, 'summaryScoreMode');
|
|
285
|
-
},
|
|
286
|
-
get domain() {
|
|
287
|
-
var stats = self.stats, scaleType = self.scaleType, minScore = self.minScore, maxScore = self.maxScore;
|
|
288
|
-
var ret = (0, util_2.getNiceDomain)({
|
|
289
|
-
domain: [stats.scoreMin, stats.scoreMax],
|
|
290
|
-
bounds: [minScore, maxScore],
|
|
291
|
-
scaleType: scaleType,
|
|
292
|
-
});
|
|
293
|
-
// avoid weird scalebar if log value and empty region displayed
|
|
294
|
-
if (scaleType === 'log' && ret[1] === Number.MIN_VALUE) {
|
|
295
|
-
return [0, Number.MIN_VALUE];
|
|
296
|
-
}
|
|
297
|
-
// avoid returning a new object if it matches the old value
|
|
298
|
-
if (JSON.stringify(oldDomain) !== JSON.stringify(ret)) {
|
|
299
|
-
oldDomain = ret;
|
|
300
|
-
}
|
|
301
|
-
return oldDomain;
|
|
302
|
-
},
|
|
303
|
-
get needsScalebar() {
|
|
304
|
-
return (self.rendererTypeName === 'XYPlotRenderer' ||
|
|
305
|
-
self.rendererTypeName === 'LinePlotRenderer');
|
|
306
|
-
},
|
|
307
|
-
get scaleOpts() {
|
|
308
|
-
return {
|
|
309
|
-
domain: this.domain,
|
|
310
|
-
stats: self.stats,
|
|
311
|
-
autoscaleType: this.autoscaleType,
|
|
312
|
-
scaleType: self.scaleType,
|
|
313
|
-
inverted: (0, configuration_1.getConf)(self, 'inverted'),
|
|
314
|
-
};
|
|
315
|
-
},
|
|
316
|
-
get canHaveFill() {
|
|
317
|
-
return self.rendererTypeName === 'XYPlotRenderer';
|
|
318
|
-
},
|
|
319
|
-
get autoscaleType() {
|
|
320
|
-
var _a;
|
|
321
|
-
return (_a = self.autoscale) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'autoscale');
|
|
322
|
-
},
|
|
323
|
-
get displayCrossHatchesSetting() {
|
|
324
|
-
var hatches = self.displayCrossHatches, conf = self.rendererConfig;
|
|
325
|
-
return hatches !== null && hatches !== void 0 ? hatches : (0, configuration_1.readConfObject)(conf, 'displayCrossHatches');
|
|
326
|
-
},
|
|
327
|
-
};
|
|
328
|
-
})
|
|
329
|
-
.views(function (self) { return ({
|
|
330
|
-
get ticks() {
|
|
331
|
-
var scaleType = self.scaleType, domain = self.domain, height = self.height;
|
|
332
|
-
var minimalTicks = (0, configuration_1.getConf)(self, 'minimalTicks');
|
|
333
|
-
var inverted = (0, configuration_1.getConf)(self, 'inverted');
|
|
334
|
-
var range = [height - util_2.YSCALEBAR_LABEL_OFFSET, util_2.YSCALEBAR_LABEL_OFFSET];
|
|
335
|
-
var scale = (0, util_2.getScale)({
|
|
336
|
-
scaleType: scaleType,
|
|
337
|
-
domain: domain,
|
|
338
|
-
range: range,
|
|
339
|
-
inverted: inverted,
|
|
340
|
-
});
|
|
341
|
-
var ticks = (0, react_d3_axis_mod_1.axisPropsFromTickScale)(scale, 4);
|
|
342
|
-
return height < 100 || minimalTicks
|
|
343
|
-
? __assign(__assign({}, ticks), { values: domain }) : ticks;
|
|
344
|
-
},
|
|
345
|
-
get adapterCapabilities() {
|
|
346
|
-
return pluginManager.getAdapterType(self.adapterTypeName)
|
|
347
|
-
.adapterCapabilities;
|
|
348
324
|
},
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
return self.adapterCapabilities.includes('hasResolution');
|
|
360
|
-
},
|
|
361
|
-
get hasGlobalStats() {
|
|
362
|
-
return self.adapterCapabilities.includes('hasGlobalStats');
|
|
363
|
-
},
|
|
364
|
-
get fillSetting() {
|
|
365
|
-
if (self.filled) {
|
|
366
|
-
return 0;
|
|
367
|
-
}
|
|
368
|
-
else if (!self.filled && self.minSize === 1) {
|
|
369
|
-
return 1;
|
|
370
|
-
}
|
|
371
|
-
else {
|
|
372
|
-
return 2;
|
|
373
|
-
}
|
|
374
|
-
},
|
|
375
|
-
};
|
|
376
|
-
})
|
|
377
|
-
.views(function (self) {
|
|
378
|
-
var superTrackMenuItems = self.trackMenuItems;
|
|
379
|
-
var hasRenderings = (0, configuration_1.getConf)(self, 'defaultRendering');
|
|
380
|
-
return {
|
|
381
|
-
trackMenuItems: function () {
|
|
382
|
-
return __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(superTrackMenuItems()), false), __read((self.hasResolution
|
|
325
|
+
};
|
|
326
|
+
})
|
|
327
|
+
.views(self => {
|
|
328
|
+
const { trackMenuItems: superTrackMenuItems } = self;
|
|
329
|
+
const hasRenderings = (0, configuration_1.getConf)(self, 'defaultRendering');
|
|
330
|
+
return {
|
|
331
|
+
trackMenuItems() {
|
|
332
|
+
return [
|
|
333
|
+
...superTrackMenuItems(),
|
|
334
|
+
...(self.hasResolution
|
|
383
335
|
? [
|
|
384
336
|
{
|
|
385
337
|
label: 'Resolution',
|
|
386
338
|
subMenu: [
|
|
387
339
|
{
|
|
388
340
|
label: 'Finer resolution',
|
|
389
|
-
onClick:
|
|
341
|
+
onClick: () => self.setResolution(self.resolution * 5),
|
|
390
342
|
},
|
|
391
343
|
{
|
|
392
344
|
label: 'Coarser resolution',
|
|
393
|
-
onClick:
|
|
345
|
+
onClick: () => self.setResolution(self.resolution / 5),
|
|
394
346
|
},
|
|
395
347
|
],
|
|
396
348
|
},
|
|
397
349
|
{
|
|
398
350
|
label: 'Summary score mode',
|
|
399
|
-
subMenu: ['min', 'max', 'avg', 'whiskers'].map(
|
|
351
|
+
subMenu: ['min', 'max', 'avg', 'whiskers'].map(elt => ({
|
|
400
352
|
label: elt,
|
|
401
353
|
type: 'radio',
|
|
402
354
|
checked: self.summaryScoreModeSetting === elt,
|
|
403
|
-
onClick:
|
|
404
|
-
})
|
|
355
|
+
onClick: () => self.setSummaryScoreMode(elt),
|
|
356
|
+
})),
|
|
405
357
|
},
|
|
406
358
|
]
|
|
407
|
-
: [])
|
|
359
|
+
: []),
|
|
360
|
+
...(self.canHaveFill
|
|
408
361
|
? [
|
|
409
362
|
{
|
|
410
363
|
label: 'Fill mode',
|
|
411
|
-
subMenu: ['filled', 'no fill', 'no fill w/ emphasis'].map(
|
|
364
|
+
subMenu: ['filled', 'no fill', 'no fill w/ emphasis'].map((elt, idx) => ({
|
|
412
365
|
label: elt,
|
|
413
366
|
type: 'radio',
|
|
414
367
|
checked: self.fillSetting === idx,
|
|
415
|
-
onClick:
|
|
416
|
-
})
|
|
368
|
+
onClick: () => self.setFill(idx),
|
|
369
|
+
})),
|
|
417
370
|
},
|
|
418
371
|
]
|
|
419
|
-
: [])
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
372
|
+
: []),
|
|
373
|
+
{
|
|
374
|
+
label: self.scaleType === 'log' ? 'Set linear scale' : 'Set log scale',
|
|
375
|
+
onClick: () => self.toggleLogScale(),
|
|
376
|
+
},
|
|
377
|
+
...(self.needsScalebar
|
|
425
378
|
? [
|
|
426
379
|
{
|
|
427
380
|
type: 'checkbox',
|
|
428
381
|
label: 'Draw cross hatches',
|
|
429
382
|
checked: self.displayCrossHatchesSetting,
|
|
430
|
-
onClick:
|
|
383
|
+
onClick: () => self.toggleCrossHatches(),
|
|
431
384
|
},
|
|
432
385
|
]
|
|
433
|
-
: [])
|
|
386
|
+
: []),
|
|
387
|
+
...(hasRenderings
|
|
434
388
|
? [
|
|
435
389
|
{
|
|
436
390
|
label: 'Renderer type',
|
|
437
|
-
subMenu: ['xyplot', 'density', 'line'].map(
|
|
391
|
+
subMenu: ['xyplot', 'density', 'line'].map(key => ({
|
|
438
392
|
label: key,
|
|
439
393
|
type: 'radio',
|
|
440
394
|
checked: self.rendererTypeNameSimple === key,
|
|
441
|
-
onClick:
|
|
442
|
-
})
|
|
395
|
+
onClick: () => self.setRendererType(key),
|
|
396
|
+
})),
|
|
443
397
|
},
|
|
444
398
|
]
|
|
445
|
-
: [])
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
399
|
+
: []),
|
|
400
|
+
{
|
|
401
|
+
label: 'Autoscale type',
|
|
402
|
+
subMenu: [
|
|
403
|
+
['local', 'Local'],
|
|
404
|
+
...(self.hasGlobalStats
|
|
451
405
|
? [
|
|
452
406
|
['global', 'Global'],
|
|
453
407
|
['globalsd', 'Global ± 3σ'],
|
|
454
408
|
]
|
|
455
|
-
: [])
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
SetMinMaxDlg,
|
|
472
|
-
{ model: self, handleClose: handleClose },
|
|
473
|
-
]; });
|
|
474
|
-
},
|
|
409
|
+
: []),
|
|
410
|
+
['localsd', 'Local ± 3σ'],
|
|
411
|
+
].map(([val, label]) => ({
|
|
412
|
+
label,
|
|
413
|
+
type: 'radio',
|
|
414
|
+
checked: self.autoscaleType === val,
|
|
415
|
+
onClick: () => self.setAutoscale(val),
|
|
416
|
+
})),
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
label: 'Set min/max score',
|
|
420
|
+
onClick: () => {
|
|
421
|
+
(0, util_1.getSession)(self).queueDialog(handleClose => [
|
|
422
|
+
SetMinMaxDlg,
|
|
423
|
+
{ model: self, handleClose },
|
|
424
|
+
]);
|
|
475
425
|
},
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
label: 'Set color',
|
|
429
|
+
onClick: () => {
|
|
430
|
+
(0, util_1.getSession)(self).queueDialog(handleClose => [
|
|
431
|
+
SetColorDlg,
|
|
432
|
+
{ model: self, handleClose },
|
|
433
|
+
]);
|
|
484
434
|
},
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
_a.label = 1;
|
|
503
|
-
case 1:
|
|
504
|
-
_a.trys.push([1, 3, , 4]);
|
|
505
|
-
return [4 /*yield*/, (0, util_2.getStats)(self, __assign({ signal: aborter.signal }, self.renderProps()))];
|
|
506
|
-
case 2:
|
|
507
|
-
stats = _a.sent();
|
|
508
|
-
if ((0, mobx_state_tree_1.isAlive)(self)) {
|
|
509
|
-
self.updateStats(stats);
|
|
510
|
-
superReload();
|
|
511
|
-
}
|
|
512
|
-
return [3 /*break*/, 4];
|
|
513
|
-
case 3:
|
|
514
|
-
e_1 = _a.sent();
|
|
515
|
-
self.setError(e_1);
|
|
516
|
-
return [3 /*break*/, 4];
|
|
517
|
-
case 4: return [2 /*return*/];
|
|
518
|
-
}
|
|
519
|
-
});
|
|
520
|
-
});
|
|
521
|
-
},
|
|
522
|
-
afterAttach: function () {
|
|
523
|
-
(0, util_2.statsAutorun)(self);
|
|
524
|
-
},
|
|
525
|
-
renderSvg: function (opts) {
|
|
526
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
527
|
-
var needsScalebar, stats, offsetPx, _a, _b, _c, _d, _e, _f;
|
|
528
|
-
return __generator(this, function (_g) {
|
|
529
|
-
switch (_g.label) {
|
|
530
|
-
case 0: return [4 /*yield*/, (0, mobx_1.when)(function () { return self.statsReady && !!self.regionCannotBeRenderedText; })];
|
|
531
|
-
case 1:
|
|
532
|
-
_g.sent();
|
|
533
|
-
needsScalebar = self.needsScalebar, stats = self.stats;
|
|
534
|
-
offsetPx = (0, util_1.getContainingView)(self).offsetPx;
|
|
535
|
-
_b = (_a = react_1.default).createElement;
|
|
536
|
-
_c = [react_1.default.Fragment, null];
|
|
537
|
-
_e = (_d = react_1.default).createElement;
|
|
538
|
-
_f = ["g", { id: "snpcov" }];
|
|
539
|
-
return [4 /*yield*/, superRenderSvg(opts)];
|
|
540
|
-
case 2: return [2 /*return*/, (_b.apply(_a, _c.concat([_e.apply(_d, _f.concat([_g.sent()])), needsScalebar && stats ? (react_1.default.createElement("g", { transform: "translate(".concat(Math.max(-offsetPx, 0), ")") },
|
|
541
|
-
react_1.default.createElement(WiggleDisplayComponent_1.YScaleBar, { model: self, orientation: "left" }))) : null])))];
|
|
542
|
-
}
|
|
543
|
-
});
|
|
435
|
+
},
|
|
436
|
+
];
|
|
437
|
+
},
|
|
438
|
+
};
|
|
439
|
+
})
|
|
440
|
+
.actions(self => {
|
|
441
|
+
const { reload: superReload, renderSvg: superRenderSvg } = self;
|
|
442
|
+
return {
|
|
443
|
+
// re-runs stats and refresh whole display on reload
|
|
444
|
+
async reload() {
|
|
445
|
+
self.setError();
|
|
446
|
+
const aborter = new AbortController();
|
|
447
|
+
self.setLoading(aborter);
|
|
448
|
+
try {
|
|
449
|
+
const stats = await (0, util_2.getStats)(self, {
|
|
450
|
+
signal: aborter.signal,
|
|
451
|
+
...self.renderProps(),
|
|
544
452
|
});
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
}
|
|
453
|
+
if ((0, mobx_state_tree_1.isAlive)(self)) {
|
|
454
|
+
self.updateStats(stats);
|
|
455
|
+
superReload();
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
catch (e) {
|
|
459
|
+
self.setError(e);
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
afterAttach() {
|
|
463
|
+
(0, util_2.statsAutorun)(self);
|
|
464
|
+
},
|
|
465
|
+
async renderSvg(opts) {
|
|
466
|
+
await (0, mobx_1.when)(() => self.statsReady && !!self.regionCannotBeRenderedText);
|
|
467
|
+
const { needsScalebar, stats } = self;
|
|
468
|
+
const { offsetPx } = (0, util_1.getContainingView)(self);
|
|
469
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
470
|
+
react_1.default.createElement("g", { id: "snpcov" }, await superRenderSvg(opts)),
|
|
471
|
+
needsScalebar && stats ? (react_1.default.createElement("g", { transform: `translate(${Math.max(-offsetPx, 0)})` },
|
|
472
|
+
react_1.default.createElement(WiggleDisplayComponent_1.YScaleBar, { model: self, orientation: "left" }))) : null));
|
|
473
|
+
},
|
|
474
|
+
};
|
|
475
|
+
});
|
|
549
476
|
exports.default = stateModelFactory;
|
|
550
477
|
//# sourceMappingURL=model.js.map
|