@jbrowse/plugin-alignments 2.6.3 → 2.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.
Files changed (121) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -2
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +2 -1
  3. package/dist/AlignmentsFeatureDetail/util.d.ts +1 -3
  4. package/dist/BamAdapter/BamAdapter.d.ts +2 -9
  5. package/dist/CramAdapter/CramAdapter.d.ts +3 -11
  6. package/dist/CramAdapter/CramAdapter.js +2 -1
  7. package/dist/CramAdapter/util.js +3 -6
  8. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +3 -4
  9. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +3 -3
  10. package/dist/LinearAlignmentsDisplay/models/model.d.ts +5 -9
  11. package/dist/LinearAlignmentsDisplay/models/model.js +1 -0
  12. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +49 -27
  13. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +20 -2
  14. package/dist/LinearPileupDisplay/components/ColorByModifications.d.ts +4 -5
  15. package/dist/LinearPileupDisplay/components/ColorByModifications.js +3 -4
  16. package/dist/LinearPileupDisplay/components/ColorByTag.d.ts +7 -5
  17. package/dist/LinearPileupDisplay/components/ColorByTag.js +4 -7
  18. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -4
  19. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +2 -2
  20. package/dist/LinearPileupDisplay/components/SetFeatureHeight.d.ts +4 -5
  21. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +3 -3
  22. package/dist/LinearPileupDisplay/components/SetMaxHeight.d.ts +3 -4
  23. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +3 -3
  24. package/dist/LinearPileupDisplay/components/SortByTag.d.ts +3 -4
  25. package/dist/LinearPileupDisplay/components/SortByTag.js +3 -3
  26. package/dist/LinearPileupDisplay/model.d.ts +56 -35
  27. package/dist/LinearPileupDisplay/model.js +3 -2
  28. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -2
  29. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +2 -1
  30. package/dist/LinearReadArcsDisplay/model.d.ts +9 -14
  31. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -2
  32. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +2 -1
  33. package/dist/LinearReadCloudDisplay/drawPairChains.js +1 -2
  34. package/dist/LinearReadCloudDisplay/model.d.ts +13 -15
  35. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +1 -1
  36. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +18 -423
  37. package/dist/LinearSNPCoverageDisplay/models/model.js +18 -0
  38. package/dist/MismatchParser/index.js +6 -8
  39. package/dist/PileupRenderer/PileupRenderer.js +0 -25
  40. package/dist/PileupRenderer/colorBy.js +1 -1
  41. package/dist/PileupRenderer/components/PileupRendering.d.ts +9 -10
  42. package/dist/PileupRenderer/components/PileupRendering.js +3 -5
  43. package/dist/PileupRenderer/getAlignmentShapeColor.js +1 -1
  44. package/dist/PileupRenderer/layoutFeature.js +1 -2
  45. package/dist/PileupRenderer/makeImageData.d.ts +1 -3
  46. package/dist/PileupRenderer/renderMethylation.js +5 -10
  47. package/dist/PileupRenderer/renderMismatches.d.ts +2 -6
  48. package/dist/PileupRenderer/renderMismatches.js +8 -11
  49. package/dist/PileupRenderer/renderModifications.js +4 -8
  50. package/dist/PileupRenderer/renderSoftClipping.js +26 -25
  51. package/dist/PileupRenderer/sortUtil.js +2 -2
  52. package/dist/SNPCoverageAdapter/util.d.ts +9 -13
  53. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +6 -12
  54. package/dist/shared/BaseDisplayComponent.d.ts +2 -2
  55. package/dist/shared/BaseDisplayComponent.js +2 -1
  56. package/dist/shared/FilterByTag.d.ts +6 -15
  57. package/dist/shared/FilterByTag.js +4 -6
  58. package/dist/shared/fetchChains.js +1 -0
  59. package/dist/shared/index.d.ts +9 -0
  60. package/dist/util.d.ts +3 -9
  61. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -2
  62. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +2 -1
  63. package/esm/AlignmentsFeatureDetail/util.d.ts +1 -3
  64. package/esm/BamAdapter/BamAdapter.d.ts +2 -9
  65. package/esm/CramAdapter/CramAdapter.d.ts +3 -11
  66. package/esm/CramAdapter/CramAdapter.js +2 -1
  67. package/esm/CramAdapter/util.js +3 -6
  68. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +3 -4
  69. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +3 -3
  70. package/esm/LinearAlignmentsDisplay/models/model.d.ts +5 -9
  71. package/esm/LinearAlignmentsDisplay/models/model.js +1 -0
  72. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +49 -27
  73. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +20 -2
  74. package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +4 -5
  75. package/esm/LinearPileupDisplay/components/ColorByModifications.js +3 -4
  76. package/esm/LinearPileupDisplay/components/ColorByTag.d.ts +7 -5
  77. package/esm/LinearPileupDisplay/components/ColorByTag.js +4 -7
  78. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -4
  79. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +2 -2
  80. package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +4 -5
  81. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +3 -3
  82. package/esm/LinearPileupDisplay/components/SetMaxHeight.d.ts +3 -4
  83. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +3 -3
  84. package/esm/LinearPileupDisplay/components/SortByTag.d.ts +3 -4
  85. package/esm/LinearPileupDisplay/components/SortByTag.js +3 -3
  86. package/esm/LinearPileupDisplay/model.d.ts +56 -35
  87. package/esm/LinearPileupDisplay/model.js +3 -2
  88. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -2
  89. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +2 -1
  90. package/esm/LinearReadArcsDisplay/model.d.ts +9 -14
  91. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -2
  92. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +2 -1
  93. package/esm/LinearReadCloudDisplay/drawPairChains.js +1 -2
  94. package/esm/LinearReadCloudDisplay/model.d.ts +13 -15
  95. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +1 -1
  96. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +18 -423
  97. package/esm/LinearSNPCoverageDisplay/models/model.js +18 -0
  98. package/esm/MismatchParser/index.js +6 -8
  99. package/esm/PileupRenderer/PileupRenderer.js +0 -2
  100. package/esm/PileupRenderer/colorBy.js +1 -1
  101. package/esm/PileupRenderer/components/PileupRendering.d.ts +9 -10
  102. package/esm/PileupRenderer/components/PileupRendering.js +3 -5
  103. package/esm/PileupRenderer/getAlignmentShapeColor.js +1 -1
  104. package/esm/PileupRenderer/layoutFeature.js +1 -2
  105. package/esm/PileupRenderer/makeImageData.d.ts +1 -3
  106. package/esm/PileupRenderer/renderMethylation.js +5 -10
  107. package/esm/PileupRenderer/renderMismatches.d.ts +2 -6
  108. package/esm/PileupRenderer/renderMismatches.js +8 -11
  109. package/esm/PileupRenderer/renderModifications.js +4 -8
  110. package/esm/PileupRenderer/renderSoftClipping.js +26 -25
  111. package/esm/PileupRenderer/sortUtil.js +2 -2
  112. package/esm/SNPCoverageAdapter/util.d.ts +9 -13
  113. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +6 -12
  114. package/esm/shared/BaseDisplayComponent.d.ts +2 -2
  115. package/esm/shared/BaseDisplayComponent.js +3 -2
  116. package/esm/shared/FilterByTag.d.ts +6 -15
  117. package/esm/shared/FilterByTag.js +4 -6
  118. package/esm/shared/fetchChains.js +1 -0
  119. package/esm/shared/index.d.ts +9 -0
  120. package/esm/util.d.ts +3 -9
  121. package/package.json +3 -4
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { IAnyStateTreeNode } from 'mobx-state-tree';
3
- declare const _default: (props: {
3
+ declare const AlignmentsFeatureDetails: (props: {
4
4
  model: IAnyStateTreeNode;
5
5
  }) => React.JSX.Element;
6
- export default _default;
6
+ export default AlignmentsFeatureDetails;
@@ -120,7 +120,7 @@ function PairLink({ locString, model, }) {
120
120
  (0, util_1.navToLoc)(locString, model);
121
121
  }, href: "#" }, locString));
