@jbrowse/plugin-linear-genome-view 2.4.2 → 2.5.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 (180) hide show
  1. package/dist/BaseLinearDisplay/components/LinearBlocks.d.ts +0 -1
  2. package/dist/BaseLinearDisplay/components/TooLargeMessage.d.ts +3 -4
  3. package/dist/BaseLinearDisplay/components/TooLargeMessage.js +7 -3
  4. package/dist/BaseLinearDisplay/components/TooLargeMessage.js.map +1 -1
  5. package/dist/BaseLinearDisplay/components/Tooltip.d.ts +0 -1
  6. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +75 -14
  7. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +38 -32
  8. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -1
  9. package/dist/BaseLinearDisplay/models/configSchema.d.ts +35 -1
  10. package/dist/BaseLinearDisplay/models/configSchema.js +9 -0
  11. package/dist/BaseLinearDisplay/models/configSchema.js.map +1 -1
  12. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +10 -6
  13. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -1
  14. package/dist/BaseLinearDisplay/models/util.d.ts +6 -2
  15. package/dist/BaseLinearDisplay/models/util.js +4 -4
  16. package/dist/BaseLinearDisplay/models/util.js.map +1 -1
  17. package/dist/BasicTrack/configSchema.d.ts +73 -1
  18. package/dist/FeatureTrack/configSchema.d.ts +75 -1
  19. package/dist/LinearBareDisplay/configSchema.d.ts +28 -1
  20. package/dist/LinearBareDisplay/model.d.ts +62 -11
  21. package/dist/LinearBareDisplay/model.js +2 -2
  22. package/dist/LinearBareDisplay/model.js.map +1 -1
  23. package/dist/LinearBasicDisplay/components/SetMaxHeight.d.ts +0 -1
  24. package/dist/LinearBasicDisplay/configSchema.d.ts +28 -1
  25. package/dist/LinearBasicDisplay/configSchema.js +0 -9
  26. package/dist/LinearBasicDisplay/configSchema.js.map +1 -1
  27. package/dist/LinearBasicDisplay/model.d.ts +71 -10
  28. package/dist/LinearGenomeView/components/CenterLine.d.ts +0 -1
  29. package/dist/LinearGenomeView/components/Cytobands.d.ts +22 -23
  30. package/dist/LinearGenomeView/components/ExportSvgDialog.d.ts +0 -1
  31. package/dist/LinearGenomeView/components/GetSequenceDialog.d.ts +0 -1
  32. package/dist/LinearGenomeView/components/GetSequenceDialog.js +14 -16
  33. package/dist/LinearGenomeView/components/GetSequenceDialog.js.map +1 -1
  34. package/dist/LinearGenomeView/components/Gridlines.d.ts +0 -1
  35. package/dist/LinearGenomeView/components/Header.d.ts +0 -1
  36. package/dist/LinearGenomeView/components/HelpDialog.d.ts +0 -1
  37. package/dist/LinearGenomeView/components/ImportForm.d.ts +0 -1
  38. package/dist/LinearGenomeView/components/ImportForm.js +4 -7
  39. package/dist/LinearGenomeView/components/ImportForm.js.map +1 -1
  40. package/dist/LinearGenomeView/components/LinearGenomeView.d.ts +0 -1
  41. package/dist/LinearGenomeView/components/LinearGenomeView.js +0 -4
  42. package/dist/LinearGenomeView/components/LinearGenomeView.js.map +1 -1
  43. package/dist/LinearGenomeView/components/MiniControls.d.ts +0 -1
  44. package/dist/LinearGenomeView/components/OverviewScalebar.js +2 -1
  45. package/dist/LinearGenomeView/components/OverviewScalebar.js.map +1 -1
  46. package/dist/LinearGenomeView/components/RefNameAutocomplete.js +43 -36
  47. package/dist/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -1
  48. package/dist/LinearGenomeView/components/RubberbandSpan.d.ts +0 -1
  49. package/dist/LinearGenomeView/components/SearchBox.d.ts +0 -1
  50. package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +5 -3
  51. package/dist/LinearGenomeView/components/SearchResultsDialog.js +6 -82
  52. package/dist/LinearGenomeView/components/SearchResultsDialog.js.map +1 -1
  53. package/dist/LinearGenomeView/components/SearchResultsTable.d.ts +8 -0
  54. package/dist/LinearGenomeView/components/SearchResultsTable.js +83 -0
  55. package/dist/LinearGenomeView/components/SearchResultsTable.js.map +1 -0
  56. package/dist/LinearGenomeView/components/SequenceSearchDialog.d.ts +0 -1
  57. package/dist/LinearGenomeView/components/TrackContainer.d.ts +0 -1
  58. package/dist/LinearGenomeView/components/TrackContainer.js +8 -2
  59. package/dist/LinearGenomeView/components/TrackContainer.js.map +1 -1
  60. package/dist/LinearGenomeView/components/TracksContainer.js +5 -7
  61. package/dist/LinearGenomeView/components/TracksContainer.js.map +1 -1
  62. package/dist/LinearGenomeView/components/VerticalGuide.d.ts +0 -1
  63. package/dist/LinearGenomeView/components/ZoomControls.d.ts +0 -1
  64. package/dist/LinearGenomeView/components/util.js +1 -1
  65. package/dist/LinearGenomeView/components/util.js.map +1 -1
  66. package/dist/LinearGenomeView/model.d.ts +49 -36
  67. package/dist/LinearGenomeView/model.js +121 -198
  68. package/dist/LinearGenomeView/model.js.map +1 -1
  69. package/dist/LinearGenomeView/svgcomponents/SVGBackground.d.ts +0 -1
  70. package/dist/LinearGenomeView/svgcomponents/SVGHeader.d.ts +0 -1
  71. package/dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts +0 -1
  72. package/dist/LinearGenomeView/svgcomponents/SVGRuler.d.ts +0 -1
  73. package/dist/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +0 -1
  74. package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +0 -1
  75. package/dist/LinearGenomeView/svgcomponents/SVGTracks.d.ts +0 -1
  76. package/dist/LinearGenomeView/util.d.ts +29 -0
  77. package/dist/LinearGenomeView/util.js +79 -1
  78. package/dist/LinearGenomeView/util.js.map +1 -1
  79. package/dist/index.d.ts +189 -70
  80. package/esm/BaseLinearDisplay/components/LinearBlocks.d.ts +0 -1
  81. package/esm/BaseLinearDisplay/components/TooLargeMessage.d.ts +3 -4
  82. package/esm/BaseLinearDisplay/components/TooLargeMessage.js +7 -3
  83. package/esm/BaseLinearDisplay/components/TooLargeMessage.js.map +1 -1
  84. package/esm/BaseLinearDisplay/components/Tooltip.d.ts +0 -1
  85. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +75 -14
  86. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +40 -34
  87. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -1
  88. package/esm/BaseLinearDisplay/models/configSchema.d.ts +35 -1
  89. package/esm/BaseLinearDisplay/models/configSchema.js +9 -0
  90. package/esm/BaseLinearDisplay/models/configSchema.js.map +1 -1
  91. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +10 -6
  92. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -1
  93. package/esm/BaseLinearDisplay/models/util.d.ts +6 -2
  94. package/esm/BaseLinearDisplay/models/util.js +2 -2
  95. package/esm/BaseLinearDisplay/models/util.js.map +1 -1
  96. package/esm/BasicTrack/configSchema.d.ts +73 -1
  97. package/esm/FeatureTrack/configSchema.d.ts +75 -1
  98. package/esm/LinearBareDisplay/configSchema.d.ts +28 -1
  99. package/esm/LinearBareDisplay/model.d.ts +62 -11
  100. package/esm/LinearBareDisplay/model.js +1 -1
  101. package/esm/LinearBareDisplay/model.js.map +1 -1
  102. package/esm/LinearBasicDisplay/components/SetMaxHeight.d.ts +0 -1
  103. package/esm/LinearBasicDisplay/configSchema.d.ts +28 -1
  104. package/esm/LinearBasicDisplay/configSchema.js +0 -9
  105. package/esm/LinearBasicDisplay/configSchema.js.map +1 -1
  106. package/esm/LinearBasicDisplay/model.d.ts +71 -10
  107. package/esm/LinearGenomeView/components/CenterLine.d.ts +0 -1
  108. package/esm/LinearGenomeView/components/Cytobands.d.ts +22 -23
  109. package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +0 -1
  110. package/esm/LinearGenomeView/components/GetSequenceDialog.d.ts +0 -1
  111. package/esm/LinearGenomeView/components/GetSequenceDialog.js +15 -17
  112. package/esm/LinearGenomeView/components/GetSequenceDialog.js.map +1 -1
  113. package/esm/LinearGenomeView/components/Gridlines.d.ts +0 -1
  114. package/esm/LinearGenomeView/components/Header.d.ts +0 -1
  115. package/esm/LinearGenomeView/components/HelpDialog.d.ts +0 -1
  116. package/esm/LinearGenomeView/components/ImportForm.d.ts +0 -1
  117. package/esm/LinearGenomeView/components/ImportForm.js +5 -8
  118. package/esm/LinearGenomeView/components/ImportForm.js.map +1 -1
  119. package/esm/LinearGenomeView/components/LinearGenomeView.d.ts +0 -1
  120. package/esm/LinearGenomeView/components/LinearGenomeView.js +0 -4
  121. package/esm/LinearGenomeView/components/LinearGenomeView.js.map +1 -1
  122. package/esm/LinearGenomeView/components/MiniControls.d.ts +0 -1
  123. package/esm/LinearGenomeView/components/OverviewScalebar.js +2 -1
  124. package/esm/LinearGenomeView/components/OverviewScalebar.js.map +1 -1
  125. package/esm/LinearGenomeView/components/RefNameAutocomplete.js +43 -36
  126. package/esm/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -1
  127. package/esm/LinearGenomeView/components/RubberbandSpan.d.ts +0 -1
  128. package/esm/LinearGenomeView/components/SearchBox.d.ts +0 -1
  129. package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +5 -3
  130. package/esm/LinearGenomeView/components/SearchResultsDialog.js +7 -83
  131. package/esm/LinearGenomeView/components/SearchResultsDialog.js.map +1 -1
  132. package/esm/LinearGenomeView/components/SearchResultsTable.d.ts +8 -0
  133. package/esm/LinearGenomeView/components/SearchResultsTable.js +77 -0
  134. package/esm/LinearGenomeView/components/SearchResultsTable.js.map +1 -0
  135. package/esm/LinearGenomeView/components/SequenceSearchDialog.d.ts +0 -1
  136. package/esm/LinearGenomeView/components/TrackContainer.d.ts +0 -1
  137. package/esm/LinearGenomeView/components/TrackContainer.js +8 -2
  138. package/esm/LinearGenomeView/components/TrackContainer.js.map +1 -1
  139. package/esm/LinearGenomeView/components/TracksContainer.js +5 -7
  140. package/esm/LinearGenomeView/components/TracksContainer.js.map +1 -1
  141. package/esm/LinearGenomeView/components/VerticalGuide.d.ts +0 -1
  142. package/esm/LinearGenomeView/components/ZoomControls.d.ts +0 -1
  143. package/esm/LinearGenomeView/components/util.js +1 -1
  144. package/esm/LinearGenomeView/components/util.js.map +1 -1
  145. package/esm/LinearGenomeView/model.d.ts +49 -36
  146. package/esm/LinearGenomeView/model.js +122 -199
  147. package/esm/LinearGenomeView/model.js.map +1 -1
  148. package/esm/LinearGenomeView/svgcomponents/SVGBackground.d.ts +0 -1
  149. package/esm/LinearGenomeView/svgcomponents/SVGHeader.d.ts +0 -1
  150. package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts +0 -1
  151. package/esm/LinearGenomeView/svgcomponents/SVGRuler.d.ts +0 -1
  152. package/esm/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +0 -1
  153. package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +0 -1
  154. package/esm/LinearGenomeView/svgcomponents/SVGTracks.d.ts +0 -1
  155. package/esm/LinearGenomeView/util.d.ts +29 -0
  156. package/esm/LinearGenomeView/util.js +76 -0
  157. package/esm/LinearGenomeView/util.js.map +1 -1
  158. package/esm/index.d.ts +189 -70
  159. package/package.json +3 -3
  160. package/src/BaseLinearDisplay/components/TooLargeMessage.tsx +10 -6
  161. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +46 -36
  162. package/src/BaseLinearDisplay/models/configSchema.ts +10 -0
  163. package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +19 -13
  164. package/src/BaseLinearDisplay/models/util.ts +10 -4
  165. package/src/LinearBareDisplay/model.ts +1 -1
  166. package/src/LinearBasicDisplay/configSchema.ts +0 -10
  167. package/src/LinearGenomeView/components/GetSequenceDialog.tsx +15 -25
  168. package/src/LinearGenomeView/components/ImportForm.tsx +4 -14
  169. package/src/LinearGenomeView/components/LinearGenomeView.tsx +0 -14
  170. package/src/LinearGenomeView/components/OverviewScalebar.tsx +2 -1
  171. package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +107 -65
  172. package/src/LinearGenomeView/components/SearchResultsDialog.tsx +17 -112
  173. package/src/LinearGenomeView/components/SearchResultsTable.tsx +121 -0
  174. package/src/LinearGenomeView/components/TrackContainer.tsx +12 -3
  175. package/src/LinearGenomeView/components/TracksContainer.tsx +9 -6
  176. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.tsx.snap +11 -11
  177. package/src/LinearGenomeView/components/util.ts +2 -1
  178. package/src/LinearGenomeView/index.test.ts +10 -12
  179. package/src/LinearGenomeView/model.ts +163 -236
  180. package/src/LinearGenomeView/util.ts +98 -0
