@vitessce/vit-s 2.0.3 → 3.0.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 (216) hide show
  1. package/dist/index.js +41348 -0
  2. package/dist-tsc/CallbackPublisher.d.ts +18 -0
  3. package/dist-tsc/CallbackPublisher.d.ts.map +1 -0
  4. package/dist-tsc/CallbackPublisher.js +62 -0
  5. package/dist-tsc/LoadingIndicator.d.ts +2 -0
  6. package/dist-tsc/LoadingIndicator.d.ts.map +1 -0
  7. package/dist-tsc/LoadingIndicator.js +26 -0
  8. package/dist-tsc/TitleInfo.d.ts +2 -0
  9. package/dist-tsc/TitleInfo.d.ts.map +1 -0
  10. package/dist-tsc/TitleInfo.js +74 -0
  11. package/dist-tsc/VitS.d.ts +45 -0
  12. package/dist-tsc/VitS.d.ts.map +1 -0
  13. package/dist-tsc/VitS.js +119 -0
  14. package/dist-tsc/VitessceGrid.d.ts +23 -0
  15. package/dist-tsc/VitessceGrid.d.ts.map +1 -0
  16. package/dist-tsc/VitessceGrid.js +60 -0
  17. package/dist-tsc/VitessceGrid.test.d.ts +2 -0
  18. package/dist-tsc/VitessceGrid.test.d.ts.map +1 -0
  19. package/dist-tsc/VitessceGrid.test.js +40 -0
  20. package/dist-tsc/Warning.d.ts +2 -0
  21. package/dist-tsc/Warning.d.ts.map +1 -0
  22. package/dist-tsc/Warning.js +45 -0
  23. package/dist-tsc/classNames.d.ts +8 -0
  24. package/dist-tsc/classNames.d.ts.map +1 -0
  25. package/dist-tsc/classNames.js +8 -0
  26. package/dist-tsc/data/AbstractLoader.d.ts +22 -0
  27. package/dist-tsc/data/AbstractLoader.d.ts.map +1 -0
  28. package/dist-tsc/data/AbstractLoader.js +18 -0
  29. package/dist-tsc/data/AbstractTwoStepLoader.d.ts +6 -0
  30. package/dist-tsc/data/AbstractTwoStepLoader.d.ts.map +1 -0
  31. package/dist-tsc/data/AbstractTwoStepLoader.js +7 -0
  32. package/dist-tsc/data/LoaderResult.d.ts +7 -0
  33. package/dist-tsc/data/LoaderResult.d.ts.map +1 -0
  34. package/dist-tsc/data/LoaderResult.js +7 -0
  35. package/dist-tsc/data/index.d.ts +4 -0
  36. package/dist-tsc/data/index.d.ts.map +1 -0
  37. package/dist-tsc/data/index.js +3 -0
  38. package/dist-tsc/data/loader-registry.d.ts +9 -0
  39. package/dist-tsc/data/loader-registry.d.ts.map +1 -0
  40. package/dist-tsc/data/loader-registry.js +27 -0
  41. package/dist-tsc/data-hook-utils.d.ts +69 -0
  42. package/dist-tsc/data-hook-utils.d.ts.map +1 -0
  43. package/dist-tsc/data-hook-utils.js +173 -0
  44. package/dist-tsc/data-hooks.d.ts +77 -0
  45. package/dist-tsc/data-hooks.d.ts.map +1 -0
  46. package/dist-tsc/data-hooks.js +241 -0
  47. package/dist-tsc/errors/AbstractLoaderError.d.ts +10 -0
  48. package/dist-tsc/errors/AbstractLoaderError.d.ts.map +1 -0
  49. package/dist-tsc/errors/AbstractLoaderError.js +13 -0
  50. package/dist-tsc/errors/DataSourceFetchError.d.ts +8 -0
  51. package/dist-tsc/errors/DataSourceFetchError.d.ts.map +1 -0
  52. package/dist-tsc/errors/DataSourceFetchError.js +13 -0
  53. package/dist-tsc/errors/DatasetNotFoundError.d.ts +6 -0
  54. package/dist-tsc/errors/DatasetNotFoundError.d.ts.map +1 -0
  55. package/dist-tsc/errors/DatasetNotFoundError.js +17 -0
  56. package/dist-tsc/errors/LoaderNotFoundError.d.ts +10 -0
  57. package/dist-tsc/errors/LoaderNotFoundError.d.ts.map +1 -0
  58. package/dist-tsc/errors/LoaderNotFoundError.js +17 -0
  59. package/dist-tsc/errors/LoaderValidationError.d.ts +10 -0
  60. package/dist-tsc/errors/LoaderValidationError.d.ts.map +1 -0
  61. package/dist-tsc/errors/LoaderValidationError.js +15 -0
  62. package/dist-tsc/errors/index.d.ts +6 -0
  63. package/dist-tsc/errors/index.d.ts.map +1 -0
  64. package/dist-tsc/errors/index.js +5 -0
  65. package/dist-tsc/hooks.d.ts +80 -0
  66. package/dist-tsc/hooks.d.ts.map +1 -0
  67. package/dist-tsc/hooks.js +271 -0
  68. package/dist-tsc/index.d.ts +11 -0
  69. package/dist-tsc/index.d.ts.map +1 -0
  70. package/dist-tsc/index.js +10 -17
  71. package/dist-tsc/plugins.test.fixtures.d.ts +61 -0
  72. package/dist-tsc/plugins.test.fixtures.d.ts.map +1 -0
  73. package/dist-tsc/plugins.test.fixtures.js +76 -0
  74. package/dist-tsc/schemas/config-0.1.0.schema.json +84 -0
  75. package/dist-tsc/schemas/config-1.0.0.schema.json +733 -0
  76. package/dist-tsc/schemas/config-1.0.1.schema.json +909 -0
  77. package/dist-tsc/schemas/config-1.0.10.schema.json +969 -0
  78. package/dist-tsc/schemas/config-1.0.11.schema.json +990 -0
  79. package/dist-tsc/schemas/config-1.0.12.schema.json +997 -0
  80. package/dist-tsc/schemas/config-1.0.13.schema.json +1013 -0
  81. package/dist-tsc/schemas/config-1.0.14.schema.json +1048 -0
  82. package/dist-tsc/schemas/config-1.0.15.schema.json +1048 -0
  83. package/dist-tsc/schemas/config-1.0.16.schema.json +1089 -0
  84. package/dist-tsc/schemas/config-1.0.2.schema.json +910 -0
  85. package/dist-tsc/schemas/config-1.0.3.schema.json +910 -0
  86. package/dist-tsc/schemas/config-1.0.4.schema.json +949 -0
  87. package/dist-tsc/schemas/config-1.0.5.schema.json +949 -0
  88. package/dist-tsc/schemas/config-1.0.6.schema.json +949 -0
  89. package/dist-tsc/schemas/config-1.0.7.schema.json +949 -0
  90. package/dist-tsc/schemas/config-1.0.8.schema.json +965 -0
  91. package/dist-tsc/schemas/config-1.0.9.schema.json +965 -0
  92. package/dist-tsc/schemas/obsSets.schema.d.ts +179 -0
  93. package/dist-tsc/schemas/obsSets.schema.d.ts.map +1 -0
  94. package/dist-tsc/schemas/obsSets.schema.js +195 -0
  95. package/dist-tsc/schemas/obsSetsTabular.schema.d.ts +57 -0
  96. package/dist-tsc/schemas/obsSetsTabular.schema.d.ts.map +1 -0
  97. package/dist-tsc/schemas/obsSetsTabular.schema.js +38 -0
  98. package/dist-tsc/schemas/raster.schema.d.ts +239 -0
  99. package/dist-tsc/schemas/raster.schema.d.ts.map +1 -0
  100. package/dist-tsc/schemas/raster.schema.js +120 -0
  101. package/dist-tsc/shared-mui/components.d.ts +2 -0
  102. package/dist-tsc/shared-mui/components.d.ts.map +1 -0
  103. package/dist-tsc/shared-mui/components.js +29 -0
  104. package/dist-tsc/shared-mui/container.d.ts +2 -0
  105. package/dist-tsc/shared-mui/container.d.ts.map +1 -0
  106. package/dist-tsc/shared-mui/container.js +211 -0
  107. package/dist-tsc/shared-mui/styles.d.ts +5 -0
  108. package/dist-tsc/shared-mui/styles.d.ts.map +1 -0
  109. package/dist-tsc/shared-mui/styles.js +109 -0
  110. package/dist-tsc/shared-plot-options/CellColorEncodingOption.d.ts +2 -0
  111. package/dist-tsc/shared-plot-options/CellColorEncodingOption.d.ts.map +1 -0
  112. package/dist-tsc/shared-plot-options/CellColorEncodingOption.js +17 -0
  113. package/dist-tsc/shared-plot-options/OptionSelect.d.ts +2 -0
  114. package/dist-tsc/shared-plot-options/OptionSelect.d.ts.map +1 -0
  115. package/dist-tsc/shared-plot-options/OptionSelect.js +12 -0
  116. package/dist-tsc/shared-plot-options/OptionsContainer.d.ts +2 -0
  117. package/dist-tsc/shared-plot-options/OptionsContainer.d.ts.map +1 -0
  118. package/dist-tsc/shared-plot-options/OptionsContainer.js +9 -0
  119. package/dist-tsc/shared-plot-options/index.d.ts +5 -0
  120. package/dist-tsc/shared-plot-options/index.d.ts.map +1 -0
  121. package/dist-tsc/shared-plot-options/index.js +4 -0
  122. package/dist-tsc/shared-plot-options/styles.d.ts +2 -0
  123. package/dist-tsc/shared-plot-options/styles.d.ts.map +1 -0
  124. package/dist-tsc/shared-plot-options/styles.js +48 -0
  125. package/dist-tsc/state/hooks.d.ts +216 -0
  126. package/dist-tsc/state/hooks.d.ts.map +1 -0
  127. package/dist-tsc/state/hooks.js +575 -0
  128. package/dist-tsc/title-styles.d.ts +2 -0
  129. package/dist-tsc/title-styles.d.ts.map +1 -0
  130. package/dist-tsc/title-styles.js +72 -0
  131. package/dist-tsc/view-config-utils.d.ts +30 -0
  132. package/dist-tsc/view-config-utils.d.ts.map +1 -0
  133. package/dist-tsc/view-config-utils.js +234 -0
  134. package/dist-tsc/view-config-utils.test.d.ts +2 -0
  135. package/dist-tsc/view-config-utils.test.d.ts.map +1 -0
  136. package/dist-tsc/view-config-utils.test.fixtures.d.ts +1049 -0
  137. package/dist-tsc/view-config-utils.test.fixtures.d.ts.map +1 -0
  138. package/dist-tsc/view-config-utils.test.fixtures.js +883 -0
  139. package/dist-tsc/view-config-utils.test.js +209 -0
  140. package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.d.ts +8 -0
  141. package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.d.ts.map +1 -0
  142. package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.js +114 -0
  143. package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.test.d.ts +2 -0
  144. package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.test.d.ts.map +1 -0
  145. package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.test.js +48 -0
  146. package/dist-tsc/vitessce-grid-layout/index.d.ts +2 -0
  147. package/dist-tsc/vitessce-grid-layout/index.d.ts.map +1 -0
  148. package/dist-tsc/vitessce-grid-layout/index.js +1 -0
  149. package/dist-tsc/vitessce-grid-layout/layout-utils.d.ts +15 -0
  150. package/dist-tsc/vitessce-grid-layout/layout-utils.d.ts.map +1 -0
  151. package/dist-tsc/vitessce-grid-layout/layout-utils.js +61 -0
  152. package/dist-tsc/vitessce-grid-layout/layout-utils.test.d.ts +2 -0
  153. package/dist-tsc/vitessce-grid-layout/layout-utils.test.d.ts.map +1 -0
  154. package/dist-tsc/vitessce-grid-layout/layout-utils.test.js +148 -0
  155. package/dist-tsc/vitessce-grid-utils.d.ts +13 -0
  156. package/dist-tsc/vitessce-grid-utils.d.ts.map +1 -0
  157. package/dist-tsc/vitessce-grid-utils.js +141 -0
  158. package/package.json +23 -10
  159. package/src/CallbackPublisher.js +7 -11
  160. package/src/LoadingIndicator.js +1 -2
  161. package/src/TitleInfo.js +12 -85
  162. package/src/VitS.js +72 -50
  163. package/src/VitessceGrid.js +21 -13
  164. package/src/VitessceGrid.test.jsx +16 -7
  165. package/src/Warning.js +2 -2
  166. package/src/data/AbstractLoader.js +2 -25
  167. package/src/data/AbstractTwoStepLoader.js +1 -1
  168. package/src/data/index.js +3 -3
  169. package/src/data/loader-registry.js +22 -13
  170. package/src/data-hook-utils.js +4 -6
  171. package/src/data-hooks.js +4 -4
  172. package/src/errors/DataSourceFetchError.js +1 -1
  173. package/src/errors/DatasetNotFoundError.js +1 -1
  174. package/src/errors/LoaderNotFoundError.js +1 -1
  175. package/src/errors/LoaderValidationError.js +1 -1
  176. package/src/errors/index.js +5 -6
  177. package/src/hooks.js +70 -5
  178. package/src/index.js +21 -46
  179. package/src/schemas/config-1.0.16.schema.json +21 -1
  180. package/src/shared-mui/components.js +10 -8
  181. package/src/shared-mui/container.js +1 -1
  182. package/src/shared-mui/styles.js +5 -2
  183. package/src/shared-plot-options/CellColorEncodingOption.js +3 -4
  184. package/src/shared-plot-options/OptionSelect.js +2 -2
  185. package/src/shared-plot-options/OptionsContainer.js +2 -5
  186. package/src/shared-plot-options/index.js +4 -4
  187. package/src/shared-plot-options/styles.js +1 -1
  188. package/src/state/hooks.js +10 -3
  189. package/src/title-styles.js +73 -0
  190. package/src/view-config-utils.js +46 -98
  191. package/src/view-config-utils.test.jsx +222 -0
  192. package/src/vitessce-grid-layout/VitessceGridLayout.js +51 -30
  193. package/src/vitessce-grid-layout/VitessceGridLayout.test.jsx +17 -9
  194. package/src/vitessce-grid-layout/index.js +1 -1
  195. package/src/vitessce-grid-layout/layout-utils.js +1 -1
  196. package/src/vitessce-grid-layout/layout-utils.test.js +1 -1
  197. package/src/vitessce-grid-utils.js +27 -15
  198. package/dist/index.mjs +0 -84801
  199. package/src/component-registry.js +0 -21
  200. package/src/errors/OptionsValidationError.js +0 -25
  201. package/src/file-options-schemas-legacy.js +0 -139
  202. package/src/file-options-schemas-legacy.test.js +0 -138
  203. package/src/file-options-schemas.js +0 -327
  204. package/src/file-options-schemas.test.js +0 -26
  205. package/src/joint-file-types-legacy.js +0 -298
  206. package/src/joint-file-types-legacy.test.js +0 -412
  207. package/src/joint-file-types.js +0 -171
  208. package/src/joint-file-types.test.js +0 -144
  209. package/src/json-schemas.js +0 -9
  210. package/src/plugins.js +0 -186
  211. package/src/plugins.test.js +0 -42
  212. package/src/schemas/config-1.0.16.schema.test.js +0 -32
  213. package/src/schemas/schema.test-old.js +0 -49
  214. package/src/view-config-upgraders.js +0 -628
  215. package/src/view-config-utils.test.js +0 -95
  216. package/src/view-config-versions.js +0 -68