122
122
  }
123
- exports.default = (0, mobx_react_1.observer)(function AlignmentFeatureDetails(props) {
123
+ const AlignmentsFeatureDetails = (0, mobx_react_1.observer)(function (props) {
124
124
  const { model } = props;
125
125
  const feat = (0, clone_1.default)(model.featureData);
126
126
  const SA = (0, util_1.getTag)('SA', feat);
@@ -131,3 +131,4 @@ exports.default = (0, mobx_react_1.observer)(function AlignmentFeatureDetails(pr
131
131
  SA ? react_1.default.createElement(AlignmentsFeatureSuppAligns_1.default, { model: model, tag: SA }) : null,
132
132
  feat.flags !== undefined ? (react_1.default.createElement(AlignmentsFeatureFlags_1.default, { feature: feat, ...props })) : null));
133
133
  });
134
+ exports.default = AlignmentsFeatureDetails;
@@ -1,8 +1,6 @@
1
1
  import { IAnyStateTreeNode } from 'mobx-state-tree';
2
2
  export declare function getTag(tag: string, feat: {
3
- tags?: {
4
- [key: string]: unknown;
5
- };
3
+ tags?: Record<string, unknown>;
6
4
  [key: string]: unknown;
7
5
  }): unknown;
8
6
  export declare function navToLoc(locString: string, model: IAnyStateTreeNode): Promise<void>;
@@ -2,6 +2,7 @@ import { BamFile } from '@gmod/bam';
2
2
  import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
3
3
  import { Region } from '@jbrowse/core/util/types';
4
4
  import { Feature } from '@jbrowse/core/util';
5
+ import { IFilter } from '../shared';
5
6
  interface Header {
6
7
  idToName: string[];
7
8
  nameToId: Record<string, number>;
@@ -29,15 +30,7 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
29
30
  getFeatures(region: Region & {
30
31
  originalRefName?: string;
31
32
  }, opts?: BaseOptions & {
32
- filterBy: {
33
- flagInclude: number;
34
- flagExclude: number;
35
- tagFilter: {
36
- tag: string;
37
- value: unknown;
38
- };
39
- readName: string;
40
- };
33
+ filterBy: IFilter;
41
34
  }): import("rxjs").Observable<Feature>;
42
35
  getMultiRegionFeatureDensityStats(regions: Region[], opts?: BaseOptions): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | {
43
36
  bytes: number;
@@ -2,20 +2,12 @@ import { IndexedCramFile, CramRecord } from '@gmod/cram';
2
2
  import { BaseFeatureDataAdapter, BaseOptions, BaseSequenceAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
3
3
  import { Region, Feature } from '@jbrowse/core/util';
4
4
  import CramSlightlyLazyFeature from './CramSlightlyLazyFeature';
5
+ import { IFilter } from '../shared';
5
6
  interface Header {
6
7
  idToName?: string[];
7
8
  nameToId?: Record<string, number>;
8
9
  readGroups?: (string | undefined)[];
9
10
  }
10
- interface FilterBy {
11
- flagInclude: number;
12
- flagExclude: number;
13
- tagFilter: {
14
- tag: string;
15
- value: unknown;
16
- };
17
- readName: string;
18
- }
19
11
  export default class CramAdapter extends BaseFeatureDataAdapter {
20
12
  samHeader: Header;
21
13
  private setupP?;
@@ -30,7 +22,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
30
22
  cram: IndexedCramFile;
31
23
  sequenceAdapter: BaseSequenceAdapter;
32
24
  }>;
33
- getHeader(opts?: BaseOptions): Promise<string | undefined>;
25
+ getHeader(_opts?: BaseOptions): Promise<string | undefined>;
34
26
  private seqFetch;
35
27
  private setupPre;
36
28
  private setup;
@@ -41,7 +33,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
41
33
  getFeatures(region: Region & {
42
34
  originalRefName?: string;
43
35
  }, opts?: BaseOptions & {
44
- filterBy: FilterBy;
36
+ filterBy: IFilter;
45
37
  }): import("rxjs").Observable<Feature>;
46
38
  freeResources(): void;
47
39
  cramRecordToFeature(record: CramRecord): CramSlightlyLazyFeature;
@@ -10,6 +10,7 @@ const io_1 = require("@jbrowse/core/util/io");
10
10
  const rxjs_1 = require("@jbrowse/core/util/rxjs");
11
11
  const operators_1 = require("rxjs/operators");
12
12
  const rxjs_2 = require("rxjs");
13
+ // locals
13
14
  const CramSlightlyLazyFeature_1 = __importDefault(require("./CramSlightlyLazyFeature"));
14
15
  class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
15
16
  constructor() {
@@ -54,7 +55,7 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
54
55
  }
55
56
  return this.configureP;
56
57
  }
57
- async getHeader(opts) {
58
+ async getHeader(_opts) {
58
59
  const { cram } = await this.configure();
59
60
  return cram.cram.getHeaderText();
60
61
  }
@@ -11,9 +11,7 @@ function readFeaturesToMismatches(readFeatures, start, qual) {
11
11
  let refPos = 0;
12
12
  let sublen = 0;
13
13
  let lastPos = start;
14
- for (let i = 0; i < readFeatures.length; i++) {
15
- const f = readFeatures[i];
16
- const { code, pos, data, sub, ref } = f;
14
+ for (const { refPos: p, code, pos, data, sub, ref } of readFeatures) {
17
15
  sublen = refPos - lastPos;
18
16
  lastPos = refPos;
19
17
  if (sublen && insLen > 0) {
@@ -25,7 +23,7 @@ function readFeaturesToMismatches(readFeatures, start, qual) {
25
23
  };
26
24
  insLen = 0;
27
25
  }
28
- refPos = f.refPos - 1 - start;
26
+ refPos = p - 1 - start;
29
27
  if (code === 'X') {
30
28
  // substitution
31
29
  mismatches[j++] = {
@@ -134,8 +132,7 @@ function readFeaturesToCIGAR(readFeatures, alignmentStart, readLen, refRegion) {
134
132
  let sublen = 0;
135
133
  let insLen = 0;
136
134
  if (readFeatures !== undefined) {
137
- for (let i = 0; i < readFeatures.length; i++) {
138
- const { code, refPos, sub, data } = readFeatures[i];
135
+ for (const { code, refPos, sub, data } of readFeatures) {
139
136
  sublen = refPos - lastPos;
140
137
  seq += ref.slice(lastPos - refStart, refPos - refStart);
141
138
  lastPos = refPos;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { AlignmentsDisplayModel } from '../models/model';
3
- declare function AlignmentsDisplay({ model }: {
3
+ declare const AlignmentsDisplay: ({ model, }: {
4
4
  model: AlignmentsDisplayModel;
5
- }): React.JSX.Element | null;
6
- declare const _default: typeof AlignmentsDisplay;
7
- export default _default;
5
+ }) => React.JSX.Element | null;
6
+ export default AlignmentsDisplay;
@@ -15,7 +15,7 @@ const useStyles = (0, mui_1.makeStyles)()({
15
15
  zIndex: 2,
16
16
  },
17
17
  });
18
- function AlignmentsDisplay({ model }) {
18
+ const AlignmentsDisplay = (0, mobx_react_1.observer)(function AlignmentsDisplay({ model, }) {
19
19
  var _a;
20
20
  const { PileupDisplay, SNPCoverageDisplay } = model;
21
21
  const { classes } = useStyles();
@@ -35,5 +35,5 @@ function AlignmentsDisplay({ model }) {
35
35
  top,
36
36
  } },
37
37
  react_1.default.createElement(PileupDisplay.RenderingComponent, { model: PileupDisplay }))));
38
- }
39
- exports.default = (0, mobx_react_1.observer)(AlignmentsDisplay);
38
+ });
39
+ exports.default = AlignmentsDisplay;
@@ -55,10 +55,7 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
55
55
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
56
56
  rendererTypeName: string;
57
57
  error: unknown;
58
- message: string | undefined; /**
59
- * #property
60
- * refers to LinearPileupDisplay sub-display model
61
- */
58
+ message: string | undefined;
62
59
  } & IStateTreeNode<import("mobx-state-tree").IModelType<{
63
60
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
64
61
  type: import("mobx-state-tree").ISimpleType<string>;
@@ -69,14 +66,13 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
69
66
  message: string | undefined;
70
67
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
71
68
  }> | null;
72
- readonly adapterConfig: any; /**
73
- * #stateModel LinearAlignmentsDisplay
74
- * extends `BaseDisplay`
75
- */
69
+ readonly adapterConfig: any;
76
70
  readonly parentTrack: any;
77
71
  renderProps(): any;
78
72
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
79
- readonly DisplayMessageComponent: React.FC<any> | undefined;
73
+ readonly DisplayMessageComponent: React.FC<any> | undefined; /**
74
+ * #action
75
+ */
80
76
  trackMenuItems(): MenuItem[];
81
77
  readonly viewMenuActions: MenuItem[];
82
78
  regionCannotBeRendered(): null;
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ /* eslint-disable react-refresh/only-export-components */
6
7
  const react_1 = __importDefault(require("react"));
7
8
  const mobx_1 = require("mobx");
8
9
  const mobx_state_tree_1 = require("mobx-state-tree");
@@ -1,17 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { AnyConfigurationModel, AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
3
+ import SerializableFilterChain from '@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain';
3
4
  import { Feature } from '@jbrowse/core/util';
4
5
  import { ContentCopy as ContentCopyIcon } from '@jbrowse/core/ui/Icons';
6
+ import { IFilter } from '../shared';
5
7
  import { ExtraColorBy } from '../shared/color';
6
- export interface Filter {
7
- flagInclude: number;
8
- flagExclude: number;
9
- readName?: string;
10
- tagFilter?: {
11
- tag: string;
12
- value: string;
13
- };
14
- }
15
8
  /**
16
9
  * #stateModel SharedLinearPileupDisplayMixin
17
10
  * #category display
@@ -61,17 +54,20 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
61
54
  afterAttach(): void;
62
55
  setStatus(message: string): void;
63
56
  setLoading(abortController: AbortController): void;
64
- setMessage(messageText: string): void; /**
65
- * #action
66
- */
57
+ setMessage(messageText: string): void;
67
58
  setRendered(props: {
68
59
  reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
60
+ /**
61
+ * #action
62
+ */
69
63
  features: Map<string, Feature>;
70
64
  layout: any;
71
65
  maxHeightReached: boolean;
72
66
  renderProps: any;
73
67
  } | undefined): void;
74
- setError(error: unknown): void;
68
+ setError(error: unknown): void; /**
69
+ * #action
70
+ */
75
71
  reload(): void;
76
72
  beforeDestroy(): void;
77
73
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
@@ -139,6 +135,10 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
139
135
  value: import("mobx-state-tree").ISimpleType<string>;
140
136
  }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
141
137
  }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
138
+ /**
139
+ * #property
140
+ */
141
+ jexlFilters: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
142
142
  }, {
143
143
  rendererTypeName: string;
144
144
  error: unknown;
@@ -173,11 +173,11 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
173
173
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
174
174
  rendererTypeName: string;
175
175
  error: unknown;
176
- message: string | undefined; /**
176
+ message: string | undefined;
177
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
178
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>; /**
177
179
  * #property
178
180
  */
179
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
180
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
181
181
  type: import("mobx-state-tree").ISimpleType<string>;
182
182
  rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
183
183
  }, {
@@ -233,9 +233,14 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
233
233
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
234
234
  regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
235
235
  } & {
236
- featureIdUnderMouse: string | undefined;
236
+ featureIdUnderMouse: string | undefined; /**
237
+ * #property
238
+ */
237
239
  contextMenuFeature: Feature | undefined;
238
240
  } & {
241
+ /**
242
+ * #property
243
+ */
239
244
  readonly blockType: "dynamicBlocks" | "staticBlocks";
240
245
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
241
246
  } & {
@@ -250,10 +255,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
250
255
  getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
251
256
  searchFeatureByID(id: string): [number, number, number, number] | undefined;
252
257
  } & {
253
- addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void; /**
254
- * #action
255
- * uses copy-to-clipboard and generates notification
256
- */
258
+ addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
257
259
  deleteBlock(key: string): void;
258
260
  selectFeature(feature: Feature): void;
259
261
  clearFeatureSelection(): void;
@@ -323,7 +325,11 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
323
325
  /**
324
326
  * #action
325
327
  */
326
- setFilterBy(filter: Filter): void;
328
+ setFilterBy(filter: IFilter): void;
329
+ /**
330
+ * #action
331
+ */
332
+ setJexlFilters(filters: string[]): void;
327
333
  } & {
328
334
  /**
329
335
  * #getter
@@ -350,6 +356,10 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
350
356
  * #getter
351
357
  */
352
358
  renderReady(): boolean;
359
+ /**
360
+ * #getter
361
+ */
362
+ readonly filters: SerializableFilterChain;
353
363
  } & {
354
364
  /**
355
365
  * #getter
@@ -372,7 +382,16 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
372
382
  /**
373
383
  * #getter
374
384
  */
375
- readonly DisplayBlurb: (props: import("./components/LinearPileupDisplayBlurb").LinearPileupDisplayBlurbProps) => import("react").JSX.Element | null;
385
+ readonly DisplayBlurb: ({ model, }: {
386
+ model: {
387
+ sortedBy?: {
388
+ pos: number;
389
+ refName: number;
390
+ type: string;
391
+ tag?: string | undefined;
392
+ } | undefined;
393
+ };
394
+ }) => import("react").JSX.Element | null;
376
395
  /**
377
396
  * #method
378
397
  */
@@ -444,17 +463,20 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
444
463
  afterAttach(): void;
445
464
  setStatus(message: string): void;
446
465
  setLoading(abortController: AbortController): void;
447
- setMessage(messageText: string): void; /**
448
- * #action
449
- */
466
+ setMessage(messageText: string): void;
450
467
  setRendered(props: {
451
468
  reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
469
+ /**
470
+ * #action
471
+ */
452
472
  features: Map<string, Feature>;
453
473
  layout: any;
454
474
  maxHeightReached: boolean;
455
475
  renderProps: any;
456
476
  } | undefined): void;
457
- setError(error: unknown): void;
477
+ setError(error: unknown): void; /**
478
+ * #action
479
+ */
458
480
  reload(): void;
459
481
  beforeDestroy(): void;
460
482
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
@@ -32,6 +32,7 @@ const mobx_1 = require("mobx");
32
32
  const mobx_state_tree_1 = require("mobx-state-tree");
33
33
  const copy_to_clipboard_1 = __importDefault(require("copy-to-clipboard"));
34
34
  const configuration_1 = require("@jbrowse/core/configuration");
35
+ const serializableFilterChain_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain"));
35
36
  const tracks_1 = require("@jbrowse/core/util/tracks");
36
37
  const util_1 = require("@jbrowse/core/util");
37
38
  const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view");
@@ -90,6 +91,10 @@ function SharedLinearPileupDisplayMixin(configSchema) {
90
91
  * #property
91
92
  */
92
93
  filterBy: mobx_state_tree_1.types.optional(shared_1.FilterModel, {}),
94
+ /**
95
+ * #property
96
+ */
97
+ jexlFilters: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.array(mobx_state_tree_1.types.string), []),
93
98
  }))
94
99
  .volatile(() => ({
95
100
  colorTagMap: mobx_1.observable.map({}),
@@ -204,6 +209,12 @@ function SharedLinearPileupDisplayMixin(configSchema) {
204
209
  setFilterBy(filter) {
205
210
  self.filterBy = (0, mobx_state_tree_1.cast)(filter);
206
211
  },
212
+ /**
213
+ * #action
214
+ */
215
+ setJexlFilters(filters) {
216
+ self.jexlFilters = (0, mobx_state_tree_1.cast)(filters);
217
+ },
207
218
  }))
208
219
  .views(self => ({
209
220
  /**
@@ -247,6 +258,12 @@ function SharedLinearPileupDisplayMixin(configSchema) {
247
258
  renderReady() {
248
259
  return self.tagsReady;
249
260
  },
261
+ /**
262
+ * #getter
263
+ */
264
+ get filters() {
265
+ return new serializableFilterChain_1.default({ filters: self.jexlFilters });
266
+ },
250
267
  }))
251
268
  .views(self => {
252
269
  const { trackMenuItems: superTrackMenuItems, renderProps: superRenderProps, } = self;
@@ -310,6 +327,7 @@ function SharedLinearPileupDisplayMixin(configSchema) {
310
327
  displayModel: self,
311
328
  colorBy: colorBy ? (0, mobx_state_tree_1.getSnapshot)(colorBy) : undefined,
312
329
  filterBy: JSON.parse(JSON.stringify(filterBy)),
330
+ filters: self.filters,
313
331
  colorTagMap: Object.fromEntries(colorTagMap.toJSON()),
314
332
  config: self.rendererConfig,
315
333
  async onFeatureClick(_, featureId) {
@@ -479,9 +497,9 @@ function SharedLinearPileupDisplayMixin(configSchema) {
479
497
  if (!self.autorunReady) {
480
498
  return;
481
499
  }
482
- const { colorBy } = self;
500
+ const { colorBy, tagsReady } = self;
483
501
  const { staticBlocks } = view;
484
- if (colorBy === null || colorBy === void 0 ? void 0 : colorBy.tag) {
502
+ if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.tag) && !tagsReady) {
485
503
  const vals = await (0, shared_1.getUniqueTagValues)(self, colorBy, staticBlocks);
486
504
  self.updateColorTagMap(vals);
487
505
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ObservableMap } from 'mobx';
3
- declare function ColorByTagDlg(props: {
3
+ declare const ColorByModificationsDialog: ({ model, handleClose, }: {
4
4
  model: {
5
5
  setColorScheme: (arg: {
6
6
  type: string;
@@ -8,9 +8,8 @@ declare function ColorByTagDlg(props: {
8
8
  modificationTagMap: ObservableMap<string, string>;
9
9
  colorBy?: {
10
10
  type: string;
11
- };
11
+ } | undefined;
12
12
  };
13
13
  handleClose: () => void;
14
- }): React.JSX.Element;
15
- declare const _default: typeof ColorByTagDlg;
16
- export default _default;
14
+ }) => React.JSX.Element;
15
+ export default ColorByModificationsDialog;
@@ -8,8 +8,7 @@ const mobx_react_1 = require("mobx-react");
8
8
  const material_1 = require("@mui/material");
9
9
  const ui_1 = require("@jbrowse/core/ui");
10
10
  const ModificationsTable_1 = __importDefault(require("./ModificationsTable"));
11
- function ColorByTagDlg(props) {
12
- const { model, handleClose } = props;
11
+ const ColorByModificationsDialog = (0, mobx_react_1.observer)(function ({ model, handleClose, }) {
13
12
  const { colorBy, modificationTagMap } = model;
14
13
  const modifications = [...modificationTagMap.entries()];
15
14
  return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: handleClose, title: "Color by modifications" },
@@ -36,5 +35,5 @@ function ColorByTagDlg(props) {
36
35
  handleClose();
37
36
  } }, "Methylation"),
38
37
  react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => handleClose() }, "Cancel")))));
39
- }
40
- exports.default = (0, mobx_react_1.observer)(ColorByTagDlg);
38
+ });
39
+ exports.default = ColorByModificationsDialog;
@@ -1,9 +1,11 @@
1
1
  import React from 'react';
2
- declare function ColorByTagDlg(props: {
2
+ declare const ColorByTagDialog: ({ model, handleClose, }: {
3
3
  model: {
4
- setColorScheme: Function;
4
+ setColorScheme: (arg: {
5
+ type: string;
6
+ tag: string;
7
+ }) => void;
5
8
  };
6
9
  handleClose: () => void;
7
- }): React.JSX.Element;
8
- declare const _default: typeof ColorByTagDlg;
9
- export default _default;
10
+ }) => React.JSX.Element;
11
+ export default ColorByTagDialog;
@@ -27,22 +27,19 @@ const react_1 = __importStar(require("react"));
27
27
  const mobx_react_1 = require("mobx-react");
28
28
  const material_1 = require("@mui/material");
29
29
  const ui_1 = require("@jbrowse/core/ui");
30
- function ColorByTagDlg(props) {
31
- const { model, handleClose } = props;
30
+ const ColorByTagDialog = (0, mobx_react_1.observer)(function ({ model, handleClose, }) {
32
31
  const [tag, setTag] = (0, react_1.useState)('');
33
32
  const validTag = tag.match(/^[A-Za-z][A-Za-z0-9]$/);
34
33
  return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: handleClose, title: "Color by tag" },
35
34
  react_1.default.createElement(material_1.DialogContent, { style: { overflowX: 'hidden' } },
36
35
  react_1.default.createElement(material_1.Typography, null, "Enter tag to color by: "),
37
36
  react_1.default.createElement(material_1.Typography, { color: "textSecondary" }, "Examples: XS or TS for RNA-seq inferred read strand, ts (lower-case) for minimap2 read strand, HP for haplotype, RG for read group, etc."),
38
- react_1.default.createElement(material_1.TextField, { value: tag, onChange: event => setTag(event.target.value), placeholder: "Enter tag name", inputProps: {
39
- maxLength: 2,
40
- }, error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off" }),
37
+ react_1.default.createElement(material_1.TextField, { value: tag, onChange: event => setTag(event.target.value), placeholder: "Enter tag name", inputProps: { maxLength: 2 }, error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off" }),
41
38
  react_1.default.createElement(material_1.DialogActions, null,
42
39
  react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", onClick: () => {
43
40
  model.setColorScheme({ type: 'tag', tag });
44
41
  handleClose();
45
42
  }, disabled: !validTag }, "Submit"),
46
43
  react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: handleClose }, "Cancel")))));
47
- }
48
- exports.default = (0, mobx_react_1.observer)(ColorByTagDlg);
44
+ });
45
+ exports.default = ColorByTagDialog;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export interface LinearPileupDisplayBlurbProps {
2
+ declare const LinearPileupDisplayBlurb: ({ model, }: {
3
3
  model: {
4
4
  sortedBy?: {
5
5
  pos: number;
@@ -8,6 +8,5 @@ export interface LinearPileupDisplayBlurbProps {
8
8
  tag?: string;
9
9
  };
10
10
  };
11
- }
12
- declare const _default: (props: LinearPileupDisplayBlurbProps) => React.JSX.Element | null;
13
- export default _default;
11
+ }) => React.JSX.Element | null;
12
+ export default LinearPileupDisplayBlurb;
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
7
  const mobx_react_1 = require("mobx-react");
8
8
  const material_1 = require("@mui/material");
9
- exports.default = (0, mobx_react_1.observer)(function LinearPileupDisplayBlurb(props) {
9
+ const LinearPileupDisplayBlurb = (0, mobx_react_1.observer)(function ({ model, }) {
10
10
  var _a;
11
- const { model } = props;
12
11
  const { sortedBy } = model;
13
12
  return sortedBy ? (react_1.default.createElement("div", { "data-testid": `blurb-${sortedBy}` },
14
13
  react_1.default.createElement(material_1.Typography, { color: "secondary", variant: "caption" }, sortedBy
15
14
  ? `Sorted by ${(_a = sortedBy.tag) !== null && _a !== void 0 ? _a : sortedBy.type} at ${sortedBy.refName}:${sortedBy.pos}`
16
15
  : null))) : null;
17
16
  });
17
+ exports.default = LinearPileupDisplayBlurb;
@@ -1,12 +1,11 @@
1
1
  import React from 'react';
2
- declare function SetFeatureHeightDlg(props: {
2
+ declare const SetFeatureHeightDialog: (props: {
3
3
  model: {
4
4
  setFeatureHeight: (arg?: number) => void;
5
5
  setNoSpacing: (arg?: boolean) => void;
6
6
  featureHeightSetting: number;
7
- noSpacing?: boolean;
7
+ noSpacing?: boolean | undefined;
8
8
  };
9
9
  handleClose: () => void;
10
- }): React.JSX.Element;
11
- declare const _default: typeof SetFeatureHeightDlg;
12
- export default _default;
10
+ }) => React.JSX.Element;
11
+ export default SetFeatureHeightDialog;
@@ -27,7 +27,7 @@ const react_1 = __importStar(require("react"));
27
27
  const mobx_react_1 = require("mobx-react");
28
28
  const material_1 = require("@mui/material");
29
29
  const ui_1 = require("@jbrowse/core/ui");
30
- function SetFeatureHeightDlg(props) {
30
+ const SetFeatureHeightDialog = (0, mobx_react_1.observer)(function (props) {
31
31
  const { model, handleClose } = props;
32
32
  const { featureHeightSetting, noSpacing: noSpacingSetting } = model;
33
33
  const [height, setHeight] = (0, react_1.useState)(`${featureHeightSetting}`);
@@ -45,5 +45,5 @@ function SetFeatureHeightDlg(props) {
45
45
  handleClose();
46
46
  } }, "Submit"),
47
47
  react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => handleClose() }, "Cancel")))));
