@jbrowse/plugin-circular-view 1.7.11 → 2.1.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 (98) hide show
  1. package/dist/BaseChordDisplay/components/BaseChordDisplay.d.ts +2 -7
  2. package/dist/BaseChordDisplay/components/BaseChordDisplay.js +18 -48
  3. package/dist/BaseChordDisplay/components/BaseChordDisplay.js.map +1 -0
  4. package/dist/BaseChordDisplay/components/DisplayError.d.ts +9 -4
  5. package/dist/BaseChordDisplay/components/DisplayError.js +24 -67
  6. package/dist/BaseChordDisplay/components/DisplayError.js.map +1 -0
  7. package/dist/BaseChordDisplay/components/Loading.d.ts +2 -3
  8. package/dist/BaseChordDisplay/components/Loading.js +98 -112
  9. package/dist/BaseChordDisplay/components/Loading.js.map +1 -0
  10. package/dist/BaseChordDisplay/components/RpcRenderedSvgGroup.d.ts +3 -3
  11. package/dist/BaseChordDisplay/components/RpcRenderedSvgGroup.js +80 -91
  12. package/dist/BaseChordDisplay/components/RpcRenderedSvgGroup.js.map +1 -0
  13. package/dist/BaseChordDisplay/index.d.ts +1 -1
  14. package/dist/BaseChordDisplay/index.js +12 -30
  15. package/dist/BaseChordDisplay/index.js.map +1 -0
  16. package/dist/BaseChordDisplay/models/BaseChordDisplayModel.d.ts +10 -10
  17. package/dist/BaseChordDisplay/models/BaseChordDisplayModel.js +204 -232
  18. package/dist/BaseChordDisplay/models/BaseChordDisplayModel.js.map +1 -0
  19. package/dist/BaseChordDisplay/models/baseChordDisplayConfig.js +12 -18
  20. package/dist/BaseChordDisplay/models/baseChordDisplayConfig.js.map +1 -0
  21. package/dist/BaseChordDisplay/models/renderReaction.js +115 -138
  22. package/dist/BaseChordDisplay/models/renderReaction.js.map +1 -0
  23. package/dist/CircularView/components/CircularView.js +111 -185
  24. package/dist/CircularView/components/CircularView.js.map +1 -0
  25. package/dist/CircularView/components/ImportForm.js +77 -92
  26. package/dist/CircularView/components/ImportForm.js.map +1 -0
  27. package/dist/CircularView/components/Ruler.js +148 -194
  28. package/dist/CircularView/components/Ruler.js.map +1 -0
  29. package/dist/CircularView/models/CircularView.d.ts +3 -3
  30. package/dist/CircularView/models/CircularView.js +346 -409
  31. package/dist/CircularView/models/CircularView.js.map +1 -0
  32. package/dist/CircularView/models/slices.js +90 -104
  33. package/dist/CircularView/models/slices.js.map +1 -0
  34. package/dist/CircularView/models/viewportVisibleRegion.js +229 -264
  35. package/dist/CircularView/models/viewportVisibleRegion.js.map +1 -0
  36. package/dist/index.d.ts +3 -1
  37. package/dist/index.js +147 -176
  38. package/dist/index.js.map +1 -0
  39. package/esm/BaseChordDisplay/components/BaseChordDisplay.d.ts +4 -0
  40. package/esm/BaseChordDisplay/components/BaseChordDisplay.js +17 -0
  41. package/esm/BaseChordDisplay/components/BaseChordDisplay.js.map +1 -0
  42. package/esm/BaseChordDisplay/components/DisplayError.d.ts +9 -0
  43. package/esm/BaseChordDisplay/components/DisplayError.js +21 -0
  44. package/esm/BaseChordDisplay/components/DisplayError.js.map +1 -0
  45. package/esm/BaseChordDisplay/components/Loading.d.ts +9 -0
  46. package/esm/BaseChordDisplay/components/Loading.js +66 -0
  47. package/esm/BaseChordDisplay/components/Loading.js.map +1 -0
  48. package/esm/BaseChordDisplay/components/RpcRenderedSvgGroup.d.ts +4 -0
  49. package/esm/BaseChordDisplay/components/RpcRenderedSvgGroup.js +48 -0
  50. package/esm/BaseChordDisplay/components/RpcRenderedSvgGroup.js.map +1 -0
  51. package/esm/BaseChordDisplay/index.d.ts +3 -0
  52. package/esm/BaseChordDisplay/index.js +4 -0
  53. package/esm/BaseChordDisplay/index.js.map +1 -0
  54. package/esm/BaseChordDisplay/models/BaseChordDisplayModel.d.ts +99 -0
  55. package/esm/BaseChordDisplay/models/BaseChordDisplayModel.js +181 -0
  56. package/esm/BaseChordDisplay/models/BaseChordDisplayModel.js.map +1 -0
  57. package/esm/BaseChordDisplay/models/baseChordDisplayConfig.d.ts +2 -0
  58. package/esm/BaseChordDisplay/models/baseChordDisplayConfig.js +11 -0
  59. package/esm/BaseChordDisplay/models/baseChordDisplayConfig.js.map +1 -0
  60. package/esm/BaseChordDisplay/models/renderReaction.d.ts +30 -0
  61. package/esm/BaseChordDisplay/models/renderReaction.js +52 -0
  62. package/esm/BaseChordDisplay/models/renderReaction.js.map +1 -0
  63. package/esm/CircularView/components/CircularView.d.ts +4 -0
  64. package/esm/CircularView/components/CircularView.js +121 -0
  65. package/esm/CircularView/components/CircularView.js.map +1 -0
  66. package/esm/CircularView/components/ImportForm.d.ts +5 -0
  67. package/esm/CircularView/components/ImportForm.js +40 -0
  68. package/esm/CircularView/components/ImportForm.js.map +1 -0
  69. package/esm/CircularView/components/Ruler.d.ts +5 -0
  70. package/esm/CircularView/components/Ruler.js +126 -0
  71. package/esm/CircularView/components/Ruler.js.map +1 -0
  72. package/esm/CircularView/models/CircularView.d.ts +97 -0
  73. package/esm/CircularView/models/CircularView.js +317 -0
  74. package/esm/CircularView/models/CircularView.js.map +1 -0
  75. package/esm/CircularView/models/slices.d.ts +27 -0
  76. package/esm/CircularView/models/slices.js +53 -0
  77. package/esm/CircularView/models/slices.js.map +1 -0
  78. package/esm/CircularView/models/viewportVisibleRegion.d.ts +6 -0
  79. package/esm/CircularView/models/viewportVisibleRegion.js +223 -0
  80. package/esm/CircularView/models/viewportVisibleRegion.js.map +1 -0
  81. package/esm/index.d.ts +10 -0
  82. package/esm/index.js +49 -0
  83. package/esm/index.js.map +1 -0
  84. package/package.json +20 -12
  85. package/src/BaseChordDisplay/components/BaseChordDisplay.tsx +13 -25
  86. package/src/BaseChordDisplay/components/DisplayError.js +64 -66
  87. package/src/BaseChordDisplay/components/Loading.tsx +104 -107
  88. package/src/BaseChordDisplay/components/RpcRenderedSvgGroup.js +44 -51
  89. package/src/BaseChordDisplay/index.ts +1 -1
  90. package/src/BaseChordDisplay/models/BaseChordDisplayModel.ts +2 -1
  91. package/src/CircularView/components/CircularView.js +17 -16
  92. package/src/CircularView/components/ImportForm.tsx +5 -5
  93. package/src/CircularView/components/Ruler.js +4 -3
  94. package/src/CircularView/models/CircularView.ts +29 -42
  95. package/src/CircularView/models/slices.ts +2 -7
  96. package/src/index.ts +5 -2
  97. package/dist/CircularView/models/slices.test.js +0 -83
  98. package/dist/CircularView/models/viewportVisibleRegion.test.js +0 -130