@@ -1,3 +1,9 @@
1
+ import {
2
+ AssemblyManager,
3
+ ParsedLocString,
4
+ parseLocString,
5
+ } from '@jbrowse/core/util'
6
+
1
7
  /**
2
8
  * Given a scale ( bp/px ) and minimum distances (px) between major and minor
3
9
  * gridlines, return an object like `{ majorPitch: bp, minorPitch: bp }` giving
@@ -82,3 +88,95 @@ export function makeTicks(
82
88
  }
83
89
  return ticks
84
90
  }
91
+
92
+ /**
93
+ * Generate location objects for a set of parsed locstrings, which includes
94
+ * translating the refNames to assembly-canonical refNames and adding the
95
+ * 'parentRegion'
96
+ *
97
+ * Used by navToLocations and navToLocString
98
+ */
99
+ export async function generateLocations(
100
+ regions: ParsedLocString[] = [],
101
+ assemblyManager: AssemblyManager,
102
+ assemblyName?: string,
103
+ ) {
104
+ return Promise.all(
105
+ regions.map(async region => {
106
+ const asmName = region.assemblyName || assemblyName
107
+ if (!asmName) {
108
+ throw new Error('no assembly provided')
109
+ }
110
+ const asm = await assemblyManager.waitForAssembly(asmName)
111
+ const { refName } = region
112
+ if (!asm) {
113
+ throw new Error(`assembly ${asmName} not found`)
114
+ }
115
+ const { regions } = asm
116
+ if (!regions) {
117
+ throw new Error(`regions not loaded yet for ${asmName}`)
118
+ }
119
+ const canonicalRefName = asm.getCanonicalRefName(region.refName)
120
+ if (!canonicalRefName) {
121
+ throw new Error(`Could not find refName ${refName} in ${asm.name}`)
122
+ }
123
+ const parentRegion = regions.find(r => r.refName === canonicalRefName)
124
+ if (!parentRegion) {
125
+ throw new Error(`Could not find refName ${refName} in ${asmName}`)
126
+ }
127
+
128
+ return {
129
+ ...(region as Omit<typeof region, symbol>),
130
+ assemblyName: asmName,
131
+ parentRegion,
132
+ }
133
+ }),
134
+ )
135
+ }
136
+
137
+ /**
138
+ * Parses locString or space separated set of locStrings into location objects
139
+ * Example inputs:
140
+ * "chr1"
141
+ * "chr1:1-100"
142
+ * "chr1:1..100"
143
+ * "chr1 chr2"
144
+ * "chr1:1-100 chr2:1-100"
145
+ * "chr1 100 200" equivalent to "chr1:1-100"
146
+ *
147
+ * Used by navToLocString
148
+ */
149
+ export function parseLocStrings(
150
+ input: string,
151
+ assemblyName: string,
152
+ isValidRefName: (str: string, assemblyName: string) => boolean,
153
+ ) {
154
+ const inputs = input
155
+ .split(/(\s+)/)
156
+ .map(f => f.trim())
157
+ .filter(f => !!f)
158
+ // first try interpreting as a whitespace-separated sequence of
159
+ // multiple locstrings
160
+ try {
161
+ return inputs.map(loc =>
162
+ parseLocString(loc, ref => isValidRefName(ref, assemblyName)),
163
+ )
164
+ } catch (e) {
165
+ // if this fails, try interpreting as a whitespace-separated refname,
166
+ // start, end if start and end are integer inputs
167
+ const [refName, start, end] = inputs
168
+ if (
169
+ `${e}`.match(/Unknown reference sequence/) &&
170
+ Number.isInteger(+start) &&
171
+ Number.isInteger(+end)
172
+ ) {
173
+ return [
174
+ parseLocString(refName + ':' + start + '..' + end, ref =>
175
+ isValidRefName(ref, assemblyName),
176
+ ),
177
+ ]
178
+ } else {
179
+ throw e
180
+ }
181
+ }
182
+ }