@jbrowse/plugin-alignments 2.18.0 → 3.0.1

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 (168) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -2
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +20 -13
  3. package/dist/AlignmentsFeatureDetail/Flags.d.ts +1 -2
  4. package/dist/AlignmentsFeatureDetail/Flags.js +6 -8
  5. package/dist/AlignmentsFeatureDetail/Formatter.d.ts +1 -2
  6. package/dist/AlignmentsFeatureDetail/Formatter.js +11 -36
  7. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +1 -2
  8. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +44 -47
  9. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +1 -2
  10. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +27 -31
  11. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +1 -2
  12. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.js +2 -2
  13. package/dist/AlignmentsFeatureDetail/PairLink.d.ts +1 -2
  14. package/dist/AlignmentsFeatureDetail/PairLink.js +3 -6
  15. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +1 -2
  16. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.js +2 -4
  17. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +1 -2
  18. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +21 -27
  19. package/dist/AlignmentsFeatureDetail/index.js +17 -7
  20. package/dist/BamAdapter/index.js +17 -7
  21. package/dist/CramAdapter/CramAdapter.js +7 -2
  22. package/dist/CramAdapter/CramTestAdapters.d.ts +1 -1
  23. package/dist/CramAdapter/CramTestAdapters.js +2 -1
  24. package/dist/CramAdapter/index.js +17 -7
  25. package/dist/GuessAlignmentsTypes/index.js +19 -34
  26. package/dist/HtsgetBamAdapter/index.js +17 -7
  27. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -2
  28. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +8 -16
  29. package/dist/LinearAlignmentsDisplay/model.d.ts +1 -2
  30. package/dist/LinearAlignmentsDisplay/model.js +5 -7
  31. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +21 -7
  32. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +40 -15
  33. package/dist/LinearPileupDisplay/components/ColorByTagDialog.d.ts +1 -2
  34. package/dist/LinearPileupDisplay/components/ColorByTagDialog.js +10 -39
  35. package/dist/LinearPileupDisplay/components/GroupByDialog.d.ts +1 -2
  36. package/dist/LinearPileupDisplay/components/GroupByDialog.js +82 -121
  37. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +1 -2
  38. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +2 -6
  39. package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.d.ts +1 -2
  40. package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.js +13 -42
  41. package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.d.ts +1 -2
  42. package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.js +10 -38
  43. package/dist/LinearPileupDisplay/components/SortByTagDialog.d.ts +1 -2
  44. package/dist/LinearPileupDisplay/components/SortByTagDialog.js +15 -44
  45. package/dist/LinearPileupDisplay/model.d.ts +21 -7
  46. package/dist/LinearPileupDisplay/model.js +19 -8
  47. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -2
  48. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +4 -27
  49. package/dist/LinearReadArcsDisplay/index.js +17 -7
  50. package/dist/LinearReadArcsDisplay/model.d.ts +1 -1
  51. package/dist/LinearReadArcsDisplay/model.js +17 -7
  52. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -2
  53. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +4 -27
  54. package/dist/LinearReadCloudDisplay/index.js +17 -7
  55. package/dist/LinearReadCloudDisplay/model.d.ts +1 -1
  56. package/dist/LinearReadCloudDisplay/model.js +17 -7
  57. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -2
  58. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +15 -54
  59. package/dist/LinearSNPCoverageDisplay/model.d.ts +4 -4
  60. package/dist/LinearSNPCoverageDisplay/model.js +49 -35
  61. package/dist/MismatchParser/cigarToMismatches.d.ts +1 -2
  62. package/dist/MismatchParser/index.d.ts +1 -2
  63. package/dist/MismatchParser/mdToMismatches.d.ts +1 -2
  64. package/dist/PileupRenderer/PileupRenderer.d.ts +4 -4
  65. package/dist/PileupRenderer/PileupRenderer.js +17 -7
  66. package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -2
  67. package/dist/PileupRenderer/components/PileupRendering.js +15 -40
  68. package/dist/PileupRenderer/configSchema.d.ts +5 -0
  69. package/dist/PileupRenderer/configSchema.js +5 -0
  70. package/dist/PileupRenderer/makeImageData.js +2 -0
  71. package/dist/PileupRenderer/renderMismatches.d.ts +2 -1
  72. package/dist/PileupRenderer/renderMismatches.js +18 -13
  73. package/dist/SNPCoverageAdapter/index.js +17 -7
  74. package/dist/SNPCoverageAdapter/processModifications.js +1 -1
  75. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +1 -18
  76. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +35 -264
  77. package/dist/SNPCoverageRenderer/configSchema.d.ts +3 -3
  78. package/dist/SNPCoverageRenderer/configSchema.js +3 -3
  79. package/dist/SNPCoverageRenderer/makeImage.d.ts +2 -0
  80. package/dist/SNPCoverageRenderer/makeImage.js +270 -0
  81. package/dist/SNPCoverageRenderer/types.d.ts +19 -0
  82. package/dist/SNPCoverageRenderer/types.js +2 -0
  83. package/dist/index.js +17 -7
  84. package/dist/shared/components/BaseDisplayComponent.d.ts +1 -2
  85. package/dist/shared/components/BaseDisplayComponent.js +6 -13
  86. package/dist/shared/components/FilterByTagDialog.d.ts +1 -2
  87. package/dist/shared/components/FilterByTagDialog.js +42 -92
  88. package/dist/shared/renderSvgUtil.d.ts +1 -2
  89. package/dist/shared/renderSvgUtil.js +20 -17
  90. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -2
  91. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +3 -6
  92. package/esm/AlignmentsFeatureDetail/Flags.d.ts +1 -2
  93. package/esm/AlignmentsFeatureDetail/Flags.js +6 -8
  94. package/esm/AlignmentsFeatureDetail/Formatter.d.ts +1 -2
  95. package/esm/AlignmentsFeatureDetail/Formatter.js +11 -13
  96. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +1 -2
  97. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +27 -40
  98. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +1 -2
  99. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +10 -24
  100. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +1 -2
  101. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.js +2 -2
  102. package/esm/AlignmentsFeatureDetail/PairLink.d.ts +1 -2
  103. package/esm/AlignmentsFeatureDetail/PairLink.js +3 -3
  104. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +1 -2
  105. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.js +2 -4
  106. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +1 -2
  107. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +21 -24
  108. package/esm/CramAdapter/CramAdapter.js +7 -2
  109. package/esm/CramAdapter/CramTestAdapters.d.ts +1 -1
  110. package/esm/CramAdapter/CramTestAdapters.js +2 -1
  111. package/esm/GuessAlignmentsTypes/index.js +19 -34
  112. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -2
  113. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +8 -13
  114. package/esm/LinearAlignmentsDisplay/model.d.ts +1 -2
  115. package/esm/LinearAlignmentsDisplay/model.js +5 -7
  116. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +21 -7
  117. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +23 -8
  118. package/esm/LinearPileupDisplay/components/ColorByTagDialog.d.ts +1 -2
  119. package/esm/LinearPileupDisplay/components/ColorByTagDialog.js +10 -16
  120. package/esm/LinearPileupDisplay/components/GroupByDialog.d.ts +1 -2
  121. package/esm/LinearPileupDisplay/components/GroupByDialog.js +82 -98
  122. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +1 -2
  123. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +2 -3
  124. package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.d.ts +1 -2
  125. package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.js +13 -19
  126. package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.d.ts +1 -2
  127. package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.js +10 -15
  128. package/esm/LinearPileupDisplay/components/SortByTagDialog.d.ts +1 -2
  129. package/esm/LinearPileupDisplay/components/SortByTagDialog.js +15 -21
  130. package/esm/LinearPileupDisplay/model.d.ts +21 -7
  131. package/esm/LinearPileupDisplay/model.js +2 -1
  132. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -2
  133. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +4 -4
  134. package/esm/LinearReadArcsDisplay/model.d.ts +1 -1
  135. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -2
  136. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +4 -4
  137. package/esm/LinearReadCloudDisplay/model.d.ts +1 -1
  138. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -2
  139. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +15 -51
  140. package/esm/LinearSNPCoverageDisplay/model.d.ts +4 -4
  141. package/esm/LinearSNPCoverageDisplay/model.js +32 -28
  142. package/esm/MismatchParser/cigarToMismatches.d.ts +1 -2
  143. package/esm/MismatchParser/index.d.ts +1 -2
  144. package/esm/MismatchParser/mdToMismatches.d.ts +1 -2
  145. package/esm/PileupRenderer/PileupRenderer.d.ts +4 -4
  146. package/esm/PileupRenderer/components/PileupRendering.d.ts +1 -2
  147. package/esm/PileupRenderer/components/PileupRendering.js +15 -17
  148. package/esm/PileupRenderer/configSchema.d.ts +5 -0
  149. package/esm/PileupRenderer/configSchema.js +5 -0
  150. package/esm/PileupRenderer/makeImageData.js +2 -0
  151. package/esm/PileupRenderer/renderMismatches.d.ts +2 -1
  152. package/esm/PileupRenderer/renderMismatches.js +18 -13
  153. package/esm/SNPCoverageAdapter/processModifications.js +1 -1
  154. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +1 -18
  155. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +3 -265
  156. package/esm/SNPCoverageRenderer/configSchema.d.ts +3 -3
  157. package/esm/SNPCoverageRenderer/configSchema.js +3 -3
  158. package/esm/SNPCoverageRenderer/makeImage.d.ts +2 -0
  159. package/esm/SNPCoverageRenderer/makeImage.js +267 -0
  160. package/esm/SNPCoverageRenderer/types.d.ts +19 -0
  161. package/esm/SNPCoverageRenderer/types.js +1 -0
  162. package/esm/shared/components/BaseDisplayComponent.d.ts +1 -2
  163. package/esm/shared/components/BaseDisplayComponent.js +6 -10
  164. package/esm/shared/components/FilterByTagDialog.d.ts +1 -2
  165. package/esm/shared/components/FilterByTagDialog.js +42 -69
  166. package/esm/shared/renderSvgUtil.d.ts +1 -2
  167. package/esm/shared/renderSvgUtil.js +3 -7
  168. package/package.json +13 -13
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import type { FilterBy } from '../shared/types';
3
2
  import type PluginManager from '@jbrowse/core/PluginManager';