@@ -1,142 +1,119 @@
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
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
-
16
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
- var _excluded = ["html"];
19
-
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
-
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
-
24
- var _default = function _default(_ref) {
25
- var jbrequire = _ref.jbrequire;
26
-
27
- var _jbrequire = jbrequire('@jbrowse/core/util/tracks'),
28
- getRpcSessionId = _jbrequire.getRpcSessionId;
29
-
30
- var _jbrequire2 = jbrequire('@jbrowse/core/util'),
31
- getContainingView = _jbrequire2.getContainingView;
32
-
33
- var _jbrequire3 = jbrequire('@jbrowse/core/util'),
34
- getSession = _jbrequire3.getSession;
35
-
36
- function renderReactionData(self) {
37
- var _view$displayedRegion;
38
-
39
- var view = getContainingView(self);
40
- var rendererType = self.rendererType;
41
-
42
- var _getSession = getSession(view),
43
- rpcManager = _getSession.rpcManager;
44
-
45
- return {
46
- rendererType: rendererType,
47
- rpcManager: rpcManager,
48
- renderProps: self.renderProps(),
49
- renderArgs: {
50
- assemblyName: (_view$displayedRegion = view.displayedRegions[0]) === null || _view$displayedRegion === void 0 ? void 0 : _view$displayedRegion.assemblyName,
51
- adapterConfig: JSON.parse(JSON.stringify(self.adapterConfig)),
52
- rendererType: rendererType.name,
53
- regions: JSON.parse(JSON.stringify(view.displayedRegions)),
54
- blockDefinitions: self.blockDefinitions,
55
- sessionId: getRpcSessionId(self),
56
- timeout: 1000000
57
- }
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;
58
10
  };
59
- }
60
-
61
- function renderReactionEffect(_x, _x2, _x3) {
62
- return _renderReactionEffect.apply(this, arguments);
63
- }
64
-
65
- function _renderReactionEffect() {
66
- _renderReactionEffect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(props, signal, self) {
67
- var rendererType, rpcManager, cannotBeRenderedReason, renderArgs, renderProps, _yield$rendererType$r, html, data;
68
-
69
- return _regenerator.default.wrap(function _callee$(_context) {
70
- while (1) {
71
- switch (_context.prev = _context.next) {
72
- case 0:
73
- if (props) {
74
- _context.next = 2;
75
- break;
76
- }
77
-
78
- throw new Error('cannot render with no props');
79
-
80
- case 2:
81
- rendererType = props.rendererType, rpcManager = props.rpcManager, cannotBeRenderedReason = props.cannotBeRenderedReason, renderArgs = props.renderArgs, renderProps = props.renderProps;
82
-
83
- if (!cannotBeRenderedReason) {
84
- _context.next = 5;
85
- break;
86
- }
87
-
88
- return _context.abrupt("return", {
89
- message: cannotBeRenderedReason
90
- });
91
-
92
- case 5:
93
- if (!(!props.renderProps.radius || !props.renderArgs.regions || !props.renderArgs.regions.length)) {
94
- _context.next = 7;
95
- break;
96
- }
97
-
98
- return _context.abrupt("return", {
99
- message: 'Skipping render'
100
- });
101
-
102
- case 7:
103
- if (self.isCompatibleWithRenderer(rendererType)) {
104
- _context.next = 9;
105
- break;
106
- }
107
-
108
- throw new Error("renderer ".concat(rendererType.name, " is not compatible with this display type"));
109
-
110
- case 9:
111
- _context.next = 11;
112
- return rendererType.renderInClient(rpcManager, _objectSpread(_objectSpread(_objectSpread({}, renderArgs), renderProps), {}, {
113
- signal: signal
114
- }));
115
-
116
- case 11:
117
- _yield$rendererType$r = _context.sent;
118
- html = _yield$rendererType$r.html;
119
- data = (0, _objectWithoutProperties2.default)(_yield$rendererType$r, _excluded);
120
- return _context.abrupt("return", {
121
- html: html,
122
- data: data,
123
- renderingComponent: rendererType.ReactComponent
124
- });
125
-
126
- case 15:
127
- case "end":
128
- return _context.stop();
129
- }
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 __rest = (this && this.__rest) || function (s, e) {
50
+ var t = {};
51
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
52
+ t[p] = s[p];
53
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
54
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
55
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
56
+ t[p[i]] = s[p[i]];
130
57
  }
131
- }, _callee);
132
- }));
133
- return _renderReactionEffect.apply(this, arguments);
134
- }
135
-
136
- return {
137
- renderReactionData: renderReactionData,
138
- renderReactionEffect: renderReactionEffect
139
- };
58
+ return t;
140
59
  };
