@jbrowse/plugin-variants 1.7.9 → 2.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 (109) hide show
  1. package/dist/ChordVariantDisplay/index.d.ts +2 -1
  2. package/dist/ChordVariantDisplay/index.js +19 -31
  3. package/dist/ChordVariantDisplay/index.js.map +1 -0
  4. package/dist/ChordVariantDisplay/models/ChordVariantDisplay.d.ts +94 -2
  5. package/dist/ChordVariantDisplay/models/ChordVariantDisplay.js +39 -71
  6. package/dist/ChordVariantDisplay/models/ChordVariantDisplay.js.map +1 -0
  7. package/dist/LinearVariantDisplay/configSchema.js +9 -16
  8. package/dist/LinearVariantDisplay/configSchema.js.map +1 -0
  9. package/dist/LinearVariantDisplay/index.js +10 -22
  10. package/dist/LinearVariantDisplay/index.js.map +1 -0
  11. package/dist/LinearVariantDisplay/model.d.ts +18 -13
  12. package/dist/LinearVariantDisplay/model.js +83 -73
  13. package/dist/LinearVariantDisplay/model.js.map +1 -0
  14. package/dist/StructuralVariantChordRenderer/ReactComponent.js +193 -214
  15. package/dist/StructuralVariantChordRenderer/ReactComponent.js.map +1 -0
  16. package/dist/StructuralVariantChordRenderer/index.js +36 -46
  17. package/dist/StructuralVariantChordRenderer/index.js.map +1 -0
  18. package/dist/VariantFeatureWidget/BreakendOptionDialog.d.ts +1 -1
  19. package/dist/VariantFeatureWidget/BreakendOptionDialog.js +95 -119
  20. package/dist/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -0
  21. package/dist/VariantFeatureWidget/VariantFeatureWidget.js +193 -240
  22. package/dist/VariantFeatureWidget/VariantFeatureWidget.js.map +1 -0
  23. package/dist/VariantFeatureWidget/index.d.ts +32 -6
  24. package/dist/VariantFeatureWidget/index.js +14 -33
  25. package/dist/VariantFeatureWidget/index.js.map +1 -0
  26. package/dist/VcfAdapter/VcfAdapter.js +232 -372
  27. package/dist/VcfAdapter/VcfAdapter.js.map +1 -0
  28. package/dist/VcfAdapter/configSchema.js +9 -21
  29. package/dist/VcfAdapter/configSchema.js.map +1 -0
  30. package/dist/VcfAdapter/index.js +8 -14
  31. package/dist/VcfAdapter/index.js.map +1 -0
  32. package/dist/VcfTabixAdapter/VcfFeature.js +203 -246
  33. package/dist/VcfTabixAdapter/VcfFeature.js.map +1 -0
  34. package/dist/VcfTabixAdapter/VcfTabixAdapter.js +237 -374
  35. package/dist/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -0
  36. package/dist/VcfTabixAdapter/configSchema.js +23 -36
  37. package/dist/VcfTabixAdapter/configSchema.js.map +1 -0
  38. package/dist/VcfTabixAdapter/index.js +8 -14
  39. package/dist/VcfTabixAdapter/index.js.map +1 -0
  40. package/dist/index.js +160 -203
  41. package/dist/index.js.map +1 -0
  42. package/esm/ChordVariantDisplay/index.d.ts +4 -0
  43. package/esm/ChordVariantDisplay/index.js +16 -0
  44. package/esm/ChordVariantDisplay/index.js.map +1 -0
  45. package/esm/ChordVariantDisplay/models/ChordVariantDisplay.d.ts +97 -0
  46. package/esm/ChordVariantDisplay/models/ChordVariantDisplay.js +40 -0
  47. package/esm/ChordVariantDisplay/models/ChordVariantDisplay.js.map +1 -0
  48. package/esm/LinearVariantDisplay/configSchema.d.ts +5 -0
  49. package/esm/LinearVariantDisplay/configSchema.js +7 -0
  50. package/esm/LinearVariantDisplay/configSchema.js.map +1 -0
  51. package/esm/LinearVariantDisplay/index.d.ts +2 -0
  52. package/esm/LinearVariantDisplay/index.js +3 -0
  53. package/esm/LinearVariantDisplay/index.js.map +1 -0
  54. package/esm/LinearVariantDisplay/model.d.ts +212 -0
  55. package/esm/LinearVariantDisplay/model.js +34 -0
  56. package/esm/LinearVariantDisplay/model.js.map +1 -0
  57. package/esm/StructuralVariantChordRenderer/ReactComponent.d.ts +24 -0
  58. package/esm/StructuralVariantChordRenderer/ReactComponent.js +133 -0
  59. package/esm/StructuralVariantChordRenderer/ReactComponent.js.map +1 -0
  60. package/esm/StructuralVariantChordRenderer/index.d.ts +3 -0
  61. package/esm/StructuralVariantChordRenderer/index.js +33 -0
  62. package/esm/StructuralVariantChordRenderer/index.js.map +1 -0
  63. package/esm/VariantFeatureWidget/BreakendOptionDialog.d.ts +10 -0
  64. package/esm/VariantFeatureWidget/BreakendOptionDialog.js +58 -0
  65. package/esm/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -0
  66. package/esm/VariantFeatureWidget/VariantFeatureWidget.d.ts +4 -0
  67. package/esm/VariantFeatureWidget/VariantFeatureWidget.js +129 -0
  68. package/esm/VariantFeatureWidget/VariantFeatureWidget.js.map +1 -0
  69. package/esm/VariantFeatureWidget/index.d.ts +37 -0
  70. package/esm/VariantFeatureWidget/index.js +12 -0
  71. package/esm/VariantFeatureWidget/index.js.map +1 -0
  72. package/esm/VcfAdapter/VcfAdapter.d.ts +24 -0
  73. package/esm/VcfAdapter/VcfAdapter.js +99 -0
  74. package/esm/VcfAdapter/VcfAdapter.js.map +1 -0
  75. package/esm/VcfAdapter/configSchema.d.ts +2 -0
  76. package/esm/VcfAdapter/configSchema.js +8 -0
  77. package/esm/VcfAdapter/configSchema.js.map +1 -0
  78. package/esm/VcfAdapter/index.d.ts +1 -0
  79. package/esm/VcfAdapter/index.js +2 -0
  80. package/esm/VcfAdapter/index.js.map +1 -0
  81. package/esm/VcfTabixAdapter/VcfFeature.d.ts +59 -0
  82. package/esm/VcfTabixAdapter/VcfFeature.js +184 -0
  83. package/esm/VcfTabixAdapter/VcfFeature.js.map +1 -0
  84. package/esm/VcfTabixAdapter/VcfTabixAdapter.d.ts +35 -0
  85. package/esm/VcfTabixAdapter/VcfTabixAdapter.js +112 -0
  86. package/esm/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -0
  87. package/esm/VcfTabixAdapter/configSchema.d.ts +2 -0
  88. package/esm/VcfTabixAdapter/configSchema.js +23 -0
  89. package/esm/VcfTabixAdapter/configSchema.js.map +1 -0
  90. package/esm/VcfTabixAdapter/index.d.ts +1 -0
  91. package/esm/VcfTabixAdapter/index.js +2 -0
  92. package/esm/VcfTabixAdapter/index.js.map +1 -0
  93. package/esm/index.d.ts +7 -0
  94. package/esm/index.js +110 -0
  95. package/esm/index.js.map +1 -0
  96. package/package.json +20 -11
  97. package/src/ChordVariantDisplay/index.ts +4 -4
  98. package/src/ChordVariantDisplay/models/ChordVariantDisplay.js +7 -8
  99. package/src/VariantFeatureWidget/BreakendOptionDialog.tsx +8 -9
  100. package/src/VariantFeatureWidget/VariantFeatureWidget.tsx +2 -3
  101. package/src/VariantFeatureWidget/__snapshots__/VariantFeatureWidget.test.js.snap +52 -57
  102. package/src/VariantFeatureWidget/index.ts +17 -0
  103. package/dist/LinearVariantDisplay/configSchema.test.js +0 -92
  104. package/dist/VariantFeatureWidget/VariantFeatureWidget.test.js +0 -56
  105. package/dist/VcfAdapter/VcfAdapter.test.js +0 -55
  106. package/dist/VcfTabixAdapter/VcfFeature.test.js +0 -106
  107. package/dist/VcfTabixAdapter/VcfTabixAdapter.test.js +0 -99
  108. package/dist/index.test.js +0 -37
  109. package/src/VariantFeatureWidget/index.js +0 -26