4
3
  import type { AnyConfigurationModel, AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
@@ -104,7 +103,7 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
104
103
  afterAttach(): void;
105
104
  renderSvg(opts: {
106
105
  rasterizeLayers?: boolean;
107
- }): Promise<React.JSX.Element>;
106
+ }): Promise<import("react/jsx-runtime").JSX.Element>;
108
107
  } & {
109
108
  trackMenuItems(): MenuItem[];
110
109
  }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getConf } from '@jbrowse/core/configuration';
3
3
  import { BaseDisplay } from '@jbrowse/core/pluggableElementTypes/models';
4
4
  import deepEqual from 'fast-deep-equal';
@@ -160,12 +160,10 @@ function stateModelFactory(pluginManager, configSchema) {
160
160
  const pileupHeight = self.height - self.SNPCoverageDisplay.height;
161
161
  await when(() => !self.PileupDisplay.renderProps().notReady &&
162
162
  !self.SNPCoverageDisplay.renderProps().notReady);
163
- return (React.createElement(React.Fragment, null,
164
- React.createElement("g", null, await self.SNPCoverageDisplay.renderSvg(opts)),
165
- React.createElement("g", { transform: `translate(0 ${self.SNPCoverageDisplay.height})` }, await self.PileupDisplay.renderSvg({
166
- ...opts,
167
- overrideHeight: pileupHeight,
168
- }))));
163
+ return (_jsxs(_Fragment, { children: [_jsx("g", { children: await self.SNPCoverageDisplay.renderSvg(opts) }), _jsx("g", { transform: `translate(0 ${self.SNPCoverageDisplay.height})`, children: await self.PileupDisplay.renderSvg({
164
+ ...opts,
165
+ overrideHeight: pileupHeight,
166
+ }) })] }));
169
167
  },
