@jbrowse/plugin-circular-view 2.3.3 → 2.4.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 (90) hide show
  1. package/dist/BaseChordDisplay/components/Loading.js.map +1 -1
  2. package/dist/BaseChordDisplay/index.d.ts +2 -2
  3. package/dist/BaseChordDisplay/index.js +4 -4
  4. package/dist/BaseChordDisplay/index.js.map +1 -1
  5. package/dist/BaseChordDisplay/models/{baseChordDisplayConfig.js → configSchema.js} +1 -1
  6. package/dist/BaseChordDisplay/models/configSchema.js.map +1 -0
  7. package/dist/BaseChordDisplay/models/{BaseChordDisplayModel.d.ts → model.d.ts} +12 -0
  8. package/dist/BaseChordDisplay/models/{BaseChordDisplayModel.js → model.js} +32 -22
  9. package/dist/BaseChordDisplay/models/model.js.map +1 -0
  10. package/dist/BaseChordDisplay/models/renderReaction.d.ts +1 -1
  11. package/dist/BaseChordDisplay/models/renderReaction.js +4 -5
  12. package/dist/BaseChordDisplay/models/renderReaction.js.map +1 -1
  13. package/dist/CircularView/components/CircularView.js +8 -17
  14. package/dist/CircularView/components/CircularView.js.map +1 -1
  15. package/dist/CircularView/components/Controls.d.ts +2 -2
  16. package/dist/CircularView/components/Controls.js +60 -24
  17. package/dist/CircularView/components/Controls.js.map +1 -1
  18. package/dist/CircularView/components/ExportSvgDialog.d.ts +8 -0
  19. package/dist/CircularView/components/ExportSvgDialog.js +76 -0
  20. package/dist/CircularView/components/ExportSvgDialog.js.map +1 -0
  21. package/dist/CircularView/components/Ruler.d.ts +2 -2
  22. package/dist/CircularView/components/Ruler.js +10 -14
  23. package/dist/CircularView/components/Ruler.js.map +1 -1
  24. package/dist/CircularView/models/CircularView.d.ts +30 -26
  25. package/dist/CircularView/models/CircularView.js +61 -17
  26. package/dist/CircularView/models/CircularView.js.map +1 -1
  27. package/dist/CircularView/models/slices.d.ts +23 -10
  28. package/dist/CircularView/models/slices.js +10 -7
  29. package/dist/CircularView/models/slices.js.map +1 -1
  30. package/dist/CircularView/svgcomponents/SVGBackground.d.ts +6 -0
  31. package/dist/CircularView/svgcomponents/SVGBackground.js +13 -0
  32. package/dist/CircularView/svgcomponents/SVGBackground.js.map +1 -0
  33. package/dist/CircularView/svgcomponents/SVGCircularView.d.ts +4 -0
  34. package/dist/CircularView/svgcomponents/SVGCircularView.js +40 -0
  35. package/dist/CircularView/svgcomponents/SVGCircularView.js.map +1 -0
  36. package/esm/BaseChordDisplay/components/Loading.js.map +1 -1
  37. package/esm/BaseChordDisplay/index.d.ts +2 -2
  38. package/esm/BaseChordDisplay/index.js +2 -2
  39. package/esm/BaseChordDisplay/index.js.map +1 -1
  40. package/esm/BaseChordDisplay/models/{baseChordDisplayConfig.js → configSchema.js} +1 -1
  41. package/esm/BaseChordDisplay/models/configSchema.js.map +1 -0
  42. package/esm/BaseChordDisplay/models/{BaseChordDisplayModel.d.ts → model.d.ts} +12 -0
  43. package/esm/BaseChordDisplay/models/{BaseChordDisplayModel.js → model.js} +33 -23
  44. package/esm/BaseChordDisplay/models/model.js.map +1 -0
  45. package/esm/BaseChordDisplay/models/renderReaction.d.ts +1 -1
  46. package/esm/BaseChordDisplay/models/renderReaction.js +4 -5
  47. package/esm/BaseChordDisplay/models/renderReaction.js.map +1 -1
  48. package/esm/CircularView/components/CircularView.js +8 -17
  49. package/esm/CircularView/components/CircularView.js.map +1 -1
  50. package/esm/CircularView/components/Controls.d.ts +2 -2
  51. package/esm/CircularView/components/Controls.js +37 -24
  52. package/esm/CircularView/components/Controls.js.map +1 -1
  53. package/esm/CircularView/components/ExportSvgDialog.d.ts +8 -0
  54. package/esm/CircularView/components/ExportSvgDialog.js +50 -0
  55. package/esm/CircularView/components/ExportSvgDialog.js.map +1 -0
  56. package/esm/CircularView/components/Ruler.d.ts +2 -2
  57. package/esm/CircularView/components/Ruler.js +10 -14
  58. package/esm/CircularView/components/Ruler.js.map +1 -1
  59. package/esm/CircularView/models/CircularView.d.ts +30 -26
  60. package/esm/CircularView/models/CircularView.js +58 -17
  61. package/esm/CircularView/models/CircularView.js.map +1 -1
  62. package/esm/CircularView/models/slices.d.ts +23 -10
  63. package/esm/CircularView/models/slices.js +10 -7
  64. package/esm/CircularView/models/slices.js.map +1 -1
  65. package/esm/CircularView/svgcomponents/SVGBackground.d.ts +6 -0
  66. package/esm/CircularView/svgcomponents/SVGBackground.js +7 -0
  67. package/esm/CircularView/svgcomponents/SVGBackground.js.map +1 -0
  68. package/esm/CircularView/svgcomponents/SVGCircularView.d.ts +4 -0
  69. package/esm/CircularView/svgcomponents/SVGCircularView.js +33 -0
  70. package/esm/CircularView/svgcomponents/SVGCircularView.js.map +1 -0
  71. package/package.json +5 -3
  72. package/src/BaseChordDisplay/components/Loading.tsx +1 -0
  73. package/src/BaseChordDisplay/index.ts +2 -2
  74. package/src/BaseChordDisplay/models/{BaseChordDisplayModel.ts → model.tsx} +46 -24
  75. package/src/BaseChordDisplay/models/renderReaction.ts +4 -7
  76. package/src/CircularView/components/CircularView.tsx +11 -25
  77. package/src/CircularView/components/Controls.tsx +41 -28
  78. package/src/CircularView/components/ExportSvgDialog.tsx +132 -0
  79. package/src/CircularView/components/Ruler.tsx +193 -182
  80. package/src/CircularView/models/CircularView.ts +78 -40
  81. package/src/CircularView/models/slices.ts +32 -12
  82. package/src/CircularView/svgcomponents/SVGBackground.tsx +21 -0
  83. package/src/CircularView/svgcomponents/SVGCircularView.tsx +58 -0
  84. package/dist/BaseChordDisplay/models/BaseChordDisplayModel.js.map +0 -1
  85. package/dist/BaseChordDisplay/models/baseChordDisplayConfig.js.map +0 -1
  86. package/esm/BaseChordDisplay/models/BaseChordDisplayModel.js.map +0 -1
  87. package/esm/BaseChordDisplay/models/baseChordDisplayConfig.js.map +0 -1
  88. /package/dist/BaseChordDisplay/models/{baseChordDisplayConfig.d.ts → configSchema.d.ts} +0 -0
  89. /package/esm/BaseChordDisplay/models/{baseChordDisplayConfig.d.ts → configSchema.d.ts} +0 -0
  90. /package/src/BaseChordDisplay/models/{baseChordDisplayConfig.ts → configSchema.ts} +0 -0