@@ -1,127 +1,103 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
9
17
  });
10
- exports.default = void 0;
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
- var _react = _interopRequireWildcard(require("react"));
15
-
16
- var _mobxReact = require("mobx-react");
17
-
18
- var _core = require("@material-ui/core");
19
-
20
- var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
21
-
22
- var _mobxStateTree = require("mobx-state-tree");
23
-
24
- var _util = require("@jbrowse/core/util");
25
-
26
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __read = (this && this.__read) || function (o, n) {
26
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
27
+ if (!m) return o;
28
+ var i = m.call(o), r, ar = [], e;
29
+ try {
30
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
31
+ }
32
+ catch (error) { e = { error: error }; }
33
+ finally {
34
+ try {
35
+ if (r && !r.done && (m = i["return"])) m.call(i);
36
+ }
37
+ finally { if (e) throw e.error; }
38
+ }
39
+ return ar;
40
+ };
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
30
45
  /* eslint-disable @typescript-eslint/no-explicit-any */
31
- var useStyles = (0, _core.makeStyles)(function (theme) {
32
- return {
46
+ var react_1 = __importStar(require("react"));
47
+ var mobx_react_1 = require("mobx-react");
48
+ var material_1 = require("@mui/material");
49
+ var mui_1 = require("tss-react/mui");
50
+ var Close_1 = __importDefault(require("@mui/icons-material/Close"));
51
+ var mobx_state_tree_1 = require("mobx-state-tree");
52
+ var util_1 = require("@jbrowse/core/util");
53
+ var useStyles = (0, mui_1.makeStyles)()(function (theme) { return ({
33
54
  closeButton: {
34
- position: 'absolute',
35
- right: theme.spacing(1),
36
- top: theme.spacing(1),
37
- color: theme.palette.grey[500]
55
+ position: 'absolute',
56
+ right: theme.spacing(1),
57
+ top: theme.spacing(1),
58
+ color: theme.palette.grey[500],
38
59
  },
39
60
  block: {
40
- display: 'block'
41
- }
42
- };
43
- });
44
-
45
- function BreakendOptionDialog(_ref) {
46
- var model = _ref.model,
47
- handleClose = _ref.handleClose,
48
- feature = _ref.feature,
49
- viewType = _ref.viewType;
50
- var classes = useStyles();
51
-
52
- var _useState = (0, _react.useState)(true),
53
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
54
- copyTracks = _useState2[0],
55
- setCopyTracks = _useState2[1];
56
-
57
- var _useState3 = (0, _react.useState)(true),
58
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
59
- mirrorTracks = _useState4[0],
60
- setMirrorTracks = _useState4[1];
61
-
62
- return /*#__PURE__*/_react.default.createElement(_core.Dialog, {
63
- open: true,
64
- onClose: handleClose
65
- }, /*#__PURE__*/_react.default.createElement(_core.DialogTitle, null, "Breakpoint split view options", handleClose ? /*#__PURE__*/_react.default.createElement(_core.IconButton, {
66
- className: classes.closeButton,
67
- onClick: function onClick() {
68
- return handleClose();
69
- }
70
- }, /*#__PURE__*/_react.default.createElement(_Close.default, null)) : null), /*#__PURE__*/_react.default.createElement(_core.Divider, null), /*#__PURE__*/_react.default.createElement(_core.DialogContent, null, /*#__PURE__*/_react.default.createElement(_core.FormControlLabel, {
71
- className: classes.block,
72
- control: /*#__PURE__*/_react.default.createElement(_core.Checkbox, {
73
- checked: copyTracks,
74
- onChange: function onChange() {
75
- return setCopyTracks(function (val) {
76
- return !val;
77
- });
78
- }
79
- }),
80
- label: "Copy tracks into the new view"
81
- }), /*#__PURE__*/_react.default.createElement(_core.FormControlLabel, {
82
- className: classes.block,
83
- control: /*#__PURE__*/_react.default.createElement(_core.Checkbox, {
84
- checked: mirrorTracks,
85
- onChange: function onChange() {
86
- return setMirrorTracks(function (val) {
87
- return !val;
88
- });
89
- }
90
- }),
91
- label: "Mirror tracks vertically in vertically stacked view"
92
- })), /*#__PURE__*/_react.default.createElement(_core.DialogActions, null, /*#__PURE__*/_react.default.createElement(_core.Button, {
93
- onClick: function onClick() {
94
- var view = model.view;
95
- var session = (0, _util.getSession)(model);
96
-
97
- try {
98
- var viewSnapshot = viewType.snapshotFromBreakendFeature(feature, view);
99
- viewSnapshot.views[0].offsetPx -= view.width / 2 + 100;
100
- viewSnapshot.views[1].offsetPx -= view.width / 2 + 100;
101
- viewSnapshot.featureData = feature;
102
- var viewTracks = (0, _mobxStateTree.getSnapshot)(view.tracks);
103
- viewSnapshot.views[0].tracks = viewTracks;
104
- viewSnapshot.views[1].tracks = mirrorTracks ? viewTracks.slice().reverse() : viewTracks;
105
- session.addView('BreakpointSplitView', viewSnapshot);
106
- } catch (e) {
107
- console.error(e);
108
- session.notify("".concat(e));
109
- }
110
-
111
- handleClose();
112
- },
113
- variant: "contained",
114
- color: "primary",
115
- autoFocus: true
116
- }, "OK"), /*#__PURE__*/_react.default.createElement(_core.Button, {
117
- onClick: function onClick() {
118
- return handleClose();
61
+ display: 'block',
119
62
  },
120
- color: "secondary",
121
- variant: "contained"
122
- }, "Cancel")));
63
+ }); });
64
+ function BreakendOptionDialog(_a) {
65
+ var model = _a.model, handleClose = _a.handleClose, feature = _a.feature, viewType = _a.viewType;
66
+ var classes = useStyles().classes;
67
+ var _b = __read((0, react_1.useState)(true), 2), copyTracks = _b[0], setCopyTracks = _b[1];
68
+ var _c = __read((0, react_1.useState)(true), 2), mirrorTracks = _c[0], setMirrorTracks = _c[1];
69
+ return (react_1.default.createElement(material_1.Dialog, { open: true, onClose: handleClose },
70
+ react_1.default.createElement(material_1.DialogTitle, null,
71
+ "Breakpoint split view options",
72
+ handleClose ? (react_1.default.createElement(material_1.IconButton, { className: classes.closeButton, onClick: function () { return handleClose(); } },
73
+ react_1.default.createElement(Close_1.default, null))) : null),
74
+ react_1.default.createElement(material_1.Divider, null),
75
+ react_1.default.createElement(material_1.DialogContent, null,
76
+ react_1.default.createElement(material_1.FormControlLabel, { className: classes.block, control: react_1.default.createElement(material_1.Checkbox, { checked: copyTracks, onChange: function () { return setCopyTracks(function (val) { return !val; }); } }), label: "Copy tracks into the new view" }),
77
+ react_1.default.createElement(material_1.FormControlLabel, { className: classes.block, control: react_1.default.createElement(material_1.Checkbox, { checked: mirrorTracks, onChange: function () { return setMirrorTracks(function (val) { return !val; }); } }), label: "Mirror tracks vertically in vertically stacked view" })),
78
+ react_1.default.createElement(material_1.DialogActions, null,
79
+ react_1.default.createElement(material_1.Button, { onClick: function () {
80
+ var view = model.view;
81
+ var session = (0, util_1.getSession)(model);
82
+ try {
83
+ var viewSnapshot = viewType.snapshotFromBreakendFeature(feature, view);
84
+ viewSnapshot.views[0].offsetPx -= view.width / 2 + 100;
85
+ viewSnapshot.views[1].offsetPx -= view.width / 2 + 100;
86
+ viewSnapshot.featureData = feature;
87
+ var viewTracks = (0, mobx_state_tree_1.getSnapshot)(view.tracks);
88
+ viewSnapshot.views[0].tracks = viewTracks;
89
+ viewSnapshot.views[1].tracks = mirrorTracks
90
+ ? viewTracks.slice().reverse()
91
+ : viewTracks;
92
+ session.addView('BreakpointSplitView', viewSnapshot);
93
+ }
94
+ catch (e) {
95
+ console.error(e);
96
+ session.notify("".concat(e));
97
+ }
98
+ handleClose();
99
+ }, variant: "contained", color: "primary", autoFocus: true }, "OK"),
100
+ react_1.default.createElement(material_1.Button, { onClick: function () { return handleClose(); }, color: "secondary", variant: "contained" }, "Cancel"))));
123
101
  }
124
-
125
- var _default = (0, _mobxReact.observer)(BreakendOptionDialog);
126
-
127
- exports.default = _default;
102
+ exports.default = (0, mobx_react_1.observer)(BreakendOptionDialog);
103
+ //# sourceMappingURL=BreakendOptionDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakendOptionDialog.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/BreakendOptionDialog.tsx"],"names":[],"mappings":"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"}