170
168
  }))
171
169
  .views(self => {
@@ -38,7 +38,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
38
38
  status?: string;
39
39
  reactElement?: React.ReactElement;
40
40
  };
41
- }) => import("react").JSX.Element | undefined;
41
+ }) => import("react/jsx-runtime").JSX.Element | undefined;
42
42
  renderProps: any;
43
43
  } & {
44
44
  doReload(): void;
@@ -88,6 +88,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
88
88
  colorBySetting: import("mobx-state-tree").IType<ColorBy | undefined, ColorBy | undefined, ColorBy | undefined>;
89
89
  filterBySetting: import("mobx-state-tree").IType<FilterBy | undefined, FilterBy | undefined, FilterBy | undefined>;
90
90
  jexlFilters: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
91
+ hideSmallIndelsSetting: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
91
92
  }, {
92
93
  rendererTypeName: string;
93
94
  error: unknown;
@@ -179,13 +180,13 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
179
180
  } & {
180
181
  readonly statsReadyAndRegionNotTooLarge: boolean;
181
182
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
182
- regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
183
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
183
184
  } & {
184
185
  featureIdUnderMouse: undefined | string;
185
186
  contextMenuFeature: undefined | Feature;
186
187
  } & {
187
- readonly DisplayMessageComponent: import("react").FC<any> | undefined;
188
- readonly blockType: "dynamicBlocks" | "staticBlocks";
188
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
189
+ readonly blockType: "staticBlocks" | "dynamicBlocks";
189
190
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
190
191
  } & {
191
192
  readonly renderDelay: number;
@@ -212,7 +213,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
212
213
  contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
213
214
  renderProps(): any;
214
215
  } & {
215
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
216
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
216
217
  afterAttach(): void;
217
218
  } & {
218
219
  colorTagMap: import("mobx").ObservableMap<string, string>;
@@ -223,6 +224,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
223
224
  readonly filterBy: any;
224
225
  } & {
225
226
  readonly autorunReady: boolean;
227
+ readonly hideSmallIndels: boolean | undefined;
226
228
  } & {
227
229
  setTagsReady(flag: boolean): void;
228
230
  setMaxHeight(n?: number): void;
@@ -236,6 +238,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
236
238
  setConfig(conf: AnyConfigurationModel): void;
237
239
  setFilterBy(filter: FilterBy): void;
238
240
  setJexlFilters(filters: string[]): void;
241
+ setHideSmallIndels(arg: boolean): void;
239
242
  } & {
240
243
  readonly rendererConfig: {
241
244
  [x: string]: any;
@@ -271,18 +274,28 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
271
274
  model: {
272
275
  sortedBy?: import("../shared/types").SortedBy;
273
276
  };
274
- }) => import("react").JSX.Element | null;
277
+ }) => import("react/jsx-runtime").JSX.Element | null;
275
278
  renderPropsPre(): any;
