@jbrowse/plugin-alignments 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +61 -90
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  3. package/dist/AlignmentsFeatureDetail/index.js +14 -16
  4. package/dist/AlignmentsFeatureDetail/index.js.map +1 -1
  5. package/dist/AlignmentsTrack/index.js +8 -8
  6. package/dist/AlignmentsTrack/index.js.map +1 -1
  7. package/dist/BamAdapter/BamAdapter.js +157 -336
  8. package/dist/BamAdapter/BamAdapter.js.map +1 -1
  9. package/dist/BamAdapter/BamSlightlyLazyFeature.js +68 -103
  10. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  11. package/dist/BamAdapter/MismatchParser.js +96 -162
  12. package/dist/BamAdapter/MismatchParser.js.map +1 -1
  13. package/dist/BamAdapter/configSchema.js +27 -29
  14. package/dist/BamAdapter/configSchema.js.map +1 -1
  15. package/dist/BamAdapter/index.js +9 -11
  16. package/dist/BamAdapter/index.js.map +1 -1
  17. package/dist/CramAdapter/CramAdapter.js +193 -351
  18. package/dist/CramAdapter/CramAdapter.js.map +1 -1
  19. package/dist/CramAdapter/CramSlightlyLazyFeature.js +119 -154
  20. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  21. package/dist/CramAdapter/CramTestAdapters.js +51 -148
  22. package/dist/CramAdapter/CramTestAdapters.js.map +1 -1
  23. package/dist/CramAdapter/configSchema.js +23 -25
  24. package/dist/CramAdapter/configSchema.js.map +1 -1
  25. package/dist/CramAdapter/index.js +9 -11
  26. package/dist/CramAdapter/index.js.map +1 -1
  27. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +25 -87
  28. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -1
  29. package/dist/HtsgetBamAdapter/configSchema.js +16 -18
  30. package/dist/HtsgetBamAdapter/configSchema.js.map +1 -1
  31. package/dist/HtsgetBamAdapter/index.js +15 -19
  32. package/dist/HtsgetBamAdapter/index.js.map +1 -1
  33. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +14 -15
  34. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  35. package/dist/LinearAlignmentsDisplay/index.js +7 -7
  36. package/dist/LinearAlignmentsDisplay/index.js.map +1 -1
  37. package/dist/LinearAlignmentsDisplay/models/configSchema.js +5 -5
  38. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  39. package/dist/LinearAlignmentsDisplay/models/model.js +64 -140
  40. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
  41. package/dist/LinearPileupDisplay/components/ColorByModifications.js +24 -53
  42. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
  43. package/dist/LinearPileupDisplay/components/ColorByTag.js +14 -30
  44. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
  45. package/dist/LinearPileupDisplay/components/FilterByTag.js +33 -49
  46. package/dist/LinearPileupDisplay/components/FilterByTag.js.map +1 -1
  47. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +7 -7
  48. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -1
  49. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +17 -33
  50. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
  51. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +14 -30
  52. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
  53. package/dist/LinearPileupDisplay/components/SortByTag.js +14 -30
  54. package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -1
  55. package/dist/LinearPileupDisplay/configSchema.js +4 -4
  56. package/dist/LinearPileupDisplay/configSchema.js.map +1 -1
  57. package/dist/LinearPileupDisplay/index.js +7 -7
  58. package/dist/LinearPileupDisplay/index.js.map +1 -1
  59. package/dist/LinearPileupDisplay/model.d.ts +2 -2
  60. package/dist/LinearPileupDisplay/model.js +534 -644
  61. package/dist/LinearPileupDisplay/model.js.map +1 -1
  62. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  63. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +30 -78
  64. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -1
  65. package/dist/LinearSNPCoverageDisplay/index.js +7 -7
  66. package/dist/LinearSNPCoverageDisplay/index.js.map +1 -1
  67. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +4 -4
  68. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -1
  69. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +1 -1
  70. package/dist/LinearSNPCoverageDisplay/models/model.js +170 -244
  71. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  72. package/dist/NestedFrequencyTable.js +27 -40
  73. package/dist/NestedFrequencyTable.js.map +1 -1
  74. package/dist/PileupRPC/rpcMethods.js +63 -191
  75. package/dist/PileupRPC/rpcMethods.js.map +1 -1
  76. package/dist/PileupRenderer/PileupLayoutSession.js +25 -47
  77. package/dist/PileupRenderer/PileupLayoutSession.js.map +1 -1
  78. package/dist/PileupRenderer/PileupRenderer.js +395 -529
  79. package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
  80. package/dist/PileupRenderer/components/PileupRendering.js +41 -68
  81. package/dist/PileupRenderer/components/PileupRendering.js.map +1 -1
  82. package/dist/PileupRenderer/configSchema.js +2 -2
  83. package/dist/PileupRenderer/configSchema.js.map +1 -1
  84. package/dist/PileupRenderer/index.js +9 -11
  85. package/dist/PileupRenderer/index.js.map +1 -1
  86. package/dist/PileupRenderer/sortUtil.js +36 -40
  87. package/dist/PileupRenderer/sortUtil.js.map +1 -1
  88. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +229 -415
  89. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
  90. package/dist/SNPCoverageAdapter/configSchema.js +5 -9
  91. package/dist/SNPCoverageAdapter/configSchema.js.map +1 -1
  92. package/dist/SNPCoverageAdapter/index.js +17 -21
  93. package/dist/SNPCoverageAdapter/index.js.map +1 -1
  94. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +175 -259
  95. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -1
  96. package/dist/SNPCoverageRenderer/configSchema.js +1 -1
  97. package/dist/SNPCoverageRenderer/configSchema.js.map +1 -1
  98. package/dist/SNPCoverageRenderer/index.js +10 -12
  99. package/dist/SNPCoverageRenderer/index.js.map +1 -1
  100. package/dist/index.js +40 -58
  101. package/dist/index.js.map +1 -1
  102. package/dist/shared.js +23 -78
  103. package/dist/shared.js.map +1 -1
  104. package/dist/util.js +13 -66
  105. package/dist/util.js.map +1 -1
  106. package/esm/LinearPileupDisplay/model.d.ts +2 -2
  107. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +1 -1
  108. package/esm/PileupRenderer/PileupRenderer.js +0 -2
  109. package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
  110. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +0 -1
  111. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -1
  112. package/package.json +2 -3
  113. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +12 -12
  114. package/src/PileupRenderer/PileupRenderer.tsx +0 -2
  115. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +0 -1
