react-msaview 4.8.1 → 5.0.3

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 (240) hide show
  1. package/README.md +9 -2
  2. package/bundle/index.js +87 -187
  3. package/bundle/index.js.LICENSE.txt +0 -83
  4. package/bundle/index.js.map +1 -1
  5. package/dist/colorSchemes.js +1 -1
  6. package/dist/colorSchemes.js.map +1 -1
  7. package/dist/components/ConservationTrack.d.ts +2 -2
  8. package/dist/components/ConservationTrack.js +1 -2
  9. package/dist/components/ConservationTrack.js.map +1 -1
  10. package/dist/components/Loading.d.ts +1 -1
  11. package/dist/components/Loading.js +2 -2
  12. package/dist/components/Loading.js.map +1 -1
  13. package/dist/components/MSAView.d.ts +1 -1
  14. package/dist/components/MSAView.js +8 -8
  15. package/dist/components/MSAView.js.map +1 -1
  16. package/dist/components/ResizeHandles.d.ts +1 -1
  17. package/dist/components/SequenceTextArea.js +2 -2
  18. package/dist/components/SequenceTextArea.js.map +1 -1
  19. package/dist/components/TextTrack.d.ts +2 -2
  20. package/dist/components/TextTrack.js +1 -1
  21. package/dist/components/TextTrack.js.map +1 -1
  22. package/dist/components/Track.d.ts +1 -1
  23. package/dist/components/Track.js +1 -1
  24. package/dist/components/Track.js.map +1 -1
  25. package/dist/components/VerticalScrollbar.d.ts +1 -1
  26. package/dist/components/dialogs/AboutDialog.js +1 -1
  27. package/dist/components/dialogs/AboutDialog.js.map +1 -1
  28. package/dist/components/dialogs/AddTrackDialog.d.ts +1 -1
  29. package/dist/components/dialogs/DomainDialog.d.ts +1 -1
  30. package/dist/components/dialogs/DomainDialog.js +3 -3
  31. package/dist/components/dialogs/DomainDialog.js.map +1 -1
  32. package/dist/components/dialogs/ExportSVGDialog.d.ts +1 -1
  33. package/dist/components/dialogs/ExportSVGDialog.js +1 -1
  34. package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
  35. package/dist/components/dialogs/FeatureDialog.d.ts +1 -1
  36. package/dist/components/dialogs/FeatureDialog.js +1 -1
  37. package/dist/components/dialogs/FeatureDialog.js.map +1 -1
  38. package/dist/components/dialogs/InterProScanDialog.d.ts +1 -1
  39. package/dist/components/dialogs/InterProScanDialog.js +1 -1
  40. package/dist/components/dialogs/InterProScanDialog.js.map +1 -1
  41. package/dist/components/dialogs/MetadataDialog.d.ts +1 -1
  42. package/dist/components/dialogs/MetadataDialog.js +1 -1
  43. package/dist/components/dialogs/MetadataDialog.js.map +1 -1
  44. package/dist/components/dialogs/SettingsDialog.d.ts +1 -1
  45. package/dist/components/dialogs/SettingsDialog.js +2 -2
  46. package/dist/components/dialogs/SettingsDialog.js.map +1 -1
  47. package/dist/components/dialogs/TrackInfoDialog.js +1 -1
  48. package/dist/components/dialogs/TrackInfoDialog.js.map +1 -1
  49. package/dist/components/dialogs/UserProvidedDomainsDialog.d.ts +1 -1
  50. package/dist/components/dialogs/UserProvidedDomainsDialog.js +1 -1
  51. package/dist/components/dialogs/UserProvidedDomainsDialog.js.map +1 -1
  52. package/dist/components/header/GappynessSlider.d.ts +1 -1
  53. package/dist/components/header/Header.d.ts +1 -1
  54. package/dist/components/header/Header.js +10 -10
  55. package/dist/components/header/Header.js.map +1 -1
  56. package/dist/components/header/HeaderInfoArea.d.ts +1 -1
  57. package/dist/components/header/HeaderMenu.d.ts +1 -1
  58. package/dist/components/header/HeaderMenu.js +6 -6
  59. package/dist/components/header/HeaderMenu.js.map +1 -1
  60. package/dist/components/header/HeaderStatusArea.d.ts +1 -1
  61. package/dist/components/header/MultiAlignmentSelector.d.ts +1 -1
  62. package/dist/components/header/SettingsMenu.d.ts +1 -1
  63. package/dist/components/header/SettingsMenu.js +1 -1
  64. package/dist/components/header/SettingsMenu.js.map +1 -1
  65. package/dist/components/header/ZoomControls.d.ts +1 -1
  66. package/dist/components/header/ZoomMenu.d.ts +1 -1
  67. package/dist/components/header/ZoomStar.d.ts +1 -1
  68. package/dist/components/import/ImportForm.d.ts +1 -1
  69. package/dist/components/import/ImportForm.js +2 -2
  70. package/dist/components/import/ImportForm.js.map +1 -1
  71. package/dist/components/import/ImportFormExamples.d.ts +1 -1
  72. package/dist/components/import/ImportFormExamples.js +2 -2
  73. package/dist/components/import/ImportFormExamples.js.map +1 -1
  74. package/dist/components/import/util.d.ts +1 -1
  75. package/dist/components/minimap/Minimap.d.ts +1 -1
  76. package/dist/components/minimap/MinimapSVG.d.ts +1 -1
  77. package/dist/components/msa/MSACanvas.d.ts +1 -1
  78. package/dist/components/msa/MSACanvas.js +2 -2
  79. package/dist/components/msa/MSACanvas.js.map +1 -1
  80. package/dist/components/msa/MSACanvasBlock.d.ts +1 -1
  81. package/dist/components/msa/MSACanvasBlock.js +3 -3
  82. package/dist/components/msa/MSACanvasBlock.js.map +1 -1
  83. package/dist/components/msa/MSAMouseoverCanvas.d.ts +1 -1
  84. package/dist/components/msa/MSAMouseoverCanvas.js +2 -2
  85. package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
  86. package/dist/components/msa/MSAPanel.d.ts +1 -1
  87. package/dist/components/msa/MSAPanel.js +2 -2
  88. package/dist/components/msa/MSAPanel.js.map +1 -1
  89. package/dist/components/msa/renderBoxFeatureCanvasBlock.d.ts +1 -1
  90. package/dist/components/msa/renderMSABlock.d.ts +1 -1
  91. package/dist/components/msa/renderMSAMouseover.d.ts +1 -1
  92. package/dist/components/tracks/renderTracksSvg.d.ts +2 -2
  93. package/dist/components/tree/TreeBranchMenu.d.ts +1 -1
  94. package/dist/components/tree/TreeCanvas.d.ts +1 -1
  95. package/dist/components/tree/TreeCanvas.js +3 -3
  96. package/dist/components/tree/TreeCanvas.js.map +1 -1
  97. package/dist/components/tree/TreeCanvasBlock.d.ts +1 -1
  98. package/dist/components/tree/TreeCanvasBlock.js +3 -3
  99. package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
  100. package/dist/components/tree/TreeNodeMenu.d.ts +1 -1
  101. package/dist/components/tree/TreeNodeMenu.js +1 -1
  102. package/dist/components/tree/TreeNodeMenu.js.map +1 -1
  103. package/dist/components/tree/TreePanel.d.ts +1 -1
  104. package/dist/components/tree/TreePanel.js +1 -1
  105. package/dist/components/tree/TreePanel.js.map +1 -1
  106. package/dist/components/tree/TreeRuler.d.ts +1 -1
  107. package/dist/components/tree/dialogs/TreeNodeInfoDialog.d.ts +1 -1
  108. package/dist/components/tree/dialogs/TreeNodeInfoDialog.js +1 -1
  109. package/dist/components/tree/dialogs/TreeNodeInfoDialog.js.map +1 -1
  110. package/dist/components/tree/renderTreeCanvas.d.ts +1 -1
  111. package/dist/createPaletteMap.d.ts +7 -0
  112. package/dist/createPaletteMap.js +11 -0
  113. package/dist/createPaletteMap.js.map +1 -0
  114. package/dist/createPaletteMap.test.d.ts +1 -0
  115. package/dist/createPaletteMap.test.js +49 -0
  116. package/dist/createPaletteMap.test.js.map +1 -0
  117. package/dist/index.d.ts +3 -2
  118. package/dist/index.js +2 -2
  119. package/dist/index.js.map +1 -1
  120. package/dist/launchInterProScan.d.ts +1 -1
  121. package/dist/launchInterProScan.js +1 -1
  122. package/dist/launchInterProScan.js.map +1 -1
  123. package/dist/model/DataModel.d.ts +5 -5
  124. package/dist/model/DataModel.js +1 -1
  125. package/dist/model/DataModel.js.map +1 -1
  126. package/dist/model/DialogQueue.d.ts +2 -2
  127. package/dist/model/DialogQueue.js +1 -1
  128. package/dist/model/DialogQueue.js.map +1 -1
  129. package/dist/model/msaModel.d.ts +4 -4
  130. package/dist/model/msaModel.js +2 -2
  131. package/dist/model/msaModel.js.map +1 -1
  132. package/dist/model/treeModel.d.ts +10 -10
  133. package/dist/model/treeModel.js +2 -2
  134. package/dist/model/treeModel.js.map +1 -1
  135. package/dist/model.d.ts +524 -420
  136. package/dist/model.js +63 -40
  137. package/dist/model.js.map +1 -1
  138. package/dist/neighborJoining.test.js +1 -1
  139. package/dist/neighborJoining.test.js.map +1 -1
  140. package/dist/parseAsn1.test.js +1 -1
  141. package/dist/parseAsn1.test.js.map +1 -1
  142. package/dist/renderToSvg.d.ts +1 -1
  143. package/dist/renderToSvg.js +10 -10
  144. package/dist/renderToSvg.js.map +1 -1
  145. package/dist/reparseTree.d.ts +1 -1
  146. package/dist/rowCoordinateCalculations.js +1 -1
  147. package/dist/rowCoordinateCalculations.js.map +1 -1
  148. package/dist/rowCoordinateCalculations.test.js +1 -1
  149. package/dist/rowCoordinateCalculations.test.js.map +1 -1
  150. package/dist/seqPosToGlobalCol.js +1 -1
  151. package/dist/seqPosToGlobalCol.js.map +1 -1
  152. package/dist/seqPosToGlobalCol.test.js +1 -1
  153. package/dist/seqPosToGlobalCol.test.js.map +1 -1
  154. package/dist/util.d.ts +1 -1
  155. package/dist/vendor/copyToClipboard.d.ts +10 -0
  156. package/dist/vendor/copyToClipboard.js +113 -0
  157. package/dist/vendor/copyToClipboard.js.map +1 -0
  158. package/dist/vendor/fileSaver.d.ts +11 -0
  159. package/dist/vendor/fileSaver.js +80 -0
  160. package/dist/vendor/fileSaver.js.map +1 -0
  161. package/dist/version.d.ts +1 -1
  162. package/dist/version.js +1 -1
  163. package/dist/webpack.d.ts +2 -2
  164. package/dist/webpack.js +2 -2
  165. package/dist/webpack.js.map +1 -1
  166. package/package.json +26 -23
  167. package/src/colorSchemes.ts +1 -1
  168. package/src/components/ConservationTrack.tsx +3 -4
  169. package/src/components/Loading.tsx +3 -3
  170. package/src/components/MSAView.tsx +12 -9
  171. package/src/components/ResizeHandles.tsx +1 -1
  172. package/src/components/SequenceTextArea.tsx +2 -2
  173. package/src/components/TextTrack.tsx +3 -3
  174. package/src/components/Track.tsx +2 -2
  175. package/src/components/VerticalScrollbar.tsx +1 -1
  176. package/src/components/dialogs/AboutDialog.tsx +1 -1
  177. package/src/components/dialogs/AddTrackDialog.tsx +1 -1
  178. package/src/components/dialogs/DomainDialog.tsx +4 -4
  179. package/src/components/dialogs/ExportSVGDialog.tsx +2 -2
  180. package/src/components/dialogs/FeatureDialog.tsx +2 -2
  181. package/src/components/dialogs/InterProScanDialog.tsx +2 -2
  182. package/src/components/dialogs/MetadataDialog.tsx +2 -2
  183. package/src/components/dialogs/SettingsDialog.tsx +3 -3
  184. package/src/components/dialogs/TrackInfoDialog.tsx +2 -1
  185. package/src/components/dialogs/UserProvidedDomainsDialog.tsx +3 -3
  186. package/src/components/header/GappynessSlider.tsx +1 -1
  187. package/src/components/header/Header.tsx +11 -11
  188. package/src/components/header/HeaderInfoArea.tsx +1 -1
  189. package/src/components/header/HeaderMenu.tsx +9 -7
  190. package/src/components/header/HeaderStatusArea.tsx +1 -1
  191. package/src/components/header/MultiAlignmentSelector.tsx +1 -1
  192. package/src/components/header/SettingsMenu.tsx +2 -2
  193. package/src/components/header/ZoomControls.tsx +1 -1
  194. package/src/components/header/ZoomMenu.tsx +1 -1
  195. package/src/components/header/ZoomStar.tsx +1 -1
  196. package/src/components/import/ImportForm.tsx +3 -3
  197. package/src/components/import/ImportFormExamples.tsx +3 -3
  198. package/src/components/import/util.ts +1 -1
  199. package/src/components/minimap/Minimap.tsx +1 -1
  200. package/src/components/minimap/MinimapSVG.tsx +1 -1
  201. package/src/components/msa/MSACanvas.tsx +3 -3
  202. package/src/components/msa/MSACanvasBlock.tsx +4 -4
  203. package/src/components/msa/MSAMouseoverCanvas.tsx +3 -3
  204. package/src/components/msa/MSAPanel.tsx +3 -3
  205. package/src/components/msa/renderBoxFeatureCanvasBlock.ts +2 -2
  206. package/src/components/msa/renderMSABlock.ts +2 -2
  207. package/src/components/msa/renderMSAMouseover.ts +1 -1
  208. package/src/components/tracks/renderTracksSvg.ts +2 -2
  209. package/src/components/tree/TreeBranchMenu.tsx +1 -1
  210. package/src/components/tree/TreeCanvas.tsx +4 -4
  211. package/src/components/tree/TreeCanvasBlock.tsx +4 -4
  212. package/src/components/tree/TreeNodeMenu.tsx +4 -2
  213. package/src/components/tree/TreePanel.tsx +2 -2
  214. package/src/components/tree/TreeRuler.tsx +1 -1
  215. package/src/components/tree/dialogs/TreeNodeInfoDialog.tsx +2 -2
  216. package/src/components/tree/renderTreeCanvas.ts +1 -1
  217. package/src/createPaletteMap.test.ts +57 -0
  218. package/src/createPaletteMap.ts +11 -0
  219. package/src/index.ts +3 -2
  220. package/src/launchInterProScan.ts +2 -2
  221. package/src/model/DataModel.ts +1 -1
  222. package/src/model/DialogQueue.ts +1 -1
  223. package/src/model/msaModel.ts +2 -2
  224. package/src/model/treeModel.ts +2 -2
  225. package/src/model.ts +71 -46
  226. package/src/neighborJoining.test.ts +1 -1
  227. package/src/parseAsn1.test.ts +1 -1
  228. package/src/renderToSvg.tsx +17 -19
  229. package/src/reparseTree.ts +1 -1
  230. package/src/rowCoordinateCalculations.test.ts +1 -1
  231. package/src/rowCoordinateCalculations.ts +1 -1
  232. package/src/seqPosToGlobalCol.test.ts +1 -1
  233. package/src/seqPosToGlobalCol.ts +1 -1
  234. package/src/util.ts +1 -1
  235. package/src/vendor/copyToClipboard.ts +125 -0
  236. package/src/vendor/fileSaver.ts +107 -0
  237. package/src/version.ts +1 -1
  238. package/src/webpack.ts +2 -2
  239. package/dist/__snapshots__/parseAsn1.test.js.snap +0 -2400
  240. package/src/declare.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"seqPosToGlobalCol.js","sourceRoot":"","sources":["../src/seqPosToGlobalCol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,GAAG,EACH,MAAM,GAIP;IACC,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,uCAAuC;IACvC,OAAO,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,WAAW,EAAE,CAAA;QACf,CAAC;QACD,SAAS,EAAE,CAAA;IACb,CAAC;IACD,oEAAoE;IACpE,iEAAiE;IACjE,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"seqPosToGlobalCol.js","sourceRoot":"","sources":["../src/seqPosToGlobalCol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,GAAG,EACH,MAAM,GAIP;IACC,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,uCAAuC;IACvC,OAAO,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,WAAW,EAAE,CAAA;QACf,CAAC;QACD,SAAS,EAAE,CAAA;IACb,CAAC;IACD,oEAAoE;IACpE,iEAAiE;IACjE,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACrC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, test } from 'vitest';