276
279
  colorSchemeSubMenuItems(): {
277
280
  label: string;
278
281
  onClick: () => void;
279
282
  }[];
280
283
  trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
284
+ label: string;
285
+ priority: number;
286
+ type: string;
287
+ checked: boolean | undefined;
288
+ onClick: () => void;
289
+ icon?: undefined;
290
+ } | {
281
291
  label: string;
282
292
  icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
283
293
  muiName: string;
284
294
  };
285
295
  onClick: () => void;
296
+ priority?: undefined;
297
+ type?: undefined;
298
+ checked?: undefined;
286
299
  })[];
287
300
  } & {
288
301
  renderProps(): any;
@@ -323,7 +336,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
323
336
  status?: string;
324
337
  reactElement?: React.ReactElement;
325
338
  };
326
- }) => import("react").JSX.Element | undefined;
339
+ }) => import("react/jsx-runtime").JSX.Element | undefined;
327
340
  renderProps: any;
328
341
  } & {
329
342
  doReload(): void;
@@ -373,6 +386,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
373
386
  colorBySetting: import("mobx-state-tree").IType<ColorBy | undefined, ColorBy | undefined, ColorBy | undefined>;
374
387
  filterBySetting: import("mobx-state-tree").IType<FilterBy | undefined, FilterBy | undefined, FilterBy | undefined>;
375
388
  jexlFilters: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
389
+ hideSmallIndelsSetting: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
376
390
  }>>, {
377
391
  id: string;
378
392
  type: string;
@@ -32,6 +32,7 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
32
32
  colorBySetting: types.frozen(),
33
33
  filterBySetting: types.frozen(),
34
34
  jexlFilters: types.optional(types.array(types.string), []),
35
+ hideSmallIndelsSetting: types.maybe(types.boolean),
35
36
  }))
36
37
  .volatile(() => ({
37
38
  colorTagMap: observable.map({}),
@@ -53,6 +54,9 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
53
54
  const view = getContainingView(self);
54
55
  return view.initialized && self.statsReadyAndRegionNotTooLarge;
55
56
  },
57
+ get hideSmallIndels() {
58
+ return self.hideSmallIndelsSetting;
59
+ },
56
60
  }))
57
61
  .actions(self => ({
58
62
  setTagsReady(flag) {
@@ -128,18 +132,20 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
128
132
  setJexlFilters(filters) {
129
133
  self.jexlFilters = cast(filters);
130
134
  },
135
+ setHideSmallIndels(arg) {
136
+ self.hideSmallIndelsSetting = arg;
137
+ },
131
138
  }))
132
139
  .views(self => ({
133
140
  get rendererConfig() {
134
- const { featureHeight, noSpacing, trackMaxHeight, rendererTypeName } = self;
141
+ const { featureHeight: height, noSpacing, hideSmallIndels, trackMaxHeight: maxHeight, rendererTypeName, } = self;
135
142
  const configBlob = getConf(self, ['renderers', rendererTypeName]) || {};
136
143
  return self.rendererType.configSchema.create({
137
144
  ...configBlob,
138
- ...(featureHeight !== undefined ? { height: featureHeight } : {}),
145
+ ...(hideSmallIndels !== undefined ? { hideSmallIndels } : {}),
146
+ ...(height !== undefined ? { height } : {}),
139
147
  ...(noSpacing !== undefined ? { noSpacing } : {}),
140
- ...(trackMaxHeight !== undefined
141
- ? { maxHeight: trackMaxHeight }
142
- : {}),
148
+ ...(maxHeight !== undefined ? { maxHeight } : {}),
143
149
  }, getEnv(self));
144
150
  },
145
151
  }))
@@ -365,6 +371,15 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
365
371
  },
366
372
  ],
367
373
  },
374
+ {
375
+ label: 'Hide small indels (<10bp)',
376
+ priority: -1,
377
+ type: 'checkbox',
378
+ checked: self.hideSmallIndels,
379
+ onClick: () => {
380
+ self.setHideSmallIndels(!self.hideSmallIndels);
381
+ },
382
+ },
368
383
  {
369
384
  label: 'Set max height...',
370
385
  priority: -1,
@@ -459,11 +474,11 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
459
474
  }))
460
475
  .preProcessSnapshot(snap => {
461
476
  if (snap) {
462
- const { colorBy, filterBy, ...rest } = snap;
477
+ const { colorBy, colorBySetting, filterBySetting, filterBy, ...rest } = snap;
463
478
  return {
464
479
  ...rest,
465
- filterBySetting: filterBy,
466
- colorBySetting: colorBy,
480
+ filterBySetting: filterBySetting || filterBy,
481
+ colorBySetting: colorBySetting || colorBy,
467
482
  };
468
483
  }
469
484
  return snap;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  interface Tag {
3
2
  type: string;
4
3
  tag: string;
@@ -8,5 +7,5 @@ declare const ColorByTagDialog: ({ model, handleClose, }: {
8
7
  setColorScheme: (arg: Tag) => void;
9
8
  };
10
9
  handleClose: () => void;
11
- }) => React.JSX.Element;
10
+ }) => import("react/jsx-runtime").JSX.Element;
12
11
  export default ColorByTagDialog;