@@ -1,9 +1,17 @@
1
1
  import { cast, getParent, getRoot, resolveIdentifier, types, } from 'mobx-state-tree';
2
2
  import { Region } from '@jbrowse/core/util/types/mst';
3
3
  import { transaction } from 'mobx';
4
+ import { saveAs } from 'file-saver';
5
+ import { renderToSvg } from '../svgcomponents/SVGCircularView';
4
6
  import { readConfObject, } from '@jbrowse/core/configuration';
5
7
  import { getSession, clamp, isSessionModelWithWidgets, } from '@jbrowse/core/util';
6
8
  import { BaseViewModel } from '@jbrowse/core/pluggableElementTypes/models';
9
+ // icons
10
+ import { TrackSelector as TrackSelectorIcon } from '@jbrowse/core/ui/Icons';
11
+ import FolderOpenIcon from '@mui/icons-material/FolderOpen';
12
+ import PhotoCameraIcon from '@mui/icons-material/PhotoCamera';
13
+ // locals
14
+ import ExportSvgDlg from '../components/ExportSvgDialog';
7
15
  import { calculateStaticSlices, sliceIsVisible } from './slices';
8
16
  import { viewportVisibleSection } from './viewportVisibleRegion';
9
17
  /**
@@ -87,12 +95,6 @@ function stateModelFactory(pluginManager) {
87
95
  }
88
96
  return self.volatileWidth;
89
97
  },
90
- /**
91
- * #getter
92
- */
93
- get staticSlices() {
94
- return calculateStaticSlices(self);
95
- },
96
98
  /**
97
99
  * #getter
98
100
  */
@@ -269,6 +271,14 @@ function stateModelFactory(pluginManager) {
269
271
  return (self.volatileWidth !== undefined &&
270
272
  this.assemblyNames.every(a => { var _a; return (_a = assemblyManager.get(a)) === null || _a === void 0 ? void 0 : _a.initialized; }));
271
273
  },
274
+ }))
275
+ .views(self => ({
276
+ /**
277
+ * #getter
278
+ */
279
+ get staticSlices() {
280
+ return calculateStaticSlices(self);
281
+ },
272
282
  }))
273
283
  .views(self => ({
274
284
  /**
@@ -446,14 +456,13 @@ function stateModelFactory(pluginManager) {
446
456
  const viewType = pluginManager.getViewType(self.type);
447
457
  const supportedDisplays = viewType.displayTypes.map(d => d.name);
448
458
  const displayConf = configuration.displays.find((d) => supportedDisplays.includes(d.type));
449
- const track = trackType.stateModel.create({
459
+ self.tracks.push(trackType.stateModel.create({
450
460
  ...initialSnapshot,
451
461
  name,
452
462
  type,
453
463
  configuration,
454
464
  displays: [{ type: displayConf.type, configuration: displayConf }],
455
- });
456
- self.tracks.push(track);
465
+ }));
457
466
  },
458
467
  /**
459
468
  * #action
@@ -475,15 +484,47 @@ function stateModelFactory(pluginManager) {
475
484
  this.setModelViewWhenAdjust(self.atMinBpPerPx);
476
485
  return self.lockedFitToWindow;
477
486
  },
487
+ /**
488
+ * #action
489
+ * creates an svg export and save using FileSaver
490
+ */
491
+ async exportSvg(opts = {}) {
492
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
493
+ const html = await renderToSvg(self, opts);
494
+ const blob = new Blob([html], { type: 'image/svg+xml' });
495
+ saveAs(blob, opts.filename || 'image.svg');
496
+ },
497
+ }))
498
+ .views(self => ({
499
+ /**
500
+ * #method
501
+ * return the view menu items
502
+ */
503
+ menuItems() {
504
+ return [
505
+ {
506
+ label: 'Return to import form',
507
+ onClick: () => self.setDisplayedRegions([]),
508
+ icon: FolderOpenIcon,
509
+ },
510
+ {
511
+ label: 'Export SVG',
512
+ icon: PhotoCameraIcon,
513
+ onClick: () => {
514
+ getSession(self).queueDialog(handleClose => [
515
+ ExportSvgDlg,
516
+ { model: self, handleClose },
517
+ ]);
518
+ },
519
+ },
520
+ {
521
+ label: 'Open track selector',
522
+ onClick: self.activateTrackSelector,
523
+ icon: TrackSelectorIcon,
524
+ },
525
+ ];
526
+ },
478
527
  }));
479
528
  }
480
- /**
481
- PLANS
482
-
483
- - tracks
484
- - ruler tick marks
485
- - set viewport scroll from state snapshot
486
-
487
- */
488
529
  export default stateModelFactory;
