@jbrowse/plugin-data-management 1.7.10 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/dist/AddConnectionWidget/components/AddConnectionWidget.js +115 -162
  2. package/dist/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -0
  3. package/dist/AddConnectionWidget/components/ConfigureConnection.js +33 -32
  4. package/dist/AddConnectionWidget/components/ConfigureConnection.js.map +1 -0
  5. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +48 -64
  6. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -0
  7. package/dist/AddConnectionWidget/index.js +10 -20
  8. package/dist/AddConnectionWidget/index.js.map +1 -0
  9. package/dist/AddConnectionWidget/model.js +7 -15
  10. package/dist/AddConnectionWidget/model.js.map +1 -0
  11. package/dist/AddTrackWidget/components/AddTrackWidget.js +206 -230
  12. package/dist/AddTrackWidget/components/AddTrackWidget.js.map +1 -0
  13. package/dist/AddTrackWidget/components/ConfirmTrack.js +268 -385
  14. package/dist/AddTrackWidget/components/ConfirmTrack.js.map +1 -0
  15. package/dist/AddTrackWidget/components/TrackSourceSelect.js +28 -55
  16. package/dist/AddTrackWidget/components/TrackSourceSelect.js.map +1 -0
  17. package/dist/AddTrackWidget/index.js +10 -20
  18. package/dist/AddTrackWidget/index.js.map +1 -0
  19. package/dist/AddTrackWidget/model.js +150 -174
  20. package/dist/AddTrackWidget/model.js.map +1 -0
  21. package/dist/AssemblyManager/AssemblyAddForm.js +162 -282
  22. package/dist/AssemblyManager/AssemblyAddForm.js.map +1 -0
  23. package/dist/AssemblyManager/AssemblyEditor.js +12 -23
  24. package/dist/AssemblyManager/AssemblyEditor.js.map +1 -0
  25. package/dist/AssemblyManager/AssemblyManager.js +102 -132
  26. package/dist/AssemblyManager/AssemblyManager.js.map +1 -0
  27. package/dist/AssemblyManager/AssemblyTable.d.ts +1 -1
  28. package/dist/AssemblyManager/AssemblyTable.js +60 -84
  29. package/dist/AssemblyManager/AssemblyTable.js.map +1 -0
  30. package/dist/AssemblyManager/index.js +8 -14
  31. package/dist/AssemblyManager/index.js.map +1 -0
  32. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.d.ts +7 -1
  33. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +49 -53
  34. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +1 -0
  35. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.d.ts +1 -1
  36. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +28 -44
  37. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +1 -0
  38. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +10 -5
  39. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +423 -630
  40. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -0
  41. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.d.ts +2 -1
  42. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +45 -74
  43. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +1 -0
  44. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.d.ts +2 -1
  45. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +57 -92
  46. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +1 -0
  47. package/dist/HierarchicalTrackSelectorWidget/index.d.ts +2 -2
  48. package/dist/HierarchicalTrackSelectorWidget/index.js +10 -20
  49. package/dist/HierarchicalTrackSelectorWidget/index.js.map +1 -0
  50. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +40 -16
  51. package/dist/HierarchicalTrackSelectorWidget/model.js +247 -293
  52. package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -0
  53. package/dist/PluginStoreWidget/components/CustomPluginForm.js +140 -202
  54. package/dist/PluginStoreWidget/components/CustomPluginForm.js.map +1 -0
  55. package/dist/PluginStoreWidget/components/InstalledPlugin.js +112 -127
  56. package/dist/PluginStoreWidget/components/InstalledPlugin.js.map +1 -0
  57. package/dist/PluginStoreWidget/components/InstalledPluginsList.js +22 -45
  58. package/dist/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -0
  59. package/dist/PluginStoreWidget/components/PluginCard.js +95 -110
  60. package/dist/PluginStoreWidget/components/PluginCard.js.map +1 -0
  61. package/dist/PluginStoreWidget/components/PluginStoreWidget.js +188 -227
  62. package/dist/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -0
  63. package/dist/PluginStoreWidget/index.d.ts +0 -1
  64. package/dist/PluginStoreWidget/index.js +10 -28
  65. package/dist/PluginStoreWidget/index.js.map +1 -0
  66. package/dist/PluginStoreWidget/model.js +21 -26
  67. package/dist/PluginStoreWidget/model.js.map +1 -0
  68. package/dist/SetDefaultSession/SetDefaultSession.js +34 -58
  69. package/dist/SetDefaultSession/SetDefaultSession.js.map +1 -0
  70. package/dist/SetDefaultSession/index.js +8 -14
  71. package/dist/SetDefaultSession/index.js.map +1 -0
  72. package/dist/index.js +109 -147
  73. package/dist/index.js.map +1 -0
  74. package/dist/ucsc-trackhub/configSchema.js +18 -28
  75. package/dist/ucsc-trackhub/configSchema.js.map +1 -0
  76. package/dist/ucsc-trackhub/index.js +10 -22
  77. package/dist/ucsc-trackhub/index.js.map +1 -0
  78. package/dist/ucsc-trackhub/model.js +150 -128
  79. package/dist/ucsc-trackhub/model.js.map +1 -0
  80. package/dist/ucsc-trackhub/ucscAssemblies.js +3 -9
  81. package/dist/ucsc-trackhub/ucscAssemblies.js.map +1 -0
  82. package/dist/ucsc-trackhub/ucscTrackHub.js +458 -491
  83. package/dist/ucsc-trackhub/ucscTrackHub.js.map +1 -0
  84. package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +9 -0
  85. package/esm/AddConnectionWidget/components/AddConnectionWidget.js +86 -0
  86. package/esm/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -0
  87. package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +2 -0
  88. package/esm/AddConnectionWidget/components/ConfigureConnection.js +11 -0
  89. package/esm/AddConnectionWidget/components/ConfigureConnection.js.map +1 -0
  90. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +8 -0
  91. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +24 -0
  92. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -0
  93. package/esm/AddConnectionWidget/index.d.ts +2 -0
  94. package/esm/AddConnectionWidget/index.js +4 -0
  95. package/esm/AddConnectionWidget/index.js.map +1 -0
  96. package/esm/AddConnectionWidget/model.d.ts +5 -0
  97. package/esm/AddConnectionWidget/model.js +7 -0
  98. package/esm/AddConnectionWidget/model.js.map +1 -0
  99. package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +7 -0
  100. package/esm/AddTrackWidget/components/AddTrackWidget.js +139 -0
  101. package/esm/AddTrackWidget/components/AddTrackWidget.js.map +1 -0
  102. package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +7 -0
  103. package/esm/AddTrackWidget/components/ConfirmTrack.js +247 -0
  104. package/esm/AddTrackWidget/components/ConfirmTrack.js.map +1 -0
  105. package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +7 -0
  106. package/esm/AddTrackWidget/components/TrackSourceSelect.js +27 -0
  107. package/esm/AddTrackWidget/components/TrackSourceSelect.js.map +1 -0
  108. package/esm/AddTrackWidget/index.d.ts +2 -0
  109. package/esm/AddTrackWidget/index.js +4 -0
  110. package/esm/AddTrackWidget/index.js.map +1 -0
  111. package/esm/AddTrackWidget/model.d.ts +51 -0
  112. package/esm/AddTrackWidget/model.js +154 -0
  113. package/esm/AddTrackWidget/model.js.map +1 -0
  114. package/esm/AssemblyManager/AssemblyAddForm.d.ts +6 -0
  115. package/esm/AssemblyManager/AssemblyAddForm.js +132 -0
  116. package/esm/AssemblyManager/AssemblyAddForm.js.map +1 -0
  117. package/esm/AssemblyManager/AssemblyEditor.d.ts +5 -0
  118. package/esm/AssemblyManager/AssemblyEditor.js +8 -0
  119. package/esm/AssemblyManager/AssemblyEditor.js.map +1 -0
  120. package/esm/AssemblyManager/AssemblyManager.d.ts +6 -0
  121. package/esm/AssemblyManager/AssemblyManager.js +69 -0
  122. package/esm/AssemblyManager/AssemblyManager.js.map +1 -0
  123. package/esm/AssemblyManager/AssemblyTable.d.ts +13 -0
  124. package/esm/AssemblyManager/AssemblyTable.js +62 -0
  125. package/esm/AssemblyManager/AssemblyTable.js.map +1 -0
  126. package/esm/AssemblyManager/index.d.ts +1 -0
  127. package/esm/AssemblyManager/index.js +2 -0
  128. package/esm/AssemblyManager/index.js.map +1 -0
  129. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.d.ts +13 -0
  130. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +26 -0
  131. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +1 -0
  132. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.d.ts +13 -0
  133. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +24 -0
  134. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +1 -0
  135. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +11 -0
  136. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +326 -0
  137. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -0
  138. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.d.ts +10 -0
  139. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +45 -0
  140. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +1 -0
  141. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.d.ts +11 -0
  142. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +57 -0
  143. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +1 -0
  144. package/esm/HierarchicalTrackSelectorWidget/index.d.ts +2 -0
  145. package/esm/HierarchicalTrackSelectorWidget/index.js +4 -0
  146. package/esm/HierarchicalTrackSelectorWidget/index.js.map +1 -0
  147. package/esm/HierarchicalTrackSelectorWidget/model.d.ts +61 -0
  148. package/esm/HierarchicalTrackSelectorWidget/model.js +200 -0
  149. package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -0
  150. package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +9 -0
  151. package/esm/PluginStoreWidget/components/CustomPluginForm.js +109 -0
  152. package/esm/PluginStoreWidget/components/CustomPluginForm.js.map +1 -0
  153. package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +11 -0
  154. package/esm/PluginStoreWidget/components/InstalledPlugin.js +77 -0
  155. package/esm/PluginStoreWidget/components/InstalledPlugin.js.map +1 -0
  156. package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +9 -0
  157. package/esm/PluginStoreWidget/components/InstalledPluginsList.js +16 -0
  158. package/esm/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -0
  159. package/esm/PluginStoreWidget/components/PluginCard.d.ts +10 -0
  160. package/esm/PluginStoreWidget/components/PluginCard.js +61 -0
  161. package/esm/PluginStoreWidget/components/PluginCard.js.map +1 -0
  162. package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +7 -0
  163. package/esm/PluginStoreWidget/components/PluginStoreWidget.js +106 -0
  164. package/esm/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -0
  165. package/esm/PluginStoreWidget/index.d.ts +2 -0
  166. package/esm/PluginStoreWidget/index.js +4 -0
  167. package/esm/PluginStoreWidget/index.js.map +1 -0
  168. package/esm/PluginStoreWidget/model.d.ts +13 -0
  169. package/esm/PluginStoreWidget/model.js +20 -0
  170. package/esm/PluginStoreWidget/model.js.map +1 -0
  171. package/esm/SetDefaultSession/SetDefaultSession.d.ts +6 -0
  172. package/esm/SetDefaultSession/SetDefaultSession.js +34 -0
  173. package/esm/SetDefaultSession/SetDefaultSession.js.map +1 -0
  174. package/esm/SetDefaultSession/index.d.ts +1 -0
  175. package/esm/SetDefaultSession/index.js +2 -0
  176. package/esm/SetDefaultSession/index.js.map +1 -0
  177. package/esm/index.d.ts +27 -0
  178. package/esm/index.js +70 -0
  179. package/esm/index.js.map +1 -0
  180. package/esm/ucsc-trackhub/configSchema.d.ts +2 -0
  181. package/esm/ucsc-trackhub/configSchema.js +18 -0
  182. package/esm/ucsc-trackhub/configSchema.js.map +1 -0
  183. package/esm/ucsc-trackhub/index.d.ts +2 -0
  184. package/esm/ucsc-trackhub/index.js +3 -0
  185. package/esm/ucsc-trackhub/index.js.map +1 -0
  186. package/esm/ucsc-trackhub/model.d.ts +15 -0
  187. package/esm/ucsc-trackhub/model.js +82 -0
  188. package/esm/ucsc-trackhub/model.js.map +1 -0
  189. package/esm/ucsc-trackhub/ucscAssemblies.d.ts +2 -0
  190. package/esm/ucsc-trackhub/ucscAssemblies.js +201 -0
  191. package/esm/ucsc-trackhub/ucscAssemblies.js.map +1 -0
  192. package/esm/ucsc-trackhub/ucscTrackHub.d.ts +6 -0
  193. package/esm/ucsc-trackhub/ucscTrackHub.js +348 -0
  194. package/esm/ucsc-trackhub/ucscTrackHub.js.map +1 -0
  195. package/package.json +21 -13
  196. package/src/AddConnectionWidget/components/AddConnectionWidget.js +14 -10
  197. package/src/AddConnectionWidget/components/ConnectionTypeSelect.tsx +2 -4
  198. package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.js.snap +63 -67
  199. package/src/AddTrackWidget/components/AddTrackWidget.test.js +4 -4
  200. package/src/AddTrackWidget/components/AddTrackWidget.tsx +5 -5
  201. package/src/AddTrackWidget/components/ConfirmTrack.tsx +22 -22
  202. package/src/AddTrackWidget/components/TrackSourceSelect.tsx +9 -5
  203. package/src/AddTrackWidget/components/__snapshots__/AddTrackWidget.test.js.snap +76 -95
  204. package/src/AssemblyManager/AssemblyAddForm.tsx +5 -11
  205. package/src/AssemblyManager/AssemblyManager.tsx +8 -8
  206. package/src/AssemblyManager/AssemblyTable.tsx +10 -10
  207. package/src/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.tsx +8 -12
  208. package/src/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.tsx +2 -2
  209. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +1 -1
  210. package/src/HierarchicalTrackSelectorWidget/components/{HierarchicalTrackSelector.js → HierarchicalTrackSelector.tsx} +262 -148
  211. package/src/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.tsx +11 -8
  212. package/src/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.tsx +31 -33
  213. package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.js.snap +122 -115
  214. package/src/HierarchicalTrackSelectorWidget/{index.js → index.ts} +0 -0
  215. package/src/HierarchicalTrackSelectorWidget/{model.js → model.ts} +113 -105
  216. package/src/PluginStoreWidget/components/CustomPluginForm.tsx +11 -14
  217. package/src/PluginStoreWidget/components/InstalledPlugin.tsx +9 -8
  218. package/src/PluginStoreWidget/components/InstalledPluginsList.tsx +1 -1
  219. package/src/PluginStoreWidget/components/PluginCard.tsx +10 -11
  220. package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +9 -9
  221. package/src/PluginStoreWidget/components/__snapshots__/PluginStoreWidget.test.js.snap +267 -217
  222. package/src/PluginStoreWidget/index.js +0 -1
  223. package/src/SetDefaultSession/SetDefaultSession.tsx +1 -1
  224. package/dist/AddConnectionWidget/components/AddConnectionWidget.test.js +0 -279
  225. package/dist/AddTrackWidget/components/AddTrackWidget.test.js +0 -218
  226. package/dist/AddTrackWidget/index.test.js +0 -292
  227. package/dist/AssemblyManager/AssemblyManager.test.js +0 -113
  228. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +0 -191
  229. package/dist/HierarchicalTrackSelectorWidget/model.test.js +0 -28
  230. package/dist/PluginStoreWidget/components/PluginStoreWidget.test.js +0 -201
  231. package/dist/PluginStoreWidget/model.test.js +0 -17
  232. package/dist/SetDefaultSession/SetDefaultSession.test.js +0 -75
  233. package/dist/index.test.js +0 -56