@@ -1,24 +1,18 @@
1
- import React, { useState } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
2
3
  import { Dialog } from '@jbrowse/core/ui';
3
4
  import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
4
5
  import { observer } from 'mobx-react';
5
6
  const ColorByTagDialog = observer(function ({ model, handleClose, }) {
6
7
  const [tag, setTag] = useState('');
7
8
  const validTag = /^[A-Za-z][A-Za-z0-9]$/.exec(tag);
8
- return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Color by tag" },
9
- React.createElement(DialogContent, { style: { overflowX: 'hidden' } },
10
- React.createElement(Typography, null, "Enter tag to color by: "),
11
- React.createElement(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."),
12
- React.createElement(TextField, { value: tag, onChange: event => {
13
- setTag(event.target.value);
14
- }, placeholder: "Enter tag name", error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off", slotProps: {
15
- htmlInput: { maxLength: 2 },
16
- } }),
17
- React.createElement(DialogActions, null,
18
- React.createElement(Button, { variant: "contained", color: "primary", onClick: () => {
19
- model.setColorScheme({ type: 'tag', tag });
20
- handleClose();
21
- }, disabled: !validTag }, "Submit"),
22
- React.createElement(Button, { variant: "contained", color: "secondary", onClick: handleClose }, "Cancel")))));
9
+ return (_jsx(Dialog, { open: true, onClose: handleClose, title: "Color by tag", children: _jsxs(DialogContent, { style: { overflowX: 'hidden' }, children: [_jsx(Typography, { children: "Enter tag to color by: " }), _jsx(Typography, { color: "textSecondary", children: "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." }), _jsx(TextField, { value: tag, onChange: event => {
10
+ setTag(event.target.value);
11
+ }, placeholder: "Enter tag name", error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off", slotProps: {
12
+ htmlInput: { maxLength: 2 },
13
+ } }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", onClick: () => {
14
+ model.setColorScheme({ type: 'tag', tag });
15
+ handleClose();
16
+ }, disabled: !validTag, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: handleClose, children: "Cancel" })] })] }) }));
23
17
  });
24
18
  export default ColorByTagDialog;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
2
  import type { IAnyStateTreeNode } from 'mobx-state-tree';
4
3
  declare const GroupByTagDialog: (props: {
@@ -7,5 +6,5 @@ declare const GroupByTagDialog: (props: {
7
6
  configuration: AnyConfigurationModel;
8
7
  } & IAnyStateTreeNode;
9
8
  handleClose: () => void;
10
- }) => React.JSX.Element;
9
+ }) => import("react/jsx-runtime").JSX.Element;
11
10
  export default GroupByTagDialog;
@@ -1,4 +1,5 @@
1
- import React, { useEffect, useState } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
2
3
  import { Dialog, ErrorMessage, LoadingEllipses } from '@jbrowse/core/ui';
3
4
  import { getContainingTrack, getContainingView, getSession, useDebounce, } from '@jbrowse/core/util';
4
5
  import { Button, DialogActions, DialogContent, MenuItem, TextField, Typography, } from '@mui/material';
@@ -41,41 +42,54 @@ const GroupByTagDialog = observer(function (props) {
41
42
  }
42
43
  })();
43
44
  }, [model, isInvalid, debouncedTag]);