@@ -1,265 +1,191 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __read = (this && this.__read) || function (o, n) {
50
- var m = typeof Symbol === "function" && o[Symbol.iterator];
51
- if (!m) return o;
52
- var i = m.call(o), r, ar = [], e;
53
- try {
54
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
- }
56
- catch (error) { e = { error: error }; }
57
- finally {
58
- try {
59
- if (r && !r.done && (m = i["return"])) m.call(i);
60
- }
61
- finally { if (e) throw e.error; }
62
- }
63
- return ar;
64
- };
65
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
66
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
67
- if (ar || !(i in from)) {
68
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
69
- ar[i] = from[i];
70
- }
71
- }
72
- return to.concat(ar || Array.prototype.slice.call(from));
73
- };
74
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
75
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
76
4
  };
77
5
  Object.defineProperty(exports, "__esModule", { value: true });
78
- var mobx_state_tree_1 = require("mobx-state-tree");
79
- var mobx_1 = require("mobx");
80
- var configuration_1 = require("@jbrowse/core/configuration");
81
- var plugin_wiggle_1 = require("@jbrowse/plugin-wiggle");
82
- var util_1 = require("@jbrowse/core/util");
6
+ const mobx_state_tree_1 = require("mobx-state-tree");
7
+ const mobx_1 = require("mobx");
8
+ const configuration_1 = require("@jbrowse/core/configuration");
9
+ const plugin_wiggle_1 = require("@jbrowse/plugin-wiggle");
10
+ const util_1 = require("@jbrowse/core/util");
83
11
  // locals
84
- var Tooltip_1 = __importDefault(require("../components/Tooltip"));
85
- var shared_1 = require("../../shared");
12
+ const Tooltip_1 = __importDefault(require("../components/Tooltip"));
13
+ const shared_1 = require("../../shared");
86
14
  // using a map because it preserves order