489
530
  //# sourceMappingURL=CircularView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CircularView.js","sourceRoot":"","sources":["../../../src/CircularView/models/CircularView.ts"],"names":[],"mappings":"AACA,OAAO,EACL,IAAI,EACJ,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,KAAK,GAGN,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAEL,cAAc,GACf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,UAAU,EACV,KAAK,EACL,yBAAyB,GAE1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAEhE;;;GAGG;AACH,SAAS,iBAAiB,CAAC,aAA4B;IACrD,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,MAAM,QAAQ,GAAG,GAAG,CAAA;IACpB,MAAM,aAAa,GAAG,GAAG,CAAA;IACzB,OAAO,KAAK;SACT,OAAO,CACN,aAAa,EACb,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE;QAC1B;;WAEG;QACH,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QACnC;;;WAGG;QACH,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAC3B;;WAEG;QACH,OAAO,EAAE,GAAG;QACZ;;WAEG;QACH,MAAM,EAAE,KAAK,CAAC,KAAK,CACjB,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CACtD;QAED;;WAEG;QACH,wBAAwB,EAAE,KAAK;QAC/B;;WAEG;QACH,uBAAuB,EAAE,KAAK;QAC9B;;WAEG;QACH,iBAAiB,EAAE,IAAI;QACvB;;WAEG;QACH,iBAAiB,EAAE,KAAK;QAExB;;WAEG;QACH,MAAM,EAAE,KAAK,CAAC,QAAQ,CACpB,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,EAClE,aAAa,CACd;QACD;;WAEG;QACH,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACrC;;WAEG;QACH,OAAO,EAAE,CAAC;QACV;;WAEG;QACH,OAAO,EAAE,CAAC;QAEV,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,GAAG;QACpB,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,EAAE;QAErB,iBAAiB,EAAE,cAAc;KAClC,CAAC,CACH;SACA,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACf,aAAa,EAAE,SAA+B;QAC9C,KAAK,EAAE,SAAoB;KAC5B,CAAC,CAAC;SACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACd;;WAEG;QACH,IAAI,KAAK;YACP,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;gBACpC,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAA;aACF;YACD,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC;QACD;;WAEG;QACH,IAAI,YAAY;YACd,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;QAED;;WAEG;QACH,IAAI,cAAc;YAChB,OAAO,sBAAsB,CAC3B;gBACE,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK;gBACzB,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;aAC3B,EACD,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,CACd,CAAA;QACH,CAAC;QACD;;WAEG;QACH,IAAI,eAAe;YACjB,IAAI,QAAQ,GAAG,CAAC,CAAA;YAEhB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAClC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAA;aACtB;YACD,OAAO,CACL,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACrE,CAAA;QACH,CAAC;QACD;;WAEG;QACH,IAAI,QAAQ;YACV,OAAO,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7C,CAAC;QACD;;WAEG;QACH,IAAI,WAAW;YACb,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;QACrC,CAAC;QACD;;WAEG;QACH,IAAI,WAAW;YACb,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;QACD;;WAEG;QACH,IAAI,QAAQ;YACV,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QACzE,CAAC;QACD;;WAEG;QACH,IAAI,OAAO;YACT,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAC1C,KAAK,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAA;aACnC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QACD;;WAEG;QACH,IAAI,eAAe;YACjB,OAAO,IAAI,CAAC,iBAAiB;gBAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe;gBAC9D,CAAC,CAAC,OAAO,CAAA;QACb,CAAC;QACD;;WAEG;QACH,IAAI,UAAU;YACZ,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAA;YAC7D,OAAO,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAA;QAC1C,CAAC;QACD;;WAEG;QACH,IAAI,UAAU;YACZ,wEAAwE;YACxE,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAA;YAC7D,OAAO,KAAK,CACV,IAAI,CAAC,OAAO,GAAG,kBAAkB,EACjC,YAAY,EACZ,IAAI,CAAC,UAAU,CAChB,CAAA;QACH,CAAC;QACD;;WAEG;QACH,IAAI,YAAY;YACd,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAA;QACxC,CAAC;QACD;;WAEG;QACH,IAAI,YAAY;YACd,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAA;QACxC,CAAC;QACD;;WAEG;QACH,IAAI,cAAc;YAChB,OAAO,IAAI,CAAC,UAAU,IAAI,YAAY,CAAA;QACxC,CAAC;QACD;;WAEG;QACH,IAAI,gBAAgB;YAClB,OAAO;gBACL,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS;gBACtC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS;aACvC,CAAA;QACH,CAAC;QACD;;WAEG;QACH,IAAI,WAAW;YACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QACD;;WAEG;QACH,IAAI,YAAY;YACd,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QACD;;;;WAIG;QACH,IAAI,aAAa;YACf,MAAM,OAAO,GAaP,EAAE,CAAA;YACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAA;gBACzC,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;gBACtC,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE;oBAClC,0DAA0D;oBAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAC/C,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE;wBACvB,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;wBACvC,WAAW,CAAC,OAAO,IAAI,OAAO,CAAA;qBAC/B;yBAAM;wBACL,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,IAAI;4BACZ,OAAO;4BACP,OAAO,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;yBACzB,CAAC,CAAA;qBACH;iBACF;qBAAM;oBACL,gCAAgC;oBAChC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;iBACpD;YACH,CAAC,CAAC,CAAA;YAEF,oCAAoC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC1C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;gBACpB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;iBACtD;aACF;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD;;WAEG;QACH,IAAI,aAAa;YACf,MAAM,aAAa,GAAa,EAAE,CAAA;YAClC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAC9C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;oBACzD,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;iBACjD;YACH,CAAC,CAAC,CAAA;YACF,OAAO,aAAa,CAAA;QACtB,CAAC;QACD;;WAEG;QACH,IAAI,WAAW;YACb,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;YAC5C,OAAO,CACL,IAAI,CAAC,aAAa,KAAK,SAAS;gBAChC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,MAAA,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,0CAAE,WAAW,CAAA,EAAA,CAAC,CACnE,CAAA;QACH,CAAC;KACF,CAAC,CAAC;SACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACd;;WAEG;QACH,IAAI,mBAAmB;YACrB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/D,CAAC;KACF,CAAC,CAAC;SAEF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB;;WAEG;QACH,QAAQ,CAAC,QAAgB;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACjD,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC;QACD;;WAEG;QACH,SAAS,CAAC,SAAiB;YACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD;;WAEG;QACH,YAAY,CAAC,QAAgB;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAA;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAA;YACxD,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACjD,OAAO,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD;;WAEG;QACH,WAAW,CAAC,QAAgB;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAA;YACrD,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACjD,OAAO,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD;;WAEG;QACH,qBAAqB;YACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACnC,CAAC;QAED;;WAEG;QACH,4BAA4B;YAC1B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAC1C,CAAC;QAED;;WAEG;QACH,eAAe,CAAC,QAAQ,GAAG,IAAI;YAC7B,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAA;QAChC,CAAC;QAED;;WAEG;QACH,sBAAsB,CAAC,QAAQ,GAAG,IAAI;YACpC,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAA;QAChC,CAAC;QAED;;WAEG;QACH,YAAY;YACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA;QACrC,CAAC;QAED;;WAEG;QACH,aAAa;YACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA;QACrC,CAAC;QAED;;WAEG;QACH,UAAU,CAAC,MAAc;YACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAChE,CAAC;QAED;;WAEG;QACH,sBAAsB,CAAC,eAAwB;YAC7C,IAAI,IAAI,CAAC,iBAAiB,IAAI,eAAe,EAAE;gBAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aACjC;QACH,CAAC;QAED;;WAEG;QACH,SAAS;YACP,8DAA8D;YAC9D,SAAS,CAAM,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC1C,CAAC;QAED;;WAEG;QACH,mBAAmB,CAAC,OAA4C;YAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAA;YAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;YAErC,IAAI,eAAe,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aACjC;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aAC9B;QACH,CAAC;QAED;;WAEG;QACH,qBAAqB;YACnB,IAAI,IAAI,CAAC,iBAAiB,KAAK,cAAc,EAAE;gBAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAI,yBAAyB,CAAC,OAAO,CAAC,EAAE;oBACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAChC,iCAAiC,EACjC,2BAA2B,EAC3B,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAA;oBACD,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;oBAC5B,OAAO,QAAQ,CAAA;iBAChB;aACF;YACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAC1E,CAAC;QAED;;WAEG;QACH,WAAW,CAAC,OAAe;YACzB,+DAA+D;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC3C,8CAA8C;YAC9C,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;aACxB;QACH,CAAC;QAED;;WAEG;QACH,QAAQ,CAAC,KAAc;YACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,CAAC;QAED;;WAEG;QACH,SAAS,CAAC,OAAe,EAAE,eAAe,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;YAC/D,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvD,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;aACnD;YACD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAwB,EAAE,EAAE,CAClE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CACnC,CAAA;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBACxC,GAAG,eAAe;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;aACnE,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;QAED;;WAEG;QACH,YAAY,CAAC,aAAoC,EAAE,eAAe,GAAG,EAAE;YACrE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAA;YAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;YAClD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAClD,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;aAC5D;YACD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAChE,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAC7C,CAAC,CAAwB,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CACjE,CAAA;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBACxC,GAAG,eAAe;gBAClB,IAAI;gBACJ,IAAI;gBACJ,aAAa;gBACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;aACnE,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;QAED;;WAEG;QACH,SAAS,CAAC,OAAe;YACvB,MAAM,MAAM,GAAG,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;YAC/D,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAA;YAC3D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACxD,OAAO,CAAC,CAAC,MAAM,CAAA;QACjB,CAAC;QAED;;WAEG;QACH,qBAAqB;YACnB,kEAAkE;YAClE,oBAAoB;YACpB,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAA;YAChD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC9C,OAAO,IAAI,CAAC,iBAAiB,CAAA;QAC/B,CAAC;KACF,CAAC,CAAC,CAAA;AACP,CAAC;AAKD;;;;;;;EAOE;AAEF,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"CircularView.js","sourceRoot":"","sources":["../../../src/CircularView/models/CircularView.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,IAAI,EACJ,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,KAAK,GAGN,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAEL,cAAc,GACf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,UAAU,EACV,KAAK,EACL,yBAAyB,GAC1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAA;AAE1E,QAAQ;AACR,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,cAAc,MAAM,gCAAgC,CAAA;AAC3D,OAAO,eAAe,MAAM,iCAAiC,CAAA;AAE7D,SAAS;AACT,OAAO,YAAY,MAAM,+BAA+B,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAe,MAAM,UAAU,CAAA;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAUhE;;;GAGG;AACH,SAAS,iBAAiB,CAAC,aAA4B;IACrD,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,MAAM,QAAQ,GAAG,GAAG,CAAA;IACpB,MAAM,aAAa,GAAG,GAAG,CAAA;IACzB,OAAO,KAAK;SACT,OAAO,CACN,aAAa,EACb,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE;QAC1B;;WAEG;QACH,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QACnC;;;WAGG;QACH,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAC3B;;WAEG;QACH,OAAO,EAAE,GAAG;QACZ;;WAEG;QACH,MAAM,EAAE,KAAK,CAAC,KAAK,CACjB,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CACtD;QAED;;WAEG;QACH,wBAAwB,EAAE,KAAK;QAC/B;;WAEG;QACH,uBAAuB,EAAE,KAAK;QAC9B;;WAEG;QACH,iBAAiB,EAAE,IAAI;QACvB;;WAEG;QACH,iBAAiB,EAAE,KAAK;QAExB;;WAEG;QACH,MAAM,EAAE,KAAK,CAAC,QAAQ,CACpB,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,EAClE,aAAa,CACd;QACD;;WAEG;QACH,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACrC;;WAEG;QACH,OAAO,EAAE,CAAC;QACV;;WAEG;QACH,OAAO,EAAE,CAAC;QAEV,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,GAAG;QACpB,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,EAAE;QAErB,iBAAiB,EAAE,cAAc;KAClC,CAAC,CACH;SACA,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACf,aAAa,EAAE,SAA+B;QAC9C,KAAK,EAAE,SAAoB;KAC5B,CAAC,CAAC;SACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACd;;WAEG;QACH,IAAI,KAAK;YACP,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;gBACpC,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAA;aACF;YACD,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC;QAED;;WAEG;QACH,IAAI,cAAc;YAChB,OAAO,sBAAsB,CAC3B;gBACE,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK;gBACzB,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;aAC3B,EACD,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,CACd,CAAA;QACH,CAAC;QACD;;WAEG;QACH,IAAI,eAAe;YACjB,IAAI,QAAQ,GAAG,CAAC,CAAA;YAEhB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;gBAClC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAA;aACtB;YACD,OAAO,CACL,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACrE,CAAA;QACH,CAAC;QACD;;WAEG;QACH,IAAI,QAAQ;YACV,OAAO,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7C,CAAC;QACD;;WAEG;QACH,IAAI,WAAW;YACb,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;QACrC,CAAC;QACD;;WAEG;QACH,IAAI,WAAW;YACb,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;QACD;;WAEG;QACH,IAAI,QAAQ;YACV,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QACzE,CAAC;QACD;;WAEG;QACH,IAAI,OAAO;YACT,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAC1C,KAAK,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAA;aACnC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QACD;;WAEG;QACH,IAAI,eAAe;YACjB,OAAO,IAAI,CAAC,iBAAiB;gBAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe;gBAC9D,CAAC,CAAC,OAAO,CAAA;QACb,CAAC;QACD;;WAEG;QACH,IAAI,UAAU;YACZ,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAA;YAC7D,OAAO,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAA;QAC1C,CAAC;QACD;;WAEG;QACH,IAAI,UAAU;YACZ,wEAAwE;YACxE,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAA;YAC7D,OAAO,KAAK,CACV,IAAI,CAAC,OAAO,GAAG,kBAAkB,EACjC,YAAY,EACZ,IAAI,CAAC,UAAU,CAChB,CAAA;QACH,CAAC;QACD;;WAEG;QACH,IAAI,YAAY;YACd,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAA;QACxC,CAAC;QACD;;WAEG;QACH,IAAI,YAAY;YACd,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAA;QACxC,CAAC;QACD;;WAEG;QACH,IAAI,cAAc;YAChB,OAAO,IAAI,CAAC,UAAU,IAAI,YAAY,CAAA;QACxC,CAAC;QACD;;WAEG;QACH,IAAI,gBAAgB;YAClB,OAAO;gBACL,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS;gBACtC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS;aACvC,CAAA;QACH,CAAC;QACD;;WAEG;QACH,IAAI,WAAW;YACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QACD;;WAEG;QACH,IAAI,YAAY;YACd,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QACD;;;;WAIG;QACH,IAAI,aAAa;YACf,MAAM,OAAO,GAAkB,EAAE,CAAA;YACjC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAA;gBACzC,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;gBACtC,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE;oBAClC,0DAA0D;oBAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAC/C,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE;wBACvB,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;wBACvC,WAAW,CAAC,OAAO,IAAI,OAAO,CAAA;qBAC/B;yBAAM;wBACL,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,IAAI;4BACZ,OAAO;4BACP,OAAO,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;yBACzB,CAAC,CAAA;qBACH;iBACF;qBAAM;oBACL,gCAAgC;oBAChC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;iBACpD;YACH,CAAC,CAAC,CAAA;YAEF,oCAAoC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC1C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;gBACpB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;iBACtD;aACF;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD;;WAEG;QACH,IAAI,aAAa;YACf,MAAM,aAAa,GAAa,EAAE,CAAA;YAClC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAC9C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;oBACzD,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;iBACjD;YACH,CAAC,CAAC,CAAA;YACF,OAAO,aAAa,CAAA;QACtB,CAAC;QACD;;WAEG;QACH,IAAI,WAAW;YACb,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;YAC5C,OAAO,CACL,IAAI,CAAC,aAAa,KAAK,SAAS;gBAChC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,MAAA,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,0CAAE,WAAW,CAAA,EAAA,CAAC,CACnE,CAAA;QACH,CAAC;KACF,CAAC,CAAC;SACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACd;;WAEG;QACH,IAAI,YAAY;YACd,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;KACF,CAAC,CAAC;SACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACd;;WAEG;QACH,IAAI,mBAAmB;YACrB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/D,CAAC;KACF,CAAC,CAAC;SAEF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB;;WAEG;QACH,QAAQ,CAAC,QAAgB;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACjD,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC;QACD;;WAEG;QACH,SAAS,CAAC,SAAiB;YACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD;;WAEG;QACH,YAAY,CAAC,QAAgB;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAA;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAA;YACxD,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACjD,OAAO,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD;;WAEG;QACH,WAAW,CAAC,QAAgB;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAA;YACrD,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACjD,OAAO,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD;;WAEG;QACH,qBAAqB;YACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACnC,CAAC;QAED;;WAEG;QACH,4BAA4B;YAC1B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAC1C,CAAC;QAED;;WAEG;QACH,eAAe,CAAC,QAAQ,GAAG,IAAI;YAC7B,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAA;QAChC,CAAC;QAED;;WAEG;QACH,sBAAsB,CAAC,QAAQ,GAAG,IAAI;YACpC,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAA;QAChC,CAAC;QAED;;WAEG;QACH,YAAY;YACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA;QACrC,CAAC;QAED;;WAEG;QACH,aAAa;YACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA;QACrC,CAAC;QAED;;WAEG;QACH,UAAU,CAAC,MAAc;YACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAChE,CAAC;QAED;;WAEG;QACH,sBAAsB,CAAC,eAAwB;YAC7C,IAAI,IAAI,CAAC,iBAAiB,IAAI,eAAe,EAAE;gBAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aACjC;QACH,CAAC;QAED;;WAEG;QACH,SAAS;YACP,8DAA8D;YAC9D,SAAS,CAAM,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC1C,CAAC;QAED;;WAEG;QACH,mBAAmB,CAAC,OAA4C;YAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAA;YAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;YAErC,IAAI,eAAe,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aACjC;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aAC9B;QACH,CAAC;QAED;;WAEG;QACH,qBAAqB;YACnB,IAAI,IAAI,CAAC,iBAAiB,KAAK,cAAc,EAAE;gBAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAI,yBAAyB,CAAC,OAAO,CAAC,EAAE;oBACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAChC,iCAAiC,EACjC,2BAA2B,EAC3B,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAA;oBACD,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;oBAC5B,OAAO,QAAQ,CAAA;iBAChB;aACF;YACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAC1E,CAAC;QAED;;WAEG;QACH,WAAW,CAAC,OAAe;YACzB,+DAA+D;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC3C,8CAA8C;YAC9C,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;aACxB;QACH,CAAC;QAED;;WAEG;QACH,QAAQ,CAAC,KAAc;YACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,CAAC;QAED;;WAEG;QACH,SAAS,CAAC,OAAe,EAAE,eAAe,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;YAC/D,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvD,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;aACnD;YACD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAwB,EAAE,EAAE,CAClE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CACnC,CAAA;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBACxC,GAAG,eAAe;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;aACnE,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;QAED;;WAEG;QACH,YAAY,CAAC,aAAoC,EAAE,eAAe,GAAG,EAAE;YACrE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAA;YAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;YAClD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAClD,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;aAC5D;YACD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAChE,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAC7C,CAAC,CAAwB,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CACjE,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC1B,GAAG,eAAe;gBAClB,IAAI;gBACJ,IAAI;gBACJ,aAAa;gBACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;aACnE,CAAC,CACH,CAAA;QACH,CAAC;QAED;;WAEG;QACH,SAAS,CAAC,OAAe;YACvB,MAAM,MAAM,GAAG,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;YAC/D,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAA;YAC3D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACxD,OAAO,CAAC,CAAC,MAAM,CAAA;QACjB,CAAC;QAED;;WAEG;QACH,qBAAqB;YACnB,kEAAkE;YAClE,oBAAoB;YACpB,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAA;YAChD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC9C,OAAO,IAAI,CAAC,iBAAiB,CAAA;QAC/B,CAAC;QACD;;;WAGG;QACH,KAAK,CAAC,SAAS,CAAC,OAAyB,EAAE;YACzC,8DAA8D;YAC9D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAW,EAAE,IAAI,CAAC,CAAA;YACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAA;YACxD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAA;QAC5C,CAAC;KACF,CAAC,CAAC;SACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACd;;;WAGG;QACH,SAAS;YACP,OAAO;gBACL;oBACE,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,cAAc;iBACrB;gBACD;oBACE,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,GAAG,EAAE;wBACZ,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;4BAC1C,YAAY;4BACZ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;yBAC7B,CAAC,CAAA;oBACJ,CAAC;iBACF;gBACD;oBACE,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,IAAI,CAAC,qBAAqB;oBACnC,IAAI,EAAE,iBAAiB;iBACxB;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAC,CAAA;AACP,CAAC;AAKD,eAAe,iBAAiB,CAAA"}
