@jbrowse/core 1.5.7 → 1.6.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.
- package/BaseFeatureWidget/BaseFeatureDetail.js +91 -78
- package/BaseFeatureWidget/SequenceFeatureDetails.js +65 -57
- package/BaseFeatureWidget/SequenceFeatureDetails.test.js +9 -9
- package/BaseFeatureWidget/index.js +1 -1
- package/BaseFeatureWidget/index.test.js +4 -4
- package/BaseFeatureWidget/util.js +13 -9
- package/CorePlugin.js +32 -20
- package/Plugin.js +13 -11
- package/PluginLoader.js +38 -33
- package/PluginManager.d.ts +8 -5
- package/PluginManager.js +142 -53
- package/ReExports/index.js +4 -4
- package/ReExports/list.js +2 -2
- package/ReExports/material-ui-colors.js +20 -20
- package/ReExports/modules.d.ts +7 -5
- package/ReExports/modules.js +51 -47
- package/TextSearch/BaseResults.js +34 -24
- package/TextSearch/BaseResults.test.js +7 -3
- package/TextSearch/TextSearchManager.js +17 -15
- package/assemblyManager/assembly.js +39 -34
- package/assemblyManager/assemblyConfigSchema.js +2 -2
- package/assemblyManager/assemblyManager.js +20 -16
- package/assemblyManager/index.js +3 -3
- package/babel.config.d.ts +15 -0
- package/babel.config.js +19 -0
- package/configuration/configurationSchema.js +19 -17
- package/configuration/configurationSlot.js +11 -11
- package/configuration/configurationSlot.test.js +5 -5
- package/configuration/index.d.ts +1 -0
- package/configuration/util.js +5 -5
- package/data_adapters/BaseAdapter.d.ts +15 -3
- package/data_adapters/BaseAdapter.js +216 -62
- package/data_adapters/BaseAdapter.test.js +30 -24
- package/data_adapters/CytobandAdapter.d.ts +1 -1
- package/data_adapters/CytobandAdapter.js +25 -19
- package/data_adapters/dataAdapterCache.js +9 -9
- package/package.json +4 -5
- package/pluggableElementTypes/AdapterType.js +31 -22
- package/pluggableElementTypes/ConnectionType.js +28 -18
- package/pluggableElementTypes/DisplayType.js +27 -17
- package/pluggableElementTypes/InternetAccountType.js +24 -14
- package/pluggableElementTypes/PluggableElementBase.js +10 -8
- package/pluggableElementTypes/RpcMethodType.d.ts +1 -1
- package/pluggableElementTypes/RpcMethodType.js +141 -118
- package/pluggableElementTypes/RpcMethodType.test.js +23 -17
- package/pluggableElementTypes/TextSearchAdapterType.js +25 -15
- package/pluggableElementTypes/TrackType.js +25 -15
- package/pluggableElementTypes/ViewType.js +25 -15
- package/pluggableElementTypes/WidgetType.js +27 -17
- package/pluggableElementTypes/index.js +11 -11
- package/pluggableElementTypes/models/BaseConnectionModelFactory.js +5 -5
- package/pluggableElementTypes/models/BaseDisplayModel.js +8 -5
- package/pluggableElementTypes/models/BaseTrackModel.js +11 -8
- package/pluggableElementTypes/models/BaseViewModel.js +3 -3
- package/pluggableElementTypes/models/InternetAccountModel.d.ts +1 -1
- package/pluggableElementTypes/models/InternetAccountModel.js +5 -5
- package/pluggableElementTypes/models/baseConnectionConfig.js +2 -2
- package/pluggableElementTypes/models/baseTrackConfig.js +7 -4
- package/pluggableElementTypes/models/index.js +4 -4
- package/pluggableElementTypes/renderers/BoxRendererType.js +49 -39
- package/pluggableElementTypes/renderers/CircularChordRendererType.js +18 -12
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +35 -27
- package/pluggableElementTypes/renderers/FeatureRendererType.js +46 -36
- package/pluggableElementTypes/renderers/RendererType.js +31 -21
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +12 -8
- package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +1 -1
- package/pluggableElementTypes/renderers/ServerSideRendererType.js +45 -33
- package/pluggableElementTypes/renderers/index.js +8 -8
- package/pluggableElementTypes/renderers/util/serializableFilterChain.js +10 -8
- package/pluggableElementTypes/renderers/util/serializableFilterChain.test.js +2 -2
- package/rpc/BaseRpcDriver.js +43 -38
- package/rpc/BaseRpcDriver.test.js +63 -49
- package/rpc/MainThreadRpcDriver.js +32 -22
- package/rpc/RpcManager.js +19 -17
- package/rpc/WebWorkerRpcDriver.js +38 -28
- package/rpc/configSchema.js +2 -2
- package/rpc/coreRpcMethods.d.ts +16 -0
- package/rpc/coreRpcMethods.js +248 -121
- package/rpc/remoteAbortSignals.js +3 -3
- package/ui/AboutDialog.js +21 -17
- package/ui/App.js +42 -38
- package/ui/AssemblySelector.d.ts +1 -1
- package/ui/AssemblySelector.js +6 -6
- package/ui/Drawer.js +7 -7
- package/ui/DrawerWidget.d.ts +1 -1
- package/ui/DrawerWidget.js +37 -33
- package/ui/DropDownMenu.js +21 -9
- package/ui/EditableTypography.js +30 -19
- package/ui/ErrorMessage.js +5 -5
- package/ui/FactoryResetDialog.js +8 -8
- package/ui/FatalErrorDialog.js +29 -12
- package/ui/FatalErrorDialog.test.js +11 -11
- package/ui/FileSelector/FileSelector.js +42 -32
- package/ui/FileSelector/LocalFileChooser.js +9 -9
- package/ui/FileSelector/UrlChooser.js +4 -4
- package/ui/FileSelector/index.js +4 -4
- package/ui/Icons.js +9 -9
- package/ui/Logo.js +19 -19
- package/ui/Menu.js +46 -35
- package/ui/NewSessionCards.js +29 -19
- package/ui/PrerenderedCanvas.js +27 -10
- package/ui/ResizeHandle.js +17 -10
- package/ui/SanitizedHTML.js +5 -5
- package/ui/SanitizedHTML.test.js +4 -4
- package/ui/Snackbar.js +16 -12
- package/ui/SnackbarModel.js +1 -1
- package/ui/Tooltip.js +11 -7
- package/ui/ViewContainer.d.ts +2 -5
- package/ui/ViewContainer.js +44 -49
- package/ui/index.d.ts +1 -0
- package/ui/index.js +26 -13
- package/ui/theme.js +15 -11
- package/util/Base1DViewModel.d.ts +14 -12
- package/util/Base1DViewModel.js +51 -55
- package/util/Base1DViewModel.test.js +5 -5
- package/util/QuickLRU.js +31 -27
- package/util/aborting.js +26 -16
- package/util/analytics.d.ts +1 -0
- package/util/analytics.js +15 -7
- package/util/blockTypes.js +48 -36
- package/util/calculateDynamicBlocks.js +4 -4
- package/util/calculateDynamicBlocks.test.js +14 -10
- package/util/calculateStaticBlocks.js +1 -1
- package/util/calculateStaticBlocks.test.js +15 -15
- package/util/compositeMap.js +31 -27
- package/util/idMaker.js +4 -4
- package/util/index.d.ts +23 -1
- package/util/index.js +135 -41
- package/util/index.test.js +11 -7
- package/util/io/RemoteFileWithRangeCache.js +41 -29
- package/util/io/index.js +6 -6
- package/util/jexl.js +5 -5
- package/util/jexlStrings.js +2 -2
- package/util/jexlStrings.test.js +2 -2
- package/util/layouts/GranularRectLayout.js +33 -27
- package/util/layouts/GranularRectLayout.test.js +10 -10
- package/util/layouts/MultiLayout.js +19 -13
- package/util/layouts/PrecomputedLayout.js +16 -14
- package/util/layouts/PrecomputedMultiLayout.js +23 -17
- package/util/layouts/SceneGraph.js +18 -12
- package/util/layouts/index.js +6 -6
- package/util/offscreenCanvasPonyfill.js +31 -29
- package/util/offscreenCanvasUtils.js +6 -6
- package/util/range.test.js +20 -20
- package/util/rxjs.js +2 -2
- package/util/simpleFeature.js +23 -18
- package/util/simpleFeature.test.js +3 -3
- package/util/stats.d.ts +1 -1
- package/util/stats.js +11 -7
- package/util/stats.test.js +16 -16
- package/util/tracks.js +1 -3
- package/util/types/index.d.ts +1 -1
- package/util/types/index.js +36 -31
- package/util/types/mst.js +19 -15
- package/util/when.js +6 -6
package/util/Base1DViewModel.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports
|
|
8
|
+
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
12
|
var _mobxStateTree = require("mobx-state-tree");
|
|
13
13
|
|
|
@@ -19,13 +19,17 @@ var _calculateDynamicBlocks = _interopRequireDefault(require("./calculateDynamic
|
|
|
19
19
|
|
|
20
20
|
var _calculateStaticBlocks = _interopRequireDefault(require("./calculateStaticBlocks"));
|
|
21
21
|
|
|
22
|
+
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; }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
22
26
|
var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
23
27
|
displayedRegions: _mobxStateTree.types.array(_mst.Region),
|
|
24
28
|
bpPerPx: 0,
|
|
25
29
|
offsetPx: 0,
|
|
26
30
|
interRegionPaddingWidth: _mobxStateTree.types.optional(_mobxStateTree.types.number, 0),
|
|
27
31
|
minimumBlockWidth: _mobxStateTree.types.optional(_mobxStateTree.types.number, 0)
|
|
28
|
-
})
|
|
32
|
+
}).volatile(function () {
|
|
29
33
|
return {
|
|
30
34
|
features: undefined,
|
|
31
35
|
volatileWidth: 0
|
|
@@ -72,50 +76,6 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
72
76
|
}, 0);
|
|
73
77
|
},
|
|
74
78
|
|
|
75
|
-
/**
|
|
76
|
-
* calculates the Px at which coord is found.
|
|
77
|
-
*
|
|
78
|
-
* @param refName - string, refName of region
|
|
79
|
-
* @param coord - number, bp to be translated to Px
|
|
80
|
-
* @param regionNumber - number, index of displayedRegion in displayedRegions array
|
|
81
|
-
*/
|
|
82
|
-
bpToPx: function bpToPx(_ref) {
|
|
83
|
-
var _this = this;
|
|
84
|
-
|
|
85
|
-
var refName = _ref.refName,
|
|
86
|
-
coord = _ref.coord,
|
|
87
|
-
regionNumber = _ref.regionNumber;
|
|
88
|
-
var offsetBp = 0;
|
|
89
|
-
var interRegionPaddingBp = self.interRegionPaddingWidth * self.bpPerPx;
|
|
90
|
-
var minimumBlockBp = self.minimumBlockWidth * self.bpPerPx;
|
|
91
|
-
var index = self.displayedRegions.findIndex(function (region, idx) {
|
|
92
|
-
var len = region.end - region.start;
|
|
93
|
-
|
|
94
|
-
if (refName === region.refName && coord >= region.start && coord <= region.end) {
|
|
95
|
-
if (regionNumber ? regionNumber === idx : true) {
|
|
96
|
-
offsetBp += region.reversed ? region.end - coord : coord - region.start;
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
} // add the interRegionPaddingWidth if the boundary is in the screen
|
|
100
|
-
// e.g. offset>0 && offset<width
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (region.end - region.start > minimumBlockBp && offsetBp / self.bpPerPx > 0 && offsetBp / self.bpPerPx < _this.width) {
|
|
104
|
-
offsetBp += len + interRegionPaddingBp;
|
|
105
|
-
} else {
|
|
106
|
-
offsetBp += len;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return false;
|
|
110
|
-
});
|
|
111
|
-
var foundRegion = self.displayedRegions[index];
|
|
112
|
-
|
|
113
|
-
if (foundRegion) {
|
|
114
|
-
return Math.round(offsetBp / self.bpPerPx);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return undefined;
|
|
118
|
-
},
|
|
119
79
|
pxToBp: function pxToBp(px) {
|
|
120
80
|
var bpSoFar = 0;
|
|
121
81
|
var bp = (self.offsetPx + px) * self.bpPerPx;
|
|
@@ -124,7 +84,7 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
124
84
|
if (bp < 0) {
|
|
125
85
|
var region = self.displayedRegions[0];
|
|
126
86
|
var offset = bp;
|
|
127
|
-
return (
|
|
87
|
+
return _objectSpread(_objectSpread({}, (0, _mobxStateTree.getSnapshot)(region)), {}, {
|
|
128
88
|
oob: true,
|
|
129
89
|
coord: region.reversed ? Math.floor(region.end - offset) + 1 : Math.floor(region.start + offset) + 1,
|
|
130
90
|
offset: offset,
|
|
@@ -142,7 +102,7 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
142
102
|
var _offset = bp - bpSoFar;
|
|
143
103
|
|
|
144
104
|
if (len + bpSoFar > bp && bpSoFar <= bp) {
|
|
145
|
-
return (
|
|
105
|
+
return _objectSpread(_objectSpread({}, (0, _mobxStateTree.getSnapshot)(_region)), {}, {
|
|
146
106
|
oob: false,
|
|
147
107
|
offset: _offset,
|
|
148
108
|
coord: _region.reversed ? Math.floor(_region.end - _offset) + 1 : Math.floor(_region.start + _offset) + 1,
|
|
@@ -166,7 +126,7 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
166
126
|
|
|
167
127
|
var _offset2 = bp - bpSoFar + _len;
|
|
168
128
|
|
|
169
|
-
return (
|
|
129
|
+
return _objectSpread(_objectSpread({}, (0, _mobxStateTree.getSnapshot)(_region2)), {}, {
|
|
170
130
|
oob: true,
|
|
171
131
|
offset: _offset2,
|
|
172
132
|
coord: _region2.reversed ? Math.floor(_region2.end - _offset2) + 1 : Math.floor(_region2.start + _offset2) + 1,
|
|
@@ -189,11 +149,11 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
189
149
|
}).views(function (self) {
|
|
190
150
|
return {
|
|
191
151
|
get dynamicBlocks() {
|
|
192
|
-
return (0, _calculateDynamicBlocks
|
|
152
|
+
return (0, _calculateDynamicBlocks.default)(self);
|
|
193
153
|
},
|
|
194
154
|
|
|
195
155
|
get staticBlocks() {
|
|
196
|
-
return (0, _calculateStaticBlocks
|
|
156
|
+
return (0, _calculateStaticBlocks.default)(self);
|
|
197
157
|
},
|
|
198
158
|
|
|
199
159
|
get currBp() {
|
|
@@ -202,8 +162,28 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
202
162
|
}).reduce(function (a, b) {
|
|
203
163
|
return a + b;
|
|
204
164
|
}, 0);
|
|
205
|
-
}
|
|
165
|
+
},
|
|
206
166
|
|
|
167
|
+
/**
|
|
168
|
+
* calculates the Px at which coord is found.
|
|
169
|
+
*
|
|
170
|
+
* @param refName - string, refName of region
|
|
171
|
+
* @param coord - number, bp to be translated to Px
|
|
172
|
+
* @param regionNumber - number, index of displayedRegion in displayedRegions array
|
|
173
|
+
*/
|
|
174
|
+
bpToPx: function bpToPx(_ref) {
|
|
175
|
+
var _viewBpToPx;
|
|
176
|
+
|
|
177
|
+
var refName = _ref.refName,
|
|
178
|
+
coord = _ref.coord,
|
|
179
|
+
regionNumber = _ref.regionNumber;
|
|
180
|
+
return (_viewBpToPx = (0, _index.viewBpToPx)({
|
|
181
|
+
refName: refName,
|
|
182
|
+
coord: coord,
|
|
183
|
+
regionNumber: regionNumber,
|
|
184
|
+
self: self
|
|
185
|
+
})) === null || _viewBpToPx === void 0 ? void 0 : _viewBpToPx.offsetPx;
|
|
186
|
+
}
|
|
207
187
|
};
|
|
208
188
|
}).actions(function (self) {
|
|
209
189
|
return {
|
|
@@ -311,6 +291,22 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
311
291
|
|
|
312
292
|
self.offsetPx = (0, _index.clamp)(Math.round((self.offsetPx + offset) * oldBpPerPx / bpPerPx - offset), self.minOffset, self.maxOffset);
|
|
313
293
|
},
|
|
294
|
+
scrollTo: function scrollTo(offsetPx) {
|
|
295
|
+
var newOffsetPx = (0, _index.clamp)(offsetPx, self.minOffset, self.maxOffset);
|
|
296
|
+
self.offsetPx = newOffsetPx;
|
|
297
|
+
return newOffsetPx;
|
|
298
|
+
},
|
|
299
|
+
centerAt: function centerAt(bp, refName, regionIndex) {
|
|
300
|
+
var centerPx = self.bpToPx({
|
|
301
|
+
refName: refName,
|
|
302
|
+
coord: bp,
|
|
303
|
+
regionNumber: regionIndex
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
if (centerPx) {
|
|
307
|
+
this.scrollTo(Math.round(centerPx - self.width / 2));
|
|
308
|
+
}
|
|
309
|
+
},
|
|
314
310
|
scroll: function scroll(distance) {
|
|
315
311
|
var oldOffsetPx = self.offsetPx; // the scroll is clamped to keep the linear genome on the main screen
|
|
316
312
|
|
|
@@ -322,4 +318,4 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
322
318
|
});
|
|
323
319
|
|
|
324
320
|
var _default = Base1DView;
|
|
325
|
-
exports
|
|
321
|
+
exports.default = _default;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
var _Base1DViewModel = _interopRequireDefault(require("./Base1DViewModel"));
|
|
6
6
|
|
|
7
7
|
test('create Base1DView and set displayedRegions', function () {
|
|
8
|
-
var model = _Base1DViewModel
|
|
8
|
+
var model = _Base1DViewModel.default.create({
|
|
9
9
|
bpPerPx: 1,
|
|
10
10
|
offsetPx: 0
|
|
11
11
|
});
|
|
@@ -28,7 +28,7 @@ test('create Base1DView and set displayedRegions', function () {
|
|
|
28
28
|
expect(model.displayedRegions).toBeTruthy();
|
|
29
29
|
});
|
|
30
30
|
test('Able to set bpPerPx, width and calculate widths', function () {
|
|
31
|
-
var model = _Base1DViewModel
|
|
31
|
+
var model = _Base1DViewModel.default.create({
|
|
32
32
|
bpPerPx: 0,
|
|
33
33
|
offsetPx: 0
|
|
34
34
|
});
|
|
@@ -56,7 +56,7 @@ test('Able to set bpPerPx, width and calculate widths', function () {
|
|
|
56
56
|
expect(model.minimumBlockWidth).toEqual(0);
|
|
57
57
|
});
|
|
58
58
|
test('Able to set and showAll Regions', function () {
|
|
59
|
-
var model = _Base1DViewModel
|
|
59
|
+
var model = _Base1DViewModel.default.create({
|
|
60
60
|
bpPerPx: 0,
|
|
61
61
|
offsetPx: 0
|
|
62
62
|
});
|
|
@@ -85,7 +85,7 @@ test('Able to set and showAll Regions', function () {
|
|
|
85
85
|
expect(model.bpPerPx).toEqual(53);
|
|
86
86
|
});
|
|
87
87
|
test('Navigate to displayedRegions', function () {
|
|
88
|
-
var model = _Base1DViewModel
|
|
88
|
+
var model = _Base1DViewModel.default.create({
|
|
89
89
|
bpPerPx: 0,
|
|
90
90
|
offsetPx: 0
|
|
91
91
|
});
|
package/util/QuickLRU.js
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports
|
|
8
|
+
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
11
|
|
|
12
|
-
var _slicedToArray2 = _interopRequireDefault(require("
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
19
|
+
|
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
|
+
|
|
22
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
19
23
|
|
|
20
24
|
/* eslint-disable no-underscore-dangle */
|
|
21
25
|
|
|
@@ -27,7 +31,7 @@ var _createClass2 = _interopRequireDefault(require("/data/jbrowse-components2/no
|
|
|
27
31
|
var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
28
32
|
function QuickLRU() {
|
|
29
33
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
30
|
-
(0, _classCallCheck2
|
|
34
|
+
(0, _classCallCheck2.default)(this, QuickLRU);
|
|
31
35
|
|
|
32
36
|
if (!(options.maxSize && options.maxSize > 0)) {
|
|
33
37
|
throw new TypeError('`maxSize` must be a number greater than 0');
|
|
@@ -39,7 +43,7 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
39
43
|
this._size = 0;
|
|
40
44
|
}
|
|
41
45
|
|
|
42
|
-
(0, _createClass2
|
|
46
|
+
(0, _createClass2.default)(QuickLRU, [{
|
|
43
47
|
key: "_set",
|
|
44
48
|
value: function _set(key, value) {
|
|
45
49
|
this.cache.set(key, value);
|
|
@@ -60,7 +64,7 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
60
64
|
|
|
61
65
|
if (this.oldCache.has(key)) {
|
|
62
66
|
var value = this.oldCache.get(key);
|
|
63
|
-
this.oldCache
|
|
67
|
+
this.oldCache.delete(key);
|
|
64
68
|
|
|
65
69
|
this._set(key, value);
|
|
66
70
|
|
|
@@ -101,13 +105,13 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
101
105
|
}, {
|
|
102
106
|
key: "delete",
|
|
103
107
|
value: function _delete(key) {
|
|
104
|
-
var deleted = this.cache
|
|
108
|
+
var deleted = this.cache.delete(key);
|
|
105
109
|
|
|
106
110
|
if (deleted) {
|
|
107
111
|
this._size -= 1;
|
|
108
112
|
}
|
|
109
113
|
|
|
110
|
-
return this.oldCache
|
|
114
|
+
return this.oldCache.delete(key) || deleted;
|
|
111
115
|
}
|
|
112
116
|
}, {
|
|
113
117
|
key: "clear",
|
|
@@ -118,14 +122,14 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
118
122
|
}
|
|
119
123
|
}, {
|
|
120
124
|
key: "keys",
|
|
121
|
-
value: /*#__PURE__*/
|
|
125
|
+
value: /*#__PURE__*/_regenerator.default.mark(function keys() {
|
|
122
126
|
var _iterator, _step, _step$value, key;
|
|
123
127
|
|
|
124
|
-
return
|
|
128
|
+
return _regenerator.default.wrap(function keys$(_context) {
|
|
125
129
|
while (1) {
|
|
126
130
|
switch (_context.prev = _context.next) {
|
|
127
131
|
case 0:
|
|
128
|
-
_iterator = (
|
|
132
|
+
_iterator = _createForOfIteratorHelper(this);
|
|
129
133
|
_context.prev = 1;
|
|
130
134
|
|
|
131
135
|
_iterator.s();
|
|
@@ -136,7 +140,7 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
136
140
|
break;
|
|
137
141
|
}
|
|
138
142
|
|
|
139
|
-
_step$value = (0, _slicedToArray2
|
|
143
|
+
_step$value = (0, _slicedToArray2.default)(_step.value, 1), key = _step$value[0];
|
|
140
144
|
_context.next = 7;
|
|
141
145
|
return key;
|
|
142
146
|
|
|
@@ -170,14 +174,14 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
170
174
|
})
|
|
171
175
|
}, {
|
|
172
176
|
key: "values",
|
|
173
|
-
value: /*#__PURE__*/
|
|
177
|
+
value: /*#__PURE__*/_regenerator.default.mark(function values() {
|
|
174
178
|
var _iterator2, _step2, _step2$value, value;
|
|
175
179
|
|
|
176
|
-
return
|
|
180
|
+
return _regenerator.default.wrap(function values$(_context2) {
|
|
177
181
|
while (1) {
|
|
178
182
|
switch (_context2.prev = _context2.next) {
|
|
179
183
|
case 0:
|
|
180
|
-
_iterator2 = (
|
|
184
|
+
_iterator2 = _createForOfIteratorHelper(this);
|
|
181
185
|
_context2.prev = 1;
|
|
182
186
|
|
|
183
187
|
_iterator2.s();
|
|
@@ -188,7 +192,7 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
188
192
|
break;
|
|
189
193
|
}
|
|
190
194
|
|
|
191
|
-
_step2$value = (0, _slicedToArray2
|
|
195
|
+
_step2$value = (0, _slicedToArray2.default)(_step2.value, 2), value = _step2$value[1];
|
|
192
196
|
_context2.next = 7;
|
|
193
197
|
return value;
|
|
194
198
|
|
|
@@ -222,14 +226,14 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
222
226
|
})
|
|
223
227
|
}, {
|
|
224
228
|
key: _Symbol$iterator,
|
|
225
|
-
value: /*#__PURE__*/
|
|
229
|
+
value: /*#__PURE__*/_regenerator.default.mark(function value() {
|
|
226
230
|
var _iterator3, _step3, item, _iterator4, _step4, _item, _item2, key;
|
|
227
231
|
|
|
228
|
-
return
|
|
232
|
+
return _regenerator.default.wrap(function value$(_context3) {
|
|
229
233
|
while (1) {
|
|
230
234
|
switch (_context3.prev = _context3.next) {
|
|
231
235
|
case 0:
|
|
232
|
-
_iterator3 = (
|
|
236
|
+
_iterator3 = _createForOfIteratorHelper(this.cache);
|
|
233
237
|
_context3.prev = 1;
|
|
234
238
|
|
|
235
239
|
_iterator3.s();
|
|
@@ -266,7 +270,7 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
266
270
|
return _context3.finish(14);
|
|
267
271
|
|
|
268
272
|
case 17:
|
|
269
|
-
_iterator4 = (
|
|
273
|
+
_iterator4 = _createForOfIteratorHelper(this.oldCache);
|
|
270
274
|
_context3.prev = 18;
|
|
271
275
|
|
|
272
276
|
_iterator4.s();
|
|
@@ -278,7 +282,7 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
278
282
|
}
|
|
279
283
|
|
|
280
284
|
_item = _step4.value;
|
|
281
|
-
_item2 = (0, _slicedToArray2
|
|
285
|
+
_item2 = (0, _slicedToArray2.default)(_item, 1), key = _item2[0];
|
|
282
286
|
|
|
283
287
|
if (this.cache.has(key)) {
|
|
284
288
|
_context3.next = 26;
|
|
@@ -321,7 +325,7 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
321
325
|
get: function get() {
|
|
322
326
|
var oldCacheSize = 0;
|
|
323
327
|
|
|
324
|
-
var _iterator5 = (
|
|
328
|
+
var _iterator5 = _createForOfIteratorHelper(this.oldCache.keys()),
|
|
325
329
|
_step5;
|
|
326
330
|
|
|
327
331
|
try {
|
|
@@ -345,4 +349,4 @@ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
|
|
|
345
349
|
}(Symbol.iterator);
|
|
346
350
|
|
|
347
351
|
var _default = QuickLRU;
|
|
348
|
-
exports
|
|
352
|
+
exports.default = _default;
|
package/util/aborting.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
@@ -11,43 +11,53 @@ exports.isAbortException = isAbortException;
|
|
|
11
11
|
exports.makeAbortError = makeAbortError;
|
|
12
12
|
exports.observeAbortSignal = observeAbortSignal;
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
15
|
|
|
16
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("
|
|
16
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
17
|
|
|
18
|
-
var _createClass2 = _interopRequireDefault(require("
|
|
18
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
19
|
|
|
20
|
-
var _classCallCheck2 = _interopRequireDefault(require("
|
|
20
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
27
|
+
|
|
28
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
29
|
+
|
|
30
|
+
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
31
|
+
|
|
32
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
33
|
|
|
28
34
|
var _rxjs = require("rxjs");
|
|
29
35
|
|
|
36
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
37
|
+
|
|
38
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
|
+
|
|
30
40
|
var AbortError = /*#__PURE__*/function (_Error) {
|
|
31
|
-
(0, _inherits2
|
|
41
|
+
(0, _inherits2.default)(AbortError, _Error);
|
|
32
42
|
|
|
33
|
-
var _super = (
|
|
43
|
+
var _super = _createSuper(AbortError);
|
|
34
44
|
|
|
35
45
|
function AbortError() {
|
|
36
46
|
var _this;
|
|
37
47
|
|
|
38
|
-
(0, _classCallCheck2
|
|
48
|
+
(0, _classCallCheck2.default)(this, AbortError);
|
|
39
49
|
|
|
40
50
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
41
51
|
args[_key] = arguments[_key];
|
|
42
52
|
}
|
|
43
53
|
|
|
44
54
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
45
|
-
_this
|
|
55
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "code", void 0);
|
|
46
56
|
return _this;
|
|
47
57
|
}
|
|
48
58
|
|
|
49
|
-
return (0, _createClass2
|
|
50
|
-
}( /*#__PURE__*/(0, _wrapNativeSuper2
|
|
59
|
+
return (0, _createClass2.default)(AbortError);
|
|
60
|
+
}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
|
|
51
61
|
/**
|
|
52
62
|
* properly check if the given AbortSignal is aborted.
|
|
53
63
|
* per the standard, if the signal reads as aborted,
|
|
@@ -92,8 +102,8 @@ function abortBreakPoint(_x) {
|
|
|
92
102
|
}
|
|
93
103
|
|
|
94
104
|
function _abortBreakPoint() {
|
|
95
|
-
_abortBreakPoint = (0, _asyncToGenerator2
|
|
96
|
-
return
|
|
105
|
+
_abortBreakPoint = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(signal) {
|
|
106
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
97
107
|
while (1) {
|
|
98
108
|
switch (_context.prev = _context.next) {
|
|
99
109
|
case 0:
|
package/util/analytics.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export declare function writeAWSAnalytics(rootModel: any, initialTimeStamp: number, sessionQuery?: string | null): Promise<void>;
|
|
2
2
|
export declare function writeGAAnalytics(rootModel: any, initialTimestamp: number): Promise<void>;
|
|
3
|
+
export declare function doAnalytics(rootModel: any, initialTimestamp: number, initialSessionQuery: string | null | undefined): void;
|
package/util/analytics.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.doAnalytics = doAnalytics;
|
|
8
9
|
exports.writeAWSAnalytics = writeAWSAnalytics;
|
|
9
10
|
exports.writeGAAnalytics = writeGAAnalytics;
|
|
10
11
|
|
|
11
|
-
var
|
|
12
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
13
|
|
|
13
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
14
15
|
|
|
15
16
|
var _configuration = require("../configuration");
|
|
16
17
|
|
|
@@ -22,9 +23,9 @@ function writeAWSAnalytics(_x, _x2, _x3) {
|
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
function _writeAWSAnalytics() {
|
|
25
|
-
_writeAWSAnalytics = (0, _asyncToGenerator2
|
|
26
|
+
_writeAWSAnalytics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(rootModel, initialTimeStamp, sessionQuery) {
|
|
26
27
|
var url, multiAssemblyTracks, savedSessionCount, config, session, ver, tracks, assemblies, plugins, stats, qs;
|
|
27
|
-
return
|
|
28
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
28
29
|
while (1) {
|
|
29
30
|
switch (_context.prev = _context.next) {
|
|
30
31
|
case 0:
|
|
@@ -104,11 +105,11 @@ function writeGAAnalytics(_x4, _x5) {
|
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
function _writeGAAnalytics() {
|
|
107
|
-
_writeGAAnalytics = (0, _asyncToGenerator2
|
|
108
|
+
_writeGAAnalytics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(rootModel, initialTimestamp) {
|
|
108
109
|
var _rootModel$jbrowse$pl;
|
|
109
110
|
|
|
110
111
|
var jbrowseUser, stats, analyticsScript, gaData, googleDimensions, analyticsScriptNode;
|
|
111
|
-
return
|
|
112
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
112
113
|
while (1) {
|
|
113
114
|
switch (_context2.prev = _context2.next) {
|
|
114
115
|
case 0:
|
|
@@ -148,4 +149,11 @@ function _writeGAAnalytics() {
|
|
|
148
149
|
}, _callee2);
|
|
149
150
|
}));
|
|
150
151
|
return _writeGAAnalytics.apply(this, arguments);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function doAnalytics(rootModel, initialTimestamp, initialSessionQuery) {
|
|
155
|
+
if (rootModel && !(0, _configuration.readConfObject)(rootModel.jbrowse.configuration, 'disableAnalytics')) {
|
|
156
|
+
writeAWSAnalytics(rootModel, initialTimestamp, initialSessionQuery);
|
|
157
|
+
writeGAAnalytics(rootModel, initialTimestamp);
|
|
158
|
+
}
|
|
151
159
|
}
|