jbrowse-plugin-graphgenomeviewer 4.6.0 → 4.7.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jbrowse-plugin-graphgenomeviewer",
3
- "version": "4.6.0",
3
+ "version": "4.7.0",
4
4
  "description": "JBrowse 2 graph genome (pangenome) view: rGFA reference-anchored layouts, the Bandage force-directed engine, and haplotype lanes read from a gbz-base database",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "repository": {
@@ -76,7 +76,7 @@
76
76
  "typescript-eslint": "^8.71.0",
77
77
  "typescript7": "npm:typescript@^7.0.2",
78
78
  "vitest": "^5.0.3",
79
- "@jbrowse/bandage-core": "4.6.0"
79
+ "@jbrowse/bandage-core": "4.7.0"
80
80
  },
81
81
  "peerDependencies": {
82
82
  "react": ">=18.0.0",
@@ -2738,6 +2738,23 @@ describe('walk rows', () => {
2738
2738
  expect(model.figureSpec()?.walkRowSamples).toBeUndefined()
2739
2739
  })
2740
2740
 
2741
+ test('walk rows offer no figure spec, since bandage-figure draws no walk rows', async () => {
2742
+ rpcRespond()
2743
+ mockReadFile.mockResolvedValue(WALKS_GFA)
2744
+ const model = stateModelFactory().create({
2745
+ type: 'GraphGenomeView',
2746
+ gfaLocation: {
2747
+ uri: 'https://example.com/graphs/walks.gfa',
2748
+ locationType: 'UriLocation',
2749
+ },
2750
+ loadedRegion: TEST_REGION,
2751
+ layoutMode: 'walkrows',
2752
+ })
2753
+ await model.load()
2754
+ expect(model.walkRowBars).toBeDefined()
2755
+ expect(model.figureSpecUnavailable).toMatch(/^bandage-figure draws no /)
2756
+ })
2757
+
2741
2758
  test('walks lift together, each keeping the colour it was given', async () => {
2742
2759
  rpcRespond()
2743
2760
  const model = stateModelFactory().create({
@@ -2391,6 +2391,15 @@ export function GraphPaneMixin() {
2391
2391
  ? undefined
2392
2392
  : `${layoutModeByValue(self.chosenLayoutMode).label} draws a picture of its own, which the SVG export does not`
2393
2393
  },
2394
+ // Why bandage-figure can't make this drawing again: it draws only
2395
+ // layouts with nodes, from a graph it can read for itself
2396
+ get figureSpecUnavailable() {
2397
+ return !self.drawsNodes
2398
+ ? `bandage-figure draws no ${layoutModeByValue(self.chosenLayoutMode).label} layout`
2399
+ : this.figureSpec()
2400
+ ? undefined
2401
+ : 'bandage-figure reads a graph cut from a gbz-base track or a GFA url'
2402
+ },
2394
2403
  // The drawing as a standalone SVG, fitted, with its genes, its lifted
2395
2404
  // walks' keys, facet panels and the strip of walk rows; see figureSvg
2396
2405
  figure() {
@@ -4180,9 +4189,8 @@ export function GraphPaneMixin() {
4180
4189
  },
4181
4190
  {
4182
4191
  label: 'Copy figure spec',
4183
- disabled: !self.figureSpec(),
4184
- disabledHelpText:
4185
- 'bandage-figure reads a graph cut from a gbz-base track or a GFA url',
4192
+ disabled: self.figureSpecUnavailable !== undefined,
4193
+ disabledHelpText: self.figureSpecUnavailable,
4186
4194
  onClick: () => {
4187
4195
  const spec = self.figureSpec()
4188
4196
  const session = getSession(self)
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '4.6.0'
1
+ export const version = '4.7.0'