@@ -1,28 +1,41 @@
1
1
  import { Region } from '@jbrowse/core/util';
2
+ export type SliceElidedRegion = {
3
+ elided: true;
4
+ widthBp: number;
5
+ regions: Region[];
6
+ };
7
+ export type SliceNonElidedRegion = {
8
+ elided: false;
9
+ widthBp: number;
10
+ start: number;
11
+ end: number;
12
+ refName: string;
13
+ assemblyName: string;
14
+ };
15
+ export type SliceRegion = SliceNonElidedRegion | SliceElidedRegion;
2
16
  export declare class Slice {
3
- region: Region & {
4
- widthBp: number;
5
- elided: boolean;
6
- };
17
+ region: SliceRegion;
18
+ offsetRadians: number;
7
19
  radianWidth: number;
8
20
  key: string;
9
- offsetRadians: number;
10
21
  startRadians: number;
11
22
  endRadians: number;
12
23
  bpPerRadian: number;
13
24
  flipped: boolean;
14
25
  constructor(view: {
15
26
  bpPerRadian: number;
16
- }, region: Region & {
17
- widthBp: number;
18
- elided: boolean;
19
- }, currentRadianOffset: number, radianWidth: number);
27
+ }, region: SliceRegion, offsetRadians: number, radianWidth: number);
20
28
  bpToXY(bp: number, radiusPx: number): [number, number];