44
- return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Group by" },
45
- React.createElement(DialogContent, null,
46
- React.createElement(Typography, null, "NOTE: this will create new session tracks with the \"filter by\" set to the values chosen here rather than affecting the current track state"),
47
- React.createElement(TextField, { fullWidth: true, value: type, onChange: event => {
48
- setType(event.target.value);
49
- }, label: "Group by...", select: true },
50
- React.createElement(MenuItem, { value: "strand" }, "Strand"),
51
- React.createElement(MenuItem, { value: "tag" }, "Tag")),
52
- type === 'tag' ? (React.createElement(React.Fragment, null,
53
- React.createElement(Typography, { color: "textSecondary" }, "Examples: HP for haplotype, RG for read group, etc."),
54
- React.createElement(TextField, { value: tag, onChange: event => {
55
- setGroupByTag(event.target.value);
56
- }, placeholder: "Enter tag name", error: isInvalid, helperText: isInvalid ? 'Not a valid tag' : '', autoComplete: "off", "data-testid": "group-tag-name", slotProps: {
57
- htmlInput: {
58
- maxLength: 2,
59
- 'data-testid': 'group-tag-name-input',
60
- },
61
- } }),
62
- error ? (React.createElement(ErrorMessage, { error: error })) : loading ? (React.createElement(LoadingEllipses, { title: "Loading unique tags" })) : tagSet ? (React.createElement("div", null,
63
- React.createElement("div", null,
64
- "Found unique ",
65
- tag,
66
- " values:"),
67
- React.createElement("div", null, tagSet.join(', ')))) : null)) : null),
68
- React.createElement(DialogActions, null,
69
- React.createElement(Button, { variant: "contained", color: "primary", type: "submit", disabled: !tagSet, autoFocus: true, onClick: () => {
70
- const track = getContainingTrack(model);
71
- const trackConf = structuredClone(getSnapshot(track.configuration));
72
- const session = getSession(model);
73
- const view = getContainingView(model);
74
- if (type === 'tag') {
75
- if (tagSet) {
76
- const ret = [...tagSet, undefined];
77
- for (const tagValue of ret) {
78
- const t1 = `${trackConf.trackId}-${tag}:${tagValue}-${+Date.now()}-sessionTrack`;
45
+ return (_jsxs(Dialog, { open: true, onClose: handleClose, title: "Group by", children: [_jsxs(DialogContent, { children: [_jsx(Typography, { children: "NOTE: this will create new session tracks with the \"filter by\" set to the values chosen here rather than affecting the current track state" }), _jsxs(TextField, { fullWidth: true, value: type, onChange: event => {
46
+ setType(event.target.value);
47
+ }, label: "Group by...", select: true, children: [_jsx(MenuItem, { value: "strand", children: "Strand" }), _jsx(MenuItem, { value: "tag", children: "Tag" })] }), type === 'tag' ? (_jsxs(_Fragment, { children: [_jsx(Typography, { color: "textSecondary", children: "Examples: HP for haplotype, RG for read group, etc." }), _jsx(TextField, { value: tag, onChange: event => {
48
+ setGroupByTag(event.target.value);
49
+ }, placeholder: "Enter tag name", error: isInvalid, helperText: isInvalid ? 'Not a valid tag' : '', autoComplete: "off", "data-testid": "group-tag-name", slotProps: {
50
+ htmlInput: {
51
+ maxLength: 2,
52
+ 'data-testid': 'group-tag-name-input',
53
+ },
54
+ } }), error ? (_jsx(ErrorMessage, { error: error })) : loading ? (_jsx(LoadingEllipses, { title: "Loading unique tags" })) : tagSet ? (_jsxs("div", { children: [_jsxs("div", { children: ["Found unique ", tag, " values:"] }), _jsx("div", { children: tagSet.join(', ') })] })) : null] })) : null] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", type: "submit", disabled: !tagSet, autoFocus: true, onClick: () => {
55
+ const track = getContainingTrack(model);
56
+ const trackConf = structuredClone(getSnapshot(track.configuration));
57
+ const session = getSession(model);
58
+ const view = getContainingView(model);
59
+ if (type === 'tag') {
60
+ if (tagSet) {
61
+ const ret = [...tagSet, undefined];
62
+ for (const tagValue of ret) {
63
+ const t1 = `${trackConf.trackId}-${tag}:${tagValue}-${+Date.now()}-sessionTrack`;
64
+ session.addTrackConf({
65
+ ...trackConf,
66
+ trackId: t1,
67
+ name: `${trackConf.name} (${tag}:${tagValue})`,
68
+ displays: [
69
+ {
70
+ displayId: `${t1}-LinearAlignmentsDisplay`,
71
+ type: 'LinearAlignmentsDisplay',
72
+ pileupDisplay: {
73
+ displayId: `${t1}-LinearAlignmentsDisplay-LinearPileupDisplay`,
74
+ type: 'LinearPileupDisplay',
75
+ filterBy: {
76
+ ...defaultFilterFlags,
77
+ tagFilter: {
78
+ tag,
79
+ value: tagValue,
80
+ },
81
+ },
82
+ },
83
+ },
84
+ ],
85
+ });
86
+ view.showTrack(t1);
87
+ }
88
+ }
89
+ }
90
+ else if (type === 'strand') {
91
+ const t1 = `${trackConf.trackId}-${tag}:(-)-${+Date.now()}-sessionTrack`;
92
+ const t2 = `${trackConf.trackId}-${tag}:(+)-${+Date.now()}-sessionTrack`;
79
93
  session.addTrackConf({
80
94
  ...trackConf,
81
95
  trackId: t1,
@@ -87,73 +101,43 @@ const GroupByTagDialog = observer(function (props) {
87
101
  pileupDisplay: {
88
102
  displayId: `${t1}-LinearAlignmentsDisplay-LinearPileupDisplay`,
89
103
  type: 'LinearPileupDisplay',
90
- filterBy: {
91
- ...defaultFilterFlags,
92
- tagFilter: {
93
- tag,
94
- value: tagValue,
95
- },
96
- },
104
+ filterBy: negFlags,
97
105
  },
98
106
  },
107
+ {
108
+ displayId: `${t1}-LinearSNPCoverageDisplay`,
109
+ type: 'LinearSNPCoverageDisplay',
110
+ filterBy: negFlags,
111
+ },
112
+ ],
113
+ });
114
+ session.addTrackConf({
115
+ ...trackConf,
116
+ trackId: t2,
117
+ name: `${trackConf.name} (+)`,
118
+ displays: [
119
+ {
120
+ displayId: `${t2}-LinearAlignmentsDisplay`,
121
+ type: 'LinearAlignmentsDisplay',
122
+ pileupDisplay: {
123
+ displayId: `${t2}-LinearAlignmentsDisplay-LinearPileupDisplay`,
124
+ type: 'LinearPileupDisplay',
125
+ filterBy: posFlags,
126
+ },
127
+ },
128
+ {
129
+ displayId: `${t2}-LinearSNPCoverageDisplay`,
130
+ type: 'LinearSNPCoverageDisplay',
131
+ filterBy: posFlags,
132
+ },
99
133
  ],
100
134
  });
101
135
  view.showTrack(t1);
136
+ view.showTrack(t2);
102
137
  }
103
- }
104
- }
105
- else if (type === 'strand') {
106
- const t1 = `${trackConf.trackId}-${tag}:(-)-${+Date.now()}-sessionTrack`;
107
- const t2 = `${trackConf.trackId}-${tag}:(+)-${+Date.now()}-sessionTrack`;
108
- session.addTrackConf({
109
- ...trackConf,
110
- trackId: t1,
111
- name: `${trackConf.name} (-)`,
112
- displays: [
113
- {
114
- displayId: `${t1}-LinearAlignmentsDisplay`,
115
- type: 'LinearAlignmentsDisplay',
116
- pileupDisplay: {
117
- displayId: `${t1}-LinearAlignmentsDisplay-LinearPileupDisplay`,
118
- type: 'LinearPileupDisplay',
119
- filterBy: negFlags,
120
- },
121
- },
122
- {
123
- displayId: `${t1}-LinearSNPCoverageDisplay`,
124
- type: 'LinearSNPCoverageDisplay',
125
- filterBy: negFlags,
126
- },
127
- ],
128
- });
129
- session.addTrackConf({
130
- ...trackConf,
131
- trackId: t2,
132
- name: `${trackConf.name} (+)`,
133
- displays: [
134
- {
135
- displayId: `${t2}-LinearAlignmentsDisplay`,
136
- type: 'LinearAlignmentsDisplay',
137
- pileupDisplay: {
138
- displayId: `${t2}-LinearAlignmentsDisplay-LinearPileupDisplay`,
139
- type: 'LinearPileupDisplay',
140
- filterBy: posFlags,
141
- },
142
- },
143
- {
144
- displayId: `${t2}-LinearSNPCoverageDisplay`,
145
- type: 'LinearSNPCoverageDisplay',
146
- filterBy: posFlags,
147
- },
148
- ],
149
- });
150
- view.showTrack(t1);
151
- view.showTrack(t2);
152
- }
153
- handleClose();
154
- } }, "Submit"),
155
- React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
156
- handleClose();
157
- } }, "Cancel"))));
138
+ handleClose();
139
+ }, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
140
+ handleClose();
141
+ }, children: "Cancel" })] })] }));
158
142
  });