@@ -1,11 +1,13 @@
1
1
  import '@testing-library/jest-dom';
2
- import { cleanup, render, screen, waitForElement } from '@testing-library/react'
3
- import { afterEach } from 'vitest'
2
+ import { cleanup, render, screen } from '@testing-library/react';
3
+ import { afterEach } from 'vitest';
4
4
 
5
- import { VitessceGridLayout } from './VitessceGridLayout';
5
+ import React from 'react';
6
+ import { PluginViewType } from '@vitessce/plugins';
7
+ import { VitessceGridLayout } from './VitessceGridLayout.js';
6
8
 
7
9
  afterEach(() => {
8
- cleanup()
10
+ cleanup();
9
11
  });
10
12
 
11
13
  function FakeComponent(props) {
@@ -17,19 +19,24 @@ const layoutJson = {
17
19
  600: [0, 2, 4, 8],
18
20
  },
19
21
  components: [
20
- { component: 'FakeComponent',
22
+ {
23
+ component: 'FakeComponent',
21
24
  uid: 'fake',
22
25
  props: { text: 'Hello World' },
23
- x: 0, y: 0, w: 2 },
26
+ x: 0,
27
+ y: 0,
28
+ w: 2,
29
+ },
24
30
  ],
25
31
  };
26
32
 