141
-
142
- exports.default = _default;
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ exports.default = (function (_a) {
62
+ var jbrequire = _a.jbrequire;
63
+ var getRpcSessionId = jbrequire('@jbrowse/core/util/tracks').getRpcSessionId;
64
+ var getContainingView = jbrequire('@jbrowse/core/util').getContainingView;
65
+ var getSession = jbrequire('@jbrowse/core/util').getSession;
66
+ function renderReactionData(self) {
67
+ var _a;
68
+ var view = getContainingView(self);
69
+ var rendererType = self.rendererType;
70
+ var rpcManager = getSession(view).rpcManager;
71
+ return {
72
+ rendererType: rendererType,
73
+ rpcManager: rpcManager,
74
+ renderProps: self.renderProps(),
75
+ renderArgs: {
76
+ assemblyName: (_a = view.displayedRegions[0]) === null || _a === void 0 ? void 0 : _a.assemblyName,
77
+ adapterConfig: JSON.parse(JSON.stringify(self.adapterConfig)),
78
+ rendererType: rendererType.name,
79
+ regions: JSON.parse(JSON.stringify(view.displayedRegions)),
80
+ blockDefinitions: self.blockDefinitions,
81
+ sessionId: getRpcSessionId(self),
82
+ timeout: 1000000,
83
+ },
84
+ };
85
+ }
86
+ function renderReactionEffect(props, signal, self) {
87
+ return __awaiter(this, void 0, void 0, function () {
88
+ var rendererType, rpcManager, cannotBeRenderedReason, renderArgs, renderProps, _a, html, data;
89
+ return __generator(this, function (_b) {
90
+ switch (_b.label) {
91
+ case 0:
92
+ if (!props) {
93
+ throw new Error('cannot render with no props');
94
+ }
95
+ rendererType = props.rendererType, rpcManager = props.rpcManager, cannotBeRenderedReason = props.cannotBeRenderedReason, renderArgs = props.renderArgs, renderProps = props.renderProps;
96
+ if (cannotBeRenderedReason) {
97
+ return [2 /*return*/, { message: cannotBeRenderedReason }];
98
+ }
99
+ // don't try to render 0 or NaN radius or no regions
100
+ if (!props.renderProps.radius ||
101
+ !props.renderArgs.regions ||
102
+ !props.renderArgs.regions.length) {
103
+ return [2 /*return*/, { message: 'Skipping render' }];
104
+ }
105
+ // check renderertype compatibility
106
+ if (!self.isCompatibleWithRenderer(rendererType)) {
107
+ throw new Error("renderer ".concat(rendererType.name, " is not compatible with this display type"));
108
+ }
109
+ return [4 /*yield*/, rendererType.renderInClient(rpcManager, __assign(__assign(__assign({}, renderArgs), renderProps), { signal: signal }))];
110
+ case 1:
111
+ _a = _b.sent(), html = _a.html, data = __rest(_a, ["html"]);
112
+ return [2 /*return*/, { html: html, data: data, renderingComponent: rendererType.ReactComponent }];
113
+ }
114
+ });
115
+ });
116
+ }
117
+ return { renderReactionData: renderReactionData, renderReactionEffect: renderReactionEffect };
118
+ });
119
+ //# sourceMappingURL=renderReaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderReaction.js","sourceRoot":"","sources":["../../../src/BaseChordDisplay/models/renderReaction.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mBAAe,UAAC,EAAa;QAAX,SAAS,eAAA;IACjB,IAAA,eAAe,GAAK,SAAS,CAAC,2BAA2B,CAAC,gBAA3C,CAA2C;IAC1D,IAAA,iBAAiB,GAAK,SAAS,CAAC,oBAAoB,CAAC,kBAApC,CAAoC;IACrD,IAAA,UAAU,GAAK,SAAS,CAAC,oBAAoB,CAAC,WAApC,CAAoC;IAEtD,SAAS,kBAAkB,CAAC,IAAI;;QAC9B,IAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAA,YAAY,GAAK,IAAI,aAAT,CAAS;QACrB,IAAA,UAAU,GAAK,UAAU,CAAC,IAAI,CAAC,WAArB,CAAqB;QAEvC,OAAO;YACL,YAAY,cAAA;YACZ,UAAU,YAAA;YACV,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;YAC/B,UAAU,EAAE;gBACV,YAAY,EAAE,MAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,0CAAE,YAAY;gBACpD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7D,YAAY,EAAE,YAAY,CAAC,IAAI;gBAC/B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC1D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC;gBAChC,OAAO,EAAE,OAAO;aACjB;SACF,CAAA;IACH,CAAC;IAED,SAAe,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;;;;;;wBACrD,IAAI,CAAC,KAAK,EAAE;4BACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;yBAC/C;wBAGC,YAAY,GAKV,KAAK,aALK,EACZ,UAAU,GAIR,KAAK,WAJG,EACV,sBAAsB,GAGpB,KAAK,uBAHe,EACtB,UAAU,GAER,KAAK,WAFG,EACV,WAAW,GACT,KAAK,YADI,CACJ;wBAET,IAAI,sBAAsB,EAAE;4BAC1B,sBAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAA;yBAC3C;wBAED,oDAAoD;wBACpD,IACE,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;4BACzB,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO;4BACzB,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAChC;4BACA,sBAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAA;yBACtC;wBAED,mCAAmC;wBACnC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,EAAE;4BAChD,MAAM,IAAI,KAAK,CACb,mBAAY,YAAY,CAAC,IAAI,8CAA2C,CACzE,CAAA;yBACF;wBAEyB,qBAAM,YAAY,CAAC,cAAc,CAAC,UAAU,iCACjE,UAAU,GACV,WAAW,KACd,MAAM,QAAA,IACN,EAAA;;wBAJI,KAAoB,SAIxB,EAJM,IAAI,UAAA,EAAK,IAAI,cAAf,QAAiB,CAAF;wBAMrB,sBAAO,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,kBAAkB,EAAE,YAAY,CAAC,cAAc,EAAE,EAAA;;;;KACvE;IAED,OAAO,EAAE,kBAAkB,oBAAA,EAAE,oBAAoB,sBAAA,EAAE,CAAA;AACrD,CAAC,EAAA"}
@@ -1,203 +1,129 @@
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
-
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var _mobxReact = require("mobx-react");
13
-
14
- var _ui = require("@jbrowse/core/ui");
15
-
16
- var _util = require("@jbrowse/core/util");
17
-
18
- var _core = require("@material-ui/core");
19
-
20
- var _colors = require("@material-ui/core/colors");
21
-
22
- var _ZoomOut = _interopRequireDefault(require("@material-ui/icons/ZoomOut"));
23
-
24
- var _ZoomIn = _interopRequireDefault(require("@material-ui/icons/ZoomIn"));
25
-
26
- var _RotateLeft = _interopRequireDefault(require("@material-ui/icons/RotateLeft"));
27
-
28
- var _RotateRight = _interopRequireDefault(require("@material-ui/icons/RotateRight"));
29
-
30
- var _LockOutlined = _interopRequireDefault(require("@material-ui/icons/LockOutlined"));
31
-
32
- var _LockOpen = _interopRequireDefault(require("@material-ui/icons/LockOpen"));
33
-
34
- var _Icons = require("@jbrowse/core/ui/Icons");
35
-
36
- var _Ruler = _interopRequireDefault(require("./Ruler"));
37
-
38
- var _ImportForm = _interopRequireDefault(require("./ImportForm"));
39
-
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var mobx_react_1 = require("mobx-react");
8
+ var ui_1 = require("@jbrowse/core/ui");
9
+ var util_1 = require("@jbrowse/core/util");
10
+ var material_1 = require("@mui/material");
11
+ var mui_1 = require("tss-react/mui");
12
+ var colors_1 = require("@mui/material/colors");
40
13
  // icons