159
143
  export default GroupByTagDialog;
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  import type { SortedBy } from '../../shared/types';
3
2
  declare const LinearPileupDisplayBlurb: ({ model, }: {
4
3
  model: {
5
4
  sortedBy?: SortedBy;
6
5
  };
7
- }) => React.JSX.Element | null;
6
+ }) => import("react/jsx-runtime").JSX.Element | null;
8
7
  export default LinearPileupDisplayBlurb;
@@ -1,10 +1,9 @@
1
- import React from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Typography } from '@mui/material';
3
3
  import { observer } from 'mobx-react';
4
4
  const LinearPileupDisplayBlurb = observer(function ({ model, }) {
5
5
  var _a;
6
6
  const { sortedBy } = model;
7
- return sortedBy ? (React.createElement("div", { "data-testid": `blurb-${sortedBy}` },
8
- React.createElement(Typography, { color: "secondary", variant: "caption" }, `Sorted by ${(_a = sortedBy.tag) !== null && _a !== void 0 ? _a : sortedBy.type} at ${sortedBy.refName}:${sortedBy.pos}`))) : null;
7
+ return sortedBy ? (_jsx("div", { "data-testid": `blurb-${sortedBy}`, children: _jsx(Typography, { color: "secondary", variant: "caption", children: `Sorted by ${(_a = sortedBy.tag) !== null && _a !== void 0 ? _a : sortedBy.type} at ${sortedBy.refName}:${sortedBy.pos}` }) })) : null;
9
8
  });
10
9
  export default LinearPileupDisplayBlurb;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  declare const SetFeatureHeightDialog: (props: {
3
2
  model: {
4
3
  setFeatureHeight: (arg?: number) => void;
@@ -7,5 +6,5 @@ declare const SetFeatureHeightDialog: (props: {
7
6
  noSpacing?: boolean;
8
7
  };
9
8
  handleClose: () => void;
10
- }) => React.JSX.Element;
9
+ }) => import("react/jsx-runtime").JSX.Element;
11
10
  export default SetFeatureHeightDialog;
@@ -1,4 +1,5 @@
1
- import React, { useState } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
2
3
  import { Dialog } from '@jbrowse/core/ui';