87
- var rendererTypes = new Map([['snpcoverage', 'SNPCoverageRenderer']]);
88
- var stateModelFactory = function (pluginManager, configSchema) {
89
- return mobx_state_tree_1.types
90
- .compose('LinearSNPCoverageDisplay', (0, plugin_wiggle_1.linearWiggleDisplayModelFactory)(pluginManager, configSchema), mobx_state_tree_1.types.model({
91
- type: mobx_state_tree_1.types.literal('LinearSNPCoverageDisplay'),
92
- drawInterbaseCounts: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
93
- drawIndicators: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
94
- drawArcs: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
95
- filterBy: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.model({
96
- flagInclude: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.number, 0),
97
- flagExclude: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.number, 1540),
98
- readName: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
99
- tagFilter: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.model({ tag: mobx_state_tree_1.types.string, value: mobx_state_tree_1.types.string })),
100
- }), {}),
101
- colorBy: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.model({
102
- type: mobx_state_tree_1.types.string,
103
- tag: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
104
- })),
105
- }))
106
- .volatile(function () { return ({
107
- modificationTagMap: mobx_1.observable.map({}),
108
- }); })
109
- .actions(function (self) { return ({
110
- setConfig: function (configuration) {
111
- self.configuration = configuration;
15
+ const rendererTypes = new Map([['snpcoverage', 'SNPCoverageRenderer']]);
16
+ const stateModelFactory = (pluginManager, configSchema) => mobx_state_tree_1.types
17
+ .compose('LinearSNPCoverageDisplay', (0, plugin_wiggle_1.linearWiggleDisplayModelFactory)(pluginManager, configSchema), mobx_state_tree_1.types.model({
18
+ type: mobx_state_tree_1.types.literal('LinearSNPCoverageDisplay'),
19
+ drawInterbaseCounts: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
20
+ drawIndicators: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
21
+ drawArcs: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
22
+ filterBy: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.model({
23
+ flagInclude: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.number, 0),
24
+ flagExclude: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.number, 1540),
25
+ readName: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
26
+ tagFilter: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.model({ tag: mobx_state_tree_1.types.string, value: mobx_state_tree_1.types.string })),
27
+ }), {}),
28
+ colorBy: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.model({
29
+ type: mobx_state_tree_1.types.string,
30
+ tag: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
31
+ })),
32
+ }))
33
+ .volatile(() => ({
34
+ modificationTagMap: mobx_1.observable.map({}),
35
+ }))
36
+ .actions(self => ({
37
+ setConfig(configuration) {
38
+ self.configuration = configuration;
39
+ },
40
+ setFilterBy(filter) {
41
+ self.filterBy = (0, mobx_state_tree_1.cast)(filter);
42
+ },
43
+ setColorBy(colorBy) {
44
+ self.colorBy = (0, mobx_state_tree_1.cast)(colorBy);
45
+ },
46
+ updateModificationColorMap(uniqueModifications) {
47
+ const colorPalette = ['red', 'blue', 'green', 'orange', 'purple'];
48
+ let i = 0;
49
+ uniqueModifications.forEach(value => {
50
+ if (!self.modificationTagMap.has(value)) {
51
+ const newColor = colorPalette[i++];
52
+ self.modificationTagMap.set(value, newColor);
53
+ }
54
+ });
55
+ },
56
+ }))
57
+ .views(self => {
58
+ const { renderProps: superRenderProps } = self;
59
+ return {
60
+ get rendererConfig() {
61
+ var _a, _b, _c;
62
+ const configBlob = (0, configuration_1.getConf)(self, ['renderers', self.rendererTypeName]) || {};
63
+ return self.rendererType.configSchema.create({
64
+ ...configBlob,
65
+ drawInterbaseCounts: (_a = self.drawInterbaseCounts) !== null && _a !== void 0 ? _a : configBlob.drawInterbaseCounts,
66
+ drawIndicators: (_b = self.drawIndicators) !== null && _b !== void 0 ? _b : configBlob.drawIndicators,
67
+ drawArcs: (_c = self.drawArcs) !== null && _c !== void 0 ? _c : configBlob.drawArcs,
68
+ }, (0, mobx_state_tree_1.getEnv)(self));
69
+ },
70
+ get drawArcsSetting() {
71
+ var _a;
72
+ return ((_a = self.drawArcs) !== null && _a !== void 0 ? _a : (0, configuration_1.readConfObject)(this.rendererConfig, 'drawArcs'));
73
+ },
74
+ get drawInterbaseCountsSetting() {
75
+ var _a;
76
+ return ((_a = self.drawInterbaseCounts) !== null && _a !== void 0 ? _a : (0, configuration_1.readConfObject)(this.rendererConfig, 'drawInterbaseCounts'));
112
77
  },
113
- setFilterBy: function (filter) {
114
- self.filterBy = (0, mobx_state_tree_1.cast)(filter);
78
+ get drawIndicatorsSetting() {
79
+ var _a;
80
+ return ((_a = self.drawIndicators) !== null && _a !== void 0 ? _a : (0, configuration_1.readConfObject)(this.rendererConfig, 'drawIndicators'));
115
81
  },
116
- setColorBy: function (colorBy) {
117
- self.colorBy = (0, mobx_state_tree_1.cast)(colorBy);
82
+ get modificationsReady() {
83
+ var _a;
84
+ return ((_a = self.colorBy) === null || _a === void 0 ? void 0 : _a.type) === 'modifications'
85
+ ? Object.keys(JSON.parse(JSON.stringify(self.modificationTagMap)))
86
+ .length > 0
87
+ : true;
118
88
  },
119
- updateModificationColorMap: function (uniqueModifications) {
120
- var colorPalette = ['red', 'blue', 'green', 'orange', 'purple'];
121
- var i = 0;
122
- uniqueModifications.forEach(function (value) {
123
- if (!self.modificationTagMap.has(value)) {
124
- var newColor = colorPalette[i++];
125
- self.modificationTagMap.set(value, newColor);
89
+ renderProps() {
90
+ const superProps = superRenderProps();
91
+ const { colorBy, filterBy, modificationTagMap } = self;
92
+ return {
93
+ ...superProps,
94
+ notReady: superProps.notReady || !this.modificationsReady,
95
+ modificationTagMap: Object.fromEntries(modificationTagMap.toJSON()),
96
+ // must use getSnapshot because otherwise changes to e.g. just the
97
+ // colorBy.type are not read
98
+ colorBy: colorBy ? (0, mobx_state_tree_1.getSnapshot)(colorBy) : undefined,
99
+ filterBy: filterBy ? (0, mobx_state_tree_1.getSnapshot)(filterBy) : undefined,
100
+ };
101
+ },
102
+ };
103
+ })
104
+ .actions(self => ({
105
+ toggleDrawIndicators() {
106
+ self.drawIndicators = !self.drawIndicatorsSetting;
107
+ },
108
+ toggleDrawInterbaseCounts() {
109
+ self.drawInterbaseCounts = !self.drawInterbaseCountsSetting;
110
+ },
111
+ toggleDrawArcs() {
112
+ self.drawArcs = !self.drawArcsSetting;
113
+ },
114
+ afterAttach() {
115
+ (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(async () => {
116
+ try {
117
+ const { colorBy } = self;
118
+ const { staticBlocks } = (0, util_1.getContainingView)(self);
119
+ if (!self.estimatedStatsReady) {
120
+ return;
121
+ }
122
+ if (self.regionTooLarge) {
123
+ return;
126
124
  }
127
- });
125
+ if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications') {
126
+ const vals = await (0, shared_1.getUniqueModificationValues)(self, (0, configuration_1.getConf)(self.parentTrack, 'adapter'), colorBy, staticBlocks);
127
+ self.updateModificationColorMap(vals);
128
+ }
129
+ }
130
+ catch (error) {
131
+ console.error(error);
132
+ self.setError(error);
133
+ }
134
+ }, { delay: 1000 }));
135
+ },
136
+ }))
137
+ .views(self => {
138
+ const { trackMenuItems: superTrackMenuItems } = self;
139
+ return {
140
+ get TooltipComponent() {
141
+ return Tooltip_1.default;
128
142
  },
129
- }); })
130
- .views(function (self) {
131
- var superRenderProps = self.renderProps;
132
- return {
133
- get rendererConfig() {
134
- var _a, _b, _c;
135
- var configBlob = (0, configuration_1.getConf)(self, ['renderers', self.rendererTypeName]) || {};
136
- return self.rendererType.configSchema.create(__assign(__assign({}, configBlob), { drawInterbaseCounts: (_a = self.drawInterbaseCounts) !== null && _a !== void 0 ? _a : configBlob.drawInterbaseCounts, drawIndicators: (_b = self.drawIndicators) !== null && _b !== void 0 ? _b : configBlob.drawIndicators, drawArcs: (_c = self.drawArcs) !== null && _c !== void 0 ? _c : configBlob.drawArcs }), (0, mobx_state_tree_1.getEnv)(self));
137
- },
138
- get drawArcsSetting() {
139
- var _a;
140
- return ((_a = self.drawArcs) !== null && _a !== void 0 ? _a : (0, configuration_1.readConfObject)(this.rendererConfig, 'drawArcs'));
141
- },
142
- get drawInterbaseCountsSetting() {
143
- var _a;
144
- return ((_a = self.drawInterbaseCounts) !== null && _a !== void 0 ? _a : (0, configuration_1.readConfObject)(this.rendererConfig, 'drawInterbaseCounts'));
145
- },
146
- get drawIndicatorsSetting() {
147
- var _a;
148
- return ((_a = self.drawIndicators) !== null && _a !== void 0 ? _a : (0, configuration_1.readConfObject)(this.rendererConfig, 'drawIndicators'));
149
- },
150
- get modificationsReady() {
151
- var _a;
152
- return ((_a = self.colorBy) === null || _a === void 0 ? void 0 : _a.type) === 'modifications'
153
- ? Object.keys(JSON.parse(JSON.stringify(self.modificationTagMap)))
154
- .length > 0
155
- : true;
156
- },
157
- renderProps: function () {
158
- var superProps = superRenderProps();
159
- var colorBy = self.colorBy, filterBy = self.filterBy, modificationTagMap = self.modificationTagMap;
160
- return __assign(__assign({}, superProps), { notReady: superProps.notReady || !this.modificationsReady, modificationTagMap: Object.fromEntries(modificationTagMap.toJSON()),
161
- // must use getSnapshot because otherwise changes to e.g. just the
162
- // colorBy.type are not read
163
- colorBy: colorBy ? (0, mobx_state_tree_1.getSnapshot)(colorBy) : undefined, filterBy: filterBy ? (0, mobx_state_tree_1.getSnapshot)(filterBy) : undefined });
164
- },
165
- };
166
- })
167
- .actions(function (self) { return ({
168
- toggleDrawIndicators: function () {
169
- self.drawIndicators = !self.drawIndicatorsSetting;
143
+ get adapterConfig() {
144
+ const subadapter = (0, configuration_1.getConf)(self.parentTrack, 'adapter');
145
+ return {
146
+ type: 'SNPCoverageAdapter',
147
+ subadapter,
148
+ };
170
149
  },
171
- toggleDrawInterbaseCounts: function () {
172
- self.drawInterbaseCounts = !self.drawInterbaseCountsSetting;
150
+ get rendererTypeName() {
151
+ return rendererTypes.get('snpcoverage');
173
152
  },
174
- toggleDrawArcs: function () {
175
- self.drawArcs = !self.drawArcsSetting;
153
+ get needsScalebar() {
154
+ return true;
176
155
  },
177
- afterAttach: function () {
178
- var _this = this;
179
- (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(function () { return __awaiter(_this, void 0, void 0, function () {
180
- var colorBy, staticBlocks, vals, error_1;
181
- return __generator(this, function (_a) {
182
- switch (_a.label) {
183
- case 0:
184
- _a.trys.push([0, 3, , 4]);
185
- colorBy = self.colorBy;
186
- staticBlocks = (0, util_1.getContainingView)(self).staticBlocks;
187
- if (!self.estimatedStatsReady) {
188
- return [2 /*return*/];
189
- }
190
- if (self.regionTooLarge) {
191
- return [2 /*return*/];
192
- }
193
- if (!((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications')) return [3 /*break*/, 2];
194
- return [4 /*yield*/, (0, shared_1.getUniqueModificationValues)(self, (0, configuration_1.getConf)(self.parentTrack, 'adapter'), colorBy, staticBlocks)];
195
- case 1:
196
- vals = _a.sent();
197
- self.updateModificationColorMap(vals);
198
- _a.label = 2;
199
- case 2: return [3 /*break*/, 4];
200
- case 3:
201
- error_1 = _a.sent();
202
- console.error(error_1);
203
- self.setError(error_1);
204
- return [3 /*break*/, 4];
205
- case 4: return [2 /*return*/];
206
- }
207
- });
208
- }); }, { delay: 1000 }));
156
+ contextMenuItems() {
157
+ return [];
209
158
  },
210
- }); })
211
- .views(function (self) {
212
- var superTrackMenuItems = self.trackMenuItems;
213
- return {
214
- get TooltipComponent() {
215
- return Tooltip_1.default;
216
- },
217
- get adapterConfig() {
218
- var subadapter = (0, configuration_1.getConf)(self.parentTrack, 'adapter');
219
- return {
220
- type: 'SNPCoverageAdapter',
221
- subadapter: subadapter,
222
- };
223
- },
224
- get rendererTypeName() {
225
- return rendererTypes.get('snpcoverage');
226
- },
227
- get needsScalebar() {
228
- return true;
229
- },
230
- contextMenuItems: function () {
231
- return [];
232
- },
233
- trackMenuItems: function () {
234
- return __spreadArray(__spreadArray([], __read(superTrackMenuItems()), false), [
235
- {
236
- label: 'Draw insertion/clipping indicators',
237
- type: 'checkbox',
238
- checked: self.drawIndicatorsSetting,
239
- onClick: function () {
240
- self.toggleDrawIndicators();
241
- },
159
+ trackMenuItems() {
160
+ return [
161
+ ...superTrackMenuItems(),
162
+ {
163
+ label: 'Draw insertion/clipping indicators',
164
+ type: 'checkbox',
165
+ checked: self.drawIndicatorsSetting,
166
+ onClick: () => {
167
+ self.toggleDrawIndicators();
242
168
  },
243
- {
244
- label: 'Draw insertion/clipping counts',
245
- type: 'checkbox',
246
- checked: self.drawInterbaseCountsSetting,
247
- onClick: function () {
248
- self.toggleDrawInterbaseCounts();
249
- },
169
+ },
170
+ {
171
+ label: 'Draw insertion/clipping counts',
172
+ type: 'checkbox',
173
+ checked: self.drawInterbaseCountsSetting,
174
+ onClick: () => {
175
+ self.toggleDrawInterbaseCounts();
250
176
  },
251
- {
252
- label: 'Draw arcs',
253
- type: 'checkbox',
254
- checked: self.drawArcsSetting,
255
- onClick: function () {
256
- self.toggleDrawArcs();
257
- },
177
+ },
178
+ {
179
+ label: 'Draw arcs',
180
+ type: 'checkbox',
181
+ checked: self.drawArcsSetting,
182
+ onClick: () => {
183
+ self.toggleDrawArcs();
258
184
  },
259
- ], false);
260
- },
261
- };
262
- });
263
- };
185
+ },
186
+ ];
187
+ },
188
+ };
189
+ });
264
190
  exports.default = stateModelFactory;
265
191
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/LinearSNPCoverageDisplay/models/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/LinearSNPCoverageDisplay/models/model.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,24 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
15
4
  // see perf results on object.keys vs for-in loop
16
5
  // https://jsperf.com/object-keys-vs-hasownproperty/55
17
- var NestedFrequencyTable = /** @class */ (function () {
18
- function NestedFrequencyTable(initialData) {
19
- if (initialData === void 0) { initialData = {}; }
20
- this.categories = __assign({}, initialData);
6
+ class NestedFrequencyTable {
7
+ constructor(initialData = {}) {
8
+ this.categories = { ...initialData };
21
9
  }
22
10
  // get the sum of all the category counts
23
- NestedFrequencyTable.prototype.total = function () {
11
+ total() {
24
12
  // calculate total if necessary
25
- var t = 0;
26
- for (var k in this.categories) {
27
- var v = this.categories[k];
13
+ let t = 0;
14
+ for (const k in this.categories) {
15
+ const v = this.categories[k];
28
16
  t += v.total ? v.total() : v;
29
17
  }
30
18
  return t;
31
- };
19
+ }
32
20
  // decrement the count for the given category
33
- NestedFrequencyTable.prototype.decrement = function (slotName, amount) {
21
+ decrement(slotName, amount) {
34
22
  if (!amount) {
35
23
  amount = 1;
36
24
  }
@@ -45,9 +33,9 @@ var NestedFrequencyTable = /** @class */ (function () {
45
33
  return this.categories[slotName];
46
34
  }
47
35
  return 0;
48
- };
36
+ }
49
37
  // increment the count for the given category
50
- NestedFrequencyTable.prototype.increment = function (slotName, amount) {
38
+ increment(slotName, amount) {
51
39
  if (!amount) {
52
40
  amount = 1;
53
41
  }
@@ -59,22 +47,22 @@ var NestedFrequencyTable = /** @class */ (function () {
59
47
  }
60
48
  this.categories[slotName] = (this.categories[slotName] || 0) + amount;
61
49
  return this.categories[slotName];
62
- };
50
+ }
63
51
  // get the value of the given category. may be a number or a
64
52
  // frequency table.
65
- NestedFrequencyTable.prototype.get = function (slotName) {
53
+ get(slotName) {
66
54
  return this.categories[slotName] || 0;
67
- };
55
+ }
68
56
  // get a given category as a frequency table
69
- NestedFrequencyTable.prototype.getNested = function (path) {
57
+ getNested(path) {
70
58
  if (typeof path === 'string') {
71
59
  path = path.split('/');
72
60
  }
73
61
  if (!path.length) {
74
62
  return this;
75
63
  }
76
- var slotName = path[0].toString();
77
- var slot = this.categories[slotName];
64
+ const slotName = path[0].toString();
65
+ let slot = this.categories[slotName];
78
66
  if (!slot || !slot.categories) {
79
67
  this.categories[slotName] = new NestedFrequencyTable(slot ? { default: slot + 0 } : {});
80
68
  }
@@ -83,35 +71,34 @@ var NestedFrequencyTable = /** @class */ (function () {
83
71
  return slot.getNested(path.slice(1));
84
72
  }
85
73
  return slot;
86
- };
87
- NestedFrequencyTable.prototype.toString = function () {
74
+ }
75
+ toString() {
88
76
  return this.total()
89
77
  .toPrecision(6)
90
78
  .toString()
91
79
  .replace(/\.?0+$/, '');
92
- };
93
- NestedFrequencyTable.prototype.valueOf = function () {
80
+ }
81
+ valueOf() {
94
82
  return this.total();
95
- };
83
+ }
96
84
  // iterate through the categories and counts, call like:
97
85
  //
98
86
  // tbl.forEach( function( count, categoryName ) {
99
87
  // // do something
100
88
  // }, this );
101
89
  //
102
- NestedFrequencyTable.prototype.forEach = function (func, ctx) {
90
+ forEach(func, ctx) {
103
91
  if (ctx) {
104
- for (var slotName in this.categories) {
92
+ for (const slotName in this.categories) {
105
93
  func.call(ctx, this.categories[slotName], slotName);
106
94
  }
107
95
  }
108
96
  else {
109
- for (var slotName in this.categories) {
97
+ for (const slotName in this.categories) {
110
98
  func(this.categories[slotName], slotName);
111
99
  }
112
100
  }
113
- };
114
- return NestedFrequencyTable;
115
- }());
101
+ }
102
+ }
116
103
  exports.default = NestedFrequencyTable;
117
104
  //# sourceMappingURL=NestedFrequencyTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NestedFrequencyTable.js","sourceRoot":"","sources":["../src/NestedFrequencyTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestedFrequencyTable.js","sourceRoot":"","sources":["../src/NestedFrequencyTable.ts"],"names":[],"mappings":"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"}