@jbrowse/core 1.7.11 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +20 -4
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +313 -558
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +213 -473
  4. package/BaseFeatureWidget/index.d.ts +2 -2
  5. package/BaseFeatureWidget/index.js +88 -124
  6. package/BaseFeatureWidget/types.d.ts +1 -0
  7. package/BaseFeatureWidget/types.js +1 -4
  8. package/BaseFeatureWidget/util.js +40 -75
  9. package/CorePlugin.js +55 -94
  10. package/Plugin.js +9 -34
  11. package/PluginLoader.js +153 -422
  12. package/PluginManager.d.ts +84 -117
  13. package/PluginManager.js +377 -666
  14. package/ReExports/Attributes.d.ts +2 -0
  15. package/ReExports/Attributes.js +5 -0
  16. package/ReExports/BaseCard.d.ts +2 -0
  17. package/ReExports/BaseCard.js +5 -0
  18. package/ReExports/DataGrid.d.ts +2 -0
  19. package/ReExports/DataGrid.js +6 -0
  20. package/ReExports/FeatureDetails.d.ts +2 -0
  21. package/ReExports/FeatureDetails.js +5 -0
  22. package/ReExports/index.js +6 -12
  23. package/ReExports/list.d.ts +5 -0
  24. package/ReExports/list.js +271 -7
  25. package/ReExports/material-ui-colors.d.ts +1 -19
  26. package/ReExports/material-ui-colors.js +16 -158
  27. package/ReExports/modules.d.ts +68 -109
  28. package/ReExports/modules.js +455 -244
  29. package/TextSearch/BaseResults.js +51 -123
  30. package/TextSearch/TextSearchManager.d.ts +3 -1
  31. package/TextSearch/TextSearchManager.js +66 -144
  32. package/assemblyManager/assembly.js +280 -554
  33. package/assemblyManager/assemblyConfigSchema.js +47 -64
  34. package/assemblyManager/assemblyManager.d.ts +12 -10
  35. package/assemblyManager/assemblyManager.js +126 -270
  36. package/assemblyManager/index.js +9 -22
  37. package/configuration/configurationSchema.js +167 -203
  38. package/configuration/configurationSlot.js +248 -326
  39. package/configuration/index.js +19 -35
  40. package/configuration/util.d.ts +1 -1
  41. package/configuration/util.js +131 -173
  42. package/data_adapters/BaseAdapter.d.ts +2 -2
  43. package/data_adapters/BaseAdapter.js +132 -521
  44. package/data_adapters/CytobandAdapter.js +40 -126
  45. package/data_adapters/dataAdapterCache.js +77 -158
  46. package/package.json +16 -18
  47. package/pluggableElementTypes/AdapterType.js +24 -79
  48. package/pluggableElementTypes/AddTrackWorkflowType.d.ts +17 -0
  49. package/pluggableElementTypes/AddTrackWorkflowType.js +20 -0
  50. package/pluggableElementTypes/ConnectionType.js +22 -65
  51. package/pluggableElementTypes/DisplayType.js +35 -82
  52. package/pluggableElementTypes/InternetAccountType.js +23 -64
  53. package/pluggableElementTypes/PluggableElementBase.js +8 -20
  54. package/pluggableElementTypes/RpcMethodType.js +85 -427
  55. package/pluggableElementTypes/TextSearchAdapterType.js +16 -55
  56. package/pluggableElementTypes/TrackType.js +26 -70
  57. package/pluggableElementTypes/ViewType.js +21 -63
  58. package/pluggableElementTypes/WidgetType.js +21 -64
  59. package/pluggableElementTypes/index.d.ts +4 -3
  60. package/pluggableElementTypes/index.js +42 -125
  61. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +28 -43
  62. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -10
  63. package/pluggableElementTypes/models/BaseDisplayModel.js +58 -95
  64. package/pluggableElementTypes/models/BaseTrackModel.d.ts +1 -1
  65. package/pluggableElementTypes/models/BaseTrackModel.js +139 -200
  66. package/pluggableElementTypes/models/BaseViewModel.js +24 -40
  67. package/pluggableElementTypes/models/InternetAccountModel.js +116 -263
  68. package/pluggableElementTypes/models/baseConnectionConfig.js +14 -25
  69. package/pluggableElementTypes/models/baseInternetAccountConfig.js +29 -38
  70. package/pluggableElementTypes/models/baseTrackConfig.js +106 -133
  71. package/pluggableElementTypes/models/index.js +21 -70
  72. package/pluggableElementTypes/renderers/BoxRendererType.js +132 -291
  73. package/pluggableElementTypes/renderers/CircularChordRendererType.js +8 -38
  74. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +60 -192
  75. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -2
  76. package/pluggableElementTypes/renderers/FeatureRendererType.js +89 -255
  77. package/pluggableElementTypes/renderers/RendererType.js +31 -105
  78. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +61 -72
  79. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +2 -2
  80. package/pluggableElementTypes/renderers/ServerSideRendererType.js +112 -265
  81. package/pluggableElementTypes/renderers/index.js +19 -62
  82. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +27 -65
  83. package/rpc/BaseRpcDriver.js +169 -405
  84. package/rpc/MainThreadRpcDriver.js +27 -150
  85. package/rpc/RpcManager.js +58 -159
  86. package/rpc/WebWorkerRpcDriver.js +54 -171
  87. package/rpc/configSchema.js +25 -49
  88. package/rpc/coreRpcMethods.d.ts +1 -3
  89. package/rpc/coreRpcMethods.js +221 -959
  90. package/rpc/remoteAbortSignals.js +46 -70
  91. package/tsconfig.build.tsbuildinfo +1 -1
  92. package/ui/AboutDialog.js +107 -158
  93. package/ui/App.js +157 -261
  94. package/ui/AssemblySelector.d.ts +1 -1
  95. package/ui/AssemblySelector.js +59 -115
  96. package/ui/CascadingMenu.js +100 -199
  97. package/ui/ColorPicker.d.ts +16 -0
  98. package/ui/ColorPicker.js +97 -0
  99. package/ui/Drawer.js +28 -58
  100. package/ui/DrawerWidget.js +109 -209
  101. package/ui/DropDownMenu.d.ts +0 -8
  102. package/ui/DropDownMenu.js +60 -97
  103. package/ui/EditableTypography.d.ts +1 -1
  104. package/ui/EditableTypography.js +87 -155
  105. package/ui/ErrorMessage.js +41 -66
  106. package/ui/FactoryResetDialog.js +24 -57
  107. package/ui/FatalErrorDialog.js +59 -91
  108. package/ui/FileSelector/FileSelector.js +123 -189
  109. package/ui/FileSelector/LocalFileChooser.js +44 -71
  110. package/ui/FileSelector/UrlChooser.js +17 -38
  111. package/ui/FileSelector/index.js +6 -12
  112. package/ui/Icons.d.ts +1 -1
  113. package/ui/Icons.js +45 -69
  114. package/ui/Logo.js +57 -110
  115. package/ui/Menu.d.ts +1 -1
  116. package/ui/Menu.js +232 -355
  117. package/ui/PrerenderedCanvas.js +63 -78
  118. package/ui/ResizeHandle.js +87 -114
  119. package/ui/ReturnToImportFormDialog.js +32 -59
  120. package/ui/SanitizedHTML.js +63 -52
  121. package/ui/Snackbar.js +74 -99
  122. package/ui/SnackbarModel.js +37 -51
  123. package/ui/Tooltip.d.ts +3 -1
  124. package/ui/Tooltip.js +49 -74
  125. package/ui/ViewContainer.js +113 -183
  126. package/ui/colors.d.ts +10 -0
  127. package/ui/colors.js +78 -0
  128. package/ui/index.js +51 -181
  129. package/ui/react-colorful.d.ts +17 -0
  130. package/ui/react-colorful.js +455 -0
  131. package/ui/theme.d.ts +279 -131
  132. package/ui/theme.js +197 -225
  133. package/util/Base1DUtils.d.ts +32 -0
  134. package/util/Base1DUtils.js +174 -0
  135. package/util/Base1DViewModel.d.ts +16 -37
  136. package/util/Base1DViewModel.js +116 -295
  137. package/util/QuickLRU.js +84 -332
  138. package/util/TimeTraveller.d.ts +19 -0
  139. package/util/TimeTraveller.js +86 -0
  140. package/util/aborting.js +49 -127
  141. package/util/analytics.js +91 -154
  142. package/util/blockTypes.js +106 -240
  143. package/util/calculateDynamicBlocks.js +98 -128
  144. package/util/calculateStaticBlocks.js +105 -125
  145. package/util/color/cssColorsLevel4.js +156 -160
  146. package/util/color/index.js +33 -55
  147. package/util/compositeMap.js +49 -333
  148. package/util/formatFastaStrings.js +9 -14
  149. package/util/idMaker.js +18 -31
  150. package/util/index.d.ts +18 -39
  151. package/util/index.js +743 -1236
  152. package/util/io/RemoteFileWithRangeCache.js +88 -257
  153. package/util/io/index.js +95 -169
  154. package/util/jexl.js +60 -115
  155. package/util/jexlStrings.js +24 -29
  156. package/util/layouts/BaseLayout.js +1 -4
  157. package/util/layouts/GranularRectLayout.js +388 -557
  158. package/util/layouts/MultiLayout.js +41 -109
  159. package/util/layouts/PrecomputedLayout.js +56 -114
  160. package/util/layouts/PrecomputedMultiLayout.js +22 -59
  161. package/util/layouts/SceneGraph.js +127 -197
  162. package/util/layouts/index.js +29 -66
  163. package/util/mst-reflection.js +55 -71
  164. package/util/offscreenCanvasPonyfill.js +66 -134
  165. package/util/offscreenCanvasUtils.d.ts +2 -7
  166. package/util/offscreenCanvasUtils.js +49 -146
  167. package/util/range.js +29 -40
  168. package/util/rxjs.js +20 -27
  169. package/util/simpleFeature.js +88 -152
  170. package/util/stats.js +91 -151
  171. package/util/tracks.js +130 -171
  172. package/util/types/index.d.ts +3 -3
  173. package/util/types/index.js +110 -179
  174. package/util/types/mst.d.ts +3 -3
  175. package/util/types/mst.js +91 -142
  176. package/util/types/util.js +1 -4
  177. package/util/when.js +54 -101
  178. package/BaseFeatureWidget/SequenceFeatureDetails.test.js +0 -122
  179. package/BaseFeatureWidget/index.test.js +0 -51
  180. package/TextSearch/BaseResults.test.js +0 -42
  181. package/configuration/configurationSchema.test.js +0 -266
  182. package/configuration/configurationSlot.test.js +0 -69
  183. package/configuration/util.test.js +0 -39
  184. package/data_adapters/BaseAdapter.test.js +0 -200
  185. package/declare.d.js +0 -1
  186. package/pluggableElementTypes/RpcMethodType.test.js +0 -118
  187. package/pluggableElementTypes/renderers/declare.d.js +0 -1
  188. package/pluggableElementTypes/renderers/util/serializableFilterChain.test.js +0 -20
  189. package/rpc/BaseRpcDriver.test.js +0 -540
  190. package/rpc/declaration.d.js +0 -1
  191. package/ui/FatalErrorDialog.test.js +0 -82
  192. package/ui/SanitizedHTML.test.js +0 -36
  193. package/ui/theme.test.js +0 -111
  194. package/util/Base1DViewModel.test.js +0 -130
  195. package/util/calculateDynamicBlocks.test.js +0 -74
  196. package/util/calculateStaticBlocks.test.js +0 -297
  197. package/util/declare.d.js +0 -1
  198. package/util/formatFastaStrings.test.js +0 -40
  199. package/util/index.test.js +0 -213
  200. package/util/jexlStrings.test.js +0 -48
  201. package/util/layouts/GranularRectLayout.test.js +0 -99
  202. package/util/range.test.js +0 -64
  203. package/util/simpleFeature.test.js +0 -34
  204. package/util/stats.test.js +0 -172
