@jbrowse/core 1.5.8 → 1.6.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.
Files changed (155) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.js +91 -78
  2. package/BaseFeatureWidget/SequenceFeatureDetails.js +65 -57
  3. package/BaseFeatureWidget/SequenceFeatureDetails.test.js +9 -9
  4. package/BaseFeatureWidget/index.js +1 -1
  5. package/BaseFeatureWidget/index.test.js +4 -4
  6. package/BaseFeatureWidget/util.js +13 -9
  7. package/CorePlugin.js +32 -20
  8. package/Plugin.js +13 -11
  9. package/PluginLoader.js +38 -33
  10. package/PluginManager.d.ts +8 -5
  11. package/PluginManager.js +142 -53
  12. package/ReExports/index.js +4 -4
  13. package/ReExports/list.js +2 -2
  14. package/ReExports/material-ui-colors.js +20 -20
  15. package/ReExports/modules.d.ts +7 -5
  16. package/ReExports/modules.js +51 -47
  17. package/TextSearch/BaseResults.js +34 -24
  18. package/TextSearch/BaseResults.test.js +7 -3
  19. package/TextSearch/TextSearchManager.js +17 -15
  20. package/assemblyManager/assembly.js +39 -34
  21. package/assemblyManager/assemblyConfigSchema.js +2 -2
  22. package/assemblyManager/assemblyManager.js +20 -16
  23. package/assemblyManager/index.js +3 -3
  24. package/babel.config.d.ts +15 -0
  25. package/babel.config.js +19 -0
  26. package/configuration/configurationSchema.js +19 -17
  27. package/configuration/configurationSlot.js +11 -11
  28. package/configuration/configurationSlot.test.js +5 -5
  29. package/configuration/index.d.ts +1 -0
  30. package/configuration/util.js +5 -5
  31. package/data_adapters/BaseAdapter.d.ts +15 -3
  32. package/data_adapters/BaseAdapter.js +216 -62
  33. package/data_adapters/BaseAdapter.test.js +30 -24
  34. package/data_adapters/CytobandAdapter.d.ts +1 -1
  35. package/data_adapters/CytobandAdapter.js +25 -19
  36. package/data_adapters/dataAdapterCache.js +9 -9
  37. package/package.json +3 -3
  38. package/pluggableElementTypes/AdapterType.js +31 -22
  39. package/pluggableElementTypes/ConnectionType.js +28 -18
  40. package/pluggableElementTypes/DisplayType.js +27 -17
  41. package/pluggableElementTypes/InternetAccountType.js +24 -14
  42. package/pluggableElementTypes/PluggableElementBase.js +10 -8
  43. package/pluggableElementTypes/RpcMethodType.d.ts +1 -1
  44. package/pluggableElementTypes/RpcMethodType.js +141 -118
  45. package/pluggableElementTypes/RpcMethodType.test.js +23 -17
  46. package/pluggableElementTypes/TextSearchAdapterType.js +25 -15
  47. package/pluggableElementTypes/TrackType.js +25 -15
  48. package/pluggableElementTypes/ViewType.js +25 -15
  49. package/pluggableElementTypes/WidgetType.js +27 -17
  50. package/pluggableElementTypes/index.js +11 -11
  51. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +5 -5
  52. package/pluggableElementTypes/models/BaseDisplayModel.js +8 -5
  53. package/pluggableElementTypes/models/BaseTrackModel.js +11 -8
  54. package/pluggableElementTypes/models/BaseViewModel.js +3 -3
  55. package/pluggableElementTypes/models/InternetAccountModel.d.ts +1 -1
  56. package/pluggableElementTypes/models/InternetAccountModel.js +5 -5
  57. package/pluggableElementTypes/models/baseConnectionConfig.js +2 -2
  58. package/pluggableElementTypes/models/baseTrackConfig.js +7 -4
  59. package/pluggableElementTypes/models/index.js +4 -4
  60. package/pluggableElementTypes/renderers/BoxRendererType.js +49 -39
  61. package/pluggableElementTypes/renderers/CircularChordRendererType.js +18 -12
  62. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +35 -27
  63. package/pluggableElementTypes/renderers/FeatureRendererType.js +46 -36
  64. package/pluggableElementTypes/renderers/RendererType.js +31 -21
  65. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +12 -8
  66. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +1 -1
  67. package/pluggableElementTypes/renderers/ServerSideRendererType.js +45 -33
  68. package/pluggableElementTypes/renderers/index.js +8 -8
  69. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +10 -8
  70. package/pluggableElementTypes/renderers/util/serializableFilterChain.test.js +2 -2
  71. package/rpc/BaseRpcDriver.js +43 -38
  72. package/rpc/BaseRpcDriver.test.js +63 -49
  73. package/rpc/MainThreadRpcDriver.js +32 -22
  74. package/rpc/RpcManager.js +19 -17
  75. package/rpc/WebWorkerRpcDriver.js +38 -28
  76. package/rpc/configSchema.js +2 -2
  77. package/rpc/coreRpcMethods.d.ts +16 -0
  78. package/rpc/coreRpcMethods.js +248 -121
  79. package/rpc/remoteAbortSignals.js +3 -3
  80. package/ui/AboutDialog.js +21 -17
  81. package/ui/App.js +42 -38
  82. package/ui/AssemblySelector.d.ts +1 -1
  83. package/ui/AssemblySelector.js +6 -6
  84. package/ui/Drawer.js +7 -7
  85. package/ui/DrawerWidget.d.ts +1 -1
  86. package/ui/DrawerWidget.js +37 -33
  87. package/ui/DropDownMenu.js +21 -9
  88. package/ui/EditableTypography.js +30 -19
  89. package/ui/ErrorMessage.js +5 -5
  90. package/ui/FactoryResetDialog.js +8 -8
  91. package/ui/FatalErrorDialog.js +29 -12
  92. package/ui/FatalErrorDialog.test.js +11 -11
  93. package/ui/FileSelector/FileSelector.js +42 -32
  94. package/ui/FileSelector/LocalFileChooser.js +9 -9
  95. package/ui/FileSelector/UrlChooser.js +4 -4
  96. package/ui/FileSelector/index.js +4 -4
  97. package/ui/Icons.js +9 -9
  98. package/ui/Logo.js +19 -19
  99. package/ui/Menu.js +46 -35
  100. package/ui/NewSessionCards.js +29 -19
  101. package/ui/PrerenderedCanvas.js +27 -10
  102. package/ui/ResizeHandle.js +17 -10
  103. package/ui/SanitizedHTML.js +5 -5
  104. package/ui/SanitizedHTML.test.js +4 -4
  105. package/ui/Snackbar.js +16 -12
  106. package/ui/SnackbarModel.js +1 -1
  107. package/ui/Tooltip.js +11 -7
  108. package/ui/ViewContainer.d.ts +2 -5
  109. package/ui/ViewContainer.js +44 -49
  110. package/ui/index.d.ts +1 -0
  111. package/ui/index.js +26 -13
  112. package/ui/theme.js +15 -11
  113. package/util/Base1DViewModel.d.ts +14 -12
  114. package/util/Base1DViewModel.js +51 -55
  115. package/util/Base1DViewModel.test.js +5 -5
  116. package/util/QuickLRU.js +31 -27
  117. package/util/aborting.js +26 -16
  118. package/util/analytics.d.ts +1 -0
  119. package/util/analytics.js +15 -7
  120. package/util/blockTypes.js +48 -36
  121. package/util/calculateDynamicBlocks.js +4 -4
  122. package/util/calculateDynamicBlocks.test.js +14 -10
  123. package/util/calculateStaticBlocks.js +1 -1
  124. package/util/calculateStaticBlocks.test.js +15 -15
  125. package/util/compositeMap.js +31 -27
  126. package/util/idMaker.js +4 -4
  127. package/util/index.d.ts +23 -1
  128. package/util/index.js +138 -44
  129. package/util/index.test.js +11 -7
  130. package/util/io/RemoteFileWithRangeCache.js +41 -29
  131. package/util/io/index.js +6 -6
  132. package/util/jexl.js +5 -5
  133. package/util/jexlStrings.js +2 -2
  134. package/util/jexlStrings.test.js +2 -2
  135. package/util/layouts/GranularRectLayout.js +33 -27
  136. package/util/layouts/GranularRectLayout.test.js +10 -10
  137. package/util/layouts/MultiLayout.js +19 -13
  138. package/util/layouts/PrecomputedLayout.js +16 -14
  139. package/util/layouts/PrecomputedMultiLayout.js +23 -17
  140. package/util/layouts/SceneGraph.js +18 -12
  141. package/util/layouts/index.js +6 -6
  142. package/util/offscreenCanvasPonyfill.js +31 -29
  143. package/util/offscreenCanvasUtils.js +6 -6
  144. package/util/range.test.js +20 -20
  145. package/util/rxjs.js +2 -2
  146. package/util/simpleFeature.js +23 -18
  147. package/util/simpleFeature.test.js +3 -3
  148. package/util/stats.d.ts +1 -1
  149. package/util/stats.js +11 -7
  150. package/util/stats.test.js +16 -16
  151. package/util/tracks.js +1 -3
  152. package/util/types/index.d.ts +1 -1
  153. package/util/types/index.js +36 -31
  154. package/util/types/mst.js +19 -15
  155. package/util/when.js +6 -6
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports.default = void 0;
9
9
 
