@jbrowse/product-core 3.7.0 → 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 +52 -37
  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 +189 -127
  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 +178 -122
  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 +175 -121
  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 -534
  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 -1681
  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 -1664
  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 -1657
  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
- }