@jbrowse/core 2.0.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +9 -3
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +313 -581
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +213 -478
  4. package/BaseFeatureWidget/index.js +88 -126
  5. package/BaseFeatureWidget/types.d.ts +1 -0
  6. package/BaseFeatureWidget/types.js +1 -4
  7. package/BaseFeatureWidget/util.js +40 -75
  8. package/CorePlugin.js +55 -94
  9. package/Plugin.js +9 -34
  10. package/PluginLoader.js +153 -422
  11. package/PluginManager.d.ts +28 -33
  12. package/PluginManager.js +377 -666
  13. package/ReExports/Attributes.js +3 -10
  14. package/ReExports/BaseCard.js +3 -10
  15. package/ReExports/DataGrid.js +5 -12
  16. package/ReExports/FeatureDetails.js +3 -10
  17. package/ReExports/index.js +6 -12
  18. package/ReExports/list.d.ts +5 -0
  19. package/ReExports/list.js +271 -7
  20. package/ReExports/material-ui-colors.js +15 -16
  21. package/ReExports/modules.d.ts +11 -20
  22. package/ReExports/modules.js +453 -798
  23. package/TextSearch/BaseResults.js +51 -123
  24. package/TextSearch/TextSearchManager.js +66 -144
  25. package/assemblyManager/assembly.js +280 -555
  26. package/assemblyManager/assemblyConfigSchema.js +47 -64
  27. package/assemblyManager/assemblyManager.js +126 -272
  28. package/assemblyManager/index.js +9 -22
  29. package/configuration/configurationSchema.js +167 -203
  30. package/configuration/configurationSlot.js +248 -326
  31. package/configuration/index.js +19 -35
  32. package/configuration/util.js +131 -173
  33. package/data_adapters/BaseAdapter.d.ts +2 -2
  34. package/data_adapters/BaseAdapter.js +132 -521
  35. package/data_adapters/CytobandAdapter.js +40 -126
  36. package/data_adapters/dataAdapterCache.js +77 -158
  37. package/package.json +4 -5
  38. package/pluggableElementTypes/AdapterType.js +24 -79
  39. package/pluggableElementTypes/AddTrackWorkflowType.d.ts +17 -0
  40. package/pluggableElementTypes/AddTrackWorkflowType.js +20 -0
  41. package/pluggableElementTypes/ConnectionType.js +22 -65
  42. package/pluggableElementTypes/DisplayType.js +35 -82
  43. package/pluggableElementTypes/InternetAccountType.js +23 -64
  44. package/pluggableElementTypes/PluggableElementBase.js +8 -20
  45. package/pluggableElementTypes/RpcMethodType.js +85 -427
  46. package/pluggableElementTypes/TextSearchAdapterType.js +16 -55
  47. package/pluggableElementTypes/TrackType.js +26 -70
  48. package/pluggableElementTypes/ViewType.js +21 -63
  49. package/pluggableElementTypes/WidgetType.js +21 -64
  50. package/pluggableElementTypes/index.d.ts +4 -3
  51. package/pluggableElementTypes/index.js +42 -125
  52. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +28 -43
  53. package/pluggableElementTypes/models/BaseDisplayModel.js +58 -95
  54. package/pluggableElementTypes/models/BaseTrackModel.js +139 -199
  55. package/pluggableElementTypes/models/BaseViewModel.js +24 -40
  56. package/pluggableElementTypes/models/InternetAccountModel.js +116 -263
  57. package/pluggableElementTypes/models/baseConnectionConfig.js +14 -25
  58. package/pluggableElementTypes/models/baseInternetAccountConfig.js +29 -38
  59. package/pluggableElementTypes/models/baseTrackConfig.js +106 -133
  60. package/pluggableElementTypes/models/index.js +21 -70
  61. package/pluggableElementTypes/renderers/BoxRendererType.js +132 -291
  62. package/pluggableElementTypes/renderers/CircularChordRendererType.js +8 -38
  63. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +60 -192
  64. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -2
  65. package/pluggableElementTypes/renderers/FeatureRendererType.js +89 -255
  66. package/pluggableElementTypes/renderers/RendererType.js +31 -105
  67. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +61 -72
  68. package/pluggableElementTypes/renderers/ServerSideRendererType.js +112 -265
  69. package/pluggableElementTypes/renderers/index.js +19 -62
  70. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +27 -65
  71. package/rpc/BaseRpcDriver.js +169 -405
  72. package/rpc/MainThreadRpcDriver.js +27 -150
  73. package/rpc/RpcManager.js +58 -159
  74. package/rpc/WebWorkerRpcDriver.js +54 -171
  75. package/rpc/configSchema.js +25 -49
  76. package/rpc/coreRpcMethods.d.ts +1 -3
  77. package/rpc/coreRpcMethods.js +221 -959
  78. package/rpc/remoteAbortSignals.js +46 -70
  79. package/tsconfig.build.tsbuildinfo +1 -1
  80. package/ui/AboutDialog.js +106 -162
  81. package/ui/App.js +157 -242
  82. package/ui/AssemblySelector.js +59 -120
  83. package/ui/CascadingMenu.js +101 -196
  84. package/ui/ColorPicker.d.ts +16 -0
  85. package/ui/ColorPicker.js +97 -0
  86. package/ui/Drawer.js +28 -61
  87. package/ui/DrawerWidget.js +108 -202
  88. package/ui/DropDownMenu.js +60 -91
  89. package/ui/EditableTypography.js +87 -149
  90. package/ui/ErrorMessage.js +41 -56
  91. package/ui/FactoryResetDialog.js +24 -57
  92. package/ui/FatalErrorDialog.js +59 -91
  93. package/ui/FileSelector/FileSelector.js +123 -189
  94. package/ui/FileSelector/LocalFileChooser.js +44 -75
  95. package/ui/FileSelector/UrlChooser.js +17 -38
  96. package/ui/FileSelector/index.js +6 -12
  97. package/ui/Icons.js +45 -69
  98. package/ui/Logo.js +57 -110
  99. package/ui/Menu.js +232 -354
  100. package/ui/PrerenderedCanvas.js +63 -87
  101. package/ui/ResizeHandle.js +87 -116
  102. package/ui/ReturnToImportFormDialog.js +32 -63
  103. package/ui/SanitizedHTML.js +64 -47
  104. package/ui/Snackbar.js +74 -101
  105. package/ui/SnackbarModel.js +37 -51
  106. package/ui/Tooltip.js +49 -76
  107. package/ui/ViewContainer.js +113 -196
  108. package/ui/colors.d.ts +10 -0
  109. package/ui/colors.js +78 -0
  110. package/ui/index.js +51 -181
  111. package/ui/react-colorful.d.ts +17 -0
  112. package/ui/react-colorful.js +455 -0
  113. package/ui/theme.d.ts +23 -1
  114. package/ui/theme.js +199 -247
  115. package/util/Base1DUtils.d.ts +32 -0
  116. package/util/Base1DUtils.js +174 -0
  117. package/util/Base1DViewModel.d.ts +16 -30
  118. package/util/Base1DViewModel.js +116 -293
  119. package/util/QuickLRU.js +84 -332
  120. package/util/TimeTraveller.d.ts +19 -0
  121. package/util/TimeTraveller.js +86 -0
  122. package/util/aborting.js +49 -127
  123. package/util/analytics.js +91 -154
  124. package/util/blockTypes.js +106 -240
  125. package/util/calculateDynamicBlocks.js +98 -128
  126. package/util/calculateStaticBlocks.js +105 -125
  127. package/util/color/cssColorsLevel4.js +156 -160
  128. package/util/color/index.js +33 -55
  129. package/util/compositeMap.js +49 -333
  130. package/util/formatFastaStrings.js +9 -14
  131. package/util/idMaker.js +18 -31
  132. package/util/index.d.ts +18 -32
  133. package/util/index.js +747 -1226
  134. package/util/io/RemoteFileWithRangeCache.js +88 -257
  135. package/util/io/index.js +95 -169
  136. package/util/jexl.js +60 -115
  137. package/util/jexlStrings.js +24 -29
  138. package/util/layouts/BaseLayout.js +1 -4
  139. package/util/layouts/GranularRectLayout.js +388 -555
  140. package/util/layouts/MultiLayout.js +41 -109
  141. package/util/layouts/PrecomputedLayout.js +56 -112
  142. package/util/layouts/PrecomputedMultiLayout.js +22 -59
  143. package/util/layouts/SceneGraph.js +127 -197
  144. package/util/layouts/index.js +29 -66
  145. package/util/mst-reflection.js +55 -71
  146. package/util/offscreenCanvasPonyfill.js +66 -134
  147. package/util/offscreenCanvasUtils.d.ts +2 -7
  148. package/util/offscreenCanvasUtils.js +49 -146
  149. package/util/range.js +29 -40
  150. package/util/rxjs.js +20 -27
  151. package/util/simpleFeature.js +88 -152
  152. package/util/stats.js +91 -151
  153. package/util/tracks.js +130 -173
  154. package/util/types/index.js +110 -179
  155. package/util/types/mst.js +91 -146
  156. package/util/types/util.js +1 -4
  157. package/util/when.js +54 -101
  158. package/BaseFeatureWidget/SequenceFeatureDetails.test.js +0 -122
  159. package/BaseFeatureWidget/index.test.js +0 -69
  160. package/TextSearch/BaseResults.test.js +0 -42
  161. package/configuration/configurationSchema.test.js +0 -266
  162. package/configuration/configurationSlot.test.js +0 -69
  163. package/configuration/util.test.js +0 -39
  164. package/data_adapters/BaseAdapter.test.js +0 -200
  165. package/declare.d.js +0 -1
  166. package/pluggableElementTypes/RpcMethodType.test.js +0 -118
  167. package/pluggableElementTypes/renderers/declare.d.js +0 -1
  168. package/pluggableElementTypes/renderers/util/serializableFilterChain.test.js +0 -20
  169. package/rpc/BaseRpcDriver.test.js +0 -540
  170. package/rpc/declaration.d.js +0 -1
  171. package/ui/FatalErrorDialog.test.js +0 -82
  172. package/ui/SanitizedHTML.test.js +0 -36
  173. package/ui/theme.test.js +0 -92
  174. package/util/Base1DViewModel.test.js +0 -130
  175. package/util/calculateDynamicBlocks.test.js +0 -74
  176. package/util/calculateStaticBlocks.test.js +0 -297
  177. package/util/declare.d.js +0 -1
  178. package/util/formatFastaStrings.test.js +0 -40
  179. package/util/index.test.js +0 -213
  180. package/util/jexlStrings.test.js +0 -48
  181. package/util/layouts/GranularRectLayout.test.js +0 -99
  182. package/util/range.test.js +0 -64
  183. package/util/simpleFeature.test.js +0 -34
  184. package/util/stats.test.js +0 -172