@@ -1,61 +1,15 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = exports.NewFeatureRendererType = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
21
-
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
-
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
-
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
-
28
- var _operators = require("rxjs/operators");
29
-
30
- var _util = require("../../util");
31
-
32
- var _simpleFeature = _interopRequireDefault(require("../../util/simpleFeature"));
33
-
34
- var _dataAdapterCache = require("../../data_adapters/dataAdapterCache");
35
-
36
- var _ServerSideRendererType = _interopRequireDefault(require("./ServerSideRendererType"));
37
-
38
- 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; }
39
-
40
- 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; }
41
-
42
- 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); }; }
43
-
44
- 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; } }
45
-
46
- var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
47
- (0, _inherits2.default)(FeatureRendererType, _ServerSideRendererTy);
48
-
49
- var _super = _createSuper(FeatureRendererType);
50
-
51
- function FeatureRendererType() {
52
- (0, _classCallCheck2.default)(this, FeatureRendererType);
53
- return _super.apply(this, arguments);
54
- }
55
-
56
- (0, _createClass2.default)(FeatureRendererType, [{
57
- key: "serializeArgsInClient",
58
- value:
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const operators_1 = require("rxjs/operators");
7
+ const util_1 = require("../../util");
8
+ const simpleFeature_1 = __importDefault(require("../../util/simpleFeature"));
9
+ const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
10
+ const ServerSideRendererType_1 = __importDefault(require("./ServerSideRendererType"));
11
+ const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
12
+ class FeatureRendererType extends ServerSideRendererType_1.default {
59
13
  /**
60
14
  * replaces the `displayModel` param (which on the client is a MST model) with
61
15
  * a stub that only contains the `selectedFeature`, since this is the only
@@ -64,19 +18,17 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
64
18
  *
65
19
  * @param args - the arguments passed to render
66
20
  */
67
- function serializeArgsInClient(args) {
68
- var displayModel = args.displayModel,
69
- regions = args.regions;
70
-
71
- var serializedArgs = _objectSpread(_objectSpread({}, args), {}, {
72
- displayModel: displayModel && {
73
- id: displayModel.id,
74
- selectedFeatureId: displayModel.selectedFeatureId
75
- },
76
- regions: JSON.parse(JSON.stringify(regions))
77
- });
78
-
79
- return (0, _get2.default)((0, _getPrototypeOf2.default)(FeatureRendererType.prototype), "serializeArgsInClient", this).call(this, serializedArgs);
21
+ serializeArgsInClient(args) {
22
+ const { displayModel, regions } = args;
23
+ const serializedArgs = {
24
+ ...args,
25
+ displayModel: displayModel && {
26
+ id: displayModel.id,
27
+ selectedFeatureId: displayModel.selectedFeatureId,
28
+ },
29
+ regions: JSON.parse(JSON.stringify(regions)),
30
+ };
31
+ return super.serializeArgsInClient(serializedArgs);
80
32
  }
81
33
  /**
82
34
  * Adds feature deserialization to base server-side result deserialization
@@ -84,23 +36,21 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
84
36
  * @param results - the results of the render
85
37
  * @param args - the arguments passed to render
86
38
  */
87
-
88
- }, {
89
- key: "deserializeResultsInClient",
90
- value: function deserializeResultsInClient(result, args) {
91
- var deserializedFeatures = new Map();
92
- result.features.forEach(function (j) {
93
- var f = _simpleFeature.default.fromJSON(j);
94
-
95
- deserializedFeatures.set(String(f.id()), f);
96
- });
97
- var deserialized = (0, _get2.default)((0, _getPrototypeOf2.default)(FeatureRendererType.prototype), "deserializeResultsInClient", this).call(this, _objectSpread(_objectSpread({}, result), {}, {
98
- features: deserializedFeatures
99
- }), args);
100
- return _objectSpread(_objectSpread({}, deserialized), {}, {
101
- blockKey: args.blockKey,
102
- features: deserializedFeatures
103
- });
39
+ deserializeResultsInClient(result, args) {
40
+ const deserializedFeatures = new Map();
41
+ result.features.forEach(j => {
42
+ const f = simpleFeature_1.default.fromJSON(j);
43
+ deserializedFeatures.set(String(f.id()), f);
44
+ });
45
+ const deserialized = super.deserializeResultsInClient({
46
+ ...result,
47
+ features: deserializedFeatures,
48
+ }, args);
49
+ return {
50
+ ...deserialized,
51
+ blockKey: args.blockKey,
52
+ features: deserializedFeatures,
53
+ };
104
54
  }
105
55
  /**
106
56
  * Adds feature serialization to base server-side result serialization
@@ -109,17 +59,13 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
109
59
  * method
110
60
  * @param args - deserialized render args
111
61
  */
112
-
113
- }, {
114
- key: "serializeResultsInWorker",
115
- value: function serializeResultsInWorker(result, args) {
116
- var serialized = (0, _get2.default)((0, _getPrototypeOf2.default)(FeatureRendererType.prototype), "serializeResultsInWorker", this).call(this, result, args);
117
- var features = result.features;
118
- return _objectSpread(_objectSpread({}, serialized), {}, {
119
- features: (0, _util.iterMap)(features.values(), function (f) {
120
- return f.toJSON();
121
- }, features.size)
122
- });
62
+ serializeResultsInWorker(result, args) {
63
+ const serialized = super.serializeResultsInWorker(result, args);
64
+ const { features } = result;
65
+ return {
66
+ ...serialized,
67
+ features: (0, util_1.iterMap)(features.values(), f => f.toJSON(), features.size),
68
+ };
123
69
  }
124
70
  /**
125
71
  * will expand if soft clipping or feature glyphs are shown
@@ -127,11 +73,8 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
127
73
  * @param region - rendering region
128
74
  * @param _renderArgs - render args, unused, may be used in deriving classes
129
75
  */
130
-
131
- }, {
132
- key: "getExpandedRegion",
133
- value: function getExpandedRegion(region, _renderArgs) {
134
- return region;
76
+ getExpandedRegion(region, _renderArgs) {
77
+ return region;
135
78
  }
136
79
  /**
137
80
  * use the dataAdapter to fetch the features to be rendered
@@ -139,168 +82,59 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
139
82
  * @param renderArgs -
140
83
  * @returns Map of features as `{ id => feature, ... }`
141
84
  */
142
-
143
- }, {
144
- key: "getFeatures",
145
- value: function () {
146
- var _getFeatures = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(renderArgs) {
147
- var _this = this;
148
-
149
- var signal, regions, sessionId, adapterConfig, _yield$getAdapter, dataAdapter, features, requestRegions, region, featureObservable, feats;
150
-
151
- return _regenerator.default.wrap(function _callee$(_context) {
152
- while (1) {
153
- switch (_context.prev = _context.next) {
154
- case 0:
155
- signal = renderArgs.signal, regions = renderArgs.regions, sessionId = renderArgs.sessionId, adapterConfig = renderArgs.adapterConfig;
156
- _context.next = 3;
157
- return (0, _dataAdapterCache.getAdapter)(this.pluginManager, sessionId, adapterConfig);
158
-
159
- case 3:
160
- _yield$getAdapter = _context.sent;
161
- dataAdapter = _yield$getAdapter.dataAdapter;
162
- features = new Map();
163
-
164
- if (!(!regions || regions.length === 0)) {
165
- _context.next = 8;
166
- break;
167
- }
168
-
169
- return _context.abrupt("return", features);
170
-
171
- case 8:
172
- requestRegions = regions.map(function (r) {
173
- // make sure the requested region's start and end are integers, if
174
- // there is a region specification.
175
- var requestRegion = _objectSpread({}, r);
176
-
177
- if (requestRegion.start) {
178
- requestRegion.start = Math.floor(requestRegion.start);
179
- }
180
-
181
- if (requestRegion.end) {
182
- requestRegion.end = Math.ceil(requestRegion.end);
183
- }
184
-
185
- return requestRegion;
186
- });
187
- region = requestRegions[0];
188
- featureObservable = requestRegions.length === 1 ? dataAdapter.getFeatures(this.getExpandedRegion(region, renderArgs), // @ts-ignore
189
- renderArgs) : // @ts-ignore
190
- dataAdapter.getFeaturesInMultipleRegions(requestRegions, renderArgs);
191
- _context.next = 13;
192
- return featureObservable.pipe((0, _operators.toArray)()).toPromise();
193
-
194
- case 13:
195
- feats = _context.sent;
196
- (0, _util.checkAbortSignal)(signal);
197
- return _context.abrupt("return", new Map(feats.filter(function (feat) {
198
- return _this.featurePassesFilters(renderArgs, feat);
199
- }).map(function (feat) {
200
- return [feat.id(), feat];
201
- })));
202
-
203
- case 16:
204
- case "end":
205
- return _context.stop();
85
+ async getFeatures(renderArgs) {
86
+ const { signal, regions, sessionId, adapterConfig } = renderArgs;
87
+ const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(this.pluginManager, sessionId, adapterConfig);
88
+ if (!(0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
89
+ throw new Error('Adapter does not support retrieving features');
90
+ }
91
+ const features = new Map();
92
+ if (!regions || regions.length === 0) {
93
+ return features;
94
+ }
95
+ const requestRegions = regions.map((r) => {
96
+ // make sure the requested region's start and end are integers, if
97
+ // there is a region specification.
98
+ const requestRegion = { ...r };
99
+ if (requestRegion.start) {
100
+ requestRegion.start = Math.floor(requestRegion.start);
206
101
  }
207
- }
208
- }, _callee, this);
209
- }));
210
-
211
- function getFeatures(_x) {
212
- return _getFeatures.apply(this, arguments);
213
- }
214
-
215
- return getFeatures;
216
- }()
102
+ if (requestRegion.end) {
103
+ requestRegion.end = Math.ceil(requestRegion.end);
104
+ }
105
+ return requestRegion;
106
+ });
107
+ const region = requestRegions[0];
108
+ const featureObservable = requestRegions.length === 1
109
+ ? dataAdapter.getFeatures(this.getExpandedRegion(region, renderArgs), renderArgs)
110
+ : dataAdapter.getFeaturesInMultipleRegions(requestRegions, renderArgs);
111
+ const feats = await featureObservable.pipe((0, operators_1.toArray)()).toPromise();
112
+ (0, util_1.checkAbortSignal)(signal);
113
+ return new Map(feats
114
+ .filter(feat => this.featurePassesFilters(renderArgs, feat))
115
+ .map(feat => [feat.id(), feat]));
116
+ }
217
117
  /**
218
118
  * @param renderArgs -
219
119
  * @param feature -
220
120
  * @returns true if this feature passes all configured filters
221
121
  */
222
-
223
- }, {
224
- key: "featurePassesFilters",
225
- value: function featurePassesFilters(renderArgs, feature) {
226
- if (!renderArgs.filters) {
227
- return true;
228
- }
229
-
230
- return renderArgs.filters.passes(feature, renderArgs);
122
+ featurePassesFilters(renderArgs, feature) {
123
+ if (!renderArgs.filters) {
124
+ return true;
125
+ }
126
+ return renderArgs.filters.passes(feature, renderArgs);
231
127
  }
232
128
  /**
233
129
  * gets features and renders
234
130
  *
235
131
  * @param props - render args
236
132
  */
237
-
238
- }, {
239
- key: "render",
240
- value: function () {
241
- var _render = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(props) {
242
- var features, result;
243
- return _regenerator.default.wrap(function _callee2$(_context2) {
244
- while (1) {
245
- switch (_context2.prev = _context2.next) {
246
- case 0:
247
- _context2.t0 = props.features;
248
-
249
- if (_context2.t0) {
250
- _context2.next = 5;
251
- break;
252
- }
253
-
254
- _context2.next = 4;
255
- return this.getFeatures(props);
256
-
257
- case 4:
258
- _context2.t0 = _context2.sent;
259
-
260
- case 5:
261
- features = _context2.t0;
262
- _context2.next = 8;
263
- return (0, _get2.default)((0, _getPrototypeOf2.default)(FeatureRendererType.prototype), "render", this).call(this, _objectSpread(_objectSpread({}, props), {}, {
264
- features: features
265
- }));
266
-
267
- case 8:
268
- result = _context2.sent;
269
- return _context2.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
270
- features: features
271
- }));
272
-
273
- case 10:
274
- case "end":
275
- return _context2.stop();
276
- }
277
- }
278
- }, _callee2, this);
279
- }));
280
-
281
- function render(_x2) {
282
- return _render.apply(this, arguments);
283
- }
284
-
285
- return render;
286
- }()
287
- }]);
288
- return FeatureRendererType;
289
- }(_ServerSideRendererType.default);
290
-
133
+ async render(props) {
134
+ const features = props.features ||
135
+ (await this.getFeatures(props));
136
+ const result = await super.render({ ...props, features });
137
+ return { ...result, features };
138
+ }
139
+ }
291
140
  exports.default = FeatureRendererType;
