@vitessce/vit-s 2.0.3 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +44072 -0
- package/dist-tsc/CallbackPublisher.d.ts +18 -0
- package/dist-tsc/CallbackPublisher.d.ts.map +1 -0
- package/dist-tsc/CallbackPublisher.js +62 -0
- package/dist-tsc/LoadingIndicator.d.ts +2 -0
- package/dist-tsc/LoadingIndicator.d.ts.map +1 -0
- package/dist-tsc/LoadingIndicator.js +26 -0
- package/dist-tsc/TitleInfo.d.ts +2 -0
- package/dist-tsc/TitleInfo.d.ts.map +1 -0
- package/dist-tsc/TitleInfo.js +74 -0
- package/dist-tsc/VitS.d.ts +50 -0
- package/dist-tsc/VitS.d.ts.map +1 -0
- package/dist-tsc/VitS.js +139 -0
- package/dist-tsc/VitessceGrid.d.ts +23 -0
- package/dist-tsc/VitessceGrid.d.ts.map +1 -0
- package/dist-tsc/VitessceGrid.js +63 -0
- package/dist-tsc/VitessceGrid.test.d.ts +2 -0
- package/dist-tsc/VitessceGrid.test.d.ts.map +1 -0
- package/dist-tsc/VitessceGrid.test.js +43 -0
- package/dist-tsc/Warning.d.ts +2 -0
- package/dist-tsc/Warning.d.ts.map +1 -0
- package/dist-tsc/Warning.js +45 -0
- package/dist-tsc/classNames.d.ts +8 -0
- package/dist-tsc/classNames.d.ts.map +1 -0
- package/dist-tsc/classNames.js +8 -0
- package/dist-tsc/data/AbstractLoader.d.ts +22 -0
- package/dist-tsc/data/AbstractLoader.d.ts.map +1 -0
- package/dist-tsc/data/AbstractLoader.js +18 -0
- package/dist-tsc/data/AbstractTwoStepLoader.d.ts +6 -0
- package/dist-tsc/data/AbstractTwoStepLoader.d.ts.map +1 -0
- package/dist-tsc/data/AbstractTwoStepLoader.js +7 -0
- package/dist-tsc/data/LoaderResult.d.ts +12 -0
- package/dist-tsc/data/LoaderResult.d.ts.map +1 -0
- package/dist-tsc/data/LoaderResult.js +12 -0
- package/dist-tsc/data/index.d.ts +4 -0
- package/dist-tsc/data/index.d.ts.map +1 -0
- package/dist-tsc/data/index.js +3 -0
- package/dist-tsc/data/loader-registry.d.ts +9 -0
- package/dist-tsc/data/loader-registry.d.ts.map +1 -0
- package/dist-tsc/data/loader-registry.js +27 -0
- package/dist-tsc/data-hook-utils.d.ts +65 -0
- package/dist-tsc/data-hook-utils.d.ts.map +1 -0
- package/dist-tsc/data-hook-utils.js +191 -0
- package/dist-tsc/data-hooks.d.ts +73 -0
- package/dist-tsc/data-hooks.d.ts.map +1 -0
- package/dist-tsc/data-hooks.js +254 -0
- package/dist-tsc/errors/AbstractLoaderError.d.ts +10 -0
- package/dist-tsc/errors/AbstractLoaderError.d.ts.map +1 -0
- package/dist-tsc/errors/AbstractLoaderError.js +13 -0
- package/dist-tsc/errors/DataSourceFetchError.d.ts +8 -0
- package/dist-tsc/errors/DataSourceFetchError.d.ts.map +1 -0
- package/dist-tsc/errors/DataSourceFetchError.js +13 -0
- package/dist-tsc/errors/DatasetNotFoundError.d.ts +6 -0
- package/dist-tsc/errors/DatasetNotFoundError.d.ts.map +1 -0
- package/dist-tsc/errors/DatasetNotFoundError.js +17 -0
- package/dist-tsc/errors/LoaderNotFoundError.d.ts +10 -0
- package/dist-tsc/errors/LoaderNotFoundError.d.ts.map +1 -0
- package/dist-tsc/errors/LoaderNotFoundError.js +17 -0
- package/dist-tsc/errors/LoaderValidationError.d.ts +10 -0
- package/dist-tsc/errors/LoaderValidationError.d.ts.map +1 -0
- package/dist-tsc/errors/LoaderValidationError.js +15 -0
- package/dist-tsc/errors/index.d.ts +6 -0
- package/dist-tsc/errors/index.d.ts.map +1 -0
- package/dist-tsc/errors/index.js +5 -0
- package/dist-tsc/hooks.d.ts +76 -0
- package/dist-tsc/hooks.d.ts.map +1 -0
- package/dist-tsc/hooks.js +262 -0
- package/dist-tsc/index.d.ts +12 -0
- package/dist-tsc/index.d.ts.map +1 -0
- package/dist-tsc/index.js +11 -17
- package/dist-tsc/mui-utils.d.ts +2 -0
- package/dist-tsc/mui-utils.d.ts.map +1 -0
- package/dist-tsc/mui-utils.js +44 -0
- package/dist-tsc/plugins.test.fixtures.d.ts +61 -0
- package/dist-tsc/plugins.test.fixtures.d.ts.map +1 -0
- package/dist-tsc/plugins.test.fixtures.js +76 -0
- package/dist-tsc/shared-mui/components.d.ts +2 -0
- package/dist-tsc/shared-mui/components.d.ts.map +1 -0
- package/dist-tsc/shared-mui/components.js +29 -0
- package/dist-tsc/shared-mui/container.d.ts +2 -0
- package/dist-tsc/shared-mui/container.d.ts.map +1 -0
- package/dist-tsc/shared-mui/container.js +211 -0
- package/dist-tsc/shared-mui/styles.d.ts +5 -0
- package/dist-tsc/shared-mui/styles.d.ts.map +1 -0
- package/dist-tsc/shared-mui/styles.js +109 -0
- package/dist-tsc/shared-plot-options/CellColorEncodingOption.d.ts +2 -0
- package/dist-tsc/shared-plot-options/CellColorEncodingOption.d.ts.map +1 -0
- package/dist-tsc/shared-plot-options/CellColorEncodingOption.js +17 -0
- package/dist-tsc/shared-plot-options/OptionSelect.d.ts +2 -0
- package/dist-tsc/shared-plot-options/OptionSelect.d.ts.map +1 -0
- package/dist-tsc/shared-plot-options/OptionSelect.js +12 -0
- package/dist-tsc/shared-plot-options/OptionsContainer.d.ts +2 -0
- package/dist-tsc/shared-plot-options/OptionsContainer.d.ts.map +1 -0
- package/dist-tsc/shared-plot-options/OptionsContainer.js +9 -0
- package/dist-tsc/shared-plot-options/index.d.ts +5 -0
- package/dist-tsc/shared-plot-options/index.d.ts.map +1 -0
- package/dist-tsc/shared-plot-options/index.js +4 -0
- package/dist-tsc/shared-plot-options/styles.d.ts +2 -0
- package/dist-tsc/shared-plot-options/styles.d.ts.map +1 -0
- package/dist-tsc/shared-plot-options/styles.js +48 -0
- package/dist-tsc/state/hooks.d.ts +242 -0
- package/dist-tsc/state/hooks.d.ts.map +1 -0
- package/dist-tsc/state/hooks.js +615 -0
- package/dist-tsc/title-styles.d.ts +2 -0
- package/dist-tsc/title-styles.d.ts.map +1 -0
- package/dist-tsc/title-styles.js +72 -0
- package/dist-tsc/view-config-utils.d.ts +31 -0
- package/dist-tsc/view-config-utils.d.ts.map +1 -0
- package/dist-tsc/view-config-utils.js +240 -0
- package/dist-tsc/view-config-utils.test.d.ts +2 -0
- package/dist-tsc/view-config-utils.test.d.ts.map +1 -0
- package/dist-tsc/view-config-utils.test.fixtures.d.ts +1049 -0
- package/dist-tsc/view-config-utils.test.fixtures.d.ts.map +1 -0
- package/dist-tsc/view-config-utils.test.fixtures.js +883 -0
- package/dist-tsc/view-config-utils.test.js +210 -0
- package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.d.ts +8 -0
- package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.d.ts.map +1 -0
- package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.js +114 -0
- package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.test.d.ts +2 -0
- package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.test.d.ts.map +1 -0
- package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.test.js +48 -0
- package/dist-tsc/vitessce-grid-layout/index.d.ts +2 -0
- package/dist-tsc/vitessce-grid-layout/index.d.ts.map +1 -0
- package/dist-tsc/vitessce-grid-layout/index.js +1 -0
- package/dist-tsc/vitessce-grid-layout/layout-utils.d.ts +15 -0
- package/dist-tsc/vitessce-grid-layout/layout-utils.d.ts.map +1 -0
- package/dist-tsc/vitessce-grid-layout/layout-utils.js +61 -0
- package/dist-tsc/vitessce-grid-layout/layout-utils.test.d.ts +2 -0
- package/dist-tsc/vitessce-grid-layout/layout-utils.test.d.ts.map +1 -0
- package/dist-tsc/vitessce-grid-layout/layout-utils.test.js +149 -0
- package/dist-tsc/vitessce-grid-utils.d.ts +13 -0
- package/dist-tsc/vitessce-grid-utils.d.ts.map +1 -0
- package/dist-tsc/vitessce-grid-utils.js +141 -0
- package/package.json +25 -11
- package/src/CallbackPublisher.js +7 -11
- package/src/LoadingIndicator.js +1 -2
- package/src/TitleInfo.js +12 -85
- package/src/VitS.js +143 -85
- package/src/VitessceGrid.js +35 -21
- package/src/VitessceGrid.test.jsx +23 -8
- package/src/Warning.js +4 -4
- package/src/data/AbstractLoader.js +2 -25
- package/src/data/AbstractTwoStepLoader.js +1 -1
- package/src/data/LoaderResult.js +5 -0
- package/src/data/index.js +3 -3
- package/src/data/loader-registry.js +22 -13
- package/src/data-hook-utils.js +119 -86
- package/src/data-hooks.js +150 -131
- package/src/errors/DataSourceFetchError.js +2 -2
- package/src/errors/DatasetNotFoundError.js +1 -1
- package/src/errors/LoaderNotFoundError.js +1 -1
- package/src/errors/LoaderValidationError.js +1 -1
- package/src/errors/index.js +5 -6
- package/src/hooks.js +81 -26
- package/src/index.js +23 -46
- package/src/mui-utils.js +52 -0
- package/src/shared-mui/components.js +10 -8
- package/src/shared-mui/container.js +1 -1
- package/src/shared-mui/styles.js +5 -2
- package/src/shared-plot-options/CellColorEncodingOption.js +3 -4
- package/src/shared-plot-options/OptionSelect.js +3 -3
- package/src/shared-plot-options/OptionsContainer.js +2 -5
- package/src/shared-plot-options/index.js +4 -4
- package/src/shared-plot-options/styles.js +2 -2
- package/src/state/hooks.js +75 -23
- package/src/title-styles.js +73 -0
- package/src/view-config-utils.js +54 -98
- package/src/view-config-utils.test.jsx +223 -0
- package/src/vitessce-grid-layout/VitessceGridLayout.js +51 -30
- package/src/vitessce-grid-layout/VitessceGridLayout.test.jsx +17 -9
- package/src/vitessce-grid-layout/index.js +1 -1
- package/src/vitessce-grid-layout/layout-utils.js +1 -1
- package/src/vitessce-grid-layout/layout-utils.test.js +2 -1
- package/src/vitessce-grid-utils.js +27 -15
- package/dist/index.mjs +0 -84801
- package/src/component-registry.js +0 -21
- package/src/errors/OptionsValidationError.js +0 -25
- package/src/file-options-schemas-legacy.js +0 -139
- package/src/file-options-schemas-legacy.test.js +0 -138
- package/src/file-options-schemas.js +0 -327
- package/src/file-options-schemas.test.js +0 -26
- package/src/joint-file-types-legacy.js +0 -298
- package/src/joint-file-types-legacy.test.js +0 -412
- package/src/joint-file-types.js +0 -171
- package/src/joint-file-types.test.js +0 -144
- package/src/json-schemas.js +0 -9
- package/src/plugins.js +0 -186
- package/src/plugins.test.js +0 -42
- package/src/schemas/config-0.1.0.schema.json +0 -85
- package/src/schemas/config-1.0.0.schema.json +0 -733
- package/src/schemas/config-1.0.1.schema.json +0 -909
- package/src/schemas/config-1.0.10.schema.json +0 -969
- package/src/schemas/config-1.0.11.schema.json +0 -990
- package/src/schemas/config-1.0.12.schema.json +0 -997
- package/src/schemas/config-1.0.13.schema.json +0 -1013
- package/src/schemas/config-1.0.14.schema.json +0 -1048
- package/src/schemas/config-1.0.15.schema.json +0 -1048
- package/src/schemas/config-1.0.16.schema.json +0 -1069
- package/src/schemas/config-1.0.16.schema.test.js +0 -32
- package/src/schemas/config-1.0.2.schema.json +0 -911
- package/src/schemas/config-1.0.3.schema.json +0 -911
- package/src/schemas/config-1.0.4.schema.json +0 -949
- package/src/schemas/config-1.0.5.schema.json +0 -949
- package/src/schemas/config-1.0.6.schema.json +0 -950
- package/src/schemas/config-1.0.7.schema.json +0 -950
- package/src/schemas/config-1.0.8.schema.json +0 -966
- package/src/schemas/config-1.0.9.schema.json +0 -965
- package/src/schemas/obsSets.schema.js +0 -195
- package/src/schemas/obsSetsTabular.schema.js +0 -39
- package/src/schemas/raster.schema.js +0 -121
- package/src/schemas/schema-schema.sh +0 -34
- package/src/schemas/schema.test-old.js +0 -49
- package/src/view-config-upgraders.js +0 -628
- package/src/view-config-utils.test.js +0 -95
- package/src/view-config-versions.js +0 -68
package/src/joint-file-types.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { FileType } from '@vitessce/constants-internal';
|
|
2
|
-
import {
|
|
3
|
-
validateOptions,
|
|
4
|
-
anndataZarrSchema,
|
|
5
|
-
} from './file-options-schemas';
|
|
6
|
-
import {
|
|
7
|
-
expandMoleculesJson,
|
|
8
|
-
expandExpressionMatrixZarr,
|
|
9
|
-
expandRasterJson,
|
|
10
|
-
expandRasterOmeZarr,
|
|
11
|
-
expandCellSetsJson,
|
|
12
|
-
expandCellsJson,
|
|
13
|
-
expandClustersJson,
|
|
14
|
-
expandGenesJson,
|
|
15
|
-
expandAnndataCellsZarr,
|
|
16
|
-
expandAnndataCellSetsZarr,
|
|
17
|
-
expandAnndataExpressionMatrixZarr,
|
|
18
|
-
} from './joint-file-types-legacy';
|
|
19
|
-
|
|
20
|
-
export function expandAnndataZarr(fileDef) {
|
|
21
|
-
validateOptions(anndataZarrSchema, fileDef.options);
|
|
22
|
-
const baseFileDef = {
|
|
23
|
-
url: fileDef.url,
|
|
24
|
-
requestInit: fileDef.requestInit,
|
|
25
|
-
coordinationValues: {
|
|
26
|
-
...fileDef.coordinationValues,
|
|
27
|
-
obsType: fileDef.coordinationValues?.obsType || 'cell',
|
|
28
|
-
featureType: fileDef.coordinationValues?.featureType || 'gene',
|
|
29
|
-
featureValueType: fileDef.coordinationValues?.featureValueType || 'expression',
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
const { options = {} } = fileDef;
|
|
33
|
-
return [
|
|
34
|
-
// obsFeatureMatrix
|
|
35
|
-
...(options.obsFeatureMatrix ? [{
|
|
36
|
-
...baseFileDef,
|
|
37
|
-
fileType: FileType.OBS_FEATURE_MATRIX_ANNDATA_ZARR,
|
|
38
|
-
options: options.obsFeatureMatrix,
|
|
39
|
-
coordinationValues: {
|
|
40
|
-
obsType: baseFileDef.coordinationValues.obsType,
|
|
41
|
-
featureType: baseFileDef.coordinationValues.featureType,
|
|
42
|
-
featureValueType: baseFileDef.coordinationValues.featureValueType,
|
|
43
|
-
},
|
|
44
|
-
}] : []),
|
|
45
|
-
// obsSets
|
|
46
|
-
...(options.obsSets ? [{
|
|
47
|
-
...baseFileDef,
|
|
48
|
-
fileType: FileType.OBS_SETS_ANNDATA_ZARR,
|
|
49
|
-
options: options.obsSets,
|
|
50
|
-
coordinationValues: {
|
|
51
|
-
obsType: baseFileDef.coordinationValues.obsType,
|
|
52
|
-
},
|
|
53
|
-
}] : []),
|
|
54
|
-
// obsLocations
|
|
55
|
-
...(options.obsLocations ? [{
|
|
56
|
-
...baseFileDef,
|
|
57
|
-
fileType: FileType.OBS_LOCATIONS_ANNDATA_ZARR,
|
|
58
|
-
options: options.obsLocations,
|
|
59
|
-
coordinationValues: {
|
|
60
|
-
obsType: baseFileDef.coordinationValues.obsType,
|
|
61
|
-
},
|
|
62
|
-
}] : []),
|
|
63
|
-
// obsSegmentations
|
|
64
|
-
...(options.obsSegmentations ? [{
|
|
65
|
-
...baseFileDef,
|
|
66
|
-
fileType: FileType.OBS_SEGMENTATIONS_ANNDATA_ZARR,
|
|
67
|
-
options: options.obsSegmentations,
|
|
68
|
-
coordinationValues: {
|
|
69
|
-
obsType: baseFileDef.coordinationValues.obsType,
|
|
70
|
-
},
|
|
71
|
-
}] : []),
|
|
72
|
-
// obsEmbedding
|
|
73
|
-
// eslint-disable-next-line no-nested-ternary
|
|
74
|
-
...(options.obsEmbedding ? (
|
|
75
|
-
Array.isArray(options.obsEmbedding) ? options.obsEmbedding.map(oe => ({
|
|
76
|
-
// obsEmbedding was an array, process each element.
|
|
77
|
-
...baseFileDef,
|
|
78
|
-
fileType: FileType.OBS_EMBEDDING_ANNDATA_ZARR,
|
|
79
|
-
options: {
|
|
80
|
-
path: oe.path,
|
|
81
|
-
dims: oe.dims,
|
|
82
|
-
},
|
|
83
|
-
coordinationValues: {
|
|
84
|
-
obsType: baseFileDef.coordinationValues.obsType,
|
|
85
|
-
// Move embedding type property out of options and into coordinationValues.
|
|
86
|
-
embeddingType: oe.embeddingType,
|
|
87
|
-
},
|
|
88
|
-
})) : [{
|
|
89
|
-
// obsEmbedding was an object.
|
|
90
|
-
...baseFileDef,
|
|
91
|
-
fileType: FileType.OBS_EMBEDDING_ANNDATA_ZARR,
|
|
92
|
-
options: options.obsEmbedding,
|
|
93
|
-
coordinationValues: {
|
|
94
|
-
obsType: baseFileDef.coordinationValues.obsType,
|
|
95
|
-
embeddingType: baseFileDef.coordinationValues.embeddingType,
|
|
96
|
-
},
|
|
97
|
-
}]
|
|
98
|
-
) : []),
|
|
99
|
-
// obsLabels
|
|
100
|
-
// eslint-disable-next-line no-nested-ternary
|
|
101
|
-
...(options.obsLabels ? (
|
|
102
|
-
Array.isArray(options.obsLabels) ? options.obsLabels.map(ol => ({
|
|
103
|
-
// obsLabels was an array, process each element.
|
|
104
|
-
...baseFileDef,
|
|
105
|
-
fileType: FileType.OBS_LABELS_ANNDATA_ZARR,
|
|
106
|
-
options: {
|
|
107
|
-
path: ol.path,
|
|
108
|
-
},
|
|
109
|
-
coordinationValues: {
|
|
110
|
-
obsType: baseFileDef.coordinationValues.obsType,
|
|
111
|
-
// Move obsLabels type property out of options and into coordinationValues.
|
|
112
|
-
obsLabelsType: ol.obsLabelsType,
|
|
113
|
-
},
|
|
114
|
-
})) : [{
|
|
115
|
-
// obsLabels was an object.
|
|
116
|
-
...baseFileDef,
|
|
117
|
-
fileType: FileType.OBS_LABELS_ANNDATA_ZARR,
|
|
118
|
-
options: options.obsLabels,
|
|
119
|
-
coordinationValues: {
|
|
120
|
-
obsType: baseFileDef.coordinationValues.obsType,
|
|
121
|
-
obsLabelsType: baseFileDef.coordinationValues.obsLabelsType,
|
|
122
|
-
},
|
|
123
|
-
}]
|
|
124
|
-
) : []),
|
|
125
|
-
// featureLabels
|
|
126
|
-
// eslint-disable-next-line no-nested-ternary
|
|
127
|
-
...(options.featureLabels ? (
|
|
128
|
-
Array.isArray(options.featureLabels) ? options.featureLabels.map(fl => ({
|
|
129
|
-
// featureLabels was an array, process each element.
|
|
130
|
-
...baseFileDef,
|
|
131
|
-
fileType: FileType.FEATURE_LABELS_ANNDATA_ZARR,
|
|
132
|
-
options: {
|
|
133
|
-
path: fl.path,
|
|
134
|
-
},
|
|
135
|
-
coordinationValues: {
|
|
136
|
-
featureType: baseFileDef.coordinationValues.featureType,
|
|
137
|
-
// Move featureLabels type property out of options and into coordinationValues.
|
|
138
|
-
featureLabelsType: fl.featureLabelsType,
|
|
139
|
-
},
|
|
140
|
-
})) : [{
|
|
141
|
-
// featureLabels was an object.
|
|
142
|
-
...baseFileDef,
|
|
143
|
-
fileType: FileType.FEATURE_LABELS_ANNDATA_ZARR,
|
|
144
|
-
options: options.featureLabels,
|
|
145
|
-
coordinationValues: {
|
|
146
|
-
featureType: baseFileDef.coordinationValues.featureType,
|
|
147
|
-
featureLabelsType: baseFileDef.coordinationValues.featureLabelsType,
|
|
148
|
-
},
|
|
149
|
-
}]
|
|
150
|
-
) : []),
|
|
151
|
-
];
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Built-in joint file type
|
|
156
|
-
* expansion functions.
|
|
157
|
-
*/
|
|
158
|
-
export const JOINT_FILE_TYPES = {
|
|
159
|
-
[FileType.ANNDATA_ZARR]: expandAnndataZarr,
|
|
160
|
-
[FileType.ANNDATA_CELLS_ZARR]: expandAnndataCellsZarr,
|
|
161
|
-
[FileType.ANNDATA_CELL_SETS_ZARR]: expandAnndataCellSetsZarr,
|
|
162
|
-
[FileType.ANNDATA_EXPRESSION_MATRIX_ZARR]: expandAnndataExpressionMatrixZarr,
|
|
163
|
-
[FileType.EXPRESSION_MATRIX_ZARR]: expandExpressionMatrixZarr,
|
|
164
|
-
[FileType.RASTER_JSON]: expandRasterJson,
|
|
165
|
-
[FileType.RASTER_OME_ZARR]: expandRasterOmeZarr,
|
|
166
|
-
[FileType.CELL_SETS_JSON]: expandCellSetsJson,
|
|
167
|
-
[FileType.CLUSTERS_JSON]: expandClustersJson,
|
|
168
|
-
[FileType.GENES_JSON]: expandGenesJson,
|
|
169
|
-
[FileType.CELLS_JSON]: expandCellsJson,
|
|
170
|
-
[FileType.MOLECULES_JSON]: expandMoleculesJson,
|
|
171
|
-
};
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { FileType, FILE_TYPE_DATA_TYPE_MAPPING } from '@vitessce/constants-internal';
|
|
2
|
-
import {
|
|
3
|
-
JOINT_FILE_TYPES,
|
|
4
|
-
expandAnndataZarr,
|
|
5
|
-
} from './joint-file-types';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
describe('src/app/joint-file-types.js', () => {
|
|
9
|
-
describe('FileType-to-DataType mappings', () => {
|
|
10
|
-
it('every file type is mapped to either a data type or a joint file type expansion function', () => {
|
|
11
|
-
const fileTypes = Object.values(FileType).sort();
|
|
12
|
-
const mappedFileTypes = [
|
|
13
|
-
...Object.keys(FILE_TYPE_DATA_TYPE_MAPPING),
|
|
14
|
-
...Object.keys(JOINT_FILE_TYPES),
|
|
15
|
-
].sort();
|
|
16
|
-
expect(fileTypes.length).toEqual(mappedFileTypes.length);
|
|
17
|
-
expect(fileTypes).toEqual(mappedFileTypes);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
describe('expandAnndataZarr', () => {
|
|
21
|
-
it('fails to expand when there are no options', () => {
|
|
22
|
-
expect(() => expandAnndataZarr({
|
|
23
|
-
fileType: 'anndata.zarr',
|
|
24
|
-
url: 'http://localhost:8000/anndata.zarr',
|
|
25
|
-
})).toThrow();
|
|
26
|
-
});
|
|
27
|
-
it('expands when there is an obsEmbedding object', () => {
|
|
28
|
-
expect(expandAnndataZarr({
|
|
29
|
-
fileType: 'anndata.zarr',
|
|
30
|
-
url: 'http://localhost:8000/anndata.zarr',
|
|
31
|
-
options: {
|
|
32
|
-
obsLabels: {
|
|
33
|
-
path: 'obs/spot_name',
|
|
34
|
-
},
|
|
35
|
-
featureLabels: {
|
|
36
|
-
path: 'var/gene_symbol',
|
|
37
|
-
},
|
|
38
|
-
obsEmbedding: {
|
|
39
|
-
path: 'obsm/pca',
|
|
40
|
-
dims: [2, 4],
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
coordinationValues: {
|
|
44
|
-
obsType: 'spot',
|
|
45
|
-
featureType: 'transcript',
|
|
46
|
-
obsLabelsType: 'spotName',
|
|
47
|
-
featureLabelsType: 'geneSymbol',
|
|
48
|
-
embeddingType: 'PCA',
|
|
49
|
-
},
|
|
50
|
-
})).toEqual([
|
|
51
|
-
{
|
|
52
|
-
fileType: 'obsEmbedding.anndata.zarr',
|
|
53
|
-
url: 'http://localhost:8000/anndata.zarr',
|
|
54
|
-
options: {
|
|
55
|
-
path: 'obsm/pca',
|
|
56
|
-
dims: [2, 4],
|
|
57
|
-
},
|
|
58
|
-
coordinationValues: {
|
|
59
|
-
obsType: 'spot',
|
|
60
|
-
embeddingType: 'PCA',
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
fileType: 'obsLabels.anndata.zarr',
|
|
65
|
-
url: 'http://localhost:8000/anndata.zarr',
|
|
66
|
-
options: {
|
|
67
|
-
path: 'obs/spot_name',
|
|
68
|
-
},
|
|
69
|
-
coordinationValues: {
|
|
70
|
-
obsType: 'spot',
|
|
71
|
-
obsLabelsType: 'spotName',
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
fileType: 'featureLabels.anndata.zarr',
|
|
76
|
-
url: 'http://localhost:8000/anndata.zarr',
|
|
77
|
-
options: {
|
|
78
|
-
path: 'var/gene_symbol',
|
|
79
|
-
},
|
|
80
|
-
coordinationValues: {
|
|
81
|
-
featureType: 'transcript',
|
|
82
|
-
featureLabelsType: 'geneSymbol',
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
]);
|
|
86
|
-
});
|
|
87
|
-
it('expands when there is an obsEmbedding array of objects', () => {
|
|
88
|
-
expect(expandAnndataZarr({
|
|
89
|
-
fileType: 'anndata.zarr',
|
|
90
|
-
url: 'http://localhost:8000/anndata.zarr',
|
|
91
|
-
options: {
|
|
92
|
-
obsLocations: {
|
|
93
|
-
path: 'obsm/xy',
|
|
94
|
-
},
|
|
95
|
-
obsEmbedding: [
|
|
96
|
-
{
|
|
97
|
-
path: 'obsm/pca',
|
|
98
|
-
dims: [2, 4],
|
|
99
|
-
embeddingType: 'PCA',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
path: 'obsm/umap',
|
|
103
|
-
embeddingType: 'UMAP',
|
|
104
|
-
},
|
|
105
|
-
],
|
|
106
|
-
},
|
|
107
|
-
})).toEqual([
|
|
108
|
-
{
|
|
109
|
-
fileType: 'obsLocations.anndata.zarr',
|
|
110
|
-
url: 'http://localhost:8000/anndata.zarr',
|
|
111
|
-
options: {
|
|
112
|
-
path: 'obsm/xy',
|
|
113
|
-
},
|
|
114
|
-
coordinationValues: {
|
|
115
|
-
obsType: 'cell',
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
fileType: 'obsEmbedding.anndata.zarr',
|
|
120
|
-
url: 'http://localhost:8000/anndata.zarr',
|
|
121
|
-
options: {
|
|
122
|
-
path: 'obsm/pca',
|
|
123
|
-
dims: [2, 4],
|
|
124
|
-
},
|
|
125
|
-
coordinationValues: {
|
|
126
|
-
obsType: 'cell',
|
|
127
|
-
embeddingType: 'PCA',
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
fileType: 'obsEmbedding.anndata.zarr',
|
|
132
|
-
url: 'http://localhost:8000/anndata.zarr',
|
|
133
|
-
options: {
|
|
134
|
-
path: 'obsm/umap',
|
|
135
|
-
},
|
|
136
|
-
coordinationValues: {
|
|
137
|
-
obsType: 'cell',
|
|
138
|
-
embeddingType: 'UMAP',
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
]);
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
});
|
package/src/json-schemas.js
DELETED
package/src/plugins.js
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import { fromEntries } from '@vitessce/utils';
|
|
2
|
-
import {
|
|
3
|
-
FileType, CoordinationType,
|
|
4
|
-
FILE_TYPE_DATA_TYPE_MAPPING,
|
|
5
|
-
COMPONENT_COORDINATION_TYPES,
|
|
6
|
-
DEFAULT_COORDINATION_VALUES,
|
|
7
|
-
} from '@vitessce/constants-internal';
|
|
8
|
-
import { JOINT_FILE_TYPES } from './joint-file-types';
|
|
9
|
-
|
|
10
|
-
const PLUGINS_KEY = '__VITESSCE_PLUGINS__';
|
|
11
|
-
const PLUGIN_VIEW_TYPES_KEY = 'viewTypes';
|
|
12
|
-
const PLUGIN_COORDINATION_TYPES_KEY = 'coordinationTypes';
|
|
13
|
-
const PLUGIN_COORDINATION_TYPES_PER_VIEW_KEY = 'coordinationTypesPerView';
|
|
14
|
-
const PLUGIN_FILE_TYPES_KEY = 'fileTypes';
|
|
15
|
-
const PLUGIN_FILE_TYPE_DATA_TYPE_MAPPING_KEY = 'fileTypeDataTypeMapping';
|
|
16
|
-
const PLUGIN_JOINT_FILE_TYPES_KEY = 'jointFileTypes';
|
|
17
|
-
|
|
18
|
-
window[PLUGINS_KEY] = {};
|
|
19
|
-
const PLUGINS = window[PLUGINS_KEY];
|
|
20
|
-
|
|
21
|
-
// Reference: https://github.com/higlass/higlass-register/blob/master/src/index.js
|
|
22
|
-
PLUGINS[PLUGIN_VIEW_TYPES_KEY] = PLUGINS[PLUGIN_VIEW_TYPES_KEY] || {};
|
|
23
|
-
PLUGINS[PLUGIN_COORDINATION_TYPES_KEY] = PLUGINS[PLUGIN_COORDINATION_TYPES_KEY] || {};
|
|
24
|
-
PLUGINS[PLUGIN_COORDINATION_TYPES_PER_VIEW_KEY] = (
|
|
25
|
-
PLUGINS[PLUGIN_COORDINATION_TYPES_PER_VIEW_KEY] || {}
|
|
26
|
-
);
|
|
27
|
-
PLUGINS[PLUGIN_FILE_TYPES_KEY] = PLUGINS[PLUGIN_FILE_TYPES_KEY] || {};
|
|
28
|
-
PLUGINS[PLUGIN_FILE_TYPE_DATA_TYPE_MAPPING_KEY] = (
|
|
29
|
-
PLUGINS[PLUGIN_FILE_TYPE_DATA_TYPE_MAPPING_KEY] || {}
|
|
30
|
-
);
|
|
31
|
-
PLUGINS[PLUGIN_JOINT_FILE_TYPES_KEY] = PLUGINS[PLUGIN_JOINT_FILE_TYPES_KEY] || {};
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Register a new coordination type.
|
|
35
|
-
* @param {string} typeName Name for the new coordination type.
|
|
36
|
-
* @param {*} defaultValue A default value for the coordination type.
|
|
37
|
-
*/
|
|
38
|
-
export function registerPluginCoordinationType(typeName, defaultValue) {
|
|
39
|
-
PLUGINS[PLUGIN_COORDINATION_TYPES_KEY][typeName] = defaultValue;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Register a new view type.
|
|
44
|
-
* @param {string} viewType A name
|
|
45
|
-
* @param {function} viewSubscriberReactComponent A react component.
|
|
46
|
-
* @param {string[]} coordinationTypes A list of coordination types that this view supports.
|
|
47
|
-
*/
|
|
48
|
-
export function registerPluginViewType(viewType, viewSubscriberReactComponent, coordinationTypes) {
|
|
49
|
-
PLUGINS[PLUGIN_VIEW_TYPES_KEY][viewType] = viewSubscriberReactComponent;
|
|
50
|
-
// Register the supported coordination types.
|
|
51
|
-
const pluginTypesPerView = PLUGINS[PLUGIN_COORDINATION_TYPES_PER_VIEW_KEY];
|
|
52
|
-
if (Array.isArray(pluginTypesPerView[viewType])) {
|
|
53
|
-
coordinationTypes.forEach((coordinationType) => {
|
|
54
|
-
if (!pluginTypesPerView[viewType].includes(coordinationType)) {
|
|
55
|
-
pluginTypesPerView[viewType].push(coordinationType);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
} else {
|
|
59
|
-
pluginTypesPerView[viewType] = coordinationTypes;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Register a new file type.
|
|
65
|
-
* @param {string} fileTypeName Name for the new file type.
|
|
66
|
-
* @param {string} dataTypeName Name for the data type associated with the file type.
|
|
67
|
-
* @param {class} dataSourceClass Data source class definition.
|
|
68
|
-
* @param {class} dataLoaderClass Data loader class definition.
|
|
69
|
-
*/
|
|
70
|
-
export function registerPluginFileType(
|
|
71
|
-
// eslint-disable-next-line no-unused-vars
|
|
72
|
-
fileTypeName, dataTypeName, dataLoaderClass, dataSourceClass,
|
|
73
|
-
) {
|
|
74
|
-
PLUGINS[PLUGIN_FILE_TYPES_KEY][fileTypeName] = [dataSourceClass, dataLoaderClass];
|
|
75
|
-
PLUGINS[PLUGIN_FILE_TYPE_DATA_TYPE_MAPPING_KEY][fileTypeName] = dataTypeName;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Register a new joint file type.
|
|
80
|
-
* @param {string} fileTypeName Name for the new file type.
|
|
81
|
-
* @param {function} expansionFunction The joint file type expansion function.
|
|
82
|
-
* Should take in a single file definition and return an array of
|
|
83
|
-
* file definitions with valid atomic fileType values.
|
|
84
|
-
*/
|
|
85
|
-
export function registerPluginJointFileType(
|
|
86
|
-
// eslint-disable-next-line no-unused-vars
|
|
87
|
-
fileTypeName, expansionFunction,
|
|
88
|
-
) {
|
|
89
|
-
PLUGINS[PLUGIN_JOINT_FILE_TYPES_KEY][fileTypeName] = expansionFunction;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
// Plugin getter functions.
|
|
94
|
-
|
|
95
|
-
export function getPluginViewTypes() {
|
|
96
|
-
return Object.keys(PLUGINS[PLUGIN_VIEW_TYPES_KEY]);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export function getPluginViewType(viewType) {
|
|
100
|
-
return PLUGINS[PLUGIN_VIEW_TYPES_KEY][viewType];
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export function getPluginCoordinationTypes() {
|
|
104
|
-
return Object.keys(PLUGINS[PLUGIN_COORDINATION_TYPES_KEY]);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export function getPluginCoordinationTypeDefaults() {
|
|
108
|
-
return PLUGINS[PLUGIN_COORDINATION_TYPES_KEY];
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export function getPluginCoordinationTypesForViewType(viewType) {
|
|
112
|
-
if (Array.isArray(PLUGINS[PLUGIN_COORDINATION_TYPES_PER_VIEW_KEY][viewType])) {
|
|
113
|
-
return PLUGINS[PLUGIN_COORDINATION_TYPES_PER_VIEW_KEY][viewType];
|
|
114
|
-
}
|
|
115
|
-
return [];
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export function getPluginFileTypes() {
|
|
119
|
-
return Object.keys(PLUGINS[PLUGIN_FILE_TYPES_KEY]);
|
|
120
|
-
}
|
|
121
|
-
export function getPluginConvenienceFileTypes() {
|
|
122
|
-
return Object.keys(PLUGINS[PLUGIN_JOINT_FILE_TYPES_KEY]);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export function getDataTypeForPluginFileType(fileType) {
|
|
126
|
-
return PLUGINS[PLUGIN_FILE_TYPE_DATA_TYPE_MAPPING_KEY][fileType];
|
|
127
|
-
}
|
|
128
|
-
export function getLoaderClassesForPluginFileType(fileType) {
|
|
129
|
-
return PLUGINS[PLUGIN_FILE_TYPES_KEY][fileType];
|
|
130
|
-
}
|
|
131
|
-
export function getExpansionFunctionForPluginConvenienceFileType(fileType) {
|
|
132
|
-
return PLUGINS[PLUGIN_JOINT_FILE_TYPES_KEY][fileType];
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// Getters that depend on plugins.
|
|
136
|
-
export function getFileTypes() {
|
|
137
|
-
return [
|
|
138
|
-
...Object.values(FileType),
|
|
139
|
-
...getPluginFileTypes(),
|
|
140
|
-
];
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export function getCoordinationTypes() {
|
|
144
|
-
return [
|
|
145
|
-
...Object.values(CoordinationType),
|
|
146
|
-
...getPluginCoordinationTypes(),
|
|
147
|
-
];
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// Need to do this in a function since the plugin coordination
|
|
151
|
-
// types are dynamic.
|
|
152
|
-
export function getDefaultCoordinationValues() {
|
|
153
|
-
return {
|
|
154
|
-
...DEFAULT_COORDINATION_VALUES,
|
|
155
|
-
...getPluginCoordinationTypeDefaults(),
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// Need to do this in a function since the plugin coordination
|
|
160
|
-
// types are dynamic.
|
|
161
|
-
export function getComponentCoordinationTypes() {
|
|
162
|
-
return {
|
|
163
|
-
...COMPONENT_COORDINATION_TYPES,
|
|
164
|
-
...fromEntries(getPluginViewTypes().map(viewType => ([
|
|
165
|
-
viewType,
|
|
166
|
-
getPluginCoordinationTypesForViewType(viewType),
|
|
167
|
-
]))),
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
export function getFileTypeDataTypeMapping() {
|
|
172
|
-
return {
|
|
173
|
-
...FILE_TYPE_DATA_TYPE_MAPPING,
|
|
174
|
-
...fromEntries(getPluginFileTypes().map(fileType => ([
|
|
175
|
-
fileType,
|
|
176
|
-
getDataTypeForPluginFileType(fileType),
|
|
177
|
-
]))),
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
export function getJointFileTypes() {
|
|
182
|
-
return {
|
|
183
|
-
...JOINT_FILE_TYPES,
|
|
184
|
-
...PLUGINS[PLUGIN_JOINT_FILE_TYPES_KEY],
|
|
185
|
-
};
|
|
186
|
-
}
|
package/src/plugins.test.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/* eslint-disable camelcase */
|
|
2
|
-
import {
|
|
3
|
-
registerPluginFileType,
|
|
4
|
-
registerPluginJointFileType,
|
|
5
|
-
getFileTypeDataTypeMapping,
|
|
6
|
-
getJointFileTypes,
|
|
7
|
-
} from './plugins';
|
|
8
|
-
import {
|
|
9
|
-
convenienceFileDefsCollapsed,
|
|
10
|
-
convenienceFileDefsExpanded,
|
|
11
|
-
pluginExpandAnnDataConvenience,
|
|
12
|
-
} from './plugins.test.fixtures';
|
|
13
|
-
import {
|
|
14
|
-
initialize,
|
|
15
|
-
} from './view-config-utils';
|
|
16
|
-
|
|
17
|
-
describe('src/app/plugins.js', () => {
|
|
18
|
-
describe('getFileTypeDataTypeMapping', () => {
|
|
19
|
-
it('returns the correct data type for built-in file types', () => {
|
|
20
|
-
const dataType = getFileTypeDataTypeMapping()['image.raster.json'];
|
|
21
|
-
expect(dataType).toEqual('image');
|
|
22
|
-
});
|
|
23
|
-
it('returns the correct data type for plugin file types', () => {
|
|
24
|
-
registerPluginFileType('plugin-cells.json', 'cells', null, null);
|
|
25
|
-
const dataType = getFileTypeDataTypeMapping()['plugin-cells.json'];
|
|
26
|
-
expect(dataType).toEqual('cells');
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
describe('convenience file types', () => {
|
|
30
|
-
it('registers plugin convenience file types', () => {
|
|
31
|
-
registerPluginJointFileType('anndata.convenience.zarr', pluginExpandAnnDataConvenience);
|
|
32
|
-
const expansionFuncs = getJointFileTypes();
|
|
33
|
-
expect(Object.keys(expansionFuncs).includes('anndata.convenience.zarr')).toBeTruthy();
|
|
34
|
-
expect(typeof expansionFuncs['anndata.convenience.zarr']).toEqual('function');
|
|
35
|
-
});
|
|
36
|
-
it('uses plugin convenience file types in view config initialization', () => {
|
|
37
|
-
registerPluginJointFileType('anndata.convenience.zarr', pluginExpandAnnDataConvenience);
|
|
38
|
-
expect(initialize(convenienceFileDefsCollapsed).datasets)
|
|
39
|
-
.toEqual(convenienceFileDefsExpanded.datasets);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
});
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://github.com/vitessce/vitessce/#dataset",
|
|
4
|
-
"title": "Vitessce data set",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"definitions": {
|
|
7
|
-
"components": {
|
|
8
|
-
"type": "array",
|
|
9
|
-
"items": {
|
|
10
|
-
"type": "object",
|
|
11
|
-
"additionalProperties": false,
|
|
12
|
-
"required": ["component", "x", "y"],
|
|
13
|
-
"properties": {
|
|
14
|
-
"component": { "type": "string" },
|
|
15
|
-
"props": { "type": "object" },
|
|
16
|
-
"x": { "type": "integer" },
|
|
17
|
-
"y": { "type": "integer" },
|
|
18
|
-
"w": { "type": "integer" },
|
|
19
|
-
"h": { "type": "integer" }
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
"requestInit": {
|
|
24
|
-
"type": "object",
|
|
25
|
-
"additionalProperties": false,
|
|
26
|
-
"required": [],
|
|
27
|
-
"properties": {
|
|
28
|
-
"method": {
|
|
29
|
-
"type": "string"
|
|
30
|
-
},
|
|
31
|
-
"headers": {
|
|
32
|
-
"type": "object"
|
|
33
|
-
},
|
|
34
|
-
"body": {
|
|
35
|
-
"type": "string"
|
|
36
|
-
},
|
|
37
|
-
"mode": {
|
|
38
|
-
"type": "string"
|
|
39
|
-
},
|
|
40
|
-
"credentials": {
|
|
41
|
-
"type": "string"
|
|
42
|
-
},
|
|
43
|
-
"cache": {
|
|
44
|
-
"type": "string"
|
|
45
|
-
},
|
|
46
|
-
"redirect": {
|
|
47
|
-
"type": "string"
|
|
48
|
-
},
|
|
49
|
-
"referrer": {
|
|
50
|
-
"type": "string"
|
|
51
|
-
},
|
|
52
|
-
"integrity": {
|
|
53
|
-
"type": "string"
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
"additionalProperties": false,
|
|
59
|
-
"required": ["version", "name", "layers"],
|
|
60
|
-
"properties": {
|
|
61
|
-
"name": { "type": "string" },
|
|
62
|
-
"public": { "type": "boolean" },
|
|
63
|
-
"description": { "type": "string" },
|
|
64
|
-
"layers": {
|
|
65
|
-
"type": "array",
|
|
66
|
-
"items": {
|
|
67
|
-
"type": "object",
|
|
68
|
-
"additionalProperties": false,
|
|
69
|
-
"required": ["name", "type", "fileType", "url"],
|
|
70
|
-
"properties": {
|
|
71
|
-
"name": { "type": "string" },
|
|
72
|
-
"type": { "type": "string" },
|
|
73
|
-
"fileType": { "type": "string" },
|
|
74
|
-
"url": { "type": "string" },
|
|
75
|
-
"requestInit": { "$ref": "#/definitions/requestInit" }
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
"staticLayout": { "$ref": "#/definitions/components" },
|
|
80
|
-
"version": {
|
|
81
|
-
"type": "string", "enum": ["0.1.0"]
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|