21
29
  toJSON(): {
22
30
  [k: string]: any;
23
31
  };
24
32
  }
25
- declare function calculateStaticSlices(self: any): Slice[];
33
+ declare function calculateStaticSlices(self: {
34
+ elidedRegions: SliceRegion[];
35
+ bpPerRadian: number;
36
+ spacingPx: number;
37
+ pxPerRadian: number;
38
+ }): Slice[];
26
39
  declare function sliceIsVisible(self: {
27
40
  offsetRadians: number;
28
41
  visibleSection: {
@@ -1,16 +1,19 @@
1
1
  import { polarToCartesian, assembleLocString } from '@jbrowse/core/util';
2
2
  import { thetaRangesOverlap } from './viewportVisibleRegion';
3
3
  export class Slice {
4
- constructor(view, region, currentRadianOffset, radianWidth) {
4
+ constructor(view, region, offsetRadians, radianWidth) {
5
5
  this.region = region;
6
+ this.offsetRadians = offsetRadians;
6
7
  this.radianWidth = radianWidth;
7
8
  const { bpPerRadian } = view;
8
- this.key = assembleLocString(region);
9
- this.offsetRadians = currentRadianOffset;
9
+ this.key =
10
+ 'regions' in region
11
+ ? JSON.stringify(region.regions)
12
+ : assembleLocString(region);
10
13
  this.bpPerRadian = bpPerRadian;
11
14
  this.flipped = false;
12
- this.startRadians = this.offsetRadians;
13
- this.endRadians = region.widthBp / this.bpPerRadian + this.offsetRadians;
15
+ this.startRadians = offsetRadians;
16
+ this.endRadians = region.widthBp / this.bpPerRadian + offsetRadians;
14
17
  Object.freeze(this);
15
18
  }
16
19
  bpToXY(bp, radiusPx) {
@@ -31,12 +34,12 @@ export class Slice {
31
34
  return Object.fromEntries(Object.entries(this));
32
35
  }
33
36
  }
34
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
37
  function calculateStaticSlices(self) {
36
38
  const slices = [];
37
39
  let currentRadianOffset = 0;
40
+ const { bpPerRadian, spacingPx, pxPerRadian } = self;
38
41
  for (const region of self.elidedRegions) {
39
- const radianWidth = region.widthBp / self.bpPerRadian + self.spacingPx / self.pxPerRadian;
42
+ const radianWidth = region.widthBp / bpPerRadian + spacingPx / pxPerRadian;
40
43
  slices.push(new Slice(self, region, currentRadianOffset, radianWidth));
41
44
  currentRadianOffset += radianWidth;
42
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../src/CircularView/models/slices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAU,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,OAAO,KAAK;IAahB,YACE,IAA6B,EACtB,MAAqD,EAC5D,mBAA2B,EACpB,WAAmB;QAFnB,WAAM,GAAN,MAAM,CAA+C;QAErD,gBAAW,GAAX,WAAW,CAAQ;QAE1B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAA;QACxC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QAEpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAA;QACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAA;QACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,QAAgB;QACjC,IAAI,QAAQ,CAAA;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtB,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;SACnC;aAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACvB,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAA;SAChC;aAAM;YACL,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;SAClC;QACD,MAAM,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAA;QACrE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACjD,CAAC;IAED,MAAM;QACJ,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;CACF;AAED,8DAA8D;AAC9D,SAAS,qBAAqB,CAAC,IAAS;IACtC,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,IAAI,mBAAmB,GAAG,CAAC,CAAA;IAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;QACvC,MAAM,WAAW,GACf,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAA;QACvE,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAA;QACtE,mBAAmB,IAAI,WAAW,CAAA;KACnC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,cAAc,CACrB,IAA4E,EAC5E,KAAY;IAEZ,MAAM,EACJ,KAAK,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,GAC1C,GAAG,IAAI,CAAC,cAAc,CAAA;IAEvB,OAAO,kBAAkB,CACvB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EACxC,KAAK,CAAC,WAAW,EACjB,eAAe,EACf,eAAe,GAAG,eAAe,CAClC,CAAA;AACH,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../src/CircularView/models/slices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAU,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAkB5D,MAAM,OAAO,KAAK;IAWhB,YACE,IAA6B,EACtB,MAAmB,EACnB,aAAqB,EACrB,WAAmB;QAFnB,WAAM,GAAN,MAAM,CAAa;QACnB,kBAAa,GAAb,aAAa,CAAQ;QACrB,gBAAW,GAAX,WAAW,CAAQ;QAE1B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,GAAG;YACN,SAAS,IAAI,MAAM;gBACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;gBAChC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QAEpB,IAAI,CAAC,YAAY,GAAG,aAAa,CAAA;QACjC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,CAAA;QACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,QAAgB;QACjC,IAAI,QAAQ,CAAA;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtB,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;SACnC;aAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACvB,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAA;SAChC;aAAM;YACL,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;SAClC;QACD,MAAM,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAA;QACrE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACjD,CAAC;IAED,MAAM;QACJ,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;CACF;AAED,SAAS,qBAAqB,CAAC,IAK9B;IACC,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,IAAI,mBAAmB,GAAG,CAAC,CAAA;IAC3B,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IACpD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;QACvC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,CAAA;QAC1E,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAA;QACtE,mBAAmB,IAAI,WAAW,CAAA;KACnC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,cAAc,CACrB,IAA4E,EAC5E,KAAY;IAEZ,MAAM,EACJ,KAAK,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,GAC1C,GAAG,IAAI,CAAC,cAAc,CAAA;IAEvB,OAAO,kBAAkB,CACvB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EACxC,KAAK,CAAC,WAAW,EACjB,eAAe,EACf,eAAe,GAAG,eAAe,CAClC,CAAA;AACH,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export default function SVGBackground({ width, height, shift, }: {
3
+ width: number;
4
+ height: number;
5
+ shift: number;
6
+ }): JSX.Element;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { useTheme } from '@mui/material';
3
+ export default function SVGBackground({ width, height, shift, }) {
4
+ const theme = useTheme();
5
+ return (React.createElement("rect", { width: width + shift * 2, height: height, fill: theme.palette.background.default }));
6
+ }
7
+ //# sourceMappingURL=SVGBackground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SVGBackground.js","sourceRoot":"","sources":["../../../src/CircularView/svgcomponents/SVGBackground.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,MAAM,EACN,KAAK,GAKN;IACC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,OAAO,CACL,8BACE,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,GACtC,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ExportSvgOptions, CircularViewModel } from '../models/CircularView';
2
+ type CGV = CircularViewModel;
3
+ export declare function renderToSvg(model: CGV, opts: ExportSvgOptions): Promise<string>;
4
+ export {};
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { ThemeProvider } from '@mui/material';
3
+ import { renderToStaticMarkup } from 'react-dom/server';
4
+ import { when } from 'mobx';
5
+ import { getSession, radToDeg } from '@jbrowse/core/util';
6
+ import { createJBrowseTheme } from '@jbrowse/core/ui';
7
+ import SVGBackground from './SVGBackground';
8
+ import Ruler from '../components/Ruler';
9
+ export async function renderToSvg(model, opts) {
10
+ var _a;
11
+ await when(() => model.initialized);
12
+ const { themeName = 'default', Wrapper = ({ children }) => React.createElement(React.Fragment, null, children) } = opts;
13
+ const session = getSession(model);
14
+ const theme = (_a = session.allThemes) === null || _a === void 0 ? void 0 : _a.call(session)[themeName];
15
+ const { width, tracks, height } = model;
16
+ const shift = 50;
17
+ const displayResults = await Promise.all(tracks.map(async (track) => {
18
+ const display = track.displays[0];
19
+ await when(() => (display.ready !== undefined ? display.ready : true));
20
+ return { track, result: await display.renderSvg({ ...opts, theme }) };
21
+ }));
22
+ const { staticSlices, offsetRadians, centerXY } = model;
23
+ const deg = radToDeg(offsetRadians);
24
+ // the xlink namespace is used for rendering <image> tag
25
+ return renderToStaticMarkup(React.createElement(ThemeProvider, { theme: createJBrowseTheme(theme) },
26
+ React.createElement(Wrapper, null,
27
+ React.createElement("svg", { width: width, height: height, xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: [0, 0, width + shift * 2, height].toString() },
28
+ React.createElement(SVGBackground, { width: width, height: height, shift: shift }),
29
+ React.createElement("g", { transform: `translate(${centerXY}) rotate(${deg})` },
30
+ staticSlices.map((slice, i) => (React.createElement(Ruler, { key: i, model: model, slice: slice }))),
31
+ displayResults.map(({ result }, i) => (React.createElement(React.Fragment, { key: i }, result))))))));
32
+ }
33
+ //# sourceMappingURL=SVGCircularView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SVGCircularView.js","sourceRoot":"","sources":["../../../src/CircularView/svgcomponents/SVGCircularView.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-circular-view",
3
- "version": "2.3.3",
3
+ "version": "2.4.0",
4
4
  "description": "JBrowse 2 circular view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -38,7 +38,9 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@mui/icons-material": "^5.0.1",
41
- "clone": "^2.1.2"
41
+ "@types/file-saver": "^2.0.0",
42
+ "clone": "^2.1.2",
43
+ "file-saver": "^2.0.0"
42
44
  },
43
45
  "peerDependencies": {
44
46
  "@jbrowse/core": "^2.0.0",
@@ -56,5 +58,5 @@
56
58
  "distModule": "esm/index.js",
57
59
  "srcModule": "src/index.ts",
58
60
  "module": "esm/index.js",
59
- "gitHead": "283e0387ccd5acc9f092cf00804d1fcac212e68d"
61
+ "gitHead": "78707a2bc3ba8489f26a590ef83f62ede945d048"
60
62
  }
@@ -32,6 +32,7 @@ const useStyles = makeStyles()(theme => {
32
32
  stroke: primary.light,
33
33
  },
34
34
  },
35
+
35
36
  '@keyframes dash': {
36
37
  '0%': {
37
38
  strokeDashoffset: offset,
@@ -1,3 +1,3 @@
1
1
  export { default as BaseChordDisplayComponent } from './components/BaseChordDisplay'
2
- export { BaseChordDisplayModel } from './models/BaseChordDisplayModel'
3
- export { baseChordDisplayConfig } from './models/baseChordDisplayConfig'
2
+ export { BaseChordDisplayModel } from './models/model'
3
+ export { baseChordDisplayConfig } from './models/configSchema'
@@ -15,7 +15,7 @@ import {
15
15
  makeAbortableReaction,
16
16
  AnyReactComponentType,
17
17
  Feature,
18
- Region,
18
+ ReactRendering,
19
19
  } from '@jbrowse/core/util'
20
20
  import {
21
21
  getParentRenderProps,
@@ -25,7 +25,11 @@ import {
25
25
 
26
26
  // locals
27
27
  import { renderReactionData, renderReactionEffect } from './renderReaction'
28
- import { CircularViewModel } from '../../CircularView/models/CircularView'
28
+ import {
29
+ CircularViewModel,
30
+ ExportSvgOptions,
31
+ } from '../../CircularView/models/CircularView'
32
+ import { ThemeOptions } from '@mui/material'
29
33
 
30
34
  /**
31
35
  * #stateModel BaseChordDisplay
@@ -48,19 +52,17 @@ export const BaseChordDisplayModel = types
48
52
  assemblyName: types.maybe(types.string),
49
53
  }),
50
54
  )
51
- .volatile(() => {
52
- return {
53
- // NOTE: all this volatile stuff has to be filled in at once
54
- // so that it stays consistent
55
- filled: false,
56
- reactElement: undefined as React.ReactElement | undefined,
57
- data: undefined,
58
- html: undefined as string | undefined,
59
- message: '',
60
- renderingComponent: undefined as undefined | AnyReactComponentType,
61
- refNameMap: undefined as Record<string, string> | undefined,
62
- }
63
- })
55
+ .volatile(() => ({
56
+ // NOTE: all this volatile stuff has to be filled in at once
57
+ // so that it stays consistent
58
+ filled: false,
59
+ reactElement: undefined as React.ReactElement | undefined,
60
+ data: undefined,
61
+ html: undefined as string | undefined,
62
+ message: '',
63
+ renderingComponent: undefined as undefined | AnyReactComponentType,
64
+ refNameMap: undefined as Record<string, string> | undefined,
65
+ }))
64
66
  .actions(self => {
65
67
  const { pluginManager } = getEnv(self)
66
68
  const track = self
@@ -78,20 +80,19 @@ export const BaseChordDisplayModel = types
78
80
  * #getter
79
81
  */
80
82
  get blockDefinitions() {
81
- const origSlices = (getContainingView(self) as CircularViewModel)
82
- .staticSlices
83
+ const view = getContainingView(self) as CircularViewModel
84
+ const origSlices = view.staticSlices
83
85
  if (!self.refNameMap) {
84
86
  return origSlices
85
87
  }
86
88
 
87
89
  const slices = clone(origSlices)
88
90
 
89
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
- slices.forEach((slice: any) => {
91
+ slices.forEach(slice => {
91
92
  const regions = slice.region.elided
92
93
  ? slice.region.regions
93
94
  : [slice.region]
94
- regions.forEach((region: Region) => {
95
+ regions.forEach(region => {
95
96
  const renamed = self.refNameMap?.[region.refName]
96
97
  if (renamed && region.refName !== renamed) {
97
98
  region.refName = renamed
@@ -254,10 +255,11 @@ export const BaseChordDisplayModel = types
254
255
  self.renderSuccess,
255
256
  self.renderError,
256
257
  )
258
+
257
259
  makeAbortableReaction(
258
260
  self,
259
261
  () => ({
260
- assemblyNames: getTrackAssemblyNames(self.parentTrack) as string[],
262
+ assemblyNames: getTrackAssemblyNames(self.parentTrack),
261
263
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
262
264
  adapter: getConf(getParent<any>(self, 2), 'adapter'),
263
265
  assemblyManager: getSession(self).assemblyManager,
@@ -275,9 +277,7 @@ export const BaseChordDisplayModel = types
275
277
  fireImmediately: true,
276
278
  },
277
279
  () => {},
278
- refNameMap => {
279
- self.setRefNameMap(refNameMap)
280
- },
280
+ refNameMap => self.setRefNameMap(refNameMap),
281
281
  error => {
282
282
  console.error(error)
283
283
  self.setError(error)
@@ -285,3 +285,25 @@ export const BaseChordDisplayModel = types
285
285
  )
286
286
  },
287
287
  }))
288
+ .views(self => ({
289
+ /**
290
+ * #method
291
+ */
292
+ async renderSvg(
293
+ opts: ExportSvgOptions & {
294
+ theme: ThemeOptions
295
+ },
296
+ ) {
297
+ const data = renderReactionData(self)
298
+ const rendering = await renderReactionEffect(
299
+ {
300
+ ...data,
301
+ exportSVG: opts,
302
+ theme: opts.theme || data.renderProps.theme,
303
+ },
304
+ undefined,
305
+ self,
306
+ )
307
+ return <ReactRendering rendering={rendering} />
308
+ },
309
+ }))
@@ -27,7 +27,7 @@ export function renderReactionData(self: any) {
27
27
  export async function renderReactionEffect(
28
28
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
29
  props: any,
30
- signal: AbortSignal,
30
+ signal: AbortSignal | undefined,
31
31
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
32
  self: any,
33
33
  ) {
@@ -41,6 +41,7 @@ export async function renderReactionEffect(
41
41
  cannotBeRenderedReason,
42
42
  renderArgs,
43
43
  renderProps,
44
+ exportSVG,
44
45
  } = props
45
46
 
46
47
  if (cannotBeRenderedReason) {
@@ -48,11 +49,7 @@ export async function renderReactionEffect(
48
49
  }
49
50
 
50
51
  // don't try to render 0 or NaN radius or no regions
51
- if (
52
- !props.renderProps.radius ||
53
- !props.renderArgs.regions ||
54
- !props.renderArgs.regions.length
55
- ) {
52
+ if (!renderProps.radius || !renderArgs.regions?.length) {
56
53
  return { message: 'Skipping render' }
57
54
  }
58
55
 
@@ -66,7 +63,7 @@ export async function renderReactionEffect(
66
63
  const { html, ...data } = await rendererType.renderInClient(rpcManager, {
67
64
  ...renderArgs,
68
65
  ...renderProps,
69
- signal,
66
+ exportSVG,
70
67
  })
71
68
 
72
69
  return {
@@ -17,17 +17,10 @@ const useStyles = makeStyles()(theme => ({
17
17
  position: 'relative',
18
18
  marginBottom: theme.spacing(1),
19
19
  overflow: 'hidden',
20
- background: 'white',
21
20
  },
22
21
  scroller: {
23
22
  overflow: 'auto',
24
23
  },
25
- sliceRoot: {
26
- background: 'none',
27
- // background: theme.palette.background.paper,
28
- boxSizing: 'content-box',
29
- display: 'block',
30
- },
31
24
  }))
32
25
 
33
26
  const Slices = observer(({ model }: { model: CircularViewModel }) => {
@@ -97,29 +90,22 @@ const CircularViewLoaded = observer(function ({
97
90
  return (
98
91
  <div className={classes.root} style={{ width, height }} data-testid={id}>
99
92
  <div className={classes.scroller} style={{ width, height }}>
100
- <div
93
+ <svg
101
94
  style={{
102
- transform: [`rotate(${offsetRadians}rad)`].join(' '),
95
+ transform: `rotate(${offsetRadians}rad)`,
103
96
  transition: 'transform 0.5s',
104
97
  transformOrigin: centerXY.map(x => `${x}px`).join(' '),
98
+ position: 'absolute',
99
+ left: 0,
100
+ top: 0,
105
101
  }}
102
+ width={figureWidth}
103
+ height={figureHeight}
106
104
  >
107
- <svg
108
- style={{
109
- position: 'absolute',
110
- left: 0,
111
- top: 0,
112
- }}
113
- className={classes.sliceRoot}
114
- width={figureWidth + 'px'}
115
- height={figureHeight + 'px'}
116
- version="1.1"
117
- >
118
- <g transform={`translate(${centerXY})`}>
119
- <Slices model={model} />
120
- </g>
121
- </svg>
122
- </div>
105
+ <g transform={`translate(${centerXY})`}>
106
+ <Slices model={model} />
107
+ </g>
108
+ </svg>
123
109
  </div>
124
110
  <Controls model={model} />
125
111
  {hideVerticalResizeHandle ? null : (