@@ -1,306 +1,260 @@
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
- exports.generateHierarchy = generateHierarchy;
10
-
11
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
-
13
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
14
-
15
- var _mobxStateTree = require("mobx-state-tree");
16
-
17
- var _configuration = require("@jbrowse/core/configuration");
18
-
19
- var _util = require("@jbrowse/core/util");
20
-
21
- var _mst = require("@jbrowse/core/util/types/mst");
22
-
23
- 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; } } }; }
24
-
25
- 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); }
26
-
27
- 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; }
28
-
29
- var hasAnyOverlap = function hasAnyOverlap() {
30
- var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
31
- var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
32
- return !!a1.find(function (value) {
33
- return a2.includes(value);
34
- });
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
35
17
  };
36
-
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ var __values = (this && this.__values) || function(o) {
28
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
29
+ if (m) return m.call(o);
30
+ if (o && typeof o.length === "number") return {
31
+ next: function () {
32
+ if (o && i >= o.length) o = void 0;
33
+ return { value: o && o[i++], done: !o };
34
+ }
35
+ };
36
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.generateHierarchy = void 0;
40
+ var mobx_state_tree_1 = require("mobx-state-tree");
41
+ var configuration_1 = require("@jbrowse/core/configuration");
42
+ var util_1 = require("@jbrowse/core/util");
43
+ var mst_1 = require("@jbrowse/core/util/types/mst");
44
+ function hasAnyOverlap(a1, a2) {
45
+ if (a1 === void 0) { a1 = []; }
46
+ if (a2 === void 0) { a2 = []; }
47
+ return !!a1.find(function (value) { return a2.includes(value); });
48
+ }
37
49
  function passesFilter(filter, config) {
38
- var name = getTrackName(config);
39
- var categories = (0, _configuration.readConfObject)(config, 'category') || [];
40
- var filterLower = filter.toLowerCase();
41
- return !!name.toLowerCase().includes(filterLower) || categories.filter(function (cat) {
42
- return !!cat.toLowerCase().includes(filterLower);
43
- }).length;
50
+ var categories = (0, configuration_1.readConfObject)(config, 'category');
51
+ var filterLower = filter.toLowerCase();
52
+ return (getTrackName(config).toLowerCase().includes(filterLower) ||
53
+ (categories === null || categories === void 0 ? void 0 : categories.filter(function (c) { return c.toLowerCase().includes(filterLower); }).length));
44
54
  }
45
-
46
55
  function getTrackName(config) {
47
- if (!config.trackId) {
48
- throw new Error('not a track');
49
- }
50
-
51
- return (0, _configuration.readConfObject)(config, 'name') || "Reference sequence (".concat((0, _configuration.readConfObject)((0, _mobxStateTree.getParent)(config), 'name'), ")");
56
+ if (!config.trackId) {
57
+ throw new Error('not a track');
58
+ }
59
+ return ((0, configuration_1.readConfObject)(config, 'name') ||
60
+ "Reference sequence (".concat((0, configuration_1.readConfObject)((0, mobx_state_tree_1.getParent)(config), 'name'), ")"));
52
61
  }
53
-
54
62
  function generateHierarchy(model, trackConfigurations, collapsed) {
55
- var hierarchy = {
56
- children: []
57
- };
58
- var filterText = model.filterText,
59
- view = model.view;
60
- trackConfigurations.filter(function (trackConf) {
61
- return passesFilter(filterText, trackConf);
62
- }).forEach(function (trackConf) {
63
- // copy the categories since this array can be mutated downstream
64
- var categories = (0, _toConsumableArray2.default)((0, _configuration.readConfObject)(trackConf, 'category') || []); // silly thing where if trackId ends with sessionTrack, then push it to
65
- // a category that starts with a space to force sort to the top...
66
- // double whammy hackyness
67
-
68
- if (trackConf.trackId.endsWith('sessionTrack')) {
69
- categories.unshift(' Session tracks');
70
- }
71
-
72
- var currLevel = hierarchy; // find existing category to put track into or create it
73
-
74
- var _loop = function _loop(i) {
75
- var category = categories[i];
76
- var ret = currLevel.children.find(function (c) {
77
- return c.name === category;
78
- });
79
- var id = categories.slice(0, i + 1).join(',');
80
-
81
- if (!ret) {
82
- var n = {
83
- children: [],
84
- name: category,
85
- id: id,
86
- isOpenByDefault: !collapsed.get(id)
63
+ var hierarchy = { children: [] };
64
+ var filterText = model.filterText, view = model.view;
65
+ trackConfigurations
66
+ .filter(function (conf) { return passesFilter(filterText, conf); })
67
+ .forEach(function (conf) {
68
+ // copy the categories since this array can be mutated downstream
69
+ var categories = __spreadArray([], __read(((0, configuration_1.readConfObject)(conf, 'category') || [])), false);
70
+ // silly thing where if trackId ends with sessionTrack, then push it to
71
+ // a category that starts with a space to force sort to the top...
72
+ // double whammy hackyness
73
+ if (conf.trackId.endsWith('sessionTrack')) {
74
+ categories.unshift(' Session tracks');
75
+ }
76
+ var currLevel = hierarchy;
77
+ var _loop_1 = function (i) {
78
+ var category = categories[i];
79
+ var ret = currLevel.children.find(function (c) { return c.name === category; });
80
+ var id = categories.slice(0, i + 1).join(',');
81
+ if (!ret) {
82
+ var n = {
83
+ children: [],
84
+ name: category,
85
+ id: id,
86
+ isOpenByDefault: !collapsed.get(id),
87
+ };
88
+ currLevel.children.push(n);
89
+ currLevel = n;
90
+ }
91
+ else {
92
+ currLevel = ret;
93
+ }
87
94
  };
88
- currLevel.children.push(n);
89
- currLevel = n;
90
- } else {
91
- currLevel = ret;
92
- }
93
- };
94
-
95
- for (var i = 0; i < categories.length; i++) {
96
- _loop(i);
97
- } // using splice here tries to group leaf nodes above hierarchical nodes
98
-
99
-
100
- currLevel.children.splice(currLevel.children.findIndex(function (elt) {
101
- return elt.children.length;
102
- }), 0, {
103
- id: trackConf.trackId,
104
- name: getTrackName(trackConf),
105
- conf: trackConf,
106
- checked: !!view.tracks.find(function (f) {
107
- return f.configuration === trackConf;
108
- }),
109
- children: []
95
+ // find existing category to put track into or create it
96
+ for (var i = 0; i < categories.length; i++) {
97
+ _loop_1(i);
98
+ }
99
+ var tracks = view.tracks;
100
+ // using splice here tries to group leaf nodes above hierarchical nodes
101
+ currLevel.children.splice(currLevel.children.findIndex(function (elt) { return elt.children.length; }), 0, {
102
+ id: conf.trackId,
103
+ name: getTrackName(conf),
104
+ conf: conf,
105
+ checked: !!tracks.find(function (f) { return f.configuration === conf; }),
106
+ children: [],
107
+ });
110
108
  });
111
- });
112
- return hierarchy.children;
109
+ return hierarchy.children;
113
110
  }
114
-
115
- var _default = function _default(pluginManager) {
116
- return _mobxStateTree.types.model('HierarchicalTrackSelectorWidget', {
117
- id: _mst.ElementId,
118
- type: _mobxStateTree.types.literal('HierarchicalTrackSelectorWidget'),
119
- collapsed: _mobxStateTree.types.map(_mobxStateTree.types.boolean),
120
- filterText: '',
121
- view: _mobxStateTree.types.safeReference(pluginManager.pluggableMstType('view', 'stateModel'))
122
- }).actions(function (self) {
123
- return {
124
- setView: function setView(view) {
125
- self.view = view;
126
- },
127
- toggleCategory: function toggleCategory(pathName) {
128
- self.collapsed.set(pathName, !self.collapsed.get(pathName));
129
- },
130
- clearFilterText: function clearFilterText() {
131
- self.filterText = '';
132
- },
133
- setFilterText: function setFilterText(newText) {
134
- self.filterText = newText;
135
- }
136
- };
137
- }).views(function (self) {
138
- return {
139
- getRefSeqTrackConf: function getRefSeqTrackConf(assemblyName) {
140
- var _getSession = (0, _util.getSession)(self),
141
- assemblyManager = _getSession.assemblyManager;
142
-
143
- var assembly = assemblyManager.get(assemblyName);
144
- var trackConf = assembly === null || assembly === void 0 ? void 0 : assembly.configuration.sequence;
145
- var viewType = pluginManager.getViewType(self.view.type);
146
-
147
- if (trackConf) {
148
- var _iterator = _createForOfIteratorHelper(trackConf.displays),
149
- _step;
150
-
151
- try {
152
- var _loop2 = function _loop2() {
153
- var display = _step.value;
154
-
155
- if (viewType.displayTypes.find(function (displayType) {
156
- return displayType.name === display.type;
157
- })) {
158
- return {
159
- v: trackConf
160
- };
161
- }
111
+ exports.generateHierarchy = generateHierarchy;
112
+ function stateTreeFactory(pluginManager) {
113
+ return mobx_state_tree_1.types
114
+ .model('HierarchicalTrackSelectorWidget', {
115
+ id: mst_1.ElementId,
116
+ type: mobx_state_tree_1.types.literal('HierarchicalTrackSelectorWidget'),
117
+ collapsed: mobx_state_tree_1.types.map(mobx_state_tree_1.types.boolean),
118
+ filterText: '',
119
+ view: mobx_state_tree_1.types.safeReference(pluginManager.pluggableMstType('view', 'stateModel')),
120
+ })
121
+ .actions(function (self) { return ({
122
+ setView: function (view) {
123
+ self.view = view;
124
+ },
125
+ toggleCategory: function (pathName) {
126
+ self.collapsed.set(pathName, !self.collapsed.get(pathName));
127
+ },
128
+ clearFilterText: function () {
129
+ self.filterText = '';
130
+ },
131
+ setFilterText: function (newText) {
132
+ self.filterText = newText;
133
+ },
134
+ }); })
135
+ .views(function (self) { return ({
136
+ getRefSeqTrackConf: function (assemblyName) {
137
+ var e_1, _a;
138
+ var assemblyManager = (0, util_1.getSession)(self).assemblyManager;
139
+ var assembly = assemblyManager.get(assemblyName);
140
+ var trackConf = assembly === null || assembly === void 0 ? void 0 : assembly.configuration.sequence;
141
+ var viewType = pluginManager.getViewType(self.view.type);
142
+ if (!trackConf) {
143
+ return undefined;
144
+ }
145
+ var _loop_2 = function (display) {
146
+ if (viewType.displayTypes.find(function (d) { return d.name === display.type; })) {
147
+ return { value: trackConf };
148
+ }
162
149
  };
163
-
164
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
165
- var _ret = _loop2();
166
-
167
- if ((0, _typeof2.default)(_ret) === "object") return _ret.v;
150
+ try {
151
+ for (var _b = __values(trackConf.displays), _c = _b.next(); !_c.done; _c = _b.next()) {
152
+ var display = _c.value;
153
+ var state_1 = _loop_2(display);
154
+ if (typeof state_1 === "object")
155
+ return state_1.value;
156
+ }
168
157
  }
169
- } catch (err) {
170
- _iterator.e(err);
171
- } finally {
172
- _iterator.f();
173
- }
174
- }
175
-
176
- return undefined;
177
- },
178
- trackConfigurations: function trackConfigurations(assemblyName) {
179
- if (!self.view) {
180
- return [];
181
- }
182
-
183
- var session = (0, _util.getSession)(self);
184
- var trackConfigurations = session.tracks,
185
- assemblyManager = session.assemblyManager;
186
- var assembly = assemblyManager.get(assemblyName);
187
-
188
- if (!assembly) {
189
- return [];
190
- }
191
-
192
- var refseq = self.getRefSeqTrackConf(assemblyName); // filter out tracks that don't match the current assembly (check all
193
- // assembly aliases) and display types
194
-
195
- return (refseq ? [refseq] : []).concat((0, _toConsumableArray2.default)(trackConfigurations.filter(function (conf) {
196
- var trackConfAssemblies = (0, _configuration.readConfObject)(conf, 'assemblyNames');
197
- var allAliases = assembly.allAliases;
198
- return hasAnyOverlap(allAliases, trackConfAssemblies);
199
- }).filter(function (conf) {
200
- var _pluginManager$getVie = pluginManager.getViewType(self.view.type),
201
- displayTypes = _pluginManager$getVie.displayTypes;
202
-
203
- var compatibleDisplays = displayTypes.map(function (display) {
204
- return display.name;
205
- });
206
- var trackDisplays = conf.displays.map(function (display) {
207
- return display.type;
208
- });
209
- return hasAnyOverlap(compatibleDisplays, trackDisplays);
210
- })));
211
- },
212
-
213
- get assemblyNames() {
214
- return self.view ? self.view.assemblyNames : [];
215
- },
216
-
217
- connectionTrackConfigurations: function connectionTrackConfigurations(assemblyName, connection) {
218
- if (!self.view) {
219
- return [];
220
- }
221
-
222
- var trackConfigurations = connection.tracks;
223
- var session = (0, _util.getSession)(self);
224
- var assemblyManager = session.assemblyManager;
225
- var assembly = assemblyManager.get(assemblyName);
226
-
227
- if (!(assembly && assembly.initialized)) {
228
- return [];
229
- } // filter out tracks that don't match the current display types
230
-
231
-
232
- return trackConfigurations.filter(function (conf) {
233
- var trackConfAssemblies = (0, _configuration.readConfObject)(conf, 'assemblyNames');
234
- var allAliases = assembly.allAliases;
235
- return hasAnyOverlap(allAliases, trackConfAssemblies);
236
- }).filter(function (conf) {
237
- var _pluginManager$getVie2 = pluginManager.getViewType(self.view.type),
238
- displayTypes = _pluginManager$getVie2.displayTypes;
239
-
240
- var compatibleDisplays = displayTypes.map(function (display) {
241
- return display.name;
242
- });
243
- var trackDisplays = conf.displays.map(function (display) {
244
- return display.type;
245
- });
246
- return hasAnyOverlap(compatibleDisplays, trackDisplays);
247
- });
248
- },
249
- hierarchy: function hierarchy(assemblyName) {
250
- var _this = this;
251
-
252
- var hier = generateHierarchy(self, self.trackConfigurations(assemblyName), self.collapsed);
253
- var session = (0, _util.getSession)(self);
254
- var conns = session.connectionInstances.filter(function (conn) {
255
- var configAssemblyNames = (0, _configuration.readConfObject)(conn.configuration, 'assemblyNames');
256
-
257
- if (configAssemblyNames.length === 0) {
258
- return true;
259
- }
260
-
261
- return configAssemblyNames.includes(assemblyName);
262
- }).map(function (conn, index) {
263
- var c = session.connections[index];
264
- return {
265
- id: c.connectionId,
266
- name: (0, _configuration.readConfObject)(c, 'name'),
267
- children: _this.connectionHierarchy(assemblyName, conn),
268
- state: {
269
- expanded: true
158
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
159
+ finally {
160
+ try {
161
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
162
+ }
163
+ finally { if (e_1) throw e_1.error; }
270
164
  }
271
- };
272
- });
273
- return {
274
- name: 'Root',
275
- id: 'Root',
276
- children: [{
277
- name: 'Tracks',
278
- id: 'Tracks',
279
- children: hier
280
- }].concat((0, _toConsumableArray2.default)(conns))
281
- };
282
- },
283
- connectionHierarchy: function connectionHierarchy(assemblyName, connection) {
284
- return generateHierarchy(self, self.connectionTrackConfigurations(assemblyName, connection), self.collapsed);
285
- },
286
- // This recursively gets tracks from lower paths
287
- allTracksInCategoryPath: function allTracksInCategoryPath(path, connection, assemblyName) {
288
- var currentHier = connection ? self.connectionHierarchy(connection) : self.hierarchy(assemblyName);
289
- path.forEach(function (pathItem) {
290
- currentHier = currentHier.get(pathItem) || new Map();
291
- });
292
- var tracks = {};
293
- currentHier.forEach(function (contents, name) {
294
- if (contents.trackId) {
295
- tracks[contents.trackId] = contents;
296
- } else {
297
- tracks = Object.assign(tracks, self.allTracksInCategoryPath(path.concat([name])));
298
- }
299
- });
300
- return tracks;
301
- }
302
- };
303
- });
304
- };
305
-
306
- exports.default = _default;
165
+ },
166
+ }); })
167
+ .views(function (self) { return ({
168
+ trackConfigurations: function (assemblyName) {
169
+ if (!self.view) {
170
+ return [];
171
+ }
172
+ var _a = (0, util_1.getSession)(self), tracks = _a.tracks, assemblyManager = _a.assemblyManager;
173
+ var assembly = assemblyManager.get(assemblyName);
174
+ if (!assembly) {
175
+ return [];
176
+ }
177
+ var refseq = self.getRefSeqTrackConf(assemblyName);
178
+ // filter out tracks that don't match the current assembly (check all
179
+ // assembly aliases) and display types
180
+ return (refseq ? [refseq] : []).concat(__spreadArray([], __read(tracks
181
+ .filter(function (c) {
182
+ var trackConfAssemblies = (0, configuration_1.readConfObject)(c, 'assemblyNames');
183
+ var allAliases = assembly.allAliases;
184
+ return hasAnyOverlap(allAliases, trackConfAssemblies);
185
+ })
186
+ .filter(function (c) {
187
+ var displayTypes = pluginManager.getViewType(self.view.type).displayTypes;
188
+ var compatibleDisplays = displayTypes.map(function (d) { return d.name; });
189
+ var trackDisplays = c.displays.map(function (d) { return d.type; });
190
+ return hasAnyOverlap(compatibleDisplays, trackDisplays);
191
+ })), false));
192
+ },
193
+ get assemblyNames() {
194
+ var _a;
195
+ return ((_a = self.view) === null || _a === void 0 ? void 0 : _a.assemblyNames) || [];
196
+ },
197
+ connectionTrackConfigurations: function (assemblyName, connection) {
198
+ if (!self.view) {
199
+ return [];
200
+ }
201
+ var trackConfigurations = connection.tracks;
202
+ var assemblyManager = (0, util_1.getSession)(self).assemblyManager;
203
+ var assembly = assemblyManager.get(assemblyName);
204
+ if (!(assembly && assembly.initialized)) {
205
+ return [];
206
+ }
207
+ // filter out tracks that don't match the current display types
208
+ return trackConfigurations
209
+ .filter(function (c) {
210
+ var trackConfAssemblies = (0, configuration_1.readConfObject)(c, 'assemblyNames');
211
+ var allAliases = assembly.allAliases;
212
+ return hasAnyOverlap(allAliases, trackConfAssemblies);
213
+ })
214
+ .filter(function (c) {
215
+ var displayTypes = pluginManager.getViewType(self.view.type).displayTypes;
216
+ var compatibleDisplays = displayTypes.map(function (d) { return d.name; });
217
+ var trackDisplays = c.displays.map(function (d) { return d.type; });
218
+ return hasAnyOverlap(compatibleDisplays, trackDisplays);
219
+ });
220
+ },
221
+ }); })
222
+ .views(function (self) { return ({
223
+ hierarchy: function (assemblyName) {
224
+ var _this = this;
225
+ var hier = generateHierarchy(
226
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
227
+ self, self.trackConfigurations(assemblyName), self.collapsed);
228
+ var session = (0, util_1.getSession)(self);
229
+ var connections = session.connections, connectionInstances = session.connectionInstances;
230
+ var conns = (connectionInstances === null || connectionInstances === void 0 ? void 0 : connectionInstances.filter(function (c) {
231
+ var names = (0, configuration_1.getConf)(c, 'assemblyNames');
232
+ return names.length === 0 ? true : names.includes(assemblyName);
233
+ }).map(function (conn, index) {
234
+ var c = connections[index];
235
+ return {
236
+ id: c.connectionId,
237
+ name: (0, configuration_1.readConfObject)(c, 'name'),
238
+ children: _this.connectionHierarchy(assemblyName, conn),
239
+ state: {
240
+ expanded: true,
241
+ },
242
+ };
243
+ })) || [];
244
+ return {
245
+ name: 'Root',
246
+ id: 'Root',
247
+ children: __spreadArray([
248
+ { name: 'Tracks', id: 'Tracks', children: hier }
249
+ ], __read(conns), false),
250
+ };
251
+ },
252
+ connectionHierarchy: function (assemblyName, connection) {
253
+ return generateHierarchy(
254
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
255
+ self, self.connectionTrackConfigurations(assemblyName, connection), self.collapsed);
256
+ },
257
+ }); });
258
+ }
259
+ exports.default = stateTreeFactory;
260
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/HierarchicalTrackSelectorWidget/model.ts"],"names":[],"mappings":"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"}