@jbrowse/plugin-linear-genome-view 2.7.0 → 2.7.2

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 (31) hide show
  1. package/dist/BaseLinearDisplay/components/LinearBlocks.js +1 -1
  2. package/dist/BaseLinearDisplay/components/Tooltip.js +4 -2
  3. package/dist/LinearGenomeView/components/LinearGenomeView.js +29 -7
  4. package/dist/LinearGenomeView/components/OverviewRubberband.js +5 -2
  5. package/dist/LinearGenomeView/components/TrackLabel.js +2 -18
  6. package/dist/LinearGenomeView/components/TrackLabelContainer.js +2 -2
  7. package/dist/LinearGenomeView/components/TrackLabelDragHandle.d.ts +9 -0
  8. package/dist/LinearGenomeView/components/TrackLabelDragHandle.js +32 -0
  9. package/dist/LinearGenomeView/index.d.ts +1 -2
  10. package/dist/LinearGenomeView/index.js +3 -2
  11. package/dist/LinearGenomeView/model.d.ts +7 -1
  12. package/dist/LinearGenomeView/model.js +30 -19
  13. package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.js +3 -1
  14. package/dist/index.d.ts +52 -15
  15. package/dist/index.js +19 -0
  16. package/esm/BaseLinearDisplay/components/LinearBlocks.js +1 -1
  17. package/esm/BaseLinearDisplay/components/Tooltip.js +4 -2
  18. package/esm/LinearGenomeView/components/LinearGenomeView.js +29 -7
  19. package/esm/LinearGenomeView/components/OverviewRubberband.js +5 -2
  20. package/esm/LinearGenomeView/components/TrackLabel.js +2 -18
  21. package/esm/LinearGenomeView/components/TrackLabelContainer.js +2 -2
  22. package/esm/LinearGenomeView/components/TrackLabelDragHandle.d.ts +9 -0
  23. package/esm/LinearGenomeView/components/TrackLabelDragHandle.js +27 -0
  24. package/esm/LinearGenomeView/index.d.ts +1 -2
  25. package/esm/LinearGenomeView/index.js +2 -2
  26. package/esm/LinearGenomeView/model.d.ts +7 -1
  27. package/esm/LinearGenomeView/model.js +30 -19
  28. package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.js +3 -1
  29. package/esm/index.d.ts +52 -15
  30. package/esm/index.js +19 -0
  31. package/package.json +2 -2
@@ -56,7 +56,7 @@ export const WIDGET_HEIGHT = 32;
56
56
  */