package/ui/theme.test.js DELETED
@@ -1,92 +0,0 @@
1
- "use strict";
2
-
3
- var _theme = require("./theme");
4
-
5
- describe('theme utils', function () {
6
- it('can create a default theme', function () {
7
- var theme = (0, _theme.createJBrowseTheme)(); // @ts-ignore
8
-
9
- var _theme$palette = theme.palette,
10
- primary = _theme$palette.primary,
11
- secondary = _theme$palette.secondary,
12
- tertiary = _theme$palette.tertiary,
13
- quaternary = _theme$palette.quaternary;
14
- expect(primary.main).toEqual('#0D233F');
15
- expect(secondary.main).toEqual('#721E63');
16
- expect(tertiary.main).toEqual('#135560');
17
- expect(quaternary.main).toEqual('#FFB11D');
18
- });
19
- it('allows overriding primary and secondary colors', function () {
20
- var theme = (0, _theme.createJBrowseTheme)({
21
- palette: {
22
- primary: {
23
- main: '#888888'
24
- },
25
- secondary: {
26
- main: 'rgb(137,137,137)'
27
- }
28
- }
29
- });
30
- expect(theme.palette.primary.main).toEqual('#888888');
31
- expect(theme.palette.secondary.main).toEqual('rgb(137,137,137)');
32
- });
33
- it('allows overriding tertiary and quaternary colors', function () {
34
- var theme = (0, _theme.createJBrowseTheme)({
35
- palette: {
36
- tertiary: {
37
- color: {
38
- 500: '#888'
39
- }
40
- },
41
- quaternary: {
42
- color: {
43
- main: 'hsl(0,0,54)'
44
- }
45
- }
46
- }
47
- }); // @ts-ignore
48
-
49
- var _theme$palette2 = theme.palette,
50
- tertiary = _theme$palette2.tertiary,
51
- quaternary = _theme$palette2.quaternary;
52
- expect(tertiary.main).toEqual('#888');
53
- expect(tertiary.light).toBeTruthy();
54
- expect(quaternary.main).toEqual('hsl(0,0,54)');
55
- expect(quaternary.dark).toBeTruthy();
56
- });
57
- it('allows customizing spacing', function () {
58
- var defaultTheme = (0, _theme.createJBrowseTheme)();
59
- expect(defaultTheme.spacing(1)).toBe('4px');
60
- var biggerSpacingTheme = (0, _theme.createJBrowseTheme)({
61
- spacing: 16
62
- });
63
- expect(biggerSpacingTheme.spacing(1)).toBe('16px');
64
- }); // it('allows adding a custom override', () => {
65
- // const muiPaperStyle = { root: { backgroundColor: 'green' } }
66
- // const theme = createJBrowseTheme({
67
- // overrides: { MuiPaper: muiPaperStyle },
68
- // })
69
- // expect(theme.overrides?.MuiPaper).toEqual(muiPaperStyle)
70
- // expect(Object.keys(theme.overrides || {}).length).toBe(10)
71
- // })
72
- // it('allows modifying a default override', () => {
73
- // const muiButtonStyle = { textSecondary: { color: 'orange' } }
74
- // const theme = createJBrowseTheme({
75
- // overrides: { MuiButton: muiButtonStyle },
76
- // })
77
- // expect(theme.overrides?.MuiButton).toEqual(muiButtonStyle)
78
- // expect(Object.keys(theme.overrides || {}).length).toBe(9)
79
- // })
80
- // it('allows adding a custom prop', () => {
81
- // const muiPaperProps = { variant: 'outlined' as const }
82
- // const theme = createJBrowseTheme({ props: { MuiPaper: muiPaperProps } })
83
- // expect(theme.props?.MuiPaper).toEqual(muiPaperProps)
84
- // expect(Object.keys(theme.props || {}).length).toBe(18)
85
- // })
86
- // it('allows modifying a prop override', () => {
87
- // const muiButtonProps = { size: 'medium' as const }
88
- // const theme = createJBrowseTheme({ props: { MuiButton: muiButtonProps } })
89
- // expect(theme.props?.MuiButton).toEqual(muiButtonProps)
90
- // expect(Object.keys(theme.props || {}).length).toBe(17)
91
- // })
92
- });
@@ -1,130 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _Base1DViewModel = _interopRequireDefault(require("./Base1DViewModel"));
6
-
7
- test('create Base1DView and set displayedRegions', function () {
8
- var model = _Base1DViewModel.default.create({
9
- bpPerPx: 1,
10
- offsetPx: 0
11
- });
12
-
13
- model.setDisplayedRegions([{
14
- assemblyName: 'volvox',
15
- refName: 'ctgA',
16
- start: 0,
17
- end: 40000
18
- }, {
19
- assemblyName: 'volvox',
20
- refName: 'ctgB',
21
- start: 0,
22
- end: 3000
23
- }]);
24
- model.setVolatileWidth(800);
25
- expect(model.width).toBe(800);
26
- model.setBpPerPx(2);
27
- expect(model.bpPerPx).toBe(2);
28
- expect(model.displayedRegions).toBeTruthy();
29
- });
30
- test('Able to set bpPerPx, width and calculate widths', function () {
31
- var model = _Base1DViewModel.default.create({
32
- bpPerPx: 0,
33
- offsetPx: 0
34
- });
35
-
36
- model.setDisplayedRegions([{
37
- assemblyName: 'volvox',
38
- refName: 'ctgA',
39
- start: 0,
40
- end: 40000
41
- }, {
42
- assemblyName: 'volvox',
43
- refName: 'ctgB',
44
- start: 600,
45
- end: 3000
46
- }]);
47
- model.setVolatileWidth(800);
48
- expect(model.width).toBe(800);
49
- model.setBpPerPx(1);
50
- expect(model.bpPerPx).toBe(1); // 40000 + (3000 - 600 = 2400) = 42400
51
-
52
- expect(model.totalBp).toEqual(42400); // 40000 + (3000 - 600 = 2400) = 42400 / 1 (bpPerPx) = 42400
53
-
54
- expect(model.displayedRegionsTotalPx).toEqual(42400);
55
- expect(model.interRegionPaddingWidth).toEqual(0);
56
- expect(model.minimumBlockWidth).toEqual(0);
57
- });
58
- test('Able to set and showAll Regions', function () {
59
- var model = _Base1DViewModel.default.create({
60
- bpPerPx: 0,
61
- offsetPx: 0
62
- });
63
-
64
- model.setDisplayedRegions([{
65
- assemblyName: 'volvox',
66
- refName: 'ctgA',
67
- start: 0,
68
- end: 40000
69
- }, {
70
- assemblyName: 'volvox',
71
- refName: 'ctgB',
72
- start: 600,
73
- end: 3000
74
- }]);
75
- model.setVolatileWidth(800);
76
- expect(model.width).toBe(800);
77
- model.setBpPerPx(1);
78
- expect(model.bpPerPx).toBe(1); // 400 is expected because the bpPerPx is set to 1
79
-
80
- expect(model.pxToBp(400).offset).toEqual(400);
81
- model.showAllRegions(); // offset is equal to zero after making a call to showAllRegions
82
-
83
- expect(model.offsetPx).toEqual(0); // bpPerPx should now equal totalbp 42400 / width 800
84
-
85
- expect(model.bpPerPx).toEqual(53);
86
- });
87
- test('Navigate to displayedRegions', function () {
88
- var model = _Base1DViewModel.default.create({
89
- bpPerPx: 0,
90
- offsetPx: 0
91
- });
92
-
93
- model.setDisplayedRegions([{
94
- assemblyName: 'volvox',
95
- refName: 'ctgA',
96
- start: 0,
97
- end: 40000
98
- }]);
99
- model.setVolatileWidth(800);
100
- expect(model.width).toBe(800);
101
- model.showAllRegions(); // totalBp 40000 / 800 = 50
102
-
103
- expect(model.bpPerPx).toBe(50);
104
- model.moveTo({
105
- start: 0,
106
- end: 40000,
107
- offset: 5000,
108
- index: 0
109
- }, {
110
- start: 0,
111
- end: 40000,
112
- offset: 15000,
113
- index: 0
114
- }); // 15000 - 5000 = 1000 / 800
115
- // zooming To newBpPerPx 12.5
116
- // the offset is now 5000 start / bpPerPx = 400
117
-
118
- expect(model.offsetPx).toEqual(400); // previous bpPerPx was calculated to be 12.5 ...
119
- // zooming in should be 12.5 / 2 = 6.25
120
-
121
- model.zoomIn();
122
- expect(model.bpPerPx).toEqual(6.25);
123
- model.zoomOut();
124
- expect(model.bpPerPx).toEqual(12.5); // lets scroll back to zero since we moved to bp 5000
125
-
126
- model.scroll(-400); // offsetPx should be 0 because we have old offsetPx of 400
127
- // clamp takes 400 + -400 then clamping returns 0
128
-
129
- expect(model.offsetPx).toEqual(0);
130
- });
@@ -1,74 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
-
7
- var _calculateDynamicBlocks = _interopRequireDefault(require("./calculateDynamicBlocks"));
8
-
9
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
-
11
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12
-
13
- var ctgA = {
14
- assemblyName: 'test',
15
- refName: 'ctgA',
16
- start: 0,
17
- end: 50000
18
- };
19
- test('one', function () {
20
- expect((0, _calculateDynamicBlocks.default)({
21
- offsetPx: 0,
22
- width: 200,
23
- displayedRegions: [ctgA],
24
- bpPerPx: 1,
25
- minimumBlockWidth: 20,
26
- interRegionPaddingWidth: 2
27
- }).getBlocks()).toMatchSnapshot();
28
- });
29
- test('two', function () {
30
- expect((0, _calculateDynamicBlocks.default)({
31
- offsetPx: 0,
32
- width: 200,
33
- displayedRegions: [_objectSpread(_objectSpread({}, ctgA), {}, {
34
- reversed: true
35
- })],
36
- bpPerPx: 1,
37
- minimumBlockWidth: 20,
38
- interRegionPaddingWidth: 2
39
- }).getBlocks()).toMatchSnapshot();
40
- });
41
- test('three', function () {
42
- expect((0, _calculateDynamicBlocks.default)({
43
- offsetPx: -100,
44
- width: 200,
45
- displayedRegions: [_objectSpread(_objectSpread({}, ctgA), {}, {
46
- reversed: true
47
- })],
48
- bpPerPx: 1,
49
- minimumBlockWidth: 20,
50
- interRegionPaddingWidth: 2
51
- }).getBlocks()).toMatchSnapshot();
52
- });
53
- test('four', function () {
54
- expect((0, _calculateDynamicBlocks.default)({
55
- offsetPx: -100,
56
- width: 350,
57
- displayedRegions: [ctgA],
58
- bpPerPx: 1,
59
- minimumBlockWidth: 20,
60
- interRegionPaddingWidth: 2
61
- }).getBlocks()).toMatchSnapshot();
62
- });
63
- test('five', function () {
64
- expect((0, _calculateDynamicBlocks.default)({
65
- offsetPx: 521,
66
- width: 927,
67
- displayedRegions: [_objectSpread(_objectSpread({}, ctgA), {}, {
68
- reversed: false
69
- })],
70
- bpPerPx: 0.05,
71
- minimumBlockWidth: 20,
72
- interRegionPaddingWidth: 2
73
- }).getBlocks()).toMatchSnapshot();
74
- });
@@ -1,297 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _calculateStaticBlocks = _interopRequireDefault(require("./calculateStaticBlocks"));
6
-
7
- describe('block calculation', function () {
8
- it('can calculate some blocks 1', function () {
9
- var blocks1 = (0, _calculateStaticBlocks.default)({
10
- bpPerPx: 1,
11
- width: 800,
12
- offsetPx: 0,
13
- displayedRegions: [{
14
- assemblyName: 'test',
15
- refName: 'ctgA',
16
- start: 0,
17
- end: 10000
18
- }],
19
- minimumBlockWidth: 20,
20
- interRegionPaddingWidth: 2
21
- });
22
- var blocks2 = (0, _calculateStaticBlocks.default)({
23
- bpPerPx: 1,
24
- width: 800,
25
- offsetPx: 0,
26
- displayedRegions: [{
27
- assemblyName: 'test',
28
- refName: 'ctgA',
29
- start: 0,
30
- end: 10000
31
- }],
32
- minimumBlockWidth: 20,
33
- interRegionPaddingWidth: 2
34
- });
35
- expect(blocks1).toMatchSnapshot();
36
- expect(blocks1).toEqual(blocks2);
37
- });
38
- it('can calculate some blocks 2', function () {
39
- var blocks = (0, _calculateStaticBlocks.default)({
40
- bpPerPx: 1,
41
- width: 800,
42
- offsetPx: 30,
43
- displayedRegions: [{
44
- assemblyName: 'test',
45
- refName: 'ctgA',
46
- start: 0,
47
- end: 100
48
- }, {
49
- assemblyName: 'test',
50
- refName: 'ctgB',
51
- start: 100,
52
- end: 200
53
- }],
54
- minimumBlockWidth: 20,
55
- interRegionPaddingWidth: 2
56
- });
57
- expect(blocks).toMatchSnapshot();
58
- });
59
- it('can calculate some blocks (should be empty because offscreen to the right)', function () {
60
- var blockSet = (0, _calculateStaticBlocks.default)({
61
- bpPerPx: 1,
62
- width: 800,
63
- offsetPx: 2000,
64
- displayedRegions: [{
65
- assemblyName: 'test',
66
- refName: 'ctgA',
67
- start: 0,
68
- end: 100
69
- }, {
70
- assemblyName: 'test',
71
- refName: 'ctgB',
72
- start: 100,
73
- end: 200
74
- }],
75
- minimumBlockWidth: 20,
76
- interRegionPaddingWidth: 2
77
- });
78
- expect(blockSet.getBlocks()).toEqual([]);
79
- });
80
- it('can calculate some blocks (should be empty because offscreen to the left)', function () {
81
- var blockSet = (0, _calculateStaticBlocks.default)({
82
- bpPerPx: 1,
83
- width: 800,
84
- offsetPx: -2000,
85
- displayedRegions: [{
86
- assemblyName: 'test',
87
- refName: 'ctgA',
88
- start: 0,
89
- end: 100
90
- }, {
91
- assemblyName: 'test',
92
- refName: 'ctgB',
93
- start: 100,
94
- end: 200
95
- }],
96
- minimumBlockWidth: 20,
97
- interRegionPaddingWidth: 2
98
- });
99
- expect(blockSet.getBlocks()).toEqual([]);
100
- });
101
- it('can calculate some blocks 5', function () {
102
- var blocks = (0, _calculateStaticBlocks.default)({
103
- bpPerPx: 1,
104
- width: 800,
105
- offsetPx: 5000,
106
- displayedRegions: [{
107
- assemblyName: 'test',
108
- refName: 'ctgA',
109
- start: 0,
110
- end: 10000
111
- }, {
112
- assemblyName: 'test',
113
- refName: 'ctgB',
114
- start: 100,
115
- end: 10000
116
- }],
117
- minimumBlockWidth: 20,
118
- interRegionPaddingWidth: 2
119
- });
120
- expect(blocks).toMatchSnapshot();
121
- });
122
- it('can calculate some blocks 6', function () {
123
- var blockSet = (0, _calculateStaticBlocks.default)({
124
- bpPerPx: 1,
125
- width: 800,
126
- offsetPx: 0,
127
- displayedRegions: [{
128
- assemblyName: 'test',
129
- refName: 'ctgA',
130
- start: 0,
131
- end: 200
132
- }, {
133
- assemblyName: 'test',
134
- refName: 'ctgB',
135
- start: 0,
136
- end: 1000
137
- }],
138
- minimumBlockWidth: 20,
139
- interRegionPaddingWidth: 2
140
- });
141
- expect(blockSet).toMatchSnapshot();
142
- expect(blockSet.blocks[1].offsetPx).toBe(0);
143
- });
144
- it('can calculate some blocks 7', function () {
145
- var blocks = (0, _calculateStaticBlocks.default)({
146
- bpPerPx: 1,
147
- width: 800,
148
- offsetPx: 801,
149
- displayedRegions: [{
150
- assemblyName: 'test',
151
- refName: 'ctgA',
152
- start: 0,
153
- end: 200
154
- }, {
155
- assemblyName: 'test',
156
- refName: 'ctgB',
157
- start: 0,
158
- end: 1000
159
- }],
160
- minimumBlockWidth: 20,
161
- interRegionPaddingWidth: 2
162
- });
163
- expect(blocks).toMatchSnapshot();
164
- });
165
- it('can calculate some blocks 8', function () {
166
- var blocks = (0, _calculateStaticBlocks.default)({
167
- bpPerPx: 1,
168
- width: 800,
169
- offsetPx: 1600,
170
- displayedRegions: [{
171
- assemblyName: 'test',
172
- refName: 'ctgA',
173
- start: 0,
174
- end: 200
175
- }, {
176
- assemblyName: 'test',
177
- refName: 'ctgB',
178
- start: 0,
179
- end: 10000000
180
- }],
181
- minimumBlockWidth: 20,
182
- interRegionPaddingWidth: 2
183
- });
184
- expect(blocks).toMatchSnapshot();
185
- });
186
- it('can calculate some blocks 9', function () {
187
- var blockSet = (0, _calculateStaticBlocks.default)({
188
- width: 800,
189
- offsetPx: 1069,
190
- bpPerPx: 2,
191
- displayedRegions: [{
192
- assemblyName: 'test',
193
- refName: 'ctgA',
194
- start: 0,
195
- end: 50000
196
- }, {
197
- assemblyName: 'test',
198
- refName: 'ctgB',
199
- start: 0,
200
- end: 300
201
- }],
202
- minimumBlockWidth: 20,
203
- interRegionPaddingWidth: 2
204
- });
205
- expect(blockSet).toMatchSnapshot();
206
- });
207
- it('can calculate some blocks 10', function () {
208
- var blockSet = (0, _calculateStaticBlocks.default)({
209
- width: 800,
210
- offsetPx: 0,
211
- bpPerPx: 0.05,
212
- displayedRegions: [{
213
- assemblyName: 'test',
214
- refName: 'ctgA',
215
- start: 100,
216
- end: 200
217
- }, {
218
- assemblyName: 'test',
219
- refName: 'ctgA',
220
- start: 300,
221
- end: 400
222
- }],
223
- minimumBlockWidth: 20,
224
- interRegionPaddingWidth: 2
225
- }); // console.log(JSON.stringify(blockSet.blocks, null, ' '))
226
-
227
- expect(blockSet.blocks[1].offsetPx).toBe(0);
228
- expect(blockSet.blocks).toMatchSnapshot();
229
- });
230
- });
231
- describe('reverse block calculation', function () {
232
- test('1', function () {
233
- var blocks = (0, _calculateStaticBlocks.default)({
234
- bpPerPx: 1,
235
- width: 800,
236
- offsetPx: 0,
237
- displayedRegions: [{
238
- assemblyName: 'test',
239
- refName: 'ctgA',
240
- start: 0,
241
- end: 10000,
242
- reversed: true
243
- }],
244
- minimumBlockWidth: 20,
245
- interRegionPaddingWidth: 2
246
- });
247
- expect(blocks).toMatchSnapshot();
248
- });
249
- });
250
- describe('reversed displayed regions', function () {
251
- test('without elided region', function () {
252
- var blocks = (0, _calculateStaticBlocks.default)({
253
- bpPerPx: 1,
254
- width: 800,
255
- offsetPx: 0,
256
- displayedRegions: [{
257
- assemblyName: 'test',
258
- refName: 'ctgA',
259
- start: 100,
260
- end: 200,
261
- reversed: true
262
- }, {
263
- assemblyName: 'test',
264
- refName: 'ctgA',
265
- start: 500,
266
- end: 600,
267
- reversed: true
268
- }],
269
- minimumBlockWidth: 20,
270
- interRegionPaddingWidth: 2
271
- });
272
- expect(blocks).toMatchSnapshot();
273
- });
274
- test('with elided region', function () {
275
- var blocks = (0, _calculateStaticBlocks.default)({
276
- bpPerPx: 1,
277
- width: 800,
278
- offsetPx: 0,
279
- minimumBlockWidth: 2,
280
- displayedRegions: [{
281
- assemblyName: 'test',
282
- refName: 'ctgA',
283
- start: 0,
284
- end: 1,
285
- reversed: true
286
- }, {
287
- assemblyName: 'test',
288
- refName: 'ctgA',
289
- start: 0,
290
- end: 10000,
291
- reversed: true
292
- }],
293
- interRegionPaddingWidth: 2
294
- }, true, true, 1, 800);
295
- expect(blocks).toMatchSnapshot();
296
- });
297
- });
package/util/declare.d.js DELETED
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- var _formatFastaStrings = require("./formatFastaStrings");
4
-
5
- describe('formatting seqChunks and strings into Fasta format', function () {
6
- var small = 'cattgttgcg';
7
- var medium = 'cattgttgcggagttgaacaACGGCATTAGGAACACTTCCGTCTCtcacttttatacgattatgattggttctttagcct';
8
- var large = 'cattgttgcggagttgaacaACGGCATTAGGAACACTTCCGTCTCtcacttttatacgattatgattggttctttagcctt';
9
- it('sequence length is less than 80 characters', function () {
10
- var formattedSmallFasta = (0, _formatFastaStrings.formatFastaLines)(small);
11
- expect(formattedSmallFasta).toMatchSnapshot();
12
- });
13
- it('sequence length is 80 characters', function () {
14
- var formattedMediumFasta = (0, _formatFastaStrings.formatFastaLines)(medium);
15
- expect(formattedMediumFasta).toMatchSnapshot();
16
- });
17
- it('sequence length is more than 80 characters', function () {
18
- var formattedLargeFasta = (0, _formatFastaStrings.formatFastaLines)(large);
19
- expect(formattedLargeFasta).toMatchSnapshot();
20
- });
21
- it('formats headers and sequence', function () {
22
- var chunks = [{
23
- header: 'ctgA:1-10',
24
- seq: small
25
- }, {
26
- header: 'ctgB:1-81',
27
- seq: large
28
- }];
29
- var formattedFastaFile = (0, _formatFastaStrings.formatSeqFasta)(chunks);
30
- /*
31
- >ctgA:1-10
32
- cattgttgcg
33
- >ctgB:1-81
34
- cattgttgcggagttgaacaACGGCATTAGGAACACTTCCGTCTCtcacttttatacgattatgattggttctttagcct
35
- t
36
- */
37
-
38
- expect(formattedFastaFile).toMatchSnapshot();
39
- });
40
- });