@jbrowse/plugin-config 1.7.11 → 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.
- package/dist/ConfigurationEditorWidget/components/CallbackEditor.d.ts +10 -7
- package/dist/ConfigurationEditorWidget/components/CallbackEditor.js +117 -115
- package/dist/ConfigurationEditorWidget/components/CallbackEditor.js.map +1 -0
- package/dist/ConfigurationEditorWidget/components/ColorEditor.d.ts +9 -33
- package/dist/ConfigurationEditorWidget/components/ColorEditor.js +68 -117
- package/dist/ConfigurationEditorWidget/components/ColorEditor.js.map +1 -0
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.d.ts +7 -3
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.js +117 -160
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.js.map +1 -0
- package/dist/ConfigurationEditorWidget/components/JsonEditor.d.ts +9 -7
- package/dist/ConfigurationEditorWidget/components/JsonEditor.js +92 -77
- package/dist/ConfigurationEditorWidget/components/JsonEditor.js.map +1 -0
- package/dist/ConfigurationEditorWidget/components/SlotEditor.d.ts +17 -5
- package/dist/ConfigurationEditorWidget/components/SlotEditor.js +240 -374
- package/dist/ConfigurationEditorWidget/components/SlotEditor.js.map +1 -0
- package/dist/ConfigurationEditorWidget/components/StringArrayEditor.js +76 -105
- package/dist/ConfigurationEditorWidget/components/StringArrayEditor.js.map +1 -0
- package/dist/ConfigurationEditorWidget/components/TypeSelector.d.ts +8 -6
- package/dist/ConfigurationEditorWidget/components/TypeSelector.js +16 -46
- package/dist/ConfigurationEditorWidget/components/TypeSelector.js.map +1 -0
- package/dist/ConfigurationEditorWidget/index.d.ts +10 -3
- package/dist/ConfigurationEditorWidget/index.js +26 -42
- package/dist/ConfigurationEditorWidget/index.js.map +1 -0
- package/dist/ConfigurationEditorWidget/model.d.ts +3 -2
- package/dist/ConfigurationEditorWidget/model.js +19 -26
- package/dist/ConfigurationEditorWidget/model.js.map +1 -0
- package/dist/FromConfigAdapter/FromConfigAdapter.js +172 -204
- package/dist/FromConfigAdapter/FromConfigAdapter.js.map +1 -0
- package/dist/FromConfigAdapter/FromConfigRegionsAdapter.js +151 -142
- package/dist/FromConfigAdapter/FromConfigRegionsAdapter.js.map +1 -0
- package/dist/FromConfigAdapter/FromConfigSequenceAdapter.d.ts +2 -1
- package/dist/FromConfigAdapter/FromConfigSequenceAdapter.js +174 -181
- package/dist/FromConfigAdapter/FromConfigSequenceAdapter.js.map +1 -0
- package/dist/FromConfigAdapter/configSchema.js +33 -49
- package/dist/FromConfigAdapter/configSchema.js.map +1 -0
- package/dist/FromConfigAdapter/index.js +16 -50
- package/dist/FromConfigAdapter/index.js.map +1 -0
- package/dist/RefNameAliasAdapter/RefNameAliasAdapter.js +111 -125
- package/dist/RefNameAliasAdapter/RefNameAliasAdapter.js.map +1 -0
- package/dist/RefNameAliasAdapter/configSchema.js +16 -25
- package/dist/RefNameAliasAdapter/configSchema.js.map +1 -0
- package/dist/RefNameAliasAdapter/index.js +10 -22
- package/dist/RefNameAliasAdapter/index.js.map +1 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.js +129 -144
- package/dist/index.js.map +1 -0
- package/esm/ConfigurationEditorWidget/components/CallbackEditor.d.ts +12 -0
- package/esm/ConfigurationEditorWidget/components/CallbackEditor.js +80 -0
- package/esm/ConfigurationEditorWidget/components/CallbackEditor.js.map +1 -0
- package/esm/ConfigurationEditorWidget/components/ColorEditor.d.ts +20 -0
- package/esm/ConfigurationEditorWidget/components/ColorEditor.js +22 -0
- package/esm/ConfigurationEditorWidget/components/ColorEditor.js.map +1 -0
- package/esm/ConfigurationEditorWidget/components/ConfigurationEditor.d.ts +8 -0
- package/esm/ConfigurationEditorWidget/components/ConfigurationEditor.js +87 -0
- package/esm/ConfigurationEditorWidget/components/ConfigurationEditor.js.map +1 -0
- package/esm/ConfigurationEditorWidget/components/JsonEditor.d.ts +11 -0
- package/esm/ConfigurationEditorWidget/components/JsonEditor.js +55 -0
- package/esm/ConfigurationEditorWidget/components/JsonEditor.js.map +1 -0
- package/esm/ConfigurationEditorWidget/components/SlotEditor.d.ts +18 -0
- package/esm/ConfigurationEditorWidget/components/SlotEditor.js +182 -0
- package/esm/ConfigurationEditorWidget/components/SlotEditor.js.map +1 -0
- package/esm/ConfigurationEditorWidget/components/StringArrayEditor.d.ts +12 -0
- package/esm/ConfigurationEditorWidget/components/StringArrayEditor.js +36 -0
- package/esm/ConfigurationEditorWidget/components/StringArrayEditor.js.map +1 -0
- package/esm/ConfigurationEditorWidget/components/TypeSelector.d.ts +9 -0
- package/esm/ConfigurationEditorWidget/components/TypeSelector.js +12 -0
- package/esm/ConfigurationEditorWidget/components/TypeSelector.js.map +1 -0
- package/esm/ConfigurationEditorWidget/index.d.ts +10 -0
- package/esm/ConfigurationEditorWidget/index.js +21 -0
- package/esm/ConfigurationEditorWidget/index.js.map +1 -0
- package/esm/ConfigurationEditorWidget/model.d.ts +9 -0
- package/esm/ConfigurationEditorWidget/model.js +17 -0
- package/esm/ConfigurationEditorWidget/model.js.map +1 -0
- package/esm/FromConfigAdapter/FromConfigAdapter.d.ts +24 -0
- package/esm/FromConfigAdapter/FromConfigAdapter.js +63 -0
- package/esm/FromConfigAdapter/FromConfigAdapter.js.map +1 -0
- package/esm/FromConfigAdapter/FromConfigRegionsAdapter.d.ts +23 -0
- package/esm/FromConfigAdapter/FromConfigRegionsAdapter.js +50 -0
- package/esm/FromConfigAdapter/FromConfigRegionsAdapter.js.map +1 -0
- package/esm/FromConfigAdapter/FromConfigSequenceAdapter.d.ts +26 -0
- package/esm/FromConfigAdapter/FromConfigSequenceAdapter.js +65 -0
- package/esm/FromConfigAdapter/FromConfigSequenceAdapter.js.map +1 -0
- package/esm/FromConfigAdapter/configSchema.d.ts +3 -0
- package/esm/FromConfigAdapter/configSchema.js +32 -0
- package/esm/FromConfigAdapter/configSchema.js.map +1 -0
- package/esm/FromConfigAdapter/index.d.ts +4 -0
- package/esm/FromConfigAdapter/index.js +5 -0
- package/esm/FromConfigAdapter/index.js.map +1 -0
- package/esm/RefNameAliasAdapter/RefNameAliasAdapter.d.ts +8 -0
- package/esm/RefNameAliasAdapter/RefNameAliasAdapter.js +24 -0
- package/esm/RefNameAliasAdapter/RefNameAliasAdapter.js.map +1 -0
- package/esm/RefNameAliasAdapter/configSchema.d.ts +2 -0
- package/esm/RefNameAliasAdapter/configSchema.js +15 -0
- package/esm/RefNameAliasAdapter/configSchema.js.map +1 -0
- package/esm/RefNameAliasAdapter/index.d.ts +2 -0
- package/esm/RefNameAliasAdapter/index.js +3 -0
- package/esm/RefNameAliasAdapter/index.js.map +1 -0
- package/esm/index.d.ts +18 -0
- package/esm/index.js +72 -0
- package/esm/index.js.map +1 -0
- package/package.json +21 -15
- package/src/ConfigurationEditorWidget/components/CallbackEditor.tsx +126 -0
- package/src/ConfigurationEditorWidget/components/ColorEditor.tsx +13 -60
- package/src/ConfigurationEditorWidget/components/{ConfigurationEditor.test.js → ConfigurationEditor.test.tsx} +0 -0
- package/src/ConfigurationEditorWidget/components/ConfigurationEditor.tsx +173 -0
- package/src/ConfigurationEditorWidget/components/JsonEditor.tsx +84 -0
- package/src/ConfigurationEditorWidget/components/SlotEditor.tsx +484 -0
- package/src/ConfigurationEditorWidget/components/StringArrayEditor.tsx +2 -2
- package/src/ConfigurationEditorWidget/components/{TypeSelector.js → TypeSelector.tsx} +15 -7
- package/src/ConfigurationEditorWidget/components/__snapshots__/ConfigurationEditor.test.tsx.snap +2024 -0
- package/src/ConfigurationEditorWidget/index.tsx +25 -0
- package/src/ConfigurationEditorWidget/{model.js → model.ts} +4 -2
- package/src/FromConfigAdapter/FromConfigSequenceAdapter.ts +6 -10
- package/src/index.ts +20 -14
- package/dist/ConfigurationEditorWidget/components/CodeEditor.d.ts +0 -4
- package/dist/ConfigurationEditorWidget/components/CodeEditor.js +0 -80
- package/dist/ConfigurationEditorWidget/components/ColorEditor.test.js +0 -31
- package/dist/ConfigurationEditorWidget/components/ColorPicker.d.ts +0 -14
- package/dist/ConfigurationEditorWidget/components/ColorPicker.js +0 -72
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.test.js +0 -121
- package/dist/FromConfigAdapter/FromConfigAdapter.test.js +0 -100
- package/dist/FromConfigAdapter/FromConfigRegionsAdapter.test.js +0 -200
- package/dist/FromConfigAdapter/FromConfigSequenceAdapter.test.js +0 -110
- package/dist/RefNameAliasAdapter/RefNameAliasAdapter.test.js +0 -41
- package/dist/index.test.js +0 -41
- package/src/ConfigurationEditorWidget/components/CallbackEditor.js +0 -112
- package/src/ConfigurationEditorWidget/components/CodeEditor.js +0 -60
- package/src/ConfigurationEditorWidget/components/ColorPicker.tsx +0 -52
- package/src/ConfigurationEditorWidget/components/ConfigurationEditor.js +0 -154
- package/src/ConfigurationEditorWidget/components/JsonEditor.js +0 -56
- package/src/ConfigurationEditorWidget/components/SlotEditor.js +0 -377
- package/src/ConfigurationEditorWidget/components/__snapshots__/ConfigurationEditor.test.js.snap +0 -1753
- package/src/ConfigurationEditorWidget/index.js +0 -20
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { observer } from 'mobx-react'
|
|
3
|
+
import { isStateTreeNode, getType } from 'mobx-state-tree'
|
|
4
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
5
|
+
|
|
6
|
+
export { default as stateModelFactory } from './model'
|
|
7
|
+
export const configSchema = ConfigurationSchema('ConfigurationEditorWidget', {})
|
|
8
|
+
export const HeadingComponent = observer(
|
|
9
|
+
({ model }: { model?: { target: { type: string } } }) => {
|
|
10
|
+
if (model?.target) {
|
|
11
|
+
if (model.target.type) {
|
|
12
|
+
return <>{`${model.target.type} settings`}</>
|
|
13
|
+
}
|
|
14
|
+
if (isStateTreeNode(model.target)) {
|
|
15
|
+
const type = getType(model.target)
|
|
16
|
+
if (type?.name) {
|
|
17
|
+
return (
|
|
18
|
+
<>{`${type.name.replace('ConfigurationSchema', '')} settings`}</>
|
|
19
|
+
)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return <>Settings</>
|
|
24
|
+
},
|
|
25
|
+
)
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { types } from 'mobx-state-tree'
|
|
2
2
|
import { ElementId } from '@jbrowse/core/util/types/mst'
|
|
3
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
3
4
|
|
|
4
|
-
export default pluginManager =>
|
|
5
|
+
export default (pluginManager: PluginManager) =>
|
|
5
6
|
types
|
|
6
7
|
.model('ConfigurationEditorWidget', {
|
|
7
8
|
id: ElementId,
|
|
@@ -13,7 +14,8 @@ export default pluginManager =>
|
|
|
13
14
|
),
|
|
14
15
|
})
|
|
15
16
|
.actions(self => ({
|
|
16
|
-
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
setTarget(newTarget: any) {
|
|
17
19
|
self.target = newTarget
|
|
18
20
|
},
|
|
19
21
|
}))
|
|
@@ -3,24 +3,20 @@ import { ObservableCreate } from '@jbrowse/core/util/rxjs'
|
|
|
3
3
|
import { NoAssemblyRegion } from '@jbrowse/core/util/types'
|
|
4
4
|
import { toArray } from 'rxjs/operators'
|
|
5
5
|
import FromConfigAdapter from './FromConfigAdapter'
|
|
6
|
+
import { RegionsAdapter } from '@jbrowse/core/data_adapters/BaseAdapter'
|
|
6
7
|
|
|
7
|
-
export default class FromConfigSequenceAdapter
|
|
8
|
+
export default class FromConfigSequenceAdapter
|
|
9
|
+
extends FromConfigAdapter
|
|
10
|
+
implements RegionsAdapter
|
|
11
|
+
{
|
|
8
12
|
/**
|
|
9
13
|
* Fetch features for a certain region
|
|
10
14
|
* @param region - Region
|
|
11
15
|
* @returns Observable of Feature objects in the region
|
|
12
16
|
*/
|
|
13
17
|
getFeatures(region: NoAssemblyRegion) {
|
|
14
|
-
// TODO: restore commented version below once TSDX supports Rollup v2
|
|
15
|
-
// xref: https://github.com/rollup/rollup/blob/master/CHANGELOG.md#bug-fixes-45
|
|
16
|
-
// return ObservableCreate<Feature>(async observer => {
|
|
17
|
-
// const feats = await super.getFeatures(region).pipe(toArray()).toPromise()
|
|
18
|
-
const superGetFeatures = super.getFeatures
|
|
19
18
|
return ObservableCreate<Feature>(async observer => {
|
|
20
|
-
const feats = await
|
|
21
|
-
.call(this, region)
|
|
22
|
-
.pipe(toArray())
|
|
23
|
-
.toPromise()
|
|
19
|
+
const feats = await super.getFeatures(region).pipe(toArray()).toPromise()
|
|
24
20
|
const feat = feats[0]
|
|
25
21
|
observer.next(
|
|
26
22
|
new SimpleFeature({
|
package/src/index.ts
CHANGED
|
@@ -9,19 +9,13 @@ import {
|
|
|
9
9
|
stateModelFactory as ConfigurationEditorStateModelFactory,
|
|
10
10
|
} from './ConfigurationEditorWidget'
|
|
11
11
|
import {
|
|
12
|
-
AdapterClass as FromConfigAdapterClass,
|
|
13
|
-
RegionsAdapterClass as FromConfigRegionsAdapterClass,
|
|
14
|
-
SequenceAdapterClass as FromConfigSequenceAdapterClass,
|
|
15
12
|
configSchema as fromConfigAdapterConfigSchema,
|
|
16
13
|
regionsConfigSchema as fromConfigRegionsAdapterConfigSchema,
|
|
17
14
|
sequenceConfigSchema as fromConfigSequenceAdapterConfigSchema,
|
|
18
15
|
} from './FromConfigAdapter'
|
|
19
|
-
import {
|
|
20
|
-
AdapterClass as RefNameAliasAdapterClass,
|
|
21
|
-
configSchema as refNameAliasAdapterConfigSchema,
|
|
22
|
-
} from './RefNameAliasAdapter'
|
|
16
|
+
import { configSchema as refNameAliasAdapterConfigSchema } from './RefNameAliasAdapter'
|
|
23
17
|
|
|
24
|
-
const
|
|
18
|
+
const LazyConfigurationEditorComponent = lazy(
|
|
25
19
|
() => import('./ConfigurationEditorWidget/components/ConfigurationEditor'),
|
|
26
20
|
)
|
|
27
21
|
|
|
@@ -34,7 +28,10 @@ export default class extends Plugin {
|
|
|
34
28
|
new AdapterType({
|
|
35
29
|
name: 'FromConfigAdapter',
|
|
36
30
|
configSchema: fromConfigAdapterConfigSchema,
|
|
37
|
-
|
|
31
|
+
getAdapterClass: () =>
|
|
32
|
+
import('./FromConfigAdapter/FromConfigAdapter').then(
|
|
33
|
+
r => r.default,
|
|
34
|
+
),
|
|
38
35
|
adapterMetadata: {
|
|
39
36
|
category: null,
|
|
40
37
|
hiddenFromGUI: true,
|
|
@@ -48,7 +45,10 @@ export default class extends Plugin {
|
|
|
48
45
|
new AdapterType({
|
|
49
46
|
name: 'FromConfigRegionsAdapter',
|
|
50
47
|
configSchema: fromConfigRegionsAdapterConfigSchema,
|
|
51
|
-
|
|
48
|
+
getAdapterClass: () =>
|
|
49
|
+
import('./FromConfigAdapter/FromConfigRegionsAdapter').then(
|
|
50
|
+
r => r.default,
|
|
51
|
+
),
|
|
52
52
|
adapterMetadata: {
|
|
53
53
|
category: null,
|
|
54
54
|
hiddenFromGUI: true,
|
|
@@ -62,7 +62,10 @@ export default class extends Plugin {
|
|
|
62
62
|
new AdapterType({
|
|
63
63
|
name: 'FromConfigSequenceAdapter',
|
|
64
64
|
configSchema: fromConfigSequenceAdapterConfigSchema,
|
|
65
|
-
|
|
65
|
+
getAdapterClass: () =>
|
|
66
|
+
import('./FromConfigAdapter/FromConfigSequenceAdapter').then(
|
|
67
|
+
r => r.default,
|
|
68
|
+
),
|
|
66
69
|
adapterMetadata: {
|
|
67
70
|
category: null,
|
|
68
71
|
hiddenFromGUI: true,
|
|
@@ -76,7 +79,10 @@ export default class extends Plugin {
|
|
|
76
79
|
new AdapterType({
|
|
77
80
|
name: 'RefNameAliasAdapter',
|
|
78
81
|
configSchema: refNameAliasAdapterConfigSchema,
|
|
79
|
-
|
|
82
|
+
getAdapterClass: () =>
|
|
83
|
+
import('./RefNameAliasAdapter/RefNameAliasAdapter').then(
|
|
84
|
+
r => r.default,
|
|
85
|
+
),
|
|
80
86
|
adapterMetadata: {
|
|
81
87
|
category: null,
|
|
82
88
|
hiddenFromGUI: true,
|
|
@@ -92,7 +98,7 @@ export default class extends Plugin {
|
|
|
92
98
|
HeadingComponent: ConfigurationEditorHeadingComponent,
|
|
93
99
|
configSchema: ConfigurationEditorConfigSchema,
|
|
94
100
|
stateModel: ConfigurationEditorStateModelFactory(pluginManager),
|
|
95
|
-
ReactComponent:
|
|
101
|
+
ReactComponent: LazyConfigurationEditorComponent,
|
|
96
102
|
})
|
|
97
103
|
})
|
|
98
104
|
}
|
|
@@ -100,4 +106,4 @@ export default class extends Plugin {
|
|
|
100
106
|
|
|
101
107
|
export { default as JsonEditor } from './ConfigurationEditorWidget/components/JsonEditor'
|
|
102
108
|
|
|
103
|
-
export {
|
|
109
|
+
export { LazyConfigurationEditorComponent as ConfigurationEditor }
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.default = CodeEditor;
|
|
11
|
-
|
|
12
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
|
-
var _reactSimpleCodeEditor = _interopRequireDefault(require("react-simple-code-editor"));
|
|
15
|
-
|
|
16
|
-
var _reactSyntaxHighlighter = require("react-syntax-highlighter");
|
|
17
|
-
|
|
18
|
-
var _json = _interopRequireDefault(require("react-syntax-highlighter/dist/cjs/languages/hljs/json"));
|
|
19
|
-
|
|
20
|
-
var _a11yDark = _interopRequireDefault(require("react-syntax-highlighter/dist/cjs/styles/hljs/a11y-dark"));
|
|
21
|
-
|
|
22
|
-
var _a11yLight = _interopRequireDefault(require("react-syntax-highlighter/dist/cjs/styles/hljs/a11y-light"));
|
|
23
|
-
|
|
24
|
-
var _core = require("@material-ui/core");
|
|
25
|
-
|
|
26
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
-
|
|
28
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
-
|
|
30
|
-
// fontSize and fontFamily have to match between Editor and SyntaxHighlighter
|
|
31
|
-
var fontSize = '12px'; // Optimize by using system default fonts: https://css-tricks.com/snippets/css/font-stacks/
|
|
32
|
-
|
|
33
|
-
var fontFamily = 'Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace';
|
|
34
|
-
var useStyles = (0, _core.makeStyles)(function (theme) {
|
|
35
|
-
return {
|
|
36
|
-
callbackEditor: {
|
|
37
|
-
fontFamily: fontFamily,
|
|
38
|
-
fontSize: fontSize,
|
|
39
|
-
background: theme.palette.background.default,
|
|
40
|
-
overflowX: 'auto',
|
|
41
|
-
marginTop: '16px',
|
|
42
|
-
border: '1px solid rgba(0,0,0,0.42)'
|
|
43
|
-
},
|
|
44
|
-
syntaxHighlighter: {
|
|
45
|
-
margin: 0,
|
|
46
|
-
fontFamily: fontFamily,
|
|
47
|
-
fontSize: fontSize
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
}); // eslint-disable-next-line react/prop-types
|
|
51
|
-
|
|
52
|
-
function CodeEditor(_ref) {
|
|
53
|
-
var contents = _ref.contents,
|
|
54
|
-
setContents = _ref.setContents;
|
|
55
|
-
var classes = useStyles();
|
|
56
|
-
var theme = (0, _core.useTheme)();
|
|
57
|
-
(0, _react.useEffect)(function () {
|
|
58
|
-
_reactSyntaxHighlighter.Light.registerLanguage('json', _json.default);
|
|
59
|
-
}, []);
|
|
60
|
-
return /*#__PURE__*/_react.default.createElement(_reactSimpleCodeEditor.default, {
|
|
61
|
-
className: classes.callbackEditor,
|
|
62
|
-
value: contents,
|
|
63
|
-
onValueChange: setContents,
|
|
64
|
-
highlight: function highlight(newCode) {
|
|
65
|
-
return /*#__PURE__*/_react.default.createElement(_reactSyntaxHighlighter.Light, {
|
|
66
|
-
language: "json",
|
|
67
|
-
style: theme.palette.type === 'dark' ? _a11yDark.default : _a11yLight.default,
|
|
68
|
-
className: classes.syntaxHighlighter // override some inline style stuff that's higher specificity
|
|
69
|
-
// than className
|
|
70
|
-
,
|
|
71
|
-
customStyle: {
|
|
72
|
-
background: 'none',
|
|
73
|
-
padding: 0
|
|
74
|
-
}
|
|
75
|
-
}, newCode);
|
|
76
|
-
},
|
|
77
|
-
padding: 10,
|
|
78
|
-
style: {}
|
|
79
|
-
});
|
|
80
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
|
-
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
|
-
var _ColorEditor = require("./ColorEditor");
|
|
10
|
-
|
|
11
|
-
describe('ColorPicker widget', function () {
|
|
12
|
-
it('can change value via the text field', function () {
|
|
13
|
-
var myfn = jest.fn();
|
|
14
|
-
|
|
15
|
-
var _render = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_ColorEditor.ColorSlot, {
|
|
16
|
-
value: "green",
|
|
17
|
-
onChange: myfn
|
|
18
|
-
})),
|
|
19
|
-
getByDisplayValue = _render.getByDisplayValue;
|
|
20
|
-
|
|
21
|
-
var ret = getByDisplayValue('green');
|
|
22
|
-
|
|
23
|
-
_react2.fireEvent.change(ret, {
|
|
24
|
-
target: {
|
|
25
|
-
value: 'red'
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
expect(myfn).toHaveBeenCalledWith('red');
|
|
30
|
-
});
|
|
31
|
-
});
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import ReactPropTypes from 'prop-types';
|
|
3
|
-
import { Color, ColorResult } from 'react-color';
|
|
4
|
-
export declare function ColorPicker(props: {
|
|
5
|
-
color: Color;
|
|
6
|
-
onChange: (color: ColorResult) => void;
|
|
7
|
-
}): JSX.Element;
|
|
8
|
-
export declare namespace ColorPicker {
|
|
9
|
-
var propTypes: {
|
|
10
|
-
color: ReactPropTypes.Validator<string>;
|
|
11
|
-
onChange: ReactPropTypes.Validator<(...args: any[]) => any>;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
export default ColorPicker;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.ColorPicker = ColorPicker;
|
|
11
|
-
exports.default = void 0;
|
|
12
|
-
|
|
13
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
|
-
|
|
15
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
16
|
-
|
|
17
|
-
var _styles = require("@material-ui/core/styles");
|
|
18
|
-
|
|
19
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
20
|
-
|
|
21
|
-
var _reactColor = require("react-color");
|
|
22
|
-
|
|
23
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
24
|
-
|
|
25
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
26
|
-
|
|
27
|
-
var useStyles = (0, _styles.makeStyles)({
|
|
28
|
-
popover: {
|
|
29
|
-
position: 'absolute',
|
|
30
|
-
zIndex: 2
|
|
31
|
-
},
|
|
32
|
-
cover: {
|
|
33
|
-
position: 'fixed',
|
|
34
|
-
top: 0,
|
|
35
|
-
right: 0,
|
|
36
|
-
bottom: 0,
|
|
37
|
-
left: 0
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
function ColorPicker(props) {
|
|
42
|
-
var color = props.color,
|
|
43
|
-
onChange = props.onChange;
|
|
44
|
-
var classes = useStyles();
|
|
45
|
-
|
|
46
|
-
var _useState = (0, _react.useState)(true),
|
|
47
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
48
|
-
displayColorPicker = _useState2[0],
|
|
49
|
-
setDisplayColorPicker = _useState2[1];
|
|
50
|
-
|
|
51
|
-
var handleClose = function handleClose() {
|
|
52
|
-
setDisplayColorPicker(false);
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
return /*#__PURE__*/_react.default.createElement("div", null, displayColorPicker ? /*#__PURE__*/_react.default.createElement("div", {
|
|
56
|
-
className: classes.popover
|
|
57
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
58
|
-
role: "presentation",
|
|
59
|
-
className: classes.cover,
|
|
60
|
-
onClick: handleClose
|
|
61
|
-
}), /*#__PURE__*/_react.default.createElement(_reactColor.ChromePicker, {
|
|
62
|
-
color: color,
|
|
63
|
-
onChange: onChange
|
|
64
|
-
})) : null);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
ColorPicker.propTypes = {
|
|
68
|
-
color: _propTypes.default.string.isRequired,
|
|
69
|
-
onChange: _propTypes.default.func.isRequired
|
|
70
|
-
};
|
|
71
|
-
var _default = ColorPicker;
|
|
72
|
-
exports.default = _default;
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
|
-
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
|
-
var _configuration = require("@jbrowse/core/configuration");
|
|
10
|
-
|
|
11
|
-
var _PluginManager = _interopRequireDefault(require("@jbrowse/core/PluginManager"));
|
|
12
|
-
|
|
13
|
-
var _pluginAlignments = _interopRequireDefault(require("@jbrowse/plugin-alignments"));
|
|
14
|
-
|
|
15
|
-
var _pluginSvg = _interopRequireDefault(require("@jbrowse/plugin-svg"));
|
|
16
|
-
|
|
17
|
-
var _pluginLinearGenomeView = require("@jbrowse/plugin-linear-genome-view");
|
|
18
|
-
|
|
19
|
-
var _ConfigurationEditor = _interopRequireDefault(require("./ConfigurationEditor"));
|
|
20
|
-
|
|
21
|
-
describe('ConfigurationEditor widget', function () {
|
|
22
|
-
it('renders with just the required model elements', function () {
|
|
23
|
-
var TestSchema = (0, _configuration.ConfigurationSchema)('TestThing', {
|
|
24
|
-
foo: {
|
|
25
|
-
type: 'string',
|
|
26
|
-
defaultValue: 'bar'
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
var _render = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_ConfigurationEditor.default, {
|
|
31
|
-
model: {
|
|
32
|
-
target: TestSchema.create()
|
|
33
|
-
}
|
|
34
|
-
})),
|
|
35
|
-
container = _render.container;
|
|
36
|
-
|
|
37
|
-
expect(container.firstChild).toMatchSnapshot();
|
|
38
|
-
});
|
|
39
|
-
it('renders all the different types of built-in slots', function () {
|
|
40
|
-
var TestSchema = (0, _configuration.ConfigurationSchema)('TestThing', {
|
|
41
|
-
stringTest: {
|
|
42
|
-
name: 'stringTest',
|
|
43
|
-
description: 'stringTest',
|
|
44
|
-
type: 'string',
|
|
45
|
-
defaultValue: 'string1'
|
|
46
|
-
},
|
|
47
|
-
fileLocationTest: {
|
|
48
|
-
name: 'fileLocationTest',
|
|
49
|
-
description: 'fileLocationTest',
|
|
50
|
-
type: 'fileLocation',
|
|
51
|
-
defaultValue: {
|
|
52
|
-
uri: '/path/to/my.file',
|
|
53
|
-
locationType: 'UriLocation'
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
stringArrayTest: {
|
|
57
|
-
name: 'stringArrayTest',
|
|
58
|
-
description: 'stringArrayTest',
|
|
59
|
-
type: 'stringArray',
|
|
60
|
-
defaultValue: ['string1', 'string2']
|
|
61
|
-
},
|
|
62
|
-
stringArrayMapTest: {
|
|
63
|
-
name: 'stringArrayMapTest',
|
|
64
|
-
description: 'stringArrayMapTest',
|
|
65
|
-
type: 'stringArrayMap',
|
|
66
|
-
defaultValue: {
|
|
67
|
-
key1: ['string1', 'string2']
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
numberTest: {
|
|
71
|
-
name: 'numberTest',
|
|
72
|
-
description: 'numberTest',
|
|
73
|
-
type: 'number',
|
|
74
|
-
defaultValue: 88.5
|
|
75
|
-
},
|
|
76
|
-
integerTest: {
|
|
77
|
-
name: 'integerTest',
|
|
78
|
-
description: 'integerTest',
|
|
79
|
-
type: 'integer',
|
|
80
|
-
defaultValue: 42
|
|
81
|
-
},
|
|
82
|
-
colorTest: {
|
|
83
|
-
name: 'colorTest',
|
|
84
|
-
description: 'colorTest',
|
|
85
|
-
type: 'color',
|
|
86
|
-
defaultValue: '#396494'
|
|
87
|
-
},
|
|
88
|
-
booleanTest: {
|
|
89
|
-
name: 'booleanTest',
|
|
90
|
-
description: 'booleanTest',
|
|
91
|
-
type: 'boolean',
|
|
92
|
-
defaultValue: true
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
var _render2 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_ConfigurationEditor.default, {
|
|
97
|
-
model: {
|
|
98
|
-
target: TestSchema.create()
|
|
99
|
-
}
|
|
100
|
-
})),
|
|
101
|
-
container = _render2.container;
|
|
102
|
-
|
|
103
|
-
expect(container.firstChild).toMatchSnapshot();
|
|
104
|
-
});
|
|
105
|
-
it('renders with defaults of the PileupTrack schema', function () {
|
|
106
|
-
console.warn = jest.fn();
|
|
107
|
-
var pluginManager = new _PluginManager.default([new _pluginAlignments.default(), new _pluginSvg.default()]);
|
|
108
|
-
pluginManager.createPluggableElements();
|
|
109
|
-
pluginManager.configure();
|
|
110
|
-
var PileupDisplaySchema = (0, _pluginLinearGenomeView.linearBasicDisplayConfigSchemaFactory)(pluginManager);
|
|
111
|
-
|
|
112
|
-
var _render3 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_ConfigurationEditor.default, {
|
|
113
|
-
model: {
|
|
114
|
-
target: PileupDisplaySchema.create()
|
|
115
|
-
}
|
|
116
|
-
})),
|
|
117
|
-
container = _render3.container;
|
|
118
|
-
|
|
119
|
-
expect(container.firstChild).toMatchSnapshot();
|
|
120
|
-
});
|
|
121
|
-
});
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
-
|
|
7
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
-
|
|
9
|
-
var _operators = require("rxjs/operators");
|
|
10
|
-
|
|
11
|
-
var _FromConfigAdapter = _interopRequireDefault(require("./FromConfigAdapter"));
|
|
12
|
-
|
|
13
|
-
var _configSchema = require("./configSchema");
|
|
14
|
-
|
|
15
|
-
test('adapter can fetch features', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
16
|
-
var features, adapter, result, featuresArray;
|
|
17
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
18
|
-
while (1) {
|
|
19
|
-
switch (_context.prev = _context.next) {
|
|
20
|
-
case 0:
|
|
21
|
-
features = [{
|
|
22
|
-
uniqueId: 'one',
|
|
23
|
-
refName: 'ctgA',
|
|
24
|
-
start: 20,
|
|
25
|
-
end: 40
|
|
26
|
-
}, {
|
|
27
|
-
uniqueId: 'two',
|
|
28
|
-
refName: 'ctgB',
|
|
29
|
-
start: 50,
|
|
30
|
-
end: 60
|
|
31
|
-
}];
|
|
32
|
-
adapter = new _FromConfigAdapter.default(_configSchema.configSchema.create({
|
|
33
|
-
features: features
|
|
34
|
-
}));
|
|
35
|
-
result = adapter.getFeatures({
|
|
36
|
-
refName: 'ctgA',
|
|
37
|
-
start: 0,
|
|
38
|
-
end: 20000
|
|
39
|
-
});
|
|
40
|
-
_context.next = 5;
|
|
41
|
-
return result.pipe((0, _operators.toArray)()).toPromise();
|
|
42
|
-
|
|
43
|
-
case 5:
|
|
44
|
-
featuresArray = _context.sent;
|
|
45
|
-
expect(featuresArray.length).toBe(1);
|
|
46
|
-
expect(featuresArray[0].toJSON()).toEqual(features[0]);
|
|
47
|
-
|
|
48
|
-
case 8:
|
|
49
|
-
case "end":
|
|
50
|
-
return _context.stop();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}, _callee);
|
|
54
|
-
})));
|
|
55
|
-
test('adapter can fetch features with subfeatures', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
56
|
-
var features, adapter, result, featuresArray;
|
|
57
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
58
|
-
while (1) {
|
|
59
|
-
switch (_context2.prev = _context2.next) {
|
|
60
|
-
case 0:
|
|
61
|
-
features = [{
|
|
62
|
-
refName: 'ctgA',
|
|
63
|
-
uniqueId: 'feat1',
|
|
64
|
-
start: 200,
|
|
65
|
-
end: 750,
|
|
66
|
-
name: 'Feature1',
|
|
67
|
-
subfeatures: [{
|
|
68
|
-
uniqueId: 'feat2',
|
|
69
|
-
start: 225,
|
|
70
|
-
end: 300,
|
|
71
|
-
name: 'Feature2'
|
|
72
|
-
}, {
|
|
73
|
-
uniqueId: 'feat3',
|
|
74
|
-
start: 400,
|
|
75
|
-
end: 600,
|
|
76
|
-
name: 'Feature3'
|
|
77
|
-
}]
|
|
78
|
-
}];
|
|
79
|
-
adapter = new _FromConfigAdapter.default(_configSchema.configSchema.create({
|
|
80
|
-
features: features
|
|
81
|
-
}));
|
|
82
|
-
result = adapter.getFeatures({
|
|
83
|
-
refName: 'ctgA',
|
|
84
|
-
start: 0,
|
|
85
|
-
end: 20000
|
|
86
|
-
});
|
|
87
|
-
_context2.next = 5;
|
|
88
|
-
return result.pipe((0, _operators.toArray)()).toPromise();
|
|
89
|
-
|
|
90
|
-
case 5:
|
|
91
|
-
featuresArray = _context2.sent;
|
|
92
|
-
expect(featuresArray.length).toBe(1);
|
|
93
|
-
|
|
94
|
-
case 7:
|
|
95
|
-
case "end":
|
|
96
|
-
return _context2.stop();
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}, _callee2);
|
|
100
|
-
})));
|