14
+ var ZoomOut_1 = __importDefault(require("@mui/icons-material/ZoomOut"));
15
+ var ZoomIn_1 = __importDefault(require("@mui/icons-material/ZoomIn"));
16
+ var RotateLeft_1 = __importDefault(require("@mui/icons-material/RotateLeft"));
17
+ var RotateRight_1 = __importDefault(require("@mui/icons-material/RotateRight"));
18
+ var LockOpen_1 = __importDefault(require("@mui/icons-material/LockOpen"));
19
+ var Lock_1 = __importDefault(require("@mui/icons-material/Lock"));
20
+ var Icons_1 = require("@jbrowse/core/ui/Icons");
41
21
  // locals
22
+ var Ruler_1 = __importDefault(require("./Ruler"));
23
+ var ImportForm_1 = __importDefault(require("./ImportForm"));
42
24
  var dragHandleHeight = 3;
43
- var useStyles = (0, _core.makeStyles)(function (theme) {
44
- return {
25
+ var useStyles = (0, mui_1.makeStyles)()(function (theme) { return ({
45
26
  root: {
46
- position: 'relative',
47
- marginBottom: theme.spacing(1),
48
- overflow: 'hidden',
49
- background: 'white'
27
+ position: 'relative',
28
+ marginBottom: theme.spacing(1),
29
+ overflow: 'hidden',
30
+ background: 'white',
50
31
  },
51
32
  scroller: {
52
- overflow: 'auto'
33
+ overflow: 'auto',
53
34
  },
54
35
  sliceRoot: {
55
- background: 'none',
56
- // background: theme.palette.background.paper,
57
- boxSizing: 'content-box',
58
- display: 'block'
36
+ background: 'none',
37
+ // background: theme.palette.background.paper,
38
+ boxSizing: 'content-box',
39
+ display: 'block',
59
40
  },
60
41
  iconButton: {
61
- padding: '4px',
62
- margin: '0 2px 0 2px'
42
+ padding: '4px',
43
+ margin: '0 2px 0 2px',
63
44
  },
64
45
  controls: {
65
- overflow: 'hidden',
66
- whiteSpace: 'nowrap',
67
- position: 'absolute',
68
- background: _colors.grey[200],
69
- boxSizing: 'border-box',
70
- borderRight: '1px solid #a2a2a2',
71
- borderBottom: '1px solid #a2a2a2',
72
- left: 0,
73
- top: 0
46
+ overflow: 'hidden',
47
+ whiteSpace: 'nowrap',
48
+ position: 'absolute',
49
+ background: colors_1.grey[200],
50
+ boxSizing: 'border-box',
51
+ borderRight: '1px solid #a2a2a2',
52
+ borderBottom: '1px solid #a2a2a2',
53
+ left: 0,
54
+ top: 0,
74
55
  },
75
56
  importFormContainer: {
76
- marginBottom: theme.spacing(4)
77
- }
78
- };
79
- });
80
- var Slices = (0, _mobxReact.observer)(function (_ref) {
81
- var model = _ref.model;
82
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, model.staticSlices.map(function (slice) {
83
- return /*#__PURE__*/_react.default.createElement(_Ruler.default, {
84
- key: (0, _util.assembleLocString)(slice.region.elided ? slice.region.regions[0] : slice.region),
85
- model: model,
86
- slice: slice
87
- });
88
- }), model.tracks.map(function (track) {
89
- var display = track.displays[0];
90
- return /*#__PURE__*/_react.default.createElement(display.RenderingComponent, {
91
- key: display.id,
92
- display: display,
93
- view: model
94
- });
95
- }));
57
+ marginBottom: theme.spacing(4),
58
+ },
59
+ }); });
60
+ var Slices = (0, mobx_react_1.observer)(function (_a) {
61
+ var model = _a.model;
62
+ return (react_1.default.createElement(react_1.default.Fragment, null,
63
+ model.staticSlices.map(function (slice) { return (react_1.default.createElement(Ruler_1.default, { key: (0, util_1.assembleLocString)(slice.region.elided ? slice.region.regions[0] : slice.region), model: model, slice: slice })); }),
64
+ model.tracks.map(function (track) {
65
+ var display = track.displays[0];
66
+ return (react_1.default.createElement(display.RenderingComponent, { key: display.id, display: display, view: model }));
67
+ })));
96
68
  });