48
- }
49
- exports.default = (0, mobx_react_1.observer)(SetFeatureHeightDlg);
48
+ });
49
+ exports.default = SetFeatureHeightDialog;
@@ -1,10 +1,9 @@
1
1
  import React from 'react';
2
- declare function SetMaxHeightDlg(props: {
2
+ declare const SetMaxHeightDialog: (props: {
3
3
  model: {
4
4
  maxHeight?: number;
5
5
  setMaxHeight: Function;
6
6
  };
7
7
  handleClose: () => void;
8
- }): React.JSX.Element;
9
- declare const _default: typeof SetMaxHeightDlg;
10
- export default _default;
8
+ }) => React.JSX.Element;
9
+ export default SetMaxHeightDialog;
@@ -33,7 +33,7 @@ const useStyles = (0, mui_1.makeStyles)()({
33
33
  width: 500,
34
34
  },
35
35
  });
36
- function SetMaxHeightDlg(props) {
36
+ const SetMaxHeightDialog = (0, mobx_react_1.observer)(function (props) {
37
37
  const { model, handleClose } = props;
38
38
  const { classes } = useStyles();
39
39
  const { maxHeight = '' } = model;
@@ -48,5 +48,5 @@ function SetMaxHeightDlg(props) {
48
48
  handleClose();
49
49
  } }, "Submit"),
50
50
  react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => handleClose() }, "Cancel")))));
51
- }
52
- exports.default = (0, mobx_react_1.observer)(SetMaxHeightDlg);
51
+ });
52
+ exports.default = SetMaxHeightDialog;
@@ -1,9 +1,8 @@
1
1
  import React from 'react';
2
- declare function SortByTagDlg(props: {
2
+ declare const SortByTagDialog: (props: {
3
3
  model: {
4
4
  setSortedBy: Function;
5
5
  };
6
6
  handleClose: () => void;
7
- }): React.JSX.Element;
8
- declare const _default: typeof SortByTagDlg;
9
- export default _default;
7
+ }) => React.JSX.Element;
8
+ export default SortByTagDialog;