292
-
293
- var NewFeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy2) {
294
- (0, _inherits2.default)(NewFeatureRendererType, _ServerSideRendererTy2);
295
-
296
- var _super2 = _createSuper(NewFeatureRendererType);
297
-
298
- function NewFeatureRendererType() {
299
- (0, _classCallCheck2.default)(this, NewFeatureRendererType);
300
- return _super2.apply(this, arguments);
301
- }
302
-
303
- return (0, _createClass2.default)(NewFeatureRendererType);
304
- }(_ServerSideRendererType.default);
305
-
306
- exports.NewFeatureRendererType = NewFeatureRendererType;
@@ -1,113 +1,39 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
- var _react = _interopRequireDefault(require("react"));
29
-
30
- var _mstReflection = require("../../util/mst-reflection");
31
-
32
- var _PluggableElementBase2 = _interopRequireDefault(require("../PluggableElementBase"));
33
-
34
- 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); }; }
35
-
36
- 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; } }
37
-
38
- var RendererType = /*#__PURE__*/function (_PluggableElementBase) {
39
- (0, _inherits2.default)(RendererType, _PluggableElementBase);
40
-
41
- var _super = _createSuper(RendererType);
42
-
43
- function RendererType(stuff) {
44
- var _this;
45
-
46
- (0, _classCallCheck2.default)(this, RendererType);
47
- _this = _super.call(this, stuff);
48
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "ReactComponent", void 0);
49
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "supportsSVG", false);
50
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "configSchema", void 0);
51
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "pluginManager", void 0);
52
- _this.ReactComponent = stuff.ReactComponent;
53
- _this.configSchema = stuff.configSchema;
54
- _this.pluginManager = stuff.pluginManager;
55
-
56
- if (!_this.ReactComponent) {
57
- throw new Error("no ReactComponent defined for renderer ".concat(_this.name));
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const mst_reflection_1 = require("../../util/mst-reflection");
8
+ const PluggableElementBase_1 = __importDefault(require("../PluggableElementBase"));
9
+ class RendererType extends PluggableElementBase_1.default {
10
+ constructor(stuff) {
11
+ super(stuff);
12
+ this.supportsSVG = false;
13
+ this.ReactComponent = stuff.ReactComponent;
14
+ this.configSchema = stuff.configSchema;
15
+ this.pluginManager = stuff.pluginManager;
16
+ if (!this.ReactComponent) {
17
+ throw new Error(`no ReactComponent defined for renderer ${this.name}`);
18
+ }
19
+ if (!(0, mst_reflection_1.getDefaultValue)(this.configSchema).type) {
20
+ throw new Error(`${this.name} config schema ${this.configSchema.name} is not explicitlyTyped`);
21
+ }
22
+ if (!this.pluginManager) {
23
+ throw new Error(`no plugin manager defined for renderer ${this.name}`);
24
+ }
58
25
  }
59
-
60
- if (!(0, _mstReflection.getDefaultValue)(_this.configSchema).type) {
61
- throw new Error("".concat(_this.name, " config schema ").concat(_this.configSchema.name, " is not explicitlyTyped"));
26
+ async render(props) {
27
+ return {
28
+ reactElement: react_1.default.createElement(this.ReactComponent, props, null),
29
+ };
62
30
  }
63
-
64
- if (!_this.pluginManager) {
65
- throw new Error("no plugin manager defined for renderer ".concat(_this.name));
66
- }
67
-
68
- return _this;
69
- }
70
-
71
- (0, _createClass2.default)(RendererType, [{
72
- key: "render",
73
- value: function () {
74
- var _render = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(props) {
75
- return _regenerator.default.wrap(function _callee$(_context) {
76
- while (1) {
77
- switch (_context.prev = _context.next) {
78
- case 0:
79
- return _context.abrupt("return", {
80
- reactElement: /*#__PURE__*/_react.default.createElement(this.ReactComponent, props, null)
81
- });
82
-
83
- case 1:
84
- case "end":
85
- return _context.stop();
86
- }
87
- }
88
- }, _callee, this);
89
- }));
90
-
91
- function render(_x) {
92
- return _render.apply(this, arguments);
93
- }
94
-
95
- return render;
96
- }()
97
31
  /**
98
32
  * frees resources associated with the given range, session, etc.
99
33
  * optionally returns the number of data items deleted
100
34
  */
101
-
102
- }, {
103
- key: "freeResources",
104
- value: function
105
- /* specification: {} */
106
- freeResources() {
107
- return 0;
35
+ freeResources( /* specification: {} */) {
36
+ return 0;
108
37
  }
109
- }]);
110
- return RendererType;
111
- }(_PluggableElementBase2.default);
112
-
113
- exports.default = RendererType;
38
+ }
39
+ exports.default = RendererType;