@jbrowse/plugin-lollipop 2.6.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 (88) hide show
  1. package/LICENSE +201 -0
  2. package/dist/LinearLollipopDisplay/configSchema.d.ts +26 -0
  3. package/dist/LinearLollipopDisplay/configSchema.js +13 -0
  4. package/dist/LinearLollipopDisplay/configSchema.js.map +1 -0
  5. package/dist/LinearLollipopDisplay/index.d.ts +2 -0
  6. package/dist/LinearLollipopDisplay/index.js +8 -0
  7. package/dist/LinearLollipopDisplay/index.js.map +1 -0
  8. package/dist/LinearLollipopDisplay/model.d.ts +303 -0
  9. package/dist/LinearLollipopDisplay/model.js +36 -0
  10. package/dist/LinearLollipopDisplay/model.js.map +1 -0
  11. package/dist/LollipopRenderer/Layout.d.ts +55 -0
  12. package/dist/LollipopRenderer/Layout.js +116 -0
  13. package/dist/LollipopRenderer/Layout.js.map +1 -0
  14. package/dist/LollipopRenderer/LollipopRenderer.d.ts +13 -0
  15. package/dist/LollipopRenderer/LollipopRenderer.js +52 -0
  16. package/dist/LollipopRenderer/LollipopRenderer.js.map +1 -0
  17. package/dist/LollipopRenderer/components/Lollipop.d.ts +3 -0
  18. package/dist/LollipopRenderer/components/Lollipop.js +63 -0
  19. package/dist/LollipopRenderer/components/Lollipop.js.map +1 -0
  20. package/dist/LollipopRenderer/components/LollipopRendering.d.ts +3 -0
  21. package/dist/LollipopRenderer/components/LollipopRendering.js +80 -0
  22. package/dist/LollipopRenderer/components/LollipopRendering.js.map +1 -0
  23. package/dist/LollipopRenderer/components/ScoreText.d.ts +15 -0
  24. package/dist/LollipopRenderer/components/ScoreText.js +20 -0
  25. package/dist/LollipopRenderer/components/ScoreText.js.map +1 -0
  26. package/dist/LollipopRenderer/components/Stick.d.ts +15 -0
  27. package/dist/LollipopRenderer/components/Stick.js +12 -0
  28. package/dist/LollipopRenderer/components/Stick.js.map +1 -0
  29. package/dist/LollipopRenderer/configSchema.d.ts +56 -0
  30. package/dist/LollipopRenderer/configSchema.js +59 -0
  31. package/dist/LollipopRenderer/configSchema.js.map +1 -0
  32. package/dist/LollipopRenderer/index.d.ts +3 -0
  33. package/dist/LollipopRenderer/index.js +13 -0
  34. package/dist/LollipopRenderer/index.js.map +1 -0
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.js +60 -0
  37. package/dist/index.js.map +1 -0
  38. package/esm/LinearLollipopDisplay/configSchema.d.ts +26 -0
  39. package/esm/LinearLollipopDisplay/configSchema.js +9 -0
  40. package/esm/LinearLollipopDisplay/configSchema.js.map +1 -0
  41. package/esm/LinearLollipopDisplay/index.d.ts +2 -0
  42. package/esm/LinearLollipopDisplay/index.js +3 -0
  43. package/esm/LinearLollipopDisplay/index.js.map +1 -0
  44. package/esm/LinearLollipopDisplay/model.d.ts +303 -0
  45. package/esm/LinearLollipopDisplay/model.js +32 -0
  46. package/esm/LinearLollipopDisplay/model.js.map +1 -0
  47. package/esm/LollipopRenderer/Layout.d.ts +55 -0
  48. package/esm/LollipopRenderer/Layout.js +111 -0
  49. package/esm/LollipopRenderer/Layout.js.map +1 -0
  50. package/esm/LollipopRenderer/LollipopRenderer.d.ts +13 -0
  51. package/esm/LollipopRenderer/LollipopRenderer.js +23 -0
  52. package/esm/LollipopRenderer/LollipopRenderer.js.map +1 -0
  53. package/esm/LollipopRenderer/components/Lollipop.d.ts +3 -0
  54. package/esm/LollipopRenderer/components/Lollipop.js +58 -0
  55. package/esm/LollipopRenderer/components/Lollipop.js.map +1 -0
  56. package/esm/LollipopRenderer/components/LollipopRendering.d.ts +3 -0
  57. package/esm/LollipopRenderer/components/LollipopRendering.js +75 -0
  58. package/esm/LollipopRenderer/components/LollipopRendering.js.map +1 -0
  59. package/esm/LollipopRenderer/components/ScoreText.d.ts +15 -0
  60. package/esm/LollipopRenderer/components/ScoreText.js +14 -0
  61. package/esm/LollipopRenderer/components/ScoreText.js.map +1 -0
  62. package/esm/LollipopRenderer/components/Stick.d.ts +15 -0
  63. package/esm/LollipopRenderer/components/Stick.js +7 -0
  64. package/esm/LollipopRenderer/components/Stick.js.map +1 -0
  65. package/esm/LollipopRenderer/configSchema.d.ts +56 -0
  66. package/esm/LollipopRenderer/configSchema.js +57 -0
  67. package/esm/LollipopRenderer/configSchema.js.map +1 -0
  68. package/esm/LollipopRenderer/index.d.ts +3 -0
  69. package/esm/LollipopRenderer/index.js +4 -0
  70. package/esm/LollipopRenderer/index.js.map +1 -0
  71. package/esm/index.d.ts +6 -0
  72. package/esm/index.js +31 -0
  73. package/esm/index.js.map +1 -0
  74. package/package.json +56 -0
  75. package/src/LinearLollipopDisplay/configSchema.ts +14 -0
  76. package/src/LinearLollipopDisplay/index.ts +2 -0
  77. package/src/LinearLollipopDisplay/model.ts +40 -0
  78. package/src/LollipopRenderer/Layout.ts +172 -0
  79. package/src/LollipopRenderer/LollipopRenderer.js +29 -0
  80. package/src/LollipopRenderer/components/Lollipop.tsx +113 -0
  81. package/src/LollipopRenderer/components/LollipopRendering.test.js +45 -0
  82. package/src/LollipopRenderer/components/LollipopRendering.tsx +140 -0
  83. package/src/LollipopRenderer/components/ScoreText.tsx +43 -0
  84. package/src/LollipopRenderer/components/Stick.tsx +36 -0
  85. package/src/LollipopRenderer/components/__snapshots__/LollipopRendering.test.js.snap +37 -0
  86. package/src/LollipopRenderer/configSchema.ts +63 -0
  87. package/src/LollipopRenderer/index.ts +3 -0
  88. package/src/index.ts +41 -0