3
4
  import { Button, Checkbox, DialogActions, DialogContent, FormControlLabel, TextField, Typography, } from '@mui/material';
4
5
  import { observer } from 'mobx-react';
@@ -8,23 +9,16 @@ const SetFeatureHeightDialog = observer(function (props) {
8
9
  const [height, setHeight] = useState(`${featureHeightSetting}`);
9
10
  const [noSpacing, setNoSpacing] = useState(noSpacingSetting);
10
11
  const ok = height !== '' && !Number.isNaN(+height);
11
- return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Set feature height" },
12
- React.createElement(DialogContent, null,
13
- React.createElement(Typography, null, "Adjust the feature height and whether there is any spacing between features. Setting feature height to 1 and removing spacing makes the display very compact."),
14
- React.createElement(TextField, { value: height, helperText: "Feature height", onChange: event => {
15
- setHeight(event.target.value);
16
- } }),
17
- React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: !!noSpacing, onChange: () => {
18
- setNoSpacing(val => !val);
19
- } }), label: "Remove spacing between features in y-direction?" }),
20
- React.createElement(DialogActions, null,
21
- React.createElement(Button, { variant: "contained", color: "primary", type: "submit", autoFocus: true, disabled: !ok, onClick: () => {
22
- model.setFeatureHeight(height !== '' && !Number.isNaN(+height) ? +height : undefined);
23
- model.setNoSpacing(noSpacing);
24
- handleClose();
25
- } }, "Submit"),
26
- React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
27
- handleClose();
28
- } }, "Cancel")))));
12
+ return (_jsx(Dialog, { open: true, onClose: handleClose, title: "Set feature height", children: _jsxs(DialogContent, { children: [_jsx(Typography, { children: "Adjust the feature height and whether there is any spacing between features. Setting feature height to 1 and removing spacing makes the display very compact." }), _jsx(TextField, { value: height, helperText: "Feature height", onChange: event => {
13
+ setHeight(event.target.value);
14
+ } }), _jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: !!noSpacing, onChange: () => {
15
+ setNoSpacing(val => !val);
16
+ } }), label: "Remove spacing between features in y-direction?" }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", type: "submit", autoFocus: true, disabled: !ok, onClick: () => {
17
+ model.setFeatureHeight(height !== '' && !Number.isNaN(+height) ? +height : undefined);
18
+ model.setNoSpacing(noSpacing);
19
+ handleClose();
20
+ }, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
21
+ handleClose();
22
+ }, children: "Cancel" })] })] }) }));
29
23
  });
30
24
  export default SetFeatureHeightDialog;
@@ -1,9 +1,8 @@
1
- import React from 'react';
2
1
  declare const SetMaxHeightDialog: (props: {
3
2
  model: {
4
3
  maxHeight?: number;
5
4
  setMaxHeight: (arg?: number) => void;
6
5
  };
7
6
  handleClose: () => void;
8
- }) => React.JSX.Element;
7
+ }) => import("react/jsx-runtime").JSX.Element;
9
8
  export default SetMaxHeightDialog;
@@ -1,4 +1,5 @@
1
- import React, { useState } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
2
3
  import { Dialog } from '@jbrowse/core/ui';
3
4
  import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
4
5
  import { observer } from 'mobx-react';
@@ -13,19 +14,13 @@ const SetMaxHeightDialog = observer(function (props) {
13
14
  const { classes } = useStyles();
14
15
  const { maxHeight = '' } = model;
15
16
  const [max, setMax] = useState(`${maxHeight}`);
16
- return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Set max height" },
17
- React.createElement(DialogContent, { className: classes.root },
18
- React.createElement(Typography, null, "Set max height for the track. For example, you can increase this if the layout says \"Max height reached\""),
19
- React.createElement(TextField, { value: max, autoFocus: true, onChange: event => {
20
- setMax(event.target.value);
21
- }, placeholder: "Enter max height for layout" }),
22
- React.createElement(DialogActions, null,
23
- React.createElement(Button, { variant: "contained", color: "primary", type: "submit", autoFocus: true, onClick: () => {
24
- model.setMaxHeight(max !== '' && !Number.isNaN(+max) ? +max : undefined);
25
- handleClose();
26
- } }, "Submit"),
27
- React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
28
- handleClose();
29
- } }, "Cancel")))));
17
+ return (_jsx(Dialog, { open: true, onClose: handleClose, title: "Set max height", children: _jsxs(DialogContent, { className: classes.root, children: [_jsx(Typography, { children: "Set max height for the track. For example, you can increase this if the layout says \"Max height reached\"" }), _jsx(TextField, { value: max, autoFocus: true, onChange: event => {
18
+ setMax(event.target.value);
19
+ }, placeholder: "Enter max height for layout" }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", type: "submit", autoFocus: true, onClick: () => {
20
+ model.setMaxHeight(max !== '' && !Number.isNaN(+max) ? +max : undefined);
21
+ handleClose();
22
+ }, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
23
+ handleClose();
24
+ }, children: "Cancel" })] })] }) }));
30
25
  });
31
26
  export default SetMaxHeightDialog;