@jbrowse/core 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +6 -0
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +313 -592
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +213 -479
  4. package/BaseFeatureWidget/index.js +88 -126
  5. package/BaseFeatureWidget/types.js +1 -4
  6. package/BaseFeatureWidget/util.js +40 -75
  7. package/CorePlugin.js +55 -94
  8. package/Plugin.js +9 -34
  9. package/PluginLoader.js +153 -422
  10. package/PluginManager.d.ts +17 -14
  11. package/PluginManager.js +377 -666
  12. package/ReExports/Attributes.js +3 -10
  13. package/ReExports/BaseCard.js +3 -10
  14. package/ReExports/DataGrid.js +5 -12
  15. package/ReExports/FeatureDetails.js +3 -10
  16. package/ReExports/index.js +6 -12
  17. package/ReExports/list.d.ts +5 -0
  18. package/ReExports/list.js +271 -7
  19. package/ReExports/material-ui-colors.js +15 -16
  20. package/ReExports/modules.d.ts +0 -1
  21. package/ReExports/modules.js +453 -798
  22. package/TextSearch/BaseResults.js +51 -123
  23. package/TextSearch/TextSearchManager.js +66 -144
  24. package/assemblyManager/assembly.js +280 -555
  25. package/assemblyManager/assemblyConfigSchema.js +47 -64
  26. package/assemblyManager/assemblyManager.js +126 -272
  27. package/assemblyManager/index.js +9 -22
  28. package/configuration/configurationSchema.js +167 -203
  29. package/configuration/configurationSlot.js +248 -326
  30. package/configuration/index.js +19 -35
  31. package/configuration/util.js +131 -173
  32. package/data_adapters/BaseAdapter.d.ts +2 -2
  33. package/data_adapters/BaseAdapter.js +132 -521
  34. package/data_adapters/CytobandAdapter.js +40 -126
  35. package/data_adapters/dataAdapterCache.js +77 -158
  36. package/package.json +4 -5
  37. package/pluggableElementTypes/AdapterType.js +24 -79
  38. package/pluggableElementTypes/AddTrackWorkflowType.d.ts +17 -0
  39. package/pluggableElementTypes/AddTrackWorkflowType.js +20 -0
  40. package/pluggableElementTypes/ConnectionType.js +22 -65
  41. package/pluggableElementTypes/DisplayType.js +35 -82
  42. package/pluggableElementTypes/InternetAccountType.js +23 -64
  43. package/pluggableElementTypes/PluggableElementBase.js +8 -20
  44. package/pluggableElementTypes/RpcMethodType.js +85 -427
  45. package/pluggableElementTypes/TextSearchAdapterType.js +16 -55
  46. package/pluggableElementTypes/TrackType.js +26 -70
  47. package/pluggableElementTypes/ViewType.js +21 -63
  48. package/pluggableElementTypes/WidgetType.js +21 -64
  49. package/pluggableElementTypes/index.d.ts +4 -3
  50. package/pluggableElementTypes/index.js +42 -125
  51. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +28 -43
  52. package/pluggableElementTypes/models/BaseDisplayModel.js +58 -95
  53. package/pluggableElementTypes/models/BaseTrackModel.js +139 -199
  54. package/pluggableElementTypes/models/BaseViewModel.js +24 -40
  55. package/pluggableElementTypes/models/InternetAccountModel.js +116 -263
  56. package/pluggableElementTypes/models/baseConnectionConfig.js +14 -25
  57. package/pluggableElementTypes/models/baseInternetAccountConfig.js +29 -38
  58. package/pluggableElementTypes/models/baseTrackConfig.js +106 -133
  59. package/pluggableElementTypes/models/index.js +21 -70
  60. package/pluggableElementTypes/renderers/BoxRendererType.js +132 -291
  61. package/pluggableElementTypes/renderers/CircularChordRendererType.js +8 -38
  62. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +60 -192
  63. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -2
  64. package/pluggableElementTypes/renderers/FeatureRendererType.js +89 -264
  65. package/pluggableElementTypes/renderers/RendererType.js +31 -105
  66. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +61 -72
  67. package/pluggableElementTypes/renderers/ServerSideRendererType.js +112 -265
  68. package/pluggableElementTypes/renderers/index.js +19 -62
  69. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +27 -65
  70. package/rpc/BaseRpcDriver.js +169 -405
  71. package/rpc/MainThreadRpcDriver.js +27 -150
  72. package/rpc/RpcManager.js +58 -159
  73. package/rpc/WebWorkerRpcDriver.js +54 -171
  74. package/rpc/configSchema.js +25 -49
  75. package/rpc/coreRpcMethods.js +221 -959
  76. package/rpc/remoteAbortSignals.js +46 -70
  77. package/tsconfig.build.tsbuildinfo +1 -1
  78. package/ui/AboutDialog.js +106 -162
  79. package/ui/App.js +157 -242
  80. package/ui/AssemblySelector.js +59 -120
  81. package/ui/CascadingMenu.js +101 -196
  82. package/ui/ColorPicker.d.ts +16 -0
  83. package/ui/ColorPicker.js +97 -0
  84. package/ui/Drawer.js +28 -61
  85. package/ui/DrawerWidget.js +108 -202
  86. package/ui/DropDownMenu.js +60 -91
  87. package/ui/EditableTypography.js +87 -149
  88. package/ui/ErrorMessage.js +41 -56
  89. package/ui/FactoryResetDialog.js +24 -57
  90. package/ui/FatalErrorDialog.js +59 -91
  91. package/ui/FileSelector/FileSelector.js +123 -189
  92. package/ui/FileSelector/LocalFileChooser.js +44 -75
  93. package/ui/FileSelector/UrlChooser.js +17 -38
  94. package/ui/FileSelector/index.js +6 -12
  95. package/ui/Icons.js +45 -69
  96. package/ui/Logo.js +57 -110
  97. package/ui/Menu.js +232 -354
  98. package/ui/PrerenderedCanvas.js +63 -87
  99. package/ui/ResizeHandle.js +87 -116
  100. package/ui/ReturnToImportFormDialog.js +32 -63
  101. package/ui/SanitizedHTML.js +64 -47
  102. package/ui/Snackbar.js +74 -101
  103. package/ui/SnackbarModel.js +37 -51
  104. package/ui/Tooltip.js +49 -76
  105. package/ui/ViewContainer.js +113 -196
  106. package/ui/colors.d.ts +10 -0
  107. package/ui/colors.js +78 -0
  108. package/ui/index.js +51 -181
  109. package/ui/react-colorful.d.ts +17 -0
  110. package/ui/react-colorful.js +455 -0
  111. package/ui/theme.js +199 -247
  112. package/util/Base1DUtils.js +163 -202
  113. package/util/Base1DViewModel.js +121 -168
  114. package/util/QuickLRU.js +84 -332
  115. package/util/TimeTraveller.d.ts +19 -0
  116. package/util/TimeTraveller.js +86 -0
  117. package/util/aborting.js +49 -127
  118. package/util/analytics.js +91 -154
  119. package/util/blockTypes.js +106 -240
  120. package/util/calculateDynamicBlocks.js +98 -128
  121. package/util/calculateStaticBlocks.js +105 -125
  122. package/util/color/cssColorsLevel4.js +156 -160
  123. package/util/color/index.js +33 -55
  124. package/util/compositeMap.js +49 -333
  125. package/util/formatFastaStrings.js +9 -14
  126. package/util/idMaker.js +18 -31
  127. package/util/index.d.ts +7 -20
  128. package/util/index.js +742 -1188
  129. package/util/io/RemoteFileWithRangeCache.js +88 -257
  130. package/util/io/index.js +95 -169
  131. package/util/jexl.js +60 -115
  132. package/util/jexlStrings.js +24 -29
  133. package/util/layouts/BaseLayout.js +1 -4
  134. package/util/layouts/GranularRectLayout.js +388 -555
  135. package/util/layouts/MultiLayout.js +41 -109
  136. package/util/layouts/PrecomputedLayout.js +56 -112
  137. package/util/layouts/PrecomputedMultiLayout.js +22 -59
  138. package/util/layouts/SceneGraph.js +127 -197
  139. package/util/layouts/index.js +29 -66
  140. package/util/mst-reflection.js +55 -71
  141. package/util/offscreenCanvasPonyfill.js +66 -134
  142. package/util/offscreenCanvasUtils.d.ts +2 -7
  143. package/util/offscreenCanvasUtils.js +49 -146
  144. package/util/range.js +29 -40
  145. package/util/rxjs.js +20 -27
  146. package/util/simpleFeature.js +88 -152
  147. package/util/stats.js +91 -151
  148. package/util/tracks.js +130 -173
  149. package/util/types/index.js +110 -179
  150. package/util/types/mst.js +91 -146
  151. package/util/types/util.js +1 -4
  152. package/util/when.js +54 -101
  153. package/BaseFeatureWidget/SequenceFeatureDetails.test.js +0 -122
  154. package/BaseFeatureWidget/index.test.js +0 -69
  155. package/TextSearch/BaseResults.test.js +0 -42
  156. package/configuration/configurationSchema.test.js +0 -266
  157. package/configuration/configurationSlot.test.js +0 -69
  158. package/configuration/util.test.js +0 -39
  159. package/data_adapters/BaseAdapter.test.js +0 -200
  160. package/declare.d.js +0 -1
  161. package/pluggableElementTypes/RpcMethodType.test.js +0 -118
  162. package/pluggableElementTypes/renderers/declare.d.js +0 -1
  163. package/pluggableElementTypes/renderers/util/serializableFilterChain.test.js +0 -20
  164. package/rpc/BaseRpcDriver.test.js +0 -540
  165. package/rpc/declaration.d.js +0 -1
  166. package/ui/FatalErrorDialog.test.js +0 -82
  167. package/ui/SanitizedHTML.test.js +0 -36
  168. package/ui/theme.test.js +0 -92
  169. package/util/Base1DViewModel.test.js +0 -130
  170. package/util/calculateDynamicBlocks.test.js +0 -74
  171. package/util/calculateStaticBlocks.test.js +0 -297
  172. package/util/declare.d.js +0 -1
  173. package/util/formatFastaStrings.test.js +0 -40
  174. package/util/index.test.js +0 -213
  175. package/util/jexlStrings.test.js +0 -48
  176. package/util/layouts/GranularRectLayout.test.js +0 -99
  177. package/util/range.test.js +0 -64
  178. package/util/simpleFeature.test.js +0 -34
  179. 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
- });