27
33
  describe('VitessceGridLayout.js', () => {
28
34
  describe('<VitessceGridLayout />', () => {
29
35
  it('mount() works', async () => {
36
+ const viewTypes = [new PluginViewType('FakeComponent', FakeComponent, [])];
30
37
  const { container } = render(<VitessceGridLayout
31
38
  layout={layoutJson}
32
- getComponent={() => FakeComponent}
39
+ viewTypes={viewTypes}
33
40
  draggableHandle=".my-handle"
34
41
  />);
35
42
 
@@ -43,9 +50,10 @@ describe('VitessceGridLayout.js', () => {
43
50
  });
44
51
 
45
52
  it('rowHeight works', () => {
53
+ const viewTypes = [new PluginViewType('FakeComponent', FakeComponent, [])];
46
54
  const { container } = render(<VitessceGridLayout
47
55
  layout={layoutJson}
48
- getComponent={() => FakeComponent}
56
+ viewTypes={viewTypes}
49
57
  draggableHandle=".my-handle"
50
58
  rowHeight={123}
51
59
  />);
@@ -53,4 +61,4 @@ describe('VitessceGridLayout.js', () => {
53
61
  expect(container.querySelector('.react-grid-item').style.height).toEqual('123px');
54
62
  });
55
63
  });
56
- });
64
+ });
@@ -1 +1 @@
1
- export { VitessceGridLayout } from './VitessceGridLayout';
1
+ export { VitessceGridLayout } from './VitessceGridLayout.js';
@@ -1,4 +1,4 @@
1
- import range from 'lodash/range';
1
+ import { range } from 'lodash-es';
2
2
 
3
3
  function sum(a) {
4
4
  return a.reduce((x, y) => x + y, 0);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeGridLayout, getMaxRows, resolveLayout,
3
- } from './layout-utils';
3
+ } from './layout-utils.js';
4
4
 
5
5
  describe('layout-utils.js', () => {
6
6
  describe('makeGridLayout', () => {
@@ -2,11 +2,10 @@ import {
2
2
  useState, useEffect, useRef,
3
3
  } from 'react';
4
4
  import { InternMap } from 'internmap';
5
- import isEqual from 'lodash/isEqual';
6
- import pick from 'lodash/pick';
7
- import { DEFAULT_COORDINATION_VALUES, DATA_TYPE_COORDINATION_VALUE_USAGE } from '@vitessce/constants-internal';
8
- import { getSourceAndLoaderFromFileType } from './data/loader-registry';
9
- import { getFileTypeDataTypeMapping } from './plugins';
5
+ import { isEqual, pick } from 'lodash-es';
6
+ import { fromEntries } from '@vitessce/utils';
7
+ import { DATA_TYPE_COORDINATION_VALUE_USAGE } from '@vitessce/constants-internal';
8
+ import { getSourceAndLoaderFromFileType, getDataTypeFromFileType } from './data/loader-registry.js';
10
9
 
11
10
  /**
12
11
  * Return the bottom coordinate of the layout.
@@ -88,14 +87,20 @@ export function useRowHeight(config, initialRowHeight, height, margin, padding)
88
87
  return [rowHeight, containerRef];
89
88
  }
90
89
 
91
- function withDefaults(coordinationValues, dataType, fileType, datasetUid) {
90
+ function withDefaults(
91
+ coordinationValues,
92
+ dataType,
93
+ fileType,
94
+ datasetUid,
95
+ defaultCoordinationValues,
96
+ ) {
92
97
  const defaultKeys = DATA_TYPE_COORDINATION_VALUE_USAGE[dataType]
93
98
  .filter(k => (
94
- Object.keys(DEFAULT_COORDINATION_VALUES).includes(k)
95
- && DEFAULT_COORDINATION_VALUES[k]
99
+ Object.keys(defaultCoordinationValues).includes(k)
100
+ && defaultCoordinationValues[k]
96
101
  && !Object.keys(coordinationValues).includes(k)
97
102
  ));
98
- const defaultValues = pick(DEFAULT_COORDINATION_VALUES, defaultKeys);
103
+ const defaultValues = pick(defaultCoordinationValues, defaultKeys);
99
104
  const coordinationValuesWithDefaults = {
100
105
  ...defaultValues,
101
106
  // The user-provided values should take precedence.
@@ -112,14 +117,18 @@ function withDefaults(coordinationValues, dataType, fileType, datasetUid) {
112
117
  * Create a mapping from dataset ID to loader objects by data type.
113
118
  * @param {object[]} datasets The datasets array from the view config.
114
119
  * @param {string} configDescription The top-level description in the
120
+ * @param {PluginFileType[]} fileTypes
121
+ * @param {PluginCoordinationType[]} coordinationTypes
115
122
  * view config.
116
123
  * @returns {object} Mapping from dataset ID to data type to loader
117
124
  * instance.
118
125
  */
119
- export function createLoaders(datasets, configDescription) {
126
+ export function createLoaders(datasets, configDescription, fileTypes, coordinationTypes) {
120
127
  const result = {};
121
128
  const dataSources = {};
122
- const fileTypeDataTypeMapping = getFileTypeDataTypeMapping();
129
+ const defaultCoordinationValues = fromEntries(
130
+ coordinationTypes.map(ct => ([ct.name, ct.defaultValue])),
131
+ );
123
132
  datasets.forEach((dataset) => {
124
133
  const datasetLoaders = {
125
134
  name: dataset.name,
@@ -134,12 +143,15 @@ export function createLoaders(datasets, configDescription) {
134
143
  fileType,
135
144
  coordinationValues = {},
136
145
  } = file;
137
- const dataType = fileTypeDataTypeMapping[fileType];
146
+ const dataType = getDataTypeFromFileType(fileType, fileTypes);
138
147
  const coordinationValuesWithDefaults = withDefaults(
139
- coordinationValues, dataType,
140
- fileType, dataset.uid,
148
+ coordinationValues,
149
+ dataType,
150
+ fileType,
151
+ dataset.uid,
152
+ defaultCoordinationValues,
141
153
  );
142
- const [DataSourceClass, LoaderClass] = getSourceAndLoaderFromFileType(fileType);
154
+ const [DataSourceClass, LoaderClass] = getSourceAndLoaderFromFileType(fileType, fileTypes);
143
155
  // Create _one_ DataSourceClass instance per URL. Derived loaders share this object.
144
156
  const fileId = url || JSON.stringify(options);
145
157
  if (!(fileId in dataSources)) {