@jbrowse/plugin-data-management 2.2.0 → 2.2.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.
@@ -8,12 +8,14 @@ const mobx_react_1 = require("mobx-react");
8
8
  const material_1 = require("@mui/material");
9
9
  const util_1 = require("@jbrowse/core/util");
10
10
  const DefaultAddTrackWorkflow_1 = __importDefault(require("./DefaultAddTrackWorkflow"));
11
+ const PasteConfigWorkflow_1 = __importDefault(require("./PasteConfigWorkflow"));
11
12
  function AddTrackSelector({ model }) {
12
13
  const [val, setVal] = (0, util_1.useLocalStorage)('trackSelector-choice', 'Default');
13
14
  const { pluginManager } = (0, util_1.getEnv)(model);
14
15
  const widgets = pluginManager.getElementTypesInGroup('add track workflow');
15
16
  const ComponentMap = {
16
17
  Default: DefaultAddTrackWorkflow_1.default,
18
+ 'Add track JSON': PasteConfigWorkflow_1.default,
17
19
  ...Object.fromEntries(widgets.map(w => [w.name, w.ReactComponent])),
18
20
  };
19
21
  // make sure the selected value is in the list
@@ -1 +1 @@
1
- {"version":3,"file":"AddTrackWidget.js","sourceRoot":"","sources":["../../../src/AddTrackWidget/components/AddTrackWidget.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,2CAAqC;AACrC,4CAA6E;AAE7E,6CAA4D;AAI5D,wFAA+D;AAE/D,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAA4B;IAC3D,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,sBAAe,EAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;IACxE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,aAAM,EAAC,KAAK,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,aAAa,CAAC,sBAAsB,CAClD,oBAAoB,CACK,CAAA;IAC3B,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,iCAAuB;QAChC,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;KACX,CAAA;IAE1D,8CAA8C;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,CACL;QACE,8BAAC,sBAAW;YACV,8BAAC,iBAAM,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAC/D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAClC,8BAAC,mBAAQ,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IACvB,CAAC,CACO,CACZ,CAAC,CACK;YACT,8BAAC,yBAAc,qCAA4C,CAC/C;QAEd,yCAAM;QACN,8BAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,CAC1B,CACJ,CAAA;AACH,CAAC;AAED,kBAAe,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAA"}
1
+ {"version":3,"file":"AddTrackWidget.js","sourceRoot":"","sources":["../../../src/AddTrackWidget/components/AddTrackWidget.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,2CAAqC;AACrC,4CAA6E;AAE7E,6CAA4D;AAI5D,wFAA+D;AAC/D,gFAAuD;AAEvD,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAA4B;IAC3D,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,sBAAe,EAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;IACxE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,aAAM,EAAC,KAAK,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,aAAa,CAAC,sBAAsB,CAClD,oBAAoB,CACK,CAAA;IAC3B,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,iCAAuB;QAChC,gBAAgB,EAAE,6BAAmB;QACrC,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;KACX,CAAA;IAE1D,8CAA8C;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,CACL;QACE,8BAAC,sBAAW;YACV,8BAAC,iBAAM,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAC/D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAClC,8BAAC,mBAAQ,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IACvB,CAAC,CACO,CACZ,CAAC,CACK;YACT,8BAAC,yBAAc,qCAA4C,CAC/C;QAEd,yCAAM;QACN,8BAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,CAC1B,CACJ,CAAA;AACH,CAAC;AAED,kBAAe,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { AddTrackModel } from '../model';
3
+ declare function AddTrackWorkflow({ model }: {
4
+ model: AddTrackModel;
5
+ }): JSX.Element;
6
+ declare const _default: typeof AddTrackWorkflow;
7
+ export default _default;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const react_1 = __importStar(require("react"));
27
+ const material_1 = require("@mui/material");
28
+ const ui_1 = require("@jbrowse/core/ui");
29
+ const mui_1 = require("tss-react/mui");
30
+ const util_1 = require("@jbrowse/core/util");
31
+ const mobx_react_1 = require("mobx-react");
32
+ const useStyles = (0, mui_1.makeStyles)()({
33
+ textbox: {
34
+ width: '100%',
35
+ },
36
+ submit: {
37
+ marginTop: 25,
38
+ marginBottom: 100,
39
+ display: 'block',
40
+ },
41
+ });
42
+ function AddTrackWorkflow({ model }) {
43
+ const { classes } = useStyles();
44
+ const [val, setVal] = (0, react_1.useState)('');
45
+ const [error, setError] = (0, react_1.useState)();
46
+ return (react_1.default.createElement("div", null,
47
+ error ? react_1.default.createElement(ui_1.ErrorMessage, { error: error }) : null,
48
+ react_1.default.createElement(material_1.TextField, { multiline: true, rows: 10, value: val, onChange: event => setVal(event.target.value), placeholder: 'Paste track config or array of track configs in JSON format', variant: "outlined", className: classes.textbox }),
49
+ react_1.default.createElement(material_1.Button, { variant: "contained", className: classes.submit, onClick: () => {
50
+ try {
51
+ setError(undefined);
52
+ const session = (0, util_1.getSession)(model);
53
+ const conf = JSON.parse(val);
54
+ const confs = Array.isArray(conf) ? conf : [conf];
55
+ confs.forEach(c => session.addTrackConf(c));
56
+ confs.forEach(c => c.trackId);
57
+ model.clearData();
58
+ session.hideWidget(model);
59
+ }
60
+ catch (e) {
61
+ setError(e);
62
+ }
63
+ } }, "Submit")));
64
+ }
65
+ exports.default = (0, mobx_react_1.observer)(AddTrackWorkflow);
66
+ //# sourceMappingURL=PasteConfigWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasteConfigWorkflow.js","sourceRoot":"","sources":["../../../src/AddTrackWidget/components/PasteConfigWorkflow.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAuC;AACvC,4CAAiD;AACjD,yCAA+C;AAC/C,uCAA0C;AAC1C,6CAA+C;AAC/C,2CAAqC;AAKrC,MAAM,SAAS,GAAG,IAAA,gBAAU,GAAE,CAAC;IAC7B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;KACd;IACD,MAAM,EAAE;QACN,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,GAAG;QACjB,OAAO,EAAE,OAAO;KACjB;CACF,CAAC,CAAA;AAEF,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAA4B;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IAClC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAW,CAAA;IAE7C,OAAO,CACL;QACG,KAAK,CAAC,CAAC,CAAC,8BAAC,iBAAY,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI;QAC9C,8BAAC,oBAAS,IACR,SAAS,QACT,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,WAAW,EACT,6DAA6D,EAE/D,OAAO,EAAC,UAAU,EAClB,SAAS,EAAE,OAAO,CAAC,OAAO,GAC1B;QACF,8BAAC,iBAAM,IACL,OAAO,EAAC,WAAW,EACnB,SAAS,EAAE,OAAO,CAAC,MAAM,EACzB,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI;oBACF,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,MAAM,OAAO,GAAG,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAA;oBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;oBACjD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;oBAC7B,KAAK,CAAC,SAAS,EAAE,CAAA;oBACjB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;iBAC1B;gBAAC,OAAO,CAAC,EAAE;oBACV,QAAQ,CAAC,CAAC,CAAC,CAAA;iBACZ;YACH,CAAC,aAGM,CACL,CACP,CAAA;AACH,CAAC;AACD,kBAAe,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAA"}
@@ -46,6 +46,6 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
46
46
  } & {
47
47
  readonly warningMessage: "" | "Warning: JBrowse cannot access files using the ftp protocol" | "Warning: one or more of your files do not provide the protocol e.g.\n https://, please provide an absolute URL unless you are sure a\n relative URL is intended." | "Warning: You entered a http:// resources but we cannot access HTTP\n resources from JBrowse when it is running on https. Please use an\n https URL for your track, or access the JBrowse app from the http\n protocol";
48
48
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
49
- export declare type AddTrackStateModel = ReturnType<typeof f>;
50
- export declare type AddTrackModel = Instance<AddTrackStateModel>;
49
+ export type AddTrackStateModel = ReturnType<typeof f>;
50
+ export type AddTrackModel = Instance<AddTrackStateModel>;
51
51
  export {};
@@ -1,7 +1,7 @@
1
1
  import { Instance } from 'mobx-state-tree';
2
2
  import { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
3
  import PluginManager from '@jbrowse/core/PluginManager';
4
- export declare type TreeNode = {
4
+ export type TreeNode = {
5
5
  name: string;
6
6
  id: string;
7
7
  conf?: AnyConfigurationModel;
@@ -65,5 +65,5 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
65
65
  tracks: AnyConfigurationModel[];
66
66
  }): TreeNode[];
67
67
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
68
- export declare type HierarchicalTrackSelectorStateModel = ReturnType<typeof stateTreeFactory>;
69
- export declare type HierarchicalTrackSelectorModel = Instance<HierarchicalTrackSelectorStateModel>;
68
+ export type HierarchicalTrackSelectorStateModel = ReturnType<typeof stateTreeFactory>;
69
+ export type HierarchicalTrackSelectorModel = Instance<HierarchicalTrackSelectorStateModel>;
@@ -9,5 +9,5 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
9
9
  clearFilterText(): void;
10
10
  setFilterText(newText: string): void;
11
11
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
12
- export declare type PluginStoreStateModel = ReturnType<typeof f>;
13
- export declare type PluginStoreModel = Instance<PluginStoreStateModel>;
12
+ export type PluginStoreStateModel = ReturnType<typeof f>;
13
+ export type PluginStoreModel = Instance<PluginStoreStateModel>;
@@ -3,12 +3,14 @@ import { observer } from 'mobx-react';
3
3
  import { FormControl, FormHelperText, Select, MenuItem } from '@mui/material';
4
4
  import { getEnv, useLocalStorage } from '@jbrowse/core/util';
5
5
  import DefaultAddTrackWorkflow from './DefaultAddTrackWorkflow';
6
+ import PasteConfigWorkflow from './PasteConfigWorkflow';
6
7
  function AddTrackSelector({ model }) {
7
8
  const [val, setVal] = useLocalStorage('trackSelector-choice', 'Default');
8
9
  const { pluginManager } = getEnv(model);
9
10
  const widgets = pluginManager.getElementTypesInGroup('add track workflow');
10
11
  const ComponentMap = {
11
12
  Default: DefaultAddTrackWorkflow,
13
+ 'Add track JSON': PasteConfigWorkflow,
12
14
  ...Object.fromEntries(widgets.map(w => [w.name, w.ReactComponent])),
13
15
  };
14
16
  // make sure the selected value is in the list
@@ -1 +1 @@
1
- {"version":3,"file":"AddTrackWidget.js","sourceRoot":"","sources":["../../../src/AddTrackWidget/components/AddTrackWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7E,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAI5D,OAAO,uBAAuB,MAAM,2BAA2B,CAAA;AAE/D,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAA4B;IAC3D,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,eAAe,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;IACxE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,aAAa,CAAC,sBAAsB,CAClD,oBAAoB,CACK,CAAA;IAC3B,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,uBAAuB;QAChC,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;KACX,CAAA;IAE1D,8CAA8C;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,CACL;QACE,oBAAC,WAAW;YACV,oBAAC,MAAM,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAC/D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAClC,oBAAC,QAAQ,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IACvB,CAAC,CACO,CACZ,CAAC,CACK;YACT,oBAAC,cAAc,qCAA4C,CAC/C;QAEd,+BAAM;QACN,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,CAC1B,CACJ,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,gBAAgB,CAAC,CAAA"}
1
+ {"version":3,"file":"AddTrackWidget.js","sourceRoot":"","sources":["../../../src/AddTrackWidget/components/AddTrackWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7E,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAI5D,OAAO,uBAAuB,MAAM,2BAA2B,CAAA;AAC/D,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AAEvD,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAA4B;IAC3D,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,eAAe,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;IACxE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,aAAa,CAAC,sBAAsB,CAClD,oBAAoB,CACK,CAAA;IAC3B,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,uBAAuB;QAChC,gBAAgB,EAAE,mBAAmB;QACrC,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;KACX,CAAA;IAE1D,8CAA8C;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,CACL;QACE,oBAAC,WAAW;YACV,oBAAC,MAAM,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAC/D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAClC,oBAAC,QAAQ,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IACvB,CAAC,CACO,CACZ,CAAC,CACK;YACT,oBAAC,cAAc,qCAA4C,CAC/C;QAEd,+BAAM;QACN,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,CAC1B,CACJ,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { AddTrackModel } from '../model';
3
+ declare function AddTrackWorkflow({ model }: {
4
+ model: AddTrackModel;
5
+ }): JSX.Element;
6
+ declare const _default: typeof AddTrackWorkflow;
7
+ export default _default;
@@ -0,0 +1,41 @@
1
+ import React, { useState } from 'react';
2
+ import { Button, TextField } from '@mui/material';
3
+ import { ErrorMessage } from '@jbrowse/core/ui';
4
+ import { makeStyles } from 'tss-react/mui';
5
+ import { getSession } from '@jbrowse/core/util';
6
+ import { observer } from 'mobx-react';
7
+ const useStyles = makeStyles()({
8
+ textbox: {
9
+ width: '100%',
10
+ },
11
+ submit: {
12
+ marginTop: 25,
13
+ marginBottom: 100,
14
+ display: 'block',
15
+ },
16
+ });
17
+ function AddTrackWorkflow({ model }) {
18
+ const { classes } = useStyles();
19
+ const [val, setVal] = useState('');
20
+ const [error, setError] = useState();
21
+ return (React.createElement("div", null,
22
+ error ? React.createElement(ErrorMessage, { error: error }) : null,
23
+ React.createElement(TextField, { multiline: true, rows: 10, value: val, onChange: event => setVal(event.target.value), placeholder: 'Paste track config or array of track configs in JSON format', variant: "outlined", className: classes.textbox }),
24
+ React.createElement(Button, { variant: "contained", className: classes.submit, onClick: () => {
25
+ try {
26
+ setError(undefined);
27
+ const session = getSession(model);
28
+ const conf = JSON.parse(val);
29
+ const confs = Array.isArray(conf) ? conf : [conf];
30
+ confs.forEach(c => session.addTrackConf(c));
31
+ confs.forEach(c => c.trackId);
32
+ model.clearData();
33
+ session.hideWidget(model);
34
+ }
35
+ catch (e) {
36
+ setError(e);
37
+ }
38
+ } }, "Submit")));
39
+ }
40
+ export default observer(AddTrackWorkflow);
41
+ //# sourceMappingURL=PasteConfigWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasteConfigWorkflow.js","sourceRoot":"","sources":["../../../src/AddTrackWidget/components/PasteConfigWorkflow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAKrC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;KACd;IACD,MAAM,EAAE;QACN,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,GAAG;QACjB,OAAO,EAAE,OAAO;KACjB;CACF,CAAC,CAAA;AAEF,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAA4B;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAW,CAAA;IAE7C,OAAO,CACL;QACG,KAAK,CAAC,CAAC,CAAC,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI;QAC9C,oBAAC,SAAS,IACR,SAAS,QACT,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,WAAW,EACT,6DAA6D,EAE/D,OAAO,EAAC,UAAU,EAClB,SAAS,EAAE,OAAO,CAAC,OAAO,GAC1B;QACF,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,SAAS,EAAE,OAAO,CAAC,MAAM,EACzB,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI;oBACF,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;oBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;oBACjD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;oBAC7B,KAAK,CAAC,SAAS,EAAE,CAAA;oBACjB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;iBAC1B;gBAAC,OAAO,CAAC,EAAE;oBACV,QAAQ,CAAC,CAAC,CAAC,CAAA;iBACZ;YACH,CAAC,aAGM,CACL,CACP,CAAA;AACH,CAAC;AACD,eAAe,QAAQ,CAAC,gBAAgB,CAAC,CAAA"}
@@ -46,6 +46,6 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
46
46
  } & {
47
47
  readonly warningMessage: "" | "Warning: JBrowse cannot access files using the ftp protocol" | "Warning: one or more of your files do not provide the protocol e.g.\n https://, please provide an absolute URL unless you are sure a\n relative URL is intended." | "Warning: You entered a http:// resources but we cannot access HTTP\n resources from JBrowse when it is running on https. Please use an\n https URL for your track, or access the JBrowse app from the http\n protocol";
48
48
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
49
- export declare type AddTrackStateModel = ReturnType<typeof f>;
50
- export declare type AddTrackModel = Instance<AddTrackStateModel>;
49
+ export type AddTrackStateModel = ReturnType<typeof f>;
50
+ export type AddTrackModel = Instance<AddTrackStateModel>;
51
51
  export {};
@@ -1,6 +1,6 @@
1
1
  import { types } from 'mobx-state-tree';
2
2
  import { ElementId } from '@jbrowse/core/util/types/mst';
3
- import { guessAdapter, guessTrackType, UNSUPPORTED, getFileName, } from '@jbrowse/core/util/tracks';
3
+ import { guessAdapter, guessTrackType, getFileName, UNSUPPORTED, } from '@jbrowse/core/util/tracks';
4
4
  function isAbsoluteUrl(url = '') {
5
5
  try {
6
6
  new URL(url);
@@ -1,7 +1,7 @@
1
1
  import { Instance } from 'mobx-state-tree';
2
2
  import { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
3
  import PluginManager from '@jbrowse/core/PluginManager';
4
- export declare type TreeNode = {
4
+ export type TreeNode = {
5
5
  name: string;
6
6
  id: string;
7
7
  conf?: AnyConfigurationModel;
@@ -65,5 +65,5 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
65
65
  tracks: AnyConfigurationModel[];
66
66
  }): TreeNode[];
67
67
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
68
- export declare type HierarchicalTrackSelectorStateModel = ReturnType<typeof stateTreeFactory>;
69
- export declare type HierarchicalTrackSelectorModel = Instance<HierarchicalTrackSelectorStateModel>;
68
+ export type HierarchicalTrackSelectorStateModel = ReturnType<typeof stateTreeFactory>;
69
+ export type HierarchicalTrackSelectorModel = Instance<HierarchicalTrackSelectorStateModel>;
@@ -9,5 +9,5 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
9
9
  clearFilterText(): void;
10
10
  setFilterText(newText: string): void;
11
11
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
12
- export declare type PluginStoreStateModel = ReturnType<typeof f>;
13
- export declare type PluginStoreModel = Instance<PluginStoreStateModel>;
12
+ export type PluginStoreStateModel = ReturnType<typeof f>;
13
+ export type PluginStoreModel = Instance<PluginStoreStateModel>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-data-management",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "JBrowse 2 linear genome view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -61,5 +61,5 @@
61
61
  "distModule": "esm/index.js",
62
62
  "srcModule": "src/index.ts",
63
63
  "module": "esm/index.js",
64
- "gitHead": "cf31db8d833117f8822510340664fb3f045975cb"
64
+ "gitHead": "896d175c5d9345049faea8e1155f243c912aac42"
65
65
  }
@@ -7,6 +7,7 @@ import { getEnv, useLocalStorage } from '@jbrowse/core/util'
7
7
  // locals
8
8
  import { AddTrackModel } from '../model'
9
9
  import DefaultAddTrackWorkflow from './DefaultAddTrackWorkflow'
10
+ import PasteConfigWorkflow from './PasteConfigWorkflow'
10
11
 
11
12
  function AddTrackSelector({ model }: { model: AddTrackModel }) {
12
13
  const [val, setVal] = useLocalStorage('trackSelector-choice', 'Default')
@@ -16,6 +17,7 @@ function AddTrackSelector({ model }: { model: AddTrackModel }) {
16
17
  ) as AddTrackWorkflowType[]
17
18
  const ComponentMap = {
18
19
  Default: DefaultAddTrackWorkflow,
20
+ 'Add track JSON': PasteConfigWorkflow,
19
21
  ...Object.fromEntries(widgets.map(w => [w.name, w.ReactComponent])),
20
22
  } as { [key: string]: React.FC<{ model: AddTrackModel }> }
21
23
 
@@ -0,0 +1,64 @@
1
+ import React, { useState } from 'react'
2
+ import { Button, TextField } from '@mui/material'
3
+ import { ErrorMessage } from '@jbrowse/core/ui'
4
+ import { makeStyles } from 'tss-react/mui'
5
+ import { getSession } from '@jbrowse/core/util'
6
+ import { observer } from 'mobx-react'
7
+
8
+ // locals
9
+ import { AddTrackModel } from '../model'
10
+
11
+ const useStyles = makeStyles()({
12
+ textbox: {
13
+ width: '100%',
14
+ },
15
+ submit: {
16
+ marginTop: 25,
17
+ marginBottom: 100,
18
+ display: 'block',
19
+ },
20
+ })
21
+
22
+ function AddTrackWorkflow({ model }: { model: AddTrackModel }) {
23
+ const { classes } = useStyles()
24
+ const [val, setVal] = useState('')
25
+ const [error, setError] = useState<unknown>()
26
+
27
+ return (
28
+ <div>
29
+ {error ? <ErrorMessage error={error} /> : null}
30
+ <TextField
31
+ multiline
32
+ rows={10}
33
+ value={val}
34
+ onChange={event => setVal(event.target.value)}
35
+ placeholder={
36
+ 'Paste track config or array of track configs in JSON format'
37
+ }
38
+ variant="outlined"
39
+ className={classes.textbox}
40
+ />
41
+ <Button
42
+ variant="contained"
43
+ className={classes.submit}
44
+ onClick={() => {
45
+ try {
46
+ setError(undefined)
47
+ const session = getSession(model)
48
+ const conf = JSON.parse(val)
49
+ const confs = Array.isArray(conf) ? conf : [conf]
50
+ confs.forEach(c => session.addTrackConf(c))
51
+ confs.forEach(c => c.trackId)
52
+ model.clearData()
53
+ session.hideWidget(model)
54
+ } catch (e) {
55
+ setError(e)
56
+ }
57
+ }}
58
+ >
59
+ Submit
60
+ </Button>
61
+ </div>
62
+ )
63
+ }
64
+ export default observer(AddTrackWorkflow)
@@ -5,8 +5,8 @@ import { FileLocation } from '@jbrowse/core/util/types'
5
5
  import {
6
6
  guessAdapter,
7
7
  guessTrackType,
8
- UNSUPPORTED,
9
8
  getFileName,
9
+ UNSUPPORTED,
10
10
  } from '@jbrowse/core/util/tracks'
11
11
 
12
12
  function isAbsoluteUrl(url = '') {
@@ -567,6 +567,28 @@ exports[`<PluginStoreWidget /> renders with the available plugins 1`] = `
567
567
  WigglePlugin
568
568
  </p>
569
569
  </li>
570
+ <li
571
+ class="MuiListItem-root MuiListItem-dense MuiListItem-gutters MuiListItem-padding css-ypie1g-MuiListItem-root"
572
+ >
573
+ <svg
574
+ aria-hidden="true"
575
+ aria-label="This plugin was installed by an administrator, you cannot remove it."
576
+ class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1a34d00-MuiSvgIcon-root-lockedPluginTooltip"
577
+ data-mui-internal-clone-element="true"
578
+ data-testid="LockIcon"
579
+ focusable="false"
580
+ viewBox="0 0 24 24"
581
+ >
582
+ <path
583
+ d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"
584
+ />
585
+ </svg>
586
+ <p
587
+ class="MuiTypography-root MuiTypography-body1 css-k0xfey-MuiTypography-root"
588
+ >
589
+ GCContentPlugin
590
+ </p>
591
+ </li>
570
592
  <li
571
593
  class="MuiListItem-root MuiListItem-dense MuiListItem-gutters MuiListItem-padding css-ypie1g-MuiListItem-root"
572
594
  >
@@ -1,9 +1,9 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`Data management adds config editor widget 1`] = `Object {}`;
3
+ exports[`Data management adds config editor widget 1`] = `{}`;
4
4
 
5
- exports[`Data management adds connection add widget 1`] = `Object {}`;
5
+ exports[`Data management adds connection add widget 1`] = `{}`;
6
6
 
7
- exports[`Data management adds hierarchical track selector 1`] = `Object {}`;
7
+ exports[`Data management adds hierarchical track selector 1`] = `{}`;
8
8
 
9
- exports[`Data management adds track add widget 1`] = `Object {}`;
9
+ exports[`Data management adds track add widget 1`] = `{}`;