2
- import { seqPosToGlobalCol } from './seqPosToGlobalCol';
2
+ import { seqPosToGlobalCol } from "./seqPosToGlobalCol.js";
3
3
  describe('seqPosToGlobalCol', () => {
4
4
  test('converts sequence position to global column with no gaps', () => {
5
5
  const row = 'ATGCATGC';
@@ -1 +1 @@
1
- {"version":3,"file":"seqPosToGlobalCol.test.js","sourceRoot":"","sources":["../src/seqPosToGlobalCol.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seqPosToGlobalCol.test.js","sourceRoot":"","sources":["../src/seqPosToGlobalCol.test.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { NodeWithIds } from './types';
1
+ import type { NodeWithIds } from './types.ts';
2
2
  import type { Theme } from '@mui/material';
3
3
  import type { HierarchyNode } from 'd3-hierarchy';
4
4
  export declare function transform<T>(obj: Record<string, T>, cb: (arg0: [string, T]) => [string, T]): {
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copy text to clipboard utility.
3
+ * Uses modern Clipboard API with fallback to execCommand.
4
+ */
5
+ export interface CopyOptions {
6
+ debug?: boolean;
7
+ format?: string;
8
+ onCopy?: (clipboardData: DataTransfer) => void;
9
+ }
10
+ export default function copy(text: string, options?: CopyOptions): boolean;
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Copy text to clipboard utility.
3
+ * Uses modern Clipboard API with fallback to execCommand.
4
+ */
5
+ function deselectCurrent() {
6
+ const selection = document.getSelection();
7
+ if (!selection?.rangeCount) {
8
+ return () => { };
9
+ }
10
+ const active = document.activeElement;
11
+ const ranges = [];
12
+ for (let i = 0; i < selection.rangeCount; i++) {
13
+ ranges.push(selection.getRangeAt(i));
14
+ }
15
+ const tagName = active?.tagName.toUpperCase();
16
+ if (tagName === 'INPUT' || tagName === 'TEXTAREA') {
17
+ active?.blur();
18
+ }
19
+ selection.removeAllRanges();
20
+ return () => {
21
+ if (selection.type === 'Caret') {
22
+ selection.removeAllRanges();
23
+ }
24
+ if (!selection.rangeCount) {
25
+ for (const range of ranges) {
26
+ selection.addRange(range);
27
+ }
28
+ }
29
+ active?.focus();
30
+ };
31
+ }
32
+ export default function copy(text, options) {
33
+ const debug = options?.debug || false;
34
+ let success = false;
35
+ let reselectPrevious;
36
+ let range;
37
+ let selection = null;
38
+ let mark;
39
+ try {
40
+ reselectPrevious = deselectCurrent();
41
+ range = document.createRange();
42
+ selection = document.getSelection();
43
+ mark = document.createElement('span');
44
+ mark.textContent = text;
45
+ mark.ariaHidden = 'true';
46
+ mark.style.all = 'unset';
47
+ mark.style.position = 'fixed';
48
+ mark.style.top = '0';
49
+ mark.style.clip = 'rect(0, 0, 0, 0)';
50
+ mark.style.whiteSpace = 'pre';
51
+ mark.style.webkitUserSelect = 'text';
52
+ mark.style.MozUserSelect = 'text';
53
+ mark.style.msUserSelect = 'text';
54
+ mark.style.userSelect = 'text';
55
+ mark.addEventListener('copy', e => {
56
+ e.stopPropagation();
57
+ if (options?.format) {
58
+ e.preventDefault();
59
+ if (e.clipboardData) {
60
+ e.clipboardData.clearData();
61
+ e.clipboardData.setData(options.format, text);
62
+ }
63
+ }
64
+ if (options?.onCopy && e.clipboardData) {
65
+ e.preventDefault();
66
+ options.onCopy(e.clipboardData);
67
+ }
68
+ });
69
+ document.body.append(mark);
70
+ range.selectNodeContents(mark);
71
+ selection?.addRange(range);
72
+ const successful = document.execCommand('copy');
73
+ if (!successful) {
74
+ throw new Error('copy command was unsuccessful');
75
+ }
76
+ success = true;
77
+ }
78
+ catch (err) {
79
+ if (debug) {
80
+ console.error('unable to copy using execCommand:', err);
81
+ }
82
+ try {
83
+ const clipboardData = window
84
+ .clipboardData;
85
+ if (clipboardData) {
86
+ clipboardData.setData(options?.format || 'text', text);
87
+ options?.onCopy?.(clipboardData);
88
+ success = true;
89
+ }
90
+ }
91
+ catch (err2) {
92
+ if (debug) {
93
+ console.error('unable to copy using clipboardData:', err2);
94
+ }
95
+ }
96
+ }
97
+ finally {
98
+ if (selection) {
99
+ if (typeof selection.removeRange === 'function' && range) {
100
+ selection.removeRange(range);
101
+ }
102
+ else {
103
+ selection.removeAllRanges();
104
+ }
105
+ }
106
+ if (mark) {
107
+ mark.remove();
108
+ }
109
+ reselectPrevious?.();
110
+ }
111
+ return success;
112
+ }
113
+ //# sourceMappingURL=copyToClipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyToClipboard.js","sourceRoot":"","sources":["../../src/vendor/copyToClipboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,SAAS,eAAe;IACtB,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAA;IACzC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;QAC3B,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAmC,CAAA;IAE3D,MAAM,MAAM,GAAY,EAAE,CAAA;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAClD,MAAM,EAAE,IAAI,EAAE,CAAA;IAChB,CAAC;IAED,SAAS,CAAC,eAAe,EAAE,CAAA;IAC3B,OAAO,GAAG,EAAE;QACV,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/B,SAAS,CAAC,eAAe,EAAE,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,CAAA;IACjB,CAAC,CAAA;AACH,CAAC;AAQD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,IAAY,EAAE,OAAqB;IAC9D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAA;IACrC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,gBAA0C,CAAA;IAC9C,IAAI,KAAwB,CAAA;IAC5B,IAAI,SAAS,GAAqB,IAAI,CAAA;IACtC,IAAI,IAAiC,CAAA;IAErC,IAAI,CAAC;QACH,gBAAgB,GAAG,eAAe,EAAE,CAAA;QACpC,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC9B,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAA;QAEnC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;QACpB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,kBAAkB,CAAA;QACpC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,MAAM,CACnC;QAAC,IAAI,CAAC,KAA2C,CAAC,aAAa,GAAG,MAAM,CACxE;QAAC,IAAI,CAAC,KAA2C,CAAC,YAAY,GAAG,MAAM,CAAA;QACxE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAA;QAE9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;YAChC,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;oBACpB,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;oBAC3B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;gBACvC,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;YACjC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1B,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC9B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE1B,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,aAAa,GAAI,MAAkD;iBACtE,aAAa,CAAA;YAChB,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,IAAI,CAAC,CAAA;gBACtD,OAAO,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,CAAA;gBAChC,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,IAAI,EAAE,CAAC;YACd,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,UAAU,IAAI,KAAK,EAAE,CAAC;gBACzD,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAC9B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,eAAe,EAAE,CAAA;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC;QACD,gBAAgB,EAAE,EAAE,CAAA;IACtB,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * FileSaver.js
3
+ * A saveAs() FileSaver implementation.
4
+ *
5
+ * By Eli Grey, http://eligrey.com
6
+ * License: MIT
7
+ * source: http://purl.eligrey.com/github/FileSaver.js
8
+ *
9
+ * Vendored and converted to ESM/TypeScript for pure ESM compatibility.
10
+ */
11
+ export declare function saveAs(blob: Blob | string, name?: string): void;
@@ -0,0 +1,80 @@
1
+ /**
2
+ * FileSaver.js
3
+ * A saveAs() FileSaver implementation.
4
+ *
5
+ * By Eli Grey, http://eligrey.com
6
+ * License: MIT
7
+ * source: http://purl.eligrey.com/github/FileSaver.js
8
+ *
9
+ * Vendored and converted to ESM/TypeScript for pure ESM compatibility.
10
+ */
11
+ function click(node) {
12
+ try {
13
+ node.dispatchEvent(new MouseEvent('click'));
14
+ }
15
+ catch {
16
+ const evt = document.createEvent('MouseEvents');
17
+ evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);
18
+ node.dispatchEvent(evt);
19
+ }
20
+ }
21
+ // Detect WebView inside a native macOS app by ruling out all browsers
22
+ const isMacOSWebView = typeof navigator !== 'undefined' &&
23
+ navigator.userAgent.includes('Macintosh') &&
24
+ navigator.userAgent.includes('AppleWebKit') &&
25
+ !navigator.userAgent.includes('Safari');
26
+ export function saveAs(blob, name) {
27
+ if (typeof window === 'undefined') {
28
+ return;
29
+ }
30
+ const URL = window.URL;
31
+ const a = document.createElement('a');
32
+ name = name || (blob instanceof Blob ? 'download' : 'download');
33
+ // Use download attribute if available and not macOS WebView
34
+ if ('download' in HTMLAnchorElement.prototype && !isMacOSWebView) {
35
+ a.download = name;
36
+ a.rel = 'noopener';
37
+ if (typeof blob === 'string') {
38
+ a.href = blob;
39
+ click(a);
40
+ }
41
+ else {
42
+ a.href = URL.createObjectURL(blob);
43
+ setTimeout(() => {
44
+ URL.revokeObjectURL(a.href);
45
+ }, 40000);
46
+ setTimeout(() => {
47
+ click(a);
48
+ }, 0);
49
+ }
50
+ return;
51
+ }
52
+ // Fallback for browsers without download attribute support
53
+ if (typeof blob === 'string') {
54
+ window.open(blob, '_blank');
55
+ return;
56
+ }
57
+ const isSafari = /constructor/i.test(window.HTMLElement?.toString() ??
58
+ '') || !!window.safari;
59
+ const isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent);
60
+ if ((isChromeIOS || isSafari || isMacOSWebView) &&
61
+ typeof FileReader !== 'undefined') {
62
+ const reader = new FileReader();
63
+ reader.onloadend = () => {
64
+ let url = reader.result;
65
+ url = isChromeIOS
66
+ ? url
67
+ : url.replace(/^data:[^;]*;/, 'data:attachment/file;');
68
+ window.open(url, '_blank');
69
+ };
70
+ reader.readAsDataURL(blob);
71
+ }
72
+ else {
73
+ const url = URL.createObjectURL(blob);
74
+ window.open(url, '_blank');
75
+ setTimeout(() => {
76
+ URL.revokeObjectURL(url);
77
+ }, 40000);
78
+ }
79
+ }
80
+ //# sourceMappingURL=fileSaver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSaver.js","sourceRoot":"","sources":["../../src/vendor/fileSaver.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "4.8.0";
1
+ export declare const version = "5.0.3";
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '4.8.0';
1
+ export const version = '5.0.3';
2
2
  //# sourceMappingURL=version.js.map
package/dist/webpack.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- export { default as MSAView } from './components/Loading';
3
- export { type MsaViewModel, default as MSAModelF } from './model';
2
+ export { default as MSAView } from './components/Loading.tsx';
3
+ export { type MsaViewModel, default as MSAModelF } from './model.ts';
4
4
  export * from 'react-dom/client';
5
5
  export { React };
package/dist/webpack.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- export { default as MSAView } from './components/Loading';
3
- export { default as MSAModelF } from './model';
2
+ export { default as MSAView } from "./components/Loading.js";
3
+ export { default as MSAModelF } from "./model.js";
4
4
  export * from 'react-dom/client';
5
5
  // eslint-disable-next-line unicorn/prefer-export-from
6
6
  export { React };
@@ -1 +1 @@
1
- {"version":3,"file":"webpack.js","sourceRoot":"","sources":["../src/webpack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAqB,OAAO,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjE,cAAc,kBAAkB,CAAA;AAEhC,sDAAsD;AACtD,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"webpack.js","sourceRoot":"","sources":["../src/webpack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAA0B,CAAA;AAC7D,OAAO,EAAqB,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAEpE,cAAc,kBAAkB,CAAA;AAEhC,sDAAsD;AACtD,OAAO,EAAE,KAAK,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,15 +1,24 @@
1
1
  {
2
2
  "name": "react-msaview",
3
3
  "author": "Colin",
4
- "version": "4.8.1",
4
+ "version": "5.0.3",
5
5
  "license": "MIT",
6
+ "type": "module",
6
7
  "repository": {
7
8
  "type": "git",
8
9
  "url": "https://github.com/GMOD/react-msaview.git",
9
- "directory": "lib"
10
+ "directory": "packages/lib"
10
11
  },
11
12
  "main": "dist/index.js",
12
13
  "module": "dist/index.js",
14
+ "types": "dist/index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js",
19
+ "default": "./dist/index.js"
20
+ }
21
+ },
13
22
  "files": [
14
23
  "dist",
15
24
  "bundle",
@@ -18,28 +27,13 @@
18
27
  "engines": {
19
28
  "node": ">=10"
20
29
  },
21
- "scripts": {
22
- "clean": "rimraf dist",
23
- "watch": "pnpm build:esm --watch",
24
- "format": "prettier --write .",
25
- "prebuild": "pnpm clean",
26
- "preversion": "node output-version.js > src/version.ts && git add -A src && git commit -m '[skip ci] Bump version.ts'",
27
- "build:esm": "tsc",
28
- "build:bundle": "webpack",
29
- "build": "pnpm build:esm && pnpm build:bundle",
30
- "prepack": "pnpm build",
31
- "postversion": "git push --follow-tags",
32
- "statedocs": "rm -rf apidocs && mkdir apidocs && node --experimental-strip-types docgen/generateStateModelDocs.ts",
33
- "poststatedocs": "pnpm format",
34
- "test": "vitest"
35
- },
36
30
  "peerDependencies": {
37
31
  "@jbrowse/core": ">=2.0.0",
32
+ "@jbrowse/mobx-state-tree": "^5.0.0",
38
33
  "@mui/icons-material": ">=5.0.0",
39
34
  "@mui/material": ">=5.0.0",
40
35
  "mobx": ">=6.0.0",
41
36
  "mobx-react": ">=7.0.0",
42
- "mobx-state-tree": "^5.0.0",
43
37
  "react": ">=16.8.0",
44
38
  "react-dom": ">=16.8.0"
45
39
  },
@@ -47,13 +41,22 @@
47
41
  "@mui/icons-material": "^7.0.1",
48
42
  "@mui/material": "^7.0.1",
49
43
  "colord": "^2.9.3",
50
- "copy-to-clipboard": "^3.3.1",
51
44
  "d3-array": "^3.2.3",
52
45
  "d3-hierarchy": "^3.1.2",
53
- "file-saver": "^2.0.5",
54
46
  "flatbush": "^4.4.0",
55
- "msa-parsers": "^1.0.5",
56
47
  "pako": "^2.1.0",
57
- "svgcanvas": "^2.5.0"
48
+ "@jbrowse/svgcanvas": "5.0.3",
49
+ "msa-parsers": "5.0.3"
50
+ },
51
+ "scripts": {
52
+ "clean": "rimraf dist bundle",
53
+ "watch": "pnpm build:esm --watch",
54
+ "format": "prettier --write .",
55
+ "build:esm": "tsc",
56
+ "build:bundle": "webpack",
57
+ "build": "pnpm clean && pnpm build:esm && pnpm build:bundle",
58
+ "statedocs": "rm -rf apidocs && mkdir apidocs && node --experimental-strip-types docgen/generateStateModelDocs.ts",
59
+ "poststatedocs": "pnpm format",
60
+ "test": "vitest"
58
61
  }
59
- }
62
+ }
@@ -2,7 +2,7 @@ import { blue, green, orange, red } from '@mui/material/colors'
2
2
  import { colord, extend } from 'colord'
3
3
  import namesPlugin from 'colord/plugins/names'
4
4
 
5
- import { transform } from './util'
5
+ import { transform } from './util.ts'
6
6
 
7
7
  extend([namesPlugin])
8
8
 
@@ -2,8 +2,8 @@ import React, { useEffect, useRef } from 'react'
2
2
 
3
3
  import { observer } from 'mobx-react'
4
4
 
5
- import type { MsaViewModel } from '../model'
6
- import type { BasicTrack } from '../types'
5
+ import type { MsaViewModel } from '../model.ts'
6
+ import type { BasicTrack } from '../types.ts'
7
7
 
8
8
  const ConservationBlock = observer(function ({
9
9
  model,
@@ -42,8 +42,7 @@ const ConservationBlock = observer(function ({
42
42
  const barHeight = value * trackHeight
43
43
  const x = i * colWidth
44
44
 
45
- const hue = value * 120
46
- ctx.fillStyle = `hsl(${hue}, 70%, 50%)`
45
+ ctx.fillStyle = 'gray'
47
46
  ctx.fillRect(x, trackHeight - barHeight, colWidth, barHeight)
48
47
  }
49
48
  }, [
@@ -5,10 +5,10 @@ import { ErrorBoundary } from '@jbrowse/core/ui/ErrorBoundary'
5
5
  import { Button, Typography } from '@mui/material'
6
6
  import { observer } from 'mobx-react'
7
7
 
8
- import MSAView from './MSAView'
9
- import ImportForm from './import/ImportForm'
8
+ import MSAView from './MSAView.tsx'
9
+ import ImportForm from './import/ImportForm.tsx'
10
10
 
11
- import type { MsaViewModel } from '../model'
11
+ import type { MsaViewModel } from '../model.ts'
12
12
 
13
13
  function LoadingSpinner() {
14
14
  return (
@@ -2,16 +2,19 @@ import React, { Suspense } from 'react'
2
2
 
3
3
  import { observer } from 'mobx-react'
4
4
 
5
- import { HorizontalResizeHandle, VerticalResizeHandle } from './ResizeHandles'
6
- import Track from './Track'
7
- import VerticalScrollbar from './VerticalScrollbar'
8
- import Header from './header/Header'
9
- import Minimap from './minimap/Minimap'
10
- import MSAPanel from './msa/MSAPanel'
11
- import TreePanel from './tree/TreePanel'
12
- import TreeRuler from './tree/TreeRuler'
5
+ import {
6
+ HorizontalResizeHandle,
7
+ VerticalResizeHandle,
8
+ } from './ResizeHandles.tsx'
9
+ import Track from './Track.tsx'
10
+ import VerticalScrollbar from './VerticalScrollbar.tsx'
11
+ import Header from './header/Header.tsx'
12
+ import Minimap from './minimap/Minimap.tsx'
13
+ import MSAPanel from './msa/MSAPanel.tsx'
14
+ import TreePanel from './tree/TreePanel.tsx'
15
+ import TreeRuler from './tree/TreeRuler.tsx'
13
16
 
14
- import type { MsaViewModel } from '../model'
17
+ import type { MsaViewModel } from '../model.ts'
15
18
 
16
19
  const TopArea = observer(function ({ model }: { model: MsaViewModel }) {
17
20
  const { showHorizontalScrollbar } = model
@@ -2,7 +2,7 @@ import React, { useEffect, useRef, useState } from 'react'
2
2
 
3
3
  import { observer } from 'mobx-react'
4
4
 
5
- import type { MsaViewModel } from '../model'
5
+ import type { MsaViewModel } from '../model.ts'
6
6
 
7
7
  export const VerticalResizeHandle = observer(function ({
8
8
  model,
@@ -1,10 +1,10 @@
1
1
  import React, { useState } from 'react'
2
2
 
3
3
  import { Button, TextField } from '@mui/material'
4
- import copy from 'copy-to-clipboard'
5
4
  import { makeStyles } from 'tss-react/mui'
6
5
 
7
- import Checkbox2 from './Checkbox2'
6
+ import Checkbox2 from './Checkbox2.tsx'
7
+ import copy from '../vendor/copyToClipboard.ts'
8
8
 
9
9
  const useStyles = makeStyles()({
10
10
  textAreaFont: {
@@ -3,10 +3,10 @@ import React, { useEffect, useMemo, useRef } from 'react'
3
3
  import { useTheme } from '@mui/material'
4
4
  import { observer } from 'mobx-react'
5
5
 
6
- import { colorContrast } from '../util'
6
+ import { colorContrast } from '../util.ts'
7
7
 
8
- import type { MsaViewModel } from '../model'
9
- import type { BasicTrack } from '../types'
8
+ import type { MsaViewModel } from '../model.ts'
9
+ import type { BasicTrack } from '../types.ts'
10
10
 
11
11
  const AnnotationBlock = observer(function ({
12
12
  track,
@@ -5,10 +5,10 @@ import { IconButton, Menu, MenuItem } from '@mui/material'
5
5
  import { observer } from 'mobx-react'
6
6
  import { makeStyles } from 'tss-react/mui'
7
7
 
8
- import type { MsaViewModel } from '../model'
8
+ import type { MsaViewModel } from '../model.ts'
9
9
 
10
10
  // lazies
11
- const TrackInfoDialog = lazy(() => import('./dialogs/TrackInfoDialog'))
11
+ const TrackInfoDialog = lazy(() => import('./dialogs/TrackInfoDialog.tsx'))
12
12
 
13
13
  const useStyles = makeStyles()({
14
14
  button: {
@@ -3,7 +3,7 @@ import React, { useEffect, useRef, useState } from 'react'
3
3
  import { clamp } from '@jbrowse/core/util'
4
4
  import { observer } from 'mobx-react'
5
5
 
6
- import type { MsaViewModel } from '../model'
6
+ import type { MsaViewModel } from '../model.ts'
7
7
 
8
8
  const VerticalScrollbar = observer(({ model }: { model: MsaViewModel }) => {
9
9
  const { msaAreaHeight, scrollY, totalHeight } = model
@@ -3,7 +3,7 @@ import React from 'react'
3
3
  import { Dialog } from '@jbrowse/core/ui'
4
4
  import { DialogContent, Link, Typography } from '@mui/material'
5
5
 
6
- import { version } from '../../version'
6
+ import { version } from '../../version.ts'
7
7
 
8
8
  export default function AboutDialog({ onClose }: { onClose: () => void }) {
9
9
  return (
@@ -11,7 +11,7 @@ import {
11
11
  } from '@mui/material'
12
12
  import { observer } from 'mobx-react'
13
13
 
14
- import type { MsaViewModel } from '../../model'
14
+ import type { MsaViewModel } from '../../model.ts'
15
15
  import type { FileLocation } from '@jbrowse/core/util/types'
16
16
 
17
17
  const AddTrackDialog = observer(function ({
@@ -3,11 +3,11 @@ import React, { useState } from 'react'
3
3
  import { Dialog } from '@jbrowse/core/ui'
4
4
  import { Tab, Tabs } from '@mui/material'
5
5
 
6
- import InterProScanPanel from './InterProScanDialog'
7
- import TabPanel from './TabPanel'
8
- import UserProvidedResultPanel from './UserProvidedDomainsDialog'
6
+ import InterProScanPanel from './InterProScanDialog.tsx'
7
+ import TabPanel from './TabPanel.tsx'
8
+ import UserProvidedResultPanel from './UserProvidedDomainsDialog.tsx'
9
9
 
10
- import type { MsaViewModel } from '../../model'
10
+ import type { MsaViewModel } from '../../model.ts'
11
11
 
12
12
  export default function LaunchDomainViewDialog({
13
13
  handleClose,
@@ -15,9 +15,9 @@ import {
15
15
  useTheme,
16
16
  } from '@mui/material'
17
17
 
18
- import Checkbox2 from '../Checkbox2'
18
+ import Checkbox2 from '../Checkbox2.tsx'
19
19
 
20
- import type { MsaViewModel } from '../../model'
20
+ import type { MsaViewModel } from '../../model.ts'
21
21
 
22
22
  export default function ExportSVGDialog({
23
23
  model,
@@ -4,9 +4,9 @@ import { Dialog } from '@jbrowse/core/ui'
4
4
  import { Button, DialogContent } from '@mui/material'
5
5
  import { observer } from 'mobx-react'
6
6
 
7
- import { getPalette } from '../../ggplotPalettes'
7
+ import { getPalette } from '../../ggplotPalettes.ts'
8
8
 
9
- import type { MsaViewModel } from '../../model'
9
+ import type { MsaViewModel } from '../../model.ts'
10
10
 
11
11
  const Toggles = observer(function ({ model }: { model: MsaViewModel }) {
12
12
  const { featureFilters } = model
@@ -5,9 +5,9 @@ import { getSession } from '@jbrowse/core/util'
5
5
  import { Button, DialogActions, DialogContent, Typography } from '@mui/material'
6
6
  import { observer } from 'mobx-react'
7
7
 
8
- import { launchInterProScan } from '../../launchInterProScan'
8
+ import { launchInterProScan } from '../../launchInterProScan.ts'
9
9
 
10
- import type { MsaViewModel } from '../../model'
10
+ import type { MsaViewModel } from '../../model.ts'
11
11
 
12
12
  const InterProScanDialog = observer(function ({
13
13
  handleClose,
@@ -6,9 +6,9 @@ import { Dialog } from '@jbrowse/core/ui'
6
6
  import { DialogContent } from '@mui/material'
7
7
  import { observer } from 'mobx-react'
8
8
 
9
- import SequenceTextArea from '../SequenceTextArea'
9
+ import SequenceTextArea from '../SequenceTextArea.tsx'
10
10
 
11
- import type { MsaViewModel } from '../../model'
11
+ import type { MsaViewModel } from '../../model.ts'
12
12
 
13
13
  const MetadataDialog = observer(function ({
14
14
  model,
@@ -13,10 +13,10 @@ import {
13
13
  import { observer } from 'mobx-react'
14
14
  import { makeStyles } from 'tss-react/mui'
15
15
 
16
- import colorSchemes from '../../colorSchemes'
17
- import Checkbox2 from '../Checkbox2'
16
+ import colorSchemes from '../../colorSchemes.ts'
17
+ import Checkbox2 from '../Checkbox2.tsx'
18
18
 
19
- import type { MsaViewModel } from '../../model'
19
+ import type { MsaViewModel } from '../../model.ts'
20
20
 
21
21
  const useStyles = makeStyles()(theme => ({
22
22
  field: {