57
57
  export function stateModelFactory(pluginManager) {
58
58
  return types
59
- .compose(BaseViewModel, types.model('LinearGenomeView', {
59
+ .compose('LinearGenomeView', BaseViewModel, types.model({
60
60
  /**
61
61
  * #property
62
62
  */
@@ -108,12 +108,6 @@ export function stateModelFactory(pluginManager) {
108
108
  * #property
109
109
  */
110
110
  trackSelectorType: types.optional(types.enumeration(['hierarchical']), 'hierarchical'),
111
- /**
112
- * #property
113
- * how to display the track labels, can be "overlapping", "offset", or
114
- * "hidden"
115
- */
116
- trackLabels: types.optional(types.string, () => localStorageGetItem('lgv-trackLabels') || 'overlapping'),
117
111
  /**
118
112
  * #property
119
113
  * show the "center line"
@@ -124,6 +118,15 @@ export function stateModelFactory(pluginManager) {
124
118
  * show the "cytobands" in the overview scale bar
125
119
  */
126
120
  showCytobandsSetting: types.optional(types.boolean, () => Boolean(JSON.parse(localStorageGetItem('lgv-showCytobands') || 'true'))),
121
+ /**
122
+ * #property
123
+ * how to display the track labels, can be "overlapping", "offset", or
124
+ * "hidden", or empty string "" (which results in conf being used). see
125
+ * LinearGenomeViewPlugin
126
+ * https://jbrowse.org/jb2/docs/config/lineargenomeviewplugin/ docs for
127
+ * how conf is used
128
+ */
129
+ trackLabels: types.optional(types.string, () => localStorageGetItem('lgv-trackLabels') || ''),
127
130
  /**
128
131
  * #property
129
132
  * show the "gridlines" in the track area
@@ -146,6 +149,18 @@ export function stateModelFactory(pluginManager) {
146
149
  rightOffset: undefined,
147
150
  }))
148
151
  .views(self => ({
152
+ /**
153
+ * #getter
154
+ * this is the effective value of the track labels setting, incorporating
155
+ * both the config and view state. use this instead of view.trackLabels
156
+ */
157
+ get trackLabelsSetting() {
158
+ const sessionSetting = getConf(getSession(self), [
159
+ 'LinearGenomeViewPlugin',
160
+ 'trackLabels',
161
+ ]);
162
+ return self.trackLabels || sessionSetting;
163
+ },
149
164
  /**
150
165
  * #getter
151
166
  */
@@ -586,6 +601,7 @@ export function stateModelFactory(pluginManager) {
586
601
  * #action
587
602
  */
588
603
  setTrackLabels(setting) {
604
+ localStorage.setItem('lgv-trackLabels', setting);
589
605
  self.trackLabels = setting;
590
606
  },
591
607
  /**
@@ -916,21 +932,21 @@ export function stateModelFactory(pluginManager) {
916
932
  label: 'Overlapping',
917
933
  icon: VisibilityIcon,
918
934
  type: 'radio',
919
- checked: self.trackLabels === 'overlapping',
935
+ checked: self.trackLabelsSetting === 'overlapping',
920
936
  onClick: () => self.setTrackLabels('overlapping'),
921
937
  },
922
938
  {
923
939
  label: 'Offset',
924
940
  icon: VisibilityIcon,
925
941
  type: 'radio',
926
- checked: self.trackLabels === 'offset',
942
+ checked: self.trackLabelsSetting === 'offset',
927
943
  onClick: () => self.setTrackLabels('offset'),
928
944
  },
929
945
  {
930
946
  label: 'Hidden',
931
947
  icon: VisibilityIcon,
932
948
  type: 'radio',
933
- checked: self.trackLabels === 'hidden',
949
+ checked: self.trackLabelsSetting === 'hidden',
934
950
  onClick: () => self.setTrackLabels('hidden'),
935
951
  },
936
952
  ],
@@ -1021,9 +1037,8 @@ export function stateModelFactory(pluginManager) {
1021
1037
  }, { delay: 150 }));
1022
1038
  addDisposer(self, autorun(() => {
1023
1039
  const s = (s) => JSON.stringify(s);
1024
- const { trackLabels, showCytobandsSetting, showCenterLine } = self;
1040
+ const { showCytobandsSetting, showCenterLine } = self;
1025
1041
  if (typeof localStorage !== 'undefined') {
1026
- localStorage.setItem('lgv-trackLabels', trackLabels);
1027
1042
  localStorage.setItem('lgv-showCytobands', s(showCytobandsSetting));
1028
1043
  localStorage.setItem('lgv-showCenterLine', s(showCenterLine));
1029
1044
  }
@@ -1235,22 +1250,18 @@ export function stateModelFactory(pluginManager) {
1235
1250
  if (session.focusedViewId === self.id && (e.ctrlKey || e.metaKey)) {
1236
1251
  if (e.code === 'ArrowLeft') {
1237
1252
  e.preventDefault();
1238
- // pan left
1239
1253
  self.slide(-0.9);
1240
1254
  }
1241
- if (e.code === 'ArrowRight') {
1255
+ else if (e.code === 'ArrowRight') {
1242
1256
  e.preventDefault();
1243
- // pan right
1244
1257
  self.slide(0.9);
1245
1258
  }
1246
- if (e.code === 'ArrowUp' && self.scaleFactor === 1) {
1259
+ else if (e.code === 'ArrowUp' && self.scaleFactor === 1) {
1247
1260
  e.preventDefault();
1248
- // zoom in
1249
1261
  self.zoom(self.bpPerPx / 2);
1250
1262
  }
1251
- if (e.code === 'ArrowDown' && self.scaleFactor === 1) {
1263
+ else if (e.code === 'ArrowDown' && self.scaleFactor === 1) {
1252
1264
  e.preventDefault();
1253
- // zoom out
1254
1265
  self.zoom(self.bpPerPx * 2);
1255
1266
  }
1256
1267
  }
@@ -1,9 +1,11 @@
1
1
  import React from 'react';
2
2
  import { useTheme } from '@mui/material';
3
+ import { coarseStripHTML } from '@jbrowse/core/util';
3
4
  export default function SVGTrackLabel({ trackLabels, trackName, fontSize, trackLabelOffset, x, }) {
4
5
  const theme = useTheme();
5
6
  const fill = theme.palette.text.primary;
6
7
  const xoff = trackLabels === 'overlay' ? 5 : 0;
7
8
  const yoff = trackLabels === 'offset' ? 5 : 0;
8
- return trackLabels !== 'none' ? (React.createElement("g", null, trackLabels === 'left' ? (React.createElement("text", { x: trackLabelOffset - 40, y: 20, fill: fill, fontSize: fontSize, dominantBaseline: "hanging", textAnchor: "end" }, trackName)) : (React.createElement("text", { x: x + xoff, y: yoff, fill: fill, fontSize: fontSize, dominantBaseline: "hanging" }, trackName)))) : null;
9
+ const name = coarseStripHTML(trackName);
10
+ return trackLabels !== 'none' ? (React.createElement("g", null, trackLabels === 'left' ? (React.createElement("text", { x: trackLabelOffset - 40, y: 20, fill: fill, fontSize: fontSize, dominantBaseline: "hanging", textAnchor: "end" }, name)) : (React.createElement("text", { x: x + xoff, y: yoff, fill: fill, fontSize: fontSize, dominantBaseline: "hanging" }, name)))) : null;
9
11
  }
package/esm/index.d.ts CHANGED
@@ -198,7 +198,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
198
198
  resizeHeight(distance: number): number;
199
199
  } & {
200
200
  featureDensityStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats> | undefined;
201
- featureDensityStats: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined;
201
+ featureDensityStats: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined; /**
202
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
203
+ */
202
204
  currStatsBpPerPx: number;
203
205
  } & {
204
206
  readonly currentBytesRequested: number;
@@ -401,7 +403,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
401
403
  resizeHeight(distance: number): number;
402
404
  } & {
403
405
  featureDensityStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats> | undefined;
404
- featureDensityStats: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined;
406
+ featureDensityStats: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined; /**
407
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
408
+ */
405
409
  currStatsBpPerPx: number;
406
410
  } & {
407
411
  readonly currentBytesRequested: number;
@@ -694,7 +698,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
694
698
  resizeHeight(distance: number): number;
695
699
  } & {
696
700
  featureDensityStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats> | undefined;
697
- featureDensityStats: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined;
701
+ featureDensityStats: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined; /**
702
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
703
+ */
698
704
  currStatsBpPerPx: number;
699
705
  } & {
700
706
  readonly currentBytesRequested: number;
@@ -894,9 +900,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
894
900
  hideHeaderOverview: boolean;
895
901
  hideNoTracksActive: boolean;
896
902
  trackSelectorType: string;
897
- trackLabels: string;
898
903
  showCenterLine: boolean;
899
904
  showCytobandsSetting: boolean;
905
+ trackLabels: string;
900
906
  showGridlines: boolean;
901
907
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
902
908
  width: number;
@@ -905,7 +911,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
905
911
  } & {
906
912
  setDisplayName(name: string): void;
907
913
  setWidth(newWidth: number): void;
908
- setMinimized(flag: boolean): void;
914
+ setMinimized(flag: boolean): void; /**
915
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
916
+ */
909
917
  } & {
910
918
  volatileWidth: number | undefined;
911
919
  minimumBlockWidth: number;
@@ -919,6 +927,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
919
927
  leftOffset: import("./LinearGenomeView").BpOffset | undefined;
920
928
  rightOffset: import("./LinearGenomeView").BpOffset | undefined;
921
929
  } & {
930
+ readonly trackLabelsSetting: any;
922
931
  readonly width: number;
923
932
  readonly interRegionPaddingWidth: number;
924
933
  readonly assemblyNames: string[];
@@ -1082,9 +1091,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1082
1091
  hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
1083
1092
  hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
1084
1093
  trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
1085
- trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
1086
1094
  showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
1087
1095
  showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
1096
+ trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
1088
1097
  showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
1089
1098
  }, {
1090
1099
  width: number;
@@ -1093,7 +1102,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1093
1102
  } & {
1094
1103
  setDisplayName(name: string): void;
1095
1104
  setWidth(newWidth: number): void;
1096
- setMinimized(flag: boolean): void;
1105
+ setMinimized(flag: boolean): void; /**
1106
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
1107
+ */
1097
1108
  } & {
1098
1109
  volatileWidth: number | undefined;
1099
1110
  minimumBlockWidth: number;
@@ -1107,6 +1118,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
1107
1118
  leftOffset: import("./LinearGenomeView").BpOffset | undefined;
1108
1119
  rightOffset: import("./LinearGenomeView").BpOffset | undefined;
1109
1120
  } & {
1121
+ readonly trackLabelsSetting: any;
1110
1122
  readonly width: number;
1111
1123
  readonly interRegionPaddingWidth: number;
1112
1124
  readonly assemblyNames: string[];
@@ -1280,9 +1292,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1280
1292
  hideHeaderOverview: boolean;
1281
1293
  hideNoTracksActive: boolean;
1282
1294
  trackSelectorType: string;
1283
- trackLabels: string;
1284
1295
  showCenterLine: boolean;
1285
1296
  showCytobandsSetting: boolean;
1297
+ trackLabels: string;
1286
1298
  showGridlines: boolean;
1287
1299
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
1288
1300
  width: number;
@@ -1291,7 +1303,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1291
1303
  } & {
1292
1304
  setDisplayName(name: string): void;
1293
1305
  setWidth(newWidth: number): void;
1294
- setMinimized(flag: boolean): void;
1306
+ setMinimized(flag: boolean): void; /**
1307
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
1308
+ */
1295
1309
  } & {
1296
1310
  volatileWidth: number | undefined;
1297
1311
  minimumBlockWidth: number;
@@ -1305,6 +1319,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
1305
1319
  leftOffset: import("./LinearGenomeView").BpOffset | undefined;
1306
1320
  rightOffset: import("./LinearGenomeView").BpOffset | undefined;
1307
1321
  } & {
1322
+ readonly trackLabelsSetting: any;
1308
1323
  readonly width: number;
1309
1324
  readonly interRegionPaddingWidth: number;
1310
1325
  readonly assemblyNames: string[];
@@ -1468,9 +1483,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1468
1483
  hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
1469
1484
  hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
1470
1485
  trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
1471
- trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
1472
1486
  showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
1473
1487
  showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
1488
+ trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
1474
1489
  showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
1475
1490
  }, {
1476
1491
  width: number;
@@ -1479,7 +1494,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1479
1494
  } & {
1480
1495
  setDisplayName(name: string): void;
1481
1496
  setWidth(newWidth: number): void;
1482
- setMinimized(flag: boolean): void;
1497
+ setMinimized(flag: boolean): void; /**
1498
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
1499
+ */
1483
1500
  } & {
1484
1501
  volatileWidth: number | undefined;
1485
1502
  minimumBlockWidth: number;
@@ -1493,6 +1510,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
1493
1510
  leftOffset: import("./LinearGenomeView").BpOffset | undefined;
1494
1511
  rightOffset: import("./LinearGenomeView").BpOffset | undefined;
1495
1512
  } & {
1513
+ readonly trackLabelsSetting: any;
1496
1514
  readonly width: number;
1497
1515
  readonly interRegionPaddingWidth: number;
1498
1516
  readonly assemblyNames: string[];
@@ -1666,9 +1684,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1666
1684
  hideHeaderOverview: boolean;
1667
1685
  hideNoTracksActive: boolean;
1668
1686
  trackSelectorType: string;
1669
- trackLabels: string;
1670
1687
  showCenterLine: boolean;
1671
1688
  showCytobandsSetting: boolean;
1689
+ trackLabels: string;
1672
1690
  showGridlines: boolean;
1673
1691
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
1674
1692
  width: number;
@@ -1677,7 +1695,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1677
1695
  } & {
1678
1696
  setDisplayName(name: string): void;
1679
1697
  setWidth(newWidth: number): void;
1680
- setMinimized(flag: boolean): void;
1698
+ setMinimized(flag: boolean): void; /**
1699
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
1700
+ */
1681
1701
  } & {
1682
1702
  volatileWidth: number | undefined;
1683
1703
  minimumBlockWidth: number;
@@ -1691,6 +1711,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
1691
1711
  leftOffset: import("./LinearGenomeView").BpOffset | undefined;
1692
1712
  rightOffset: import("./LinearGenomeView").BpOffset | undefined;
1693
1713
  } & {
1714
+ readonly trackLabelsSetting: any;
1694
1715
  readonly width: number;
1695
1716
  readonly interRegionPaddingWidth: number;
1696
1717
  readonly assemblyNames: string[];
@@ -1854,9 +1875,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1854
1875
  hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
1855
1876
  hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
1856
1877
  trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
1857
- trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
1858
1878
  showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
1859
1879
  showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
1880
+ trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
1860
1881
  showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
1861
1882
  }, {
1862
1883
  width: number;
@@ -1865,7 +1886,9 @@ export default class LinearGenomeViewPlugin extends Plugin {
1865
1886
  } & {
1866
1887
  setDisplayName(name: string): void;
1867
1888
  setWidth(newWidth: number): void;
1868
- setMinimized(flag: boolean): void;
1889
+ setMinimized(flag: boolean): void; /**
1890
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
1891
+ */
1869
1892
  } & {
1870
1893
  volatileWidth: number | undefined;
1871
1894
  minimumBlockWidth: number;
@@ -1879,6 +1902,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
1879
1902
  leftOffset: import("./LinearGenomeView").BpOffset | undefined;
1880
1903
  rightOffset: import("./LinearGenomeView").BpOffset | undefined;
1881
1904
  } & {
1905
+ readonly trackLabelsSetting: any;
1882
1906
  readonly width: number;
1883
1907
  readonly interRegionPaddingWidth: number;
1884
1908
  readonly assemblyNames: string[];
@@ -2021,6 +2045,19 @@ export default class LinearGenomeViewPlugin extends Plugin {
2021
2045
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
2022
2046
  }) => import("react").JSX.Element;
2023
2047
  };
2048
+ /**
2049
+ * #config LinearGenomeViewConfigSchema
2050
+ */
2051
+ configurationSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2052
+ /**
2053
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
2054
+ */
2055
+ trackLabels: {
2056
+ type: string;
2057
+ defaultValue: string;
2058
+ model: import("mobx-state-tree").ISimpleType<string>;
2059
+ };
2060
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
2024
2061
  install(pluginManager: PluginManager): void;
2025
2062
  configure(pluginManager: PluginManager): void;
2026
2063
  }
package/esm/index.js CHANGED
@@ -10,6 +10,8 @@ import LinearBasicDisplayF from './LinearBasicDisplay';
10
10
  import FeatureTrackF from './FeatureTrack';
11
11
  import BasicTrackF from './BasicTrack';
12
12
  import LaunchLinearGenomeViewF from './LaunchLinearGenomeView';
13
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
14
+ import { types } from 'mobx-state-tree';
13
15
  export default class LinearGenomeViewPlugin extends Plugin {
14
16
  constructor() {
15
17
  super(...arguments);
@@ -22,6 +24,23 @@ export default class LinearGenomeViewPlugin extends Plugin {
22
24
  ZoomControls,
23
25
  LinearGenomeView,
24
26
  };
27
+ /**
28
+ * #config LinearGenomeViewConfigSchema
29
+ */
30
+ this.configurationSchema = ConfigurationSchema('LinearGenomeViewConfigSchema', {
31
+ /**
32
+ * #slot configuration.LinearGenomeViewPlugin.trackLabels
33
+ */
34
+ trackLabels: {
35
+ type: 'string',
36
+ defaultValue: 'overlapping',
37
+ model: types.enumeration('trackLabelOptions', [
38
+ 'offset',
39
+ 'overlapping',
40
+ 'hidden',
41
+ ]),
42
+ },
43
+ });
25
44
  }
26
45
  install(pluginManager) {
27
46
  FeatureTrackF(pluginManager);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-linear-genome-view",
3
- "version": "2.7.0",
3
+ "version": "2.7.2",
4
4
  "description": "JBrowse 2 linear genome view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -65,5 +65,5 @@
65
65
  "access": "public"
66
66
  },
67
67
  "module": "esm/index.js",
68
- "gitHead": "dbe7fb1af01fc89f833d2744635eb44a17365b41"
68
+ "gitHead": "9052b295f2d322e729254457ed9fe2231fb22cce"
69
69
  }