97
- var Controls = (0, _mobxReact.observer)(function (_ref2) {
98
- var model = _ref2.model,
99
- showingFigure = _ref2.showingFigure;
100
- var classes = useStyles();
101
- return /*#__PURE__*/_react.default.createElement("div", {
102
- className: classes.controls
103
- }, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
104
- onClick: model.zoomOutButton,
105
- className: classes.iconButton,
106
- title: model.lockedFitToWindow ? 'unlock to zoom out' : 'zoom out',
107
- disabled: !showingFigure || model.atMaxBpPerPx || model.lockedFitToWindow,
108
- color: "secondary"
109
- }, /*#__PURE__*/_react.default.createElement(_ZoomOut.default, null)), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
110
- onClick: model.zoomInButton,
111
- className: classes.iconButton,
112
- title: "zoom in",
113
- disabled: !showingFigure || model.atMinBpPerPx,
114
- color: "secondary"
115
- }, /*#__PURE__*/_react.default.createElement(_ZoomIn.default, null)), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
116
- onClick: model.rotateCounterClockwiseButton,
117
- className: classes.iconButton,
118
- title: "rotate counter-clockwise",
119
- disabled: !showingFigure,
120
- color: "secondary"
121
- }, /*#__PURE__*/_react.default.createElement(_RotateLeft.default, null)), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
122
- onClick: model.rotateClockwiseButton,
123
- className: classes.iconButton,
124
- title: "rotate clockwise",
125
- disabled: !showingFigure,
126
- color: "secondary"
127
- }, /*#__PURE__*/_react.default.createElement(_RotateRight.default, null)), /*#__PURE__*/_react.default.createElement(_core.IconButton, {
128
- onClick: model.toggleFitToWindowLock,
129
- className: classes.iconButton,
130
- title: model.lockedFitToWindow ? 'locked model to window size' : 'unlocked model to zoom further',
131
- disabled: model.tooSmallToLock,
132
- color: "secondary"
133
- }, model.lockedFitToWindow ? /*#__PURE__*/_react.default.createElement(_LockOutlined.default, null) : /*#__PURE__*/_react.default.createElement(_LockOpen.default, null)), model.hideTrackSelectorButton ? null : /*#__PURE__*/_react.default.createElement(_core.IconButton, {
134
- onClick: model.activateTrackSelector,
135
- title: "Open track selector",
136
- "data-testid": "circular_track_select",
137
- color: "secondary"
138
- }, /*#__PURE__*/_react.default.createElement(_Icons.TrackSelector, null)));
69
+ var Controls = (0, mobx_react_1.observer)(function (_a) {
70
+ var model = _a.model, showingFigure = _a.showingFigure;
71
+ var classes = useStyles().classes;
72
+ return (react_1.default.createElement("div", { className: classes.controls },
73
+ react_1.default.createElement(material_1.IconButton, { onClick: model.zoomOutButton, className: classes.iconButton, title: model.lockedFitToWindow ? 'unlock to zoom out' : 'zoom out', disabled: !showingFigure || model.atMaxBpPerPx || model.lockedFitToWindow, color: "secondary" },
74
+ react_1.default.createElement(ZoomOut_1.default, null)),
75
+ react_1.default.createElement(material_1.IconButton, { onClick: model.zoomInButton, className: classes.iconButton, title: "zoom in", disabled: !showingFigure || model.atMinBpPerPx, color: "secondary" },
76
+ react_1.default.createElement(ZoomIn_1.default, null)),
77
+ react_1.default.createElement(material_1.IconButton, { onClick: model.rotateCounterClockwiseButton, className: classes.iconButton, title: "rotate counter-clockwise", disabled: !showingFigure, color: "secondary" },
78
+ react_1.default.createElement(RotateLeft_1.default, null)),
79
+ react_1.default.createElement(material_1.IconButton, { onClick: model.rotateClockwiseButton, className: classes.iconButton, title: "rotate clockwise", disabled: !showingFigure, color: "secondary" },
80
+ react_1.default.createElement(RotateRight_1.default, null)),
81
+ react_1.default.createElement(material_1.IconButton, { onClick: model.toggleFitToWindowLock, className: classes.iconButton, title: model.lockedFitToWindow
82
+ ? 'locked model to window size'
83
+ : 'unlocked model to zoom further', disabled: model.tooSmallToLock, color: "secondary" }, model.lockedFitToWindow ? react_1.default.createElement(Lock_1.default, null) : react_1.default.createElement(LockOpen_1.default, null)),
84
+ model.hideTrackSelectorButton ? null : (react_1.default.createElement(material_1.IconButton, { onClick: model.activateTrackSelector, title: "Open track selector", "data-testid": "circular_track_select", color: "secondary" },
85
+ react_1.default.createElement(Icons_1.TrackSelector, null)))));
139
86
  });