10
- var _objectSpread2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/objectSpread2.js"));
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
- })["volatile"](function () {
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 (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, (0, _mobxStateTree.getSnapshot)(region)), {}, {
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 (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, (0, _mobxStateTree.getSnapshot)(_region)), {}, {
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 (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, (0, _mobxStateTree.getSnapshot)(_region2)), {}, {
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["default"])(self);
152
+ return (0, _calculateDynamicBlocks.default)(self);
193
153
  },
194
154
 
195
155
  get staticBlocks() {
196
- return (0, _calculateStaticBlocks["default"])(self);
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["default"] = _default;
321
+ exports.default = _default;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"];
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["default"].create({
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["default"].create({
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["default"].create({
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["default"].create({
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("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports.default = void 0;
9
9
 
10
- var _index = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/regenerator/index.js"));
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
12
- var _slicedToArray2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/slicedToArray.js"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
13
 
14
- var _createForOfIteratorHelper2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js"));
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
15
 
16
- var _classCallCheck2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"));
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
17
 
18
- var _createClass2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/createClass.js"));
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["default"])(this, QuickLRU);
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["default"])(QuickLRU, [{
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["delete"](key);
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["delete"](key);
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["delete"](key) || deleted;
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__*/_index["default"].mark(function keys() {
125
+ value: /*#__PURE__*/_regenerator.default.mark(function keys() {
122
126
  var _iterator, _step, _step$value, key;
123
127
 
124
- return _index["default"].wrap(function keys$(_context) {
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 = (0, _createForOfIteratorHelper2["default"])(this);
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["default"])(_step.value, 1), key = _step$value[0];
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__*/_index["default"].mark(function values() {
177
+ value: /*#__PURE__*/_regenerator.default.mark(function values() {
174
178
  var _iterator2, _step2, _step2$value, value;
175
179
 
176
- return _index["default"].wrap(function values$(_context2) {
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 = (0, _createForOfIteratorHelper2["default"])(this);
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["default"])(_step2.value, 2), value = _step2$value[1];
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__*/_index["default"].mark(function value() {
229
+ value: /*#__PURE__*/_regenerator.default.mark(function value() {
226
230
  var _iterator3, _step3, item, _iterator4, _step4, _item, _item2, key;
227
231
 
228
- return _index["default"].wrap(function value$(_context3) {
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 = (0, _createForOfIteratorHelper2["default"])(this.cache);
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 = (0, _createForOfIteratorHelper2["default"])(this.oldCache);
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["default"])(_item, 1), key = _item2[0];
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 = (0, _createForOfIteratorHelper2["default"])(this.oldCache.keys()),
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["default"] = _default;
352
+ exports.default = _default;
package/util/aborting.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"];
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 _index = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/regenerator/index.js"));
14
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
15
 
16
- var _asyncToGenerator2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"));
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
17
 
18
- var _createClass2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/createClass.js"));
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
19
 
20
- var _classCallCheck2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"));
20
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
21
21
 
22
- var _inherits2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/inherits.js"));
22
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
23
23
 
24
- var _createSuper2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/createSuper.js"));
24
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
25
 
26
- var _wrapNativeSuper2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js"));
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["default"])(AbortError, _Error);
41
+ (0, _inherits2.default)(AbortError, _Error);
32
42
 
33
- var _super = (0, _createSuper2["default"])(AbortError);
43
+ var _super = _createSuper(AbortError);
34
44
 
35
45
  function AbortError() {
36
46
  var _this;
37
47
 
38
- (0, _classCallCheck2["default"])(this, AbortError);
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.code = void 0;
55
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "code", void 0);
46
56
  return _this;
47
57
  }
48
58
 
49
- return (0, _createClass2["default"])(AbortError);
50
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error));
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["default"])( /*#__PURE__*/_index["default"].mark(function _callee(signal) {
96
- return _index["default"].wrap(function _callee$(_context) {
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:
@@ -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("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"];
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 _index = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/regenerator/index.js"));
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
13
 
13
- var _asyncToGenerator2 = _interopRequireDefault(require("/data/jbrowse-components2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"));
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["default"])( /*#__PURE__*/_index["default"].mark(function _callee(rootModel, initialTimeStamp, sessionQuery) {
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 _index["default"].wrap(function _callee$(_context) {
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["default"])( /*#__PURE__*/_index["default"].mark(function _callee2(rootModel, initialTimestamp) {
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 _index["default"].wrap(function _callee2$(_context2) {
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
  }