@jbrowse/product-core 3.6.5 → 4.0.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 (97) hide show
  1. package/esm/RootModel/BaseRootModel.d.ts +53 -30
  2. package/esm/RootModel/BaseRootModel.js +1 -1
  3. package/esm/RootModel/FormatAbout.d.ts +2 -2
  4. package/esm/RootModel/FormatDetails.d.ts +2 -2
  5. package/esm/RootModel/HierarchicalConfig.d.ts +6 -6
  6. package/esm/RootModel/InternetAccounts.d.ts +4 -4
  7. package/esm/RootModel/InternetAccounts.js +3 -3
  8. package/esm/RootModel/index.d.ts +5 -5
  9. package/esm/RootModel/index.js +5 -5
  10. package/esm/Session/BaseSession.d.ts +12 -8
  11. package/esm/Session/BaseSession.js +12 -2
  12. package/esm/Session/Connections.d.ts +7 -144
  13. package/esm/Session/Connections.js +13 -3
  14. package/esm/Session/DialogQueue.d.ts +3 -3
  15. package/esm/Session/DialogQueue.js +4 -6
  16. package/esm/Session/DrawerWidgets.d.ts +17 -9
  17. package/esm/Session/DrawerWidgets.js +32 -8
  18. package/esm/Session/MultipleViews.d.ts +192 -105
  19. package/esm/Session/MultipleViews.js +27 -10
  20. package/esm/Session/ReferenceManagement.d.ts +3 -3
  21. package/esm/Session/ReferenceManagement.js +10 -4
  22. package/esm/Session/SessionTracks.d.ts +181 -100
  23. package/esm/Session/SessionTracks.js +13 -3
  24. package/esm/Session/Themes.d.ts +3 -3
  25. package/esm/Session/Themes.js +3 -3
  26. package/esm/Session/Tracks.d.ts +178 -99
  27. package/esm/Session/Tracks.js +16 -3
  28. package/esm/Session/index.d.ts +10 -10
  29. package/esm/Session/index.js +10 -10
  30. package/esm/index.d.ts +4 -4
  31. package/esm/index.js +4 -4
  32. package/esm/rpcWorker.d.ts +6 -0
  33. package/esm/rpcWorker.js +12 -6
  34. package/esm/ui/AboutDialog.d.ts +4 -2
  35. package/esm/ui/AboutDialog.js +4 -5
  36. package/esm/ui/AboutDialogContents.d.ts +4 -2
  37. package/esm/ui/AboutDialogContents.js +13 -12
  38. package/esm/ui/FileInfoPanel.d.ts +4 -2
  39. package/esm/ui/FileInfoPanel.js +6 -7
  40. package/esm/ui/HeaderButtons.js +4 -4
  41. package/esm/ui/RefNameInfoDialog.d.ts +4 -2
  42. package/esm/ui/RefNameInfoDialog.js +13 -13
  43. package/esm/ui/index.d.ts +1 -1
  44. package/esm/ui/index.js +1 -1
  45. package/esm/ui/util.d.ts +5 -2
  46. package/esm/ui/util.js +23 -5
  47. package/package.json +24 -34
  48. package/dist/RootModel/BaseRootModel.d.ts +0 -526
  49. package/dist/RootModel/BaseRootModel.js +0 -57
  50. package/dist/RootModel/FormatAbout.d.ts +0 -12
  51. package/dist/RootModel/FormatAbout.js +0 -18
  52. package/dist/RootModel/FormatDetails.d.ts +0 -24
  53. package/dist/RootModel/FormatDetails.js +0 -30
  54. package/dist/RootModel/HierarchicalConfig.d.ts +0 -26
  55. package/dist/RootModel/HierarchicalConfig.js +0 -32
  56. package/dist/RootModel/InternetAccounts.d.ts +0 -15
  57. package/dist/RootModel/InternetAccounts.js +0 -79
  58. package/dist/RootModel/index.d.ts +0 -5
  59. package/dist/RootModel/index.js +0 -21
  60. package/dist/Session/BaseSession.d.ts +0 -31
  61. package/dist/Session/BaseSession.js +0 -63
  62. package/dist/Session/Connections.d.ts +0 -158
  63. package/dist/Session/Connections.js +0 -84
  64. package/dist/Session/DialogQueue.d.ts +0 -15
  65. package/dist/Session/DialogQueue.js +0 -37
  66. package/dist/Session/DrawerWidgets.d.ts +0 -28
  67. package/dist/Session/DrawerWidgets.js +0 -107
  68. package/dist/Session/MultipleViews.d.ts +0 -1656
  69. package/dist/Session/MultipleViews.js +0 -75
  70. package/dist/Session/ReferenceManagement.d.ts +0 -15
  71. package/dist/Session/ReferenceManagement.js +0 -71
  72. package/dist/Session/SessionTracks.d.ts +0 -1639
  73. package/dist/Session/SessionTracks.js +0 -54
  74. package/dist/Session/Themes.d.ts +0 -18
  75. package/dist/Session/Themes.js +0 -47
  76. package/dist/Session/Tracks.d.ts +0 -1632
  77. package/dist/Session/Tracks.js +0 -36
  78. package/dist/Session/index.d.ts +0 -10
  79. package/dist/Session/index.js +0 -26
  80. package/dist/index.d.ts +0 -4
  81. package/dist/index.js +0 -20
  82. package/dist/rpcWorker.d.ts +0 -6
  83. package/dist/rpcWorker.js +0 -57
  84. package/dist/ui/AboutDialog.d.ts +0 -5
  85. package/dist/ui/AboutDialog.js +0 -18
  86. package/dist/ui/AboutDialogContents.d.ts +0 -5
  87. package/dist/ui/AboutDialogContents.js +0 -41
  88. package/dist/ui/FileInfoPanel.d.ts +0 -4
  89. package/dist/ui/FileInfoPanel.js +0 -43
  90. package/dist/ui/HeaderButtons.d.ts +0 -6
  91. package/dist/ui/HeaderButtons.js +0 -31
  92. package/dist/ui/RefNameInfoDialog.d.ts +0 -6
  93. package/dist/ui/RefNameInfoDialog.js +0 -87
  94. package/dist/ui/index.d.ts +0 -1
  95. package/dist/ui/index.js +0 -17
  96. package/dist/ui/util.d.ts +0 -12
  97. package/dist/ui/util.js +0 -28
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MultipleViewsSessionMixin = MultipleViewsSessionMixin;
4
- exports.isSessionWithMultipleViews = isSessionWithMultipleViews;
5
- const util_1 = require("@jbrowse/core/util");
6
- const mobx_1 = require("mobx");
7
- const mobx_state_tree_1 = require("mobx-state-tree");
8
- const BaseSession_1 = require("./BaseSession");
9
- const DrawerWidgets_1 = require("./DrawerWidgets");
10
- function MultipleViewsSessionMixin(pluginManager) {
11
- return mobx_state_tree_1.types
12
- .compose((0, BaseSession_1.BaseSessionModel)(pluginManager), (0, DrawerWidgets_1.DrawerWidgetSessionMixin)(pluginManager))
13
- .props({
14
- views: mobx_state_tree_1.types.array(pluginManager.pluggableMstType('view', 'stateModel')),
15
- stickyViewHeaders: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.boolean, () => (0, util_1.localStorageGetBoolean)('stickyViewHeaders', true)),
16
- })
17
- .actions(self => ({
18
- moveViewDown(id) {
19
- const idx = self.views.findIndex(v => v.id === id);
20
- if (idx !== -1 && idx < self.views.length - 1) {
21
- self.views.splice(idx, 2, self.views[idx + 1], self.views[idx]);
22
- }
23
- },
24
- moveViewUp(id) {
25
- const idx = self.views.findIndex(view => view.id === id);
26
- if (idx > 0) {
27
- self.views.splice(idx - 1, 2, self.views[idx], self.views[idx - 1]);
28
- }
29
- },
30
- moveViewToTop(id) {
31
- const idx = self.views.findIndex(view => view.id === id);
32
- self.views = (0, mobx_state_tree_1.cast)([
33
- self.views[idx],
34
- ...self.views.filter(view => view.id !== id),
35
- ]);
36
- },
37
- moveViewToBottom(id) {
38
- const idx = self.views.findIndex(view => view.id === id);
39
- self.views = (0, mobx_state_tree_1.cast)([
40
- ...self.views.filter(view => view.id !== id),
41
- self.views[idx],
42
- ]);
43
- },
44
- addView(typeName, initialState = {}) {
45
- const typeDefinition = pluginManager.getElementType('view', typeName);
46
- if (!typeDefinition) {
47
- throw new Error(`unknown view type ${typeName}`);
48
- }
49
- const length = self.views.push({
50
- ...initialState,
51
- type: typeName,
52
- });
53
- return self.views[length - 1];
54
- },
55
- removeView(view) {
56
- for (const [, widget] of self.activeWidgets) {
57
- if (widget.view && widget.view.id === view.id) {
58
- self.hideWidget(widget);
59
- }
60
- }
61
- self.views.remove(view);
62
- },
63
- setStickyViewHeaders(sticky) {
64
- self.stickyViewHeaders = sticky;
65
- },
66
- afterAttach() {
67
- (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(() => {
68
- (0, util_1.localStorageSetBoolean)('stickyViewHeaders', self.stickyViewHeaders);
69
- }));
70
- },
71
- }));
72
- }
73
- function isSessionWithMultipleViews(session) {
74
- return (0, BaseSession_1.isBaseSession)(session) && 'views' in session;
75
- }
@@ -1,15 +0,0 @@
1
- import type PluginManager from '@jbrowse/core/PluginManager';
2
- import type { BaseTrackConfig } from '@jbrowse/core/pluggableElementTypes';
3
- import type { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
4
- export interface ReferringNode {
5
- node: IAnyStateTreeNode;
6
- key: string;
7
- }
8
- export declare function ReferenceManagementSessionMixin(_pluginManager: PluginManager): import("mobx-state-tree").IModelType<{}, {
9
- getReferring(object: IAnyStateTreeNode): ReferringNode[];
10
- } & {
11
- removeReferring(referring: ReferringNode[], track: BaseTrackConfig, callbacks: ((arg: string) => void)[], dereferenceTypeCount: Record<string, number>): void;
12
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
13
- export type SessionWithReferenceManagementType = ReturnType<typeof ReferenceManagementSessionMixin>;
14
- export type SessionWithReferenceManagement = Instance<SessionWithReferenceManagementType>;
15
- export declare function isSessionWithReferenceManagement(thing: IAnyStateTreeNode): thing is SessionWithReferenceManagement;
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReferenceManagementSessionMixin = ReferenceManagementSessionMixin;
4
- exports.isSessionWithReferenceManagement = isSessionWithReferenceManagement;
5
- const util_1 = require("@jbrowse/core/util");
6
- const mobx_state_tree_1 = require("mobx-state-tree");
7
- const BaseSession_1 = require("./BaseSession");
8
- function ReferenceManagementSessionMixin(_pluginManager) {
9
- return mobx_state_tree_1.types
10
- .model('ReferenceManagementSessionMixin', {})
11
- .views(self => ({
12
- getReferring(object) {
13
- const refs = [];
14
- (0, mobx_state_tree_1.walk)((0, mobx_state_tree_1.getParent)(self), node => {
15
- if ((0, mobx_state_tree_1.isModelType)((0, mobx_state_tree_1.getType)(node))) {
16
- const members = (0, mobx_state_tree_1.getMembers)(node);
17
- for (const [key, value] of Object.entries(members.properties)) {
18
- if ((0, mobx_state_tree_1.isReferenceType)(value) && node[key] === object) {
19
- refs.push({ node, key });
20
- }
21
- }
22
- }
23
- });
24
- return refs;
25
- },
26
- }))
27
- .actions(self => ({
28
- removeReferring(referring, track, callbacks, dereferenceTypeCount) {
29
- for (const { node } of referring) {
30
- let dereferenced = false;
31
- try {
32
- const type = 'open track(s)';
33
- const view = (0, util_1.getContainingView)(node);
34
- callbacks.push(() => {
35
- view.hideTrack(track.trackId);
36
- });
37
- dereferenced = true;
38
- if (!dereferenceTypeCount[type]) {
39
- dereferenceTypeCount[type] = 0;
40
- }
41
- dereferenceTypeCount[type] += 1;
42
- }
43
- catch (err1) {
44
- }
45
- if ((0, util_1.isSessionModelWithWidgets)(self) && self.widgets.has(node.id)) {
46
- const type = 'configuration editor widget(s)';
47
- if ((0, util_1.isSessionModelWithWidgets)(self)) {
48
- callbacks.push(() => {
49
- self.hideWidget(node);
50
- });
51
- }
52
- dereferenced = true;
53
- if (!dereferenceTypeCount[type]) {
54
- dereferenceTypeCount[type] = 0;
55
- }
56
- dereferenceTypeCount[type] += 1;
57
- }
58
- if (!dereferenced) {
59
- throw new Error(`Error when closing this connection, the following node is still referring to a track configuration: ${JSON.stringify((0, mobx_state_tree_1.getSnapshot)(node))}`);
60
- }
61
- }
62
- },
63
- }));
64
- }
65
- function isSessionWithReferenceManagement(thing) {
66
- return ((0, BaseSession_1.isBaseSession)(thing) &&
67
- 'getReferring' in thing &&
68
- typeof thing.getReferring === 'function' &&
69
- 'removeReferring' in thing &&
70
- typeof thing.removeReferring === 'function');
71
- }