140
- var CircularView = (0, _mobxReact.observer)(function (_ref3) {
141
- var model = _ref3.model;
142
- var classes = useStyles();
143
- var initialized = !!model.displayedRegions.length && model.figureWidth && model.figureHeight;
144
- var showImportForm = !initialized && !model.disableImportForm;
145
- var showFigure = initialized && !showImportForm;
146
- return /*#__PURE__*/_react.default.createElement("div", {
147
- className: classes.root,
148
- style: {
149
- width: model.width,
150
- height: model.height
151
- },
152
- "data-testid": model.id
153
- }, model.error ? /*#__PURE__*/_react.default.createElement(_ui.ErrorMessage, {
154
- error: model.error
155
- }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showImportForm ? /*#__PURE__*/_react.default.createElement(_ImportForm.default, {
156
- model: model
157
- }) : null, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !showFigure ? null : /*#__PURE__*/_react.default.createElement("div", {
158
- className: classes.scroller,
159
- style: {
160
- width: model.width,
161
- height: model.height
162
- }
163
- }, /*#__PURE__*/_react.default.createElement("div", {
164
- className: classes.rotator,
165
- style: {
166
- transform: ["rotate(".concat(model.offsetRadians, "rad)")].join(' '),
167
- transition: 'transform 0.5s',
168
- transformOrigin: model.centerXY.map(function (x) {
169
- return "".concat(x, "px");
170
- }).join(' ')
171
- }
172
- }, /*#__PURE__*/_react.default.createElement("svg", {
173
- style: {
174
- position: 'absolute',
175
- left: 0,
176
- top: 0
177
- },
178
- className: classes.sliceRoot,
179
- width: "".concat(model.figureWidth, "px"),
180
- height: "".concat(model.figureHeight, "px"),
181
- version: "1.1"
182
- }, /*#__PURE__*/_react.default.createElement("g", {
183
- transform: "translate(".concat(model.centerXY, ")")
184
- }, /*#__PURE__*/_react.default.createElement(Slices, {
185
- model: model
186
- }))))), /*#__PURE__*/_react.default.createElement(Controls, {
187
- model: model,
188
- showingFigure: showFigure
189
- }), model.hideVerticalResizeHandle ? null : /*#__PURE__*/_react.default.createElement(_ui.ResizeHandle, {
190
- onDrag: model.resizeHeight,
191
- style: {
192
- height: dragHandleHeight,
193
- position: 'absolute',
194
- bottom: 0,
195
- left: 0,
196
- background: '#ccc',
197
- boxSizing: 'border-box',
198
- borderTop: '1px solid #fafafa'
199
- }
200
- }))));
87
+ var CircularView = (0, mobx_react_1.observer)(function (_a) {
88
+ var model = _a.model;
89
+ var classes = useStyles().classes;
90
+ var initialized = !!model.displayedRegions.length && model.figureWidth && model.figureHeight;
91
+ var showImportForm = !initialized && !model.disableImportForm;
92
+ var showFigure = initialized && !showImportForm;
93
+ return (react_1.default.createElement("div", { className: classes.root, style: {
94
+ width: model.width,
95
+ height: model.height,
96
+ }, "data-testid": model.id }, model.error ? (react_1.default.createElement(ui_1.ErrorMessage, { error: model.error })) : (react_1.default.createElement(react_1.default.Fragment, null,
97
+ showImportForm ? react_1.default.createElement(ImportForm_1.default, { model: model }) : null,
98
+ react_1.default.createElement(react_1.default.Fragment, null,
99
+ !showFigure ? null : (react_1.default.createElement("div", { className: classes.scroller, style: {
100
+ width: model.width,
101
+ height: model.height,
102
+ } },
103
+ react_1.default.createElement("div", { className: classes.rotator, style: {
104
+ transform: ["rotate(".concat(model.offsetRadians, "rad)")].join(' '),
105
+ transition: 'transform 0.5s',
106
+ transformOrigin: model.centerXY
107
+ .map(function (x) { return "".concat(x, "px"); })
108
+ .join(' '),
109
+ } },
110
+ react_1.default.createElement("svg", { style: {
111
+ position: 'absolute',
112
+ left: 0,
113
+ top: 0,
114
+ }, className: classes.sliceRoot, width: "".concat(model.figureWidth, "px"), height: "".concat(model.figureHeight, "px"), version: "1.1" },
115
+ react_1.default.createElement("g", { transform: "translate(".concat(model.centerXY, ")") },
116
+ react_1.default.createElement(Slices, { model: model })))))),
117
+ react_1.default.createElement(Controls, { model: model, showingFigure: showFigure }),
118
+ model.hideVerticalResizeHandle ? null : (react_1.default.createElement(ui_1.ResizeHandle, { onDrag: model.resizeHeight, style: {
119
+ height: dragHandleHeight,
120
+ position: 'absolute',
121
+ bottom: 0,
122
+ left: 0,
123
+ background: '#ccc',
124
+ boxSizing: 'border-box',
125
+ borderTop: '1px solid #fafafa',
126
+ } })))))));
201
127
  });
202
- var _default = CircularView;
203
- exports.default = _default;
128
+ exports.default = CircularView;
129
+ //# sourceMappingURL=CircularView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircularView.js","sourceRoot":"","sources":["../../../src/CircularView/components/CircularView.js"],"names":[],"mappings":"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"}