package/dist/index.js ADDED
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const DisplayType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/DisplayType"));
30
+ const Plugin_1 = __importDefault(require("@jbrowse/core/Plugin"));
31
+ const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view");
32
+ const LinearLollipopDisplay_1 = require("./LinearLollipopDisplay");
33
+ const LollipopRenderer_1 = __importStar(require("./LollipopRenderer"));
34
+ class default_1 extends Plugin_1.default {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.name = 'LollipopPlugin';
38
+ }
39
+ install(pluginManager) {
40
+ pluginManager.addRendererType(() => new LollipopRenderer_1.default({
41
+ name: 'LollipopRenderer',
42
+ ReactComponent: LollipopRenderer_1.ReactComponent,
43
+ configSchema: LollipopRenderer_1.configSchema,
44
+ pluginManager,
45
+ }));
46
+ pluginManager.addDisplayType(() => {
47
+ const configSchema = (0, LinearLollipopDisplay_1.configSchemaFactory)(pluginManager);
48
+ return new DisplayType_1.default({
49
+ name: 'LinearLollipopDisplay',
50
+ configSchema,
51
+ stateModel: (0, LinearLollipopDisplay_1.stateModelFactory)(configSchema),
52
+ trackType: 'LollipopTrack',
53
+ viewType: 'LinearGenomeView',
54
+ ReactComponent: plugin_linear_genome_view_1.BaseLinearDisplayComponent,
55
+ });
56
+ });
57
+ }
58
+ }
59
+ exports.default = default_1;
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kGAAyE;AACzE,kEAAyC;AAEzC,kFAA+E;AAC/E,mEAGgC;AAChC,uEAG2B;AAE3B,eAAqB,SAAQ,gBAAM;IAAnC;;QACE,SAAI,GAAG,gBAAgB,CAAA;IA0BzB,CAAC;IAxBC,OAAO,CAAC,aAA4B;QAClC,aAAa,CAAC,eAAe,CAC3B,GAAG,EAAE,CACH,IAAI,0BAAgB,CAAC;YACnB,IAAI,EAAE,kBAAkB;YACxB,cAAc,EAAE,iCAA8B;YAC9C,YAAY,EAAE,+BAA4B;YAC1C,aAAa;SACd,CAAC,CACL,CAAA;QAED,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;YAChC,MAAM,YAAY,GAChB,IAAA,2CAAwC,EAAC,aAAa,CAAC,CAAA;YACzD,OAAO,IAAI,qBAAW,CAAC;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,YAAY;gBACZ,UAAU,EAAE,IAAA,yCAAsC,EAAC,YAAY,CAAC;gBAChE,SAAS,EAAE,eAAe;gBAC1B,QAAQ,EAAE,kBAAkB;gBAC5B,cAAc,EAAE,sDAA0B;aAC3C,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AA3BD,4BA2BC"}
@@ -0,0 +1,26 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ export declare function configSchemaFactory(pluginManager: PluginManager): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
3
+ renderer: import("mobx-state-tree").IAnyModelType;
4
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
5
+ maxFeatureScreenDensity: {
6
+ type: string;
7
+ description: string;
8
+ defaultValue: number;
9
+ };
10
+ fetchSizeLimit: {
11
+ type: string;
12
+ defaultValue: number;
13
+ description: string;
14
+ };
15
+ height: {
16
+ type: string;
17
+ defaultValue: number;
18
+ description: string;
19
+ };
20
+ mouseover: {
21
+ type: string;
22
+ description: string;
23
+ defaultValue: string;
24
+ contextVariable: string[];
25
+ };
26
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>, undefined>>;
@@ -0,0 +1,9 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ import { baseLinearDisplayConfigSchema } from '@jbrowse/plugin-linear-genome-view';
3
+ export function configSchemaFactory(pluginManager) {
4
+ return ConfigurationSchema('LinearLollipopDisplay', { renderer: pluginManager.pluggableConfigSchemaType('renderer') }, {
5
+ baseConfiguration: baseLinearDisplayConfigSchema,
6
+ explicitlyTyped: true,
7
+ });
8
+ }
9
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/LinearLollipopDisplay/configSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAElF,MAAM,UAAU,mBAAmB,CAAC,aAA4B;IAC9D,OAAO,mBAAmB,CACxB,uBAAuB,EACvB,EAAE,QAAQ,EAAE,aAAa,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,EACjE;QACE,iBAAiB,EAAE,6BAA6B;QAChD,eAAe,EAAE,IAAI;KACtB,CACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { configSchemaFactory } from './configSchema';
2
+ export { stateModelFactory } from './model';
@@ -0,0 +1,3 @@
1
+ export { configSchemaFactory } from './configSchema';
2
+ export { stateModelFactory } from './model';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearLollipopDisplay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,303 @@
1
+ /// <reference types="react" />
2
+ import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
3
+ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): import("mobx-state-tree").IModelType<{
4
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
5
+ type: import("mobx-state-tree").ISimpleType<string>;
6
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
7
+ } & {
8
+ heightPreConfig: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
9
+ } & {
10
+ userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
11
+ userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
12
+ } & {
13
+ blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
14
+ key: import("mobx-state-tree").ISimpleType<string>;
15
+ region: import("mobx-state-tree").IModelType<{
16
+ refName: import("mobx-state-tree").ISimpleType<string>;
17
+ start: import("mobx-state-tree").ISimpleType<number>;
18
+ end: import("mobx-state-tree").ISimpleType<number>;
19
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
20
+ } & {
21
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
22
+ }, {
23
+ setRefName(newRefName: string): void;
24
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
25
+ reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
26
+ isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
27
+ isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
28
+ }, {
29
+ renderInProgress: AbortController | undefined;
30
+ filled: boolean;
31
+ reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
32
+ features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
33
+ layout: any;
34
+ status: string;
35
+ error: unknown;
36
+ message: string | undefined;
37
+ maxHeightReached: boolean;
38
+ ReactComponent: ({ model, }: {
39
+ model: any;
40
+ }) => any;
41
+ renderProps: any;
42
+ } & {
43
+ doReload(): void;
44
+ afterAttach(): void;
45
+ setStatus(message: string): void;
46
+ setLoading(abortController: AbortController): void;
47
+ setMessage(messageText: string): void;
48
+ setRendered(props: {
49
+ reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
50
+ features: Map<string, import("@jbrowse/core/util").Feature>;
51
+ layout: any;
52
+ maxHeightReached: boolean;
53
+ renderProps: any;
54
+ } | undefined): void;
55
+ setError(error: unknown): void;
56
+ reload(): void;
57
+ beforeDestroy(): void;
58
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
59
+ configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
60
+ maxFeatureScreenDensity: {
61
+ type: string;
62
+ description: string;
63
+ defaultValue: number;
64
+ };
65
+ fetchSizeLimit: {
66
+ type: string;
67
+ defaultValue: number;
68
+ description: string;
69
+ };
70
+ height: {
71
+ type: string;
72
+ defaultValue: number;
73
+ description: string;
74
+ };
75
+ mouseover: {
76
+ type: string;
77
+ description: string;
78
+ defaultValue: string;
79
+ contextVariable: string[];
80
+ };
81
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
82
+ } & {
83
+ type: import("mobx-state-tree").ISimpleType<"LinearLollipopDisplay">;
84
+ configuration: AnyConfigurationSchemaType;
85
+ }, {
86
+ rendererTypeName: string;
87
+ error: unknown;
88
+ message: string | undefined;
89
+ } & {
90
+ readonly RenderingComponent: import("react").FC<{
91
+ model: {
92
+ id: string;
93
+ type: string;
94
+ rpcDriverName: string | undefined;
95
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
96
+ rendererTypeName: string;
97
+ error: unknown;
98
+ message: string | undefined;
99
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
100
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
101
+ type: import("mobx-state-tree").ISimpleType<string>;
102
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
103
+ }, {
104
+ rendererTypeName: string;
105
+ error: unknown;
106
+ message: string | undefined;
107
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
108
+ onHorizontalScroll?: Function | undefined;
109
+ blockState?: Record<string, any> | undefined;
110
+ }>;
111
+ readonly DisplayBlurb: import("react").FC<{
112
+ model: {
113
+ id: string;
114
+ type: string;
115
+ rpcDriverName: string | undefined;
116
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
117
+ rendererTypeName: string;
118
+ error: unknown;
119
+ message: string | undefined;
120
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
121
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
122
+ type: import("mobx-state-tree").ISimpleType<string>;
123
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
124
+ }, {
125
+ rendererTypeName: string;
126
+ error: unknown;
127
+ message: string | undefined;
128
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
129
+ }> | null;
130
+ readonly adapterConfig: any;
131
+ readonly parentTrack: any;
132
+ renderProps(): any;
133
+ readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
134
+ readonly DisplayMessageComponent: import("react").FC<any> | undefined;
135
+ trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
136
+ readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
137
+ regionCannotBeRendered(): null;
138
+ } & {
139
+ setMessage(arg?: string | undefined): void;
140
+ setError(error?: unknown): void;
141
+ setRpcDriverName(rpcDriverName: string): void;
142
+ reload(): void;
143
+ } & {
144
+ scrollTop: number;
145
+ } & {
146
+ readonly height: number;
147
+ } & {
148
+ setScrollTop(scrollTop: number): void;
149
+ setHeight(displayHeight: number): number;
150
+ resizeHeight(distance: number): number;
151
+ } & {
152
+ featureDensityStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats> | undefined;
153
+ featureDensityStats: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined;
154
+ currStatsBpPerPx: number;
155
+ } & {
156
+ readonly currentBytesRequested: number;
157
+ readonly currentFeatureScreenDensity: number;
158
+ readonly maxFeatureScreenDensity: any;
159
+ readonly featureDensityStatsReady: boolean;
160
+ readonly maxAllowableBytes: number;
161
+ } & {
162
+ afterAttach(): void;
163
+ } & {
164
+ setCurrStatsBpPerPx(n: number): void;
165
+ setFeatureDensityStatsLimit(stats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
166
+ getFeatureDensityStats(): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
167
+ setFeatureDensityStatsP(arg: any): void;
168
+ setFeatureDensityStats(featureDensityStats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
169
+ clearFeatureDensityStats(): void;
170
+ } & {
171
+ readonly regionTooLarge: boolean;
172
+ readonly regionTooLargeReason: string;
173
+ } & {
174
+ regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
175
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
176
+ } & {
177
+ featureIdUnderMouse: string | undefined;
178
+ contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
179
+ } & {
180
+ readonly blockType: "dynamicBlocks" | "staticBlocks";
181
+ readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
182
+ } & {
183
+ readonly renderDelay: number;
184
+ readonly TooltipComponent: import("react").FC<any>;
185
+ readonly selectedFeatureId: string | undefined;
186
+ readonly DisplayMessageComponent: import("react").FC<any> | undefined;
187
+ } & {
188
+ readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
189
+ readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
190
+ getFeatureOverlapping(blockKey: string, x: number, y: number): string | undefined;
191
+ getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
192
+ searchFeatureByID(id: string): [number, number, number, number] | undefined;
193
+ } & {
194
+ addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
195
+ deleteBlock(key: string): void;
196
+ selectFeature(feature: import("@jbrowse/core/util").Feature): void;
197
+ clearFeatureSelection(): void;
198
+ setFeatureIdUnderMouse(feature?: string | undefined): void;
199
+ setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature | undefined): void;
200
+ } & {
201
+ reload(): Promise<void>;
202
+ } & {
203
+ trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
204
+ contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
205
+ renderProps(): any;
206
+ } & {
207
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
208
+ afterAttach(): void;
209
+ } & {
210
+ readonly blockType: string;
211
+ readonly renderDelay: number;
212
+ renderProps(): any;
213
+ readonly rendererTypeName: any;
214
+ }, {
215
+ type: string;
216
+ } & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
217
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
218
+ type: import("mobx-state-tree").ISimpleType<string>;
219
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
220
+ } & {
221
+ heightPreConfig: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
222
+ } & {
223
+ userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
224
+ userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
225
+ } & {
226
+ blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
227
+ key: import("mobx-state-tree").ISimpleType<string>;
228
+ region: import("mobx-state-tree").IModelType<{
229
+ refName: import("mobx-state-tree").ISimpleType<string>;
230
+ start: import("mobx-state-tree").ISimpleType<number>;
231
+ end: import("mobx-state-tree").ISimpleType<number>;
232
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
233
+ } & {
234
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
235
+ }, {
236
+ setRefName(newRefName: string): void;
237
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
238
+ reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
239
+ isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
240
+ isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
241
+ }, {
242
+ renderInProgress: AbortController | undefined;
243
+ filled: boolean;
244
+ reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
245
+ features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
246
+ layout: any;
247
+ status: string;
248
+ error: unknown;
249
+ message: string | undefined;
250
+ maxHeightReached: boolean;
251
+ ReactComponent: ({ model, }: {
252
+ model: any;
253
+ }) => any;
254
+ renderProps: any;
255
+ } & {
256
+ doReload(): void;
257
+ afterAttach(): void;
258
+ setStatus(message: string): void;
259
+ setLoading(abortController: AbortController): void;
260
+ setMessage(messageText: string): void;
261
+ setRendered(props: {
262
+ reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
263
+ features: Map<string, import("@jbrowse/core/util").Feature>;
264
+ layout: any;
265
+ maxHeightReached: boolean;
266
+ renderProps: any;
267
+ } | undefined): void;
268
+ setError(error: unknown): void;
269
+ reload(): void;
270
+ beforeDestroy(): void;
271
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
272
+ configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
273
+ maxFeatureScreenDensity: {
274
+ type: string;
275
+ description: string;
276
+ defaultValue: number;
277
+ };
278
+ fetchSizeLimit: {
279
+ type: string;
280
+ defaultValue: number;
281
+ description: string;
282
+ };
283
+ height: {
284
+ type: string;
285
+ defaultValue: number;
286
+ description: string;
287
+ };
288
+ mouseover: {
289
+ type: string;
290
+ description: string;
291
+ defaultValue: string;
292
+ contextVariable: string[];
293
+ };
294
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
295
+ }>> & import("mobx-state-tree/dist/internal").NonEmptyObject & import("mobx-state-tree")._NotCustomized, {
296
+ type: string;
297
+ id: string;
298
+ configuration: import("mobx-state-tree").ModelSnapshotType<Record<string, any>>;
299
+ rpcDriverName: string | undefined;
300
+ heightPreConfig: number | undefined;
301
+ userBpPerPxLimit: number | undefined;
302
+ userByteSizeLimit: number | undefined;
303
+ } & import("mobx-state-tree")._NotCustomized>;
@@ -0,0 +1,32 @@
1
+ import { ConfigurationReference, } from '@jbrowse/core/configuration';
2
+ import { types } from 'mobx-state-tree';
3
+ import { BaseLinearDisplay } from '@jbrowse/plugin-linear-genome-view';
4
+ export function stateModelFactory(configSchema) {
5
+ return types
6
+ .compose('LinearLollipopDisplay', BaseLinearDisplay, types.model({
7
+ type: types.literal('LinearLollipopDisplay'),
8
+ configuration: ConfigurationReference(configSchema),
9
+ }))
10
+ .views(self => {
11
+ const { renderProps: superRenderProps } = self;
12
+ return {
13
+ get blockType() {
14
+ return 'dynamicBlocks';
15
+ },
16
+ get renderDelay() {
17
+ return 500;
18
+ },
19
+ renderProps() {
20
+ return {
21
+ ...superRenderProps(),
22
+ rpcDriverName: self.rpcDriverName,
23
+ config: self.configuration.renderer,
24
+ };
25
+ },
26
+ get rendererTypeName() {
27
+ return self.configuration.renderer.type;
28
+ },
29
+ };
30
+ });
31
+ }
32
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/LinearLollipopDisplay/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,GACvB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAEtE,MAAM,UAAU,iBAAiB,CAAC,YAAwC;IACxE,OAAO,KAAK;SACT,OAAO,CACN,uBAAuB,EACvB,iBAAiB,EACjB,KAAK,CAAC,KAAK,CAAC;QACV,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC;QAC5C,aAAa,EAAE,sBAAsB,CAAC,YAAY,CAAC;KACpD,CAAC,CACH;SAEA,KAAK,CAAC,IAAI,CAAC,EAAE;QACZ,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAA;QAC9C,OAAO;YACL,IAAI,SAAS;gBACX,OAAO,eAAe,CAAA;YACxB,CAAC;YACD,IAAI,WAAW;gBACb,OAAO,GAAG,CAAA;YACZ,CAAC;YACD,WAAW;gBACT,OAAO;oBACL,GAAG,gBAAgB,EAAE;oBACrB,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;iBACpC,CAAA;YACH,CAAC;YACD,IAAI,gBAAgB;gBAClB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAA;YACzC,CAAC;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
+ interface LayoutItem {
3
+ uniqueId: string;
4
+ anchorLocation: number;
5
+ width: number;
6
+ height: number;
7
+ data: {
8
+ score: number;
9
+ };
10
+ }
11
+ type LayoutEntry = LayoutItem & {
12
+ x: number;
13
+ y: number;
14
+ };
15
+ type LayoutMap = Map<string, LayoutEntry>;
16
+ export declare class FloatingLayout {
17
+ width: number;
18
+ totalHeight: number;
19
+ constructor({ width }: {
20
+ width: number;
21
+ });
22
+ items: LayoutItem[];
23
+ layout: LayoutMap;
24
+ layoutDirty: boolean;
25
+ add(uniqueId: string, anchorLocation: number, width: number, height: number, data: {
26
+ score: number;
27
+ }): void;
28
+ /**
29
+ * @returns Map of `uniqueId => {x,y,anchorLocation,width,height,data}`
30
+ */
31
+ getLayout(configuration?: AnyConfigurationModel): LayoutMap;
32
+ getTotalHeight(): number;
33
+ serializeRegion(): {
34
+ pairs: [string, LayoutEntry][];
35
+ totalHeight: number;
36
+ };
37
+ toJSON(): {
38
+ pairs: [string, LayoutEntry][];
39
+ totalHeight: number;
40
+ };
41
+ static fromJSON(): void;
42
+ }
43
+ export declare class PrecomputedFloatingLayout {
44
+ layout: LayoutMap;
45
+ totalHeight: number;
46
+ constructor({ pairs, totalHeight, }: {
47
+ pairs: [string, LayoutEntry][];
48
+ totalHeight: number;
49
+ });
50
+ add(uniqueId: string): void;
51
+ getLayout(): LayoutMap;
52
+ getTotalHeight(): number;
53
+ static fromJSON(json: ConstructorParameters<typeof PrecomputedFloatingLayout>[0]): PrecomputedFloatingLayout;
54
+ }
55
+ export {};
@@ -0,0 +1,111 @@
1
+ import { readConfObject } from '@jbrowse/core/configuration';
2
+ import { doesIntersect2 } from '@jbrowse/core/util/range';
3
+ export class FloatingLayout {
4
+ constructor({ width }) {
5
+ this.totalHeight = 0;
6
+ this.items = [];
7
+ this.layout = new Map();
8
+ this.layoutDirty = false;
9
+ if (!width) {
10
+ throw new Error('width required to make a new FloatingLayout');
11
+ }
12
+ this.width = width;
13
+ }
14
+ add(uniqueId, anchorLocation, width, height, data) {
15
+ this.items.push({ uniqueId, anchorLocation, width, height, data });
16
+ this.layoutDirty = true;
17
+ }
18
+ /**
19
+ * @returns Map of `uniqueId => {x,y,anchorLocation,width,height,data}`
20
+ */
21
+ getLayout(configuration) {
22
+ if (!this.layoutDirty) {
23
+ return this.layout;
24
+ }
25
+ if (!configuration) {
26
+ throw new Error('configuration object required');
27
+ }
28
+ const minY = readConfObject(configuration, 'minStickLength');
29
+ // sort them by score ascending, so higher scores will always end up
30
+ // stacked last (toward the bottom)
31
+ const sorted = this.items.sort((a, b) => a.data.score - b.data.score);
32
+ // bump them
33
+ let maxBottom = 0;
34
+ const layoutEntries = new Array(sorted.length);
35
+ for (let i = 0; i < sorted.length; i += 1) {
36
+ const currentItem = sorted[i];
37
+ const { anchorLocation, width, height } = currentItem;
38
+ const start = anchorLocation - width / 2;
39
+ const end = start + width;
40
+ let top = minY;
41
+ let bottom = top + height;
42
+ // figure out how far down to put it
43
+ for (let j = 0; j < i; j += 1) {
44
+ const [, previouslyLaidOutItem] = layoutEntries[j];
45
+ const { x: prevStart, y: prevTop, width: prevWidth, height: prevHeight, } = previouslyLaidOutItem;
46
+ const prevEnd = prevStart + prevWidth;
47
+ const prevBottom = prevTop + prevHeight;
48
+ if (doesIntersect2(prevStart, prevEnd, start, end) &&
49
+ doesIntersect2(prevTop, prevBottom, top, bottom)) {
50
+ // bump this one to the bottom of the previous one
51
+ top = prevBottom;
52
+ bottom = top + height;
53
+ j = -1; // we need to check all of them again after bumping
54
+ }
55
+ }
56
+ // record the entry and update the maxBottom
57
+ layoutEntries[i] = [
58
+ currentItem.uniqueId,
59
+ { ...currentItem, x: start, y: top },
60
+ ];
61
+ if (bottom > maxBottom) {
62
+ maxBottom = bottom;
63
+ }
64
+ }
65
+ // try to tile them left to right all at the same level
66
+ // if they don't fit, try to alternate them on 2 levels, then 3
67
+ this.totalHeight = maxBottom;
68
+ this.layout = new Map(layoutEntries);
69
+ this.layoutDirty = false;
70
+ return this.layout;
71
+ }
72
+ getTotalHeight() {
73
+ if (this.layoutDirty) {
74
+ throw new Error('getTotalHeight does not work when the layout is dirty.');
75
+ }
76
+ return this.totalHeight;
77
+ }
78
+ serializeRegion() {
79
+ return this.toJSON();
80
+ }
81
+ toJSON() {
82
+ if (this.layoutDirty) {
83
+ throw new Error('toJSON does not work when the layout is dirty.');
84
+ }
85
+ return { pairs: [...this.getLayout()], totalHeight: this.getTotalHeight() };
86
+ }
87
+ static fromJSON() {
88
+ throw new Error('not supported');
89
+ }
90
+ }
91
+ export class PrecomputedFloatingLayout {
92
+ constructor({ pairs, totalHeight, }) {
93
+ this.layout = new Map(pairs);
94
+ this.totalHeight = totalHeight;
95
+ }
96
+ add(uniqueId) {
97
+ if (!this.layout.has(uniqueId)) {
98
+ throw new Error(`layout error, precomputed layout is missing ${uniqueId}`);
99
+ }
100
+ }
101
+ getLayout() {
102
+ return this.layout;
103
+ }
104
+ getTotalHeight() {
105
+ return this.totalHeight;
106
+ }
107
+ static fromJSON(json) {
108
+ return new PrecomputedFloatingLayout(json);
109
+ }
110
+ }
111
+ //# sourceMappingURL=Layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../src/LollipopRenderer/Layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export default class _default extends BoxRendererType {
2
+ createSession(args: any): FloatingLayoutSession;
3
+ deserializeLayoutInClient(json: any): PrecomputedFloatingLayout;
4
+ }
5
+ import BoxRendererType from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType';
6
+ declare class FloatingLayoutSession extends LayoutSession {
7
+ makeLayout(): MultiLayout<import("@jbrowse/core/util/layouts").BaseLayout<any>, any>;
8
+ layoutIsValid(): boolean;
9
+ }
10
+ import { PrecomputedFloatingLayout } from './Layout';
11
+ import { LayoutSession } from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType';
12
+ import MultiLayout from '@jbrowse/core/util/layouts/MultiLayout';
13
+ export {};