@jbrowse/plugin-circular-view 2.2.2 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +13 -4
  2. package/dist/BaseChordDisplay/components/BaseChordDisplay.d.ts +11 -3
  3. package/dist/BaseChordDisplay/components/BaseChordDisplay.js +4 -6
  4. package/dist/BaseChordDisplay/components/BaseChordDisplay.js.map +1 -1
  5. package/dist/BaseChordDisplay/components/DisplayError.js +1 -1
  6. package/dist/BaseChordDisplay/components/DisplayError.js.map +1 -1
  7. package/dist/BaseChordDisplay/components/Loading.js +1 -2
  8. package/dist/BaseChordDisplay/components/Loading.js.map +1 -1
  9. package/dist/BaseChordDisplay/models/BaseChordDisplayModel.d.ts +5 -4
  10. package/dist/BaseChordDisplay/models/BaseChordDisplayModel.js +198 -194
  11. package/dist/BaseChordDisplay/models/BaseChordDisplayModel.js.map +1 -1
  12. package/dist/BaseChordDisplay/models/renderReaction.d.ts +2 -0
  13. package/dist/BaseChordDisplay/models/renderReaction.js +12 -3
  14. package/dist/BaseChordDisplay/models/renderReaction.js.map +1 -1
  15. package/dist/CircularView/components/CircularView.js +2 -2
  16. package/dist/CircularView/components/CircularView.js.map +1 -1
  17. package/dist/CircularView/index.d.ts +3 -0
  18. package/dist/CircularView/index.js +40 -0
  19. package/dist/CircularView/index.js.map +1 -0
  20. package/dist/LaunchCircularView/index.d.ts +3 -0
  21. package/dist/LaunchCircularView/index.js +22 -0
  22. package/dist/LaunchCircularView/index.js.map +1 -0
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.js +7 -50
  25. package/dist/index.js.map +1 -1
  26. package/esm/BaseChordDisplay/components/BaseChordDisplay.d.ts +11 -3
  27. package/esm/BaseChordDisplay/components/BaseChordDisplay.js +4 -6
  28. package/esm/BaseChordDisplay/components/BaseChordDisplay.js.map +1 -1
  29. package/esm/BaseChordDisplay/components/DisplayError.js +1 -1
  30. package/esm/BaseChordDisplay/components/DisplayError.js.map +1 -1
  31. package/esm/BaseChordDisplay/components/Loading.js +1 -2
  32. package/esm/BaseChordDisplay/components/Loading.js.map +1 -1
  33. package/esm/BaseChordDisplay/models/BaseChordDisplayModel.d.ts +5 -4
  34. package/esm/BaseChordDisplay/models/BaseChordDisplayModel.js +199 -195
  35. package/esm/BaseChordDisplay/models/BaseChordDisplayModel.js.map +1 -1
  36. package/esm/BaseChordDisplay/models/renderReaction.d.ts +2 -0
  37. package/esm/BaseChordDisplay/models/renderReaction.js +9 -3
  38. package/esm/BaseChordDisplay/models/renderReaction.js.map +1 -1
  39. package/esm/CircularView/components/CircularView.js +2 -2
  40. package/esm/CircularView/components/CircularView.js.map +1 -1
  41. package/esm/CircularView/index.d.ts +3 -0
  42. package/esm/CircularView/index.js +12 -0
  43. package/esm/CircularView/index.js.map +1 -0
  44. package/esm/LaunchCircularView/index.d.ts +3 -0
  45. package/esm/LaunchCircularView/index.js +20 -0
  46. package/esm/LaunchCircularView/index.js.map +1 -0
  47. package/esm/index.d.ts +1 -1
  48. package/esm/index.js +6 -26
  49. package/esm/index.js.map +1 -1
  50. package/package.json +5 -4
  51. package/src/BaseChordDisplay/components/BaseChordDisplay.tsx +16 -6
  52. package/src/BaseChordDisplay/components/DisplayError.tsx +41 -43
  53. package/src/BaseChordDisplay/components/Loading.tsx +55 -58
  54. package/src/BaseChordDisplay/models/BaseChordDisplayModel.ts +241 -232
  55. package/src/BaseChordDisplay/models/renderReaction.ts +9 -3
  56. package/src/CircularView/components/CircularView.tsx +73 -75
  57. package/src/CircularView/index.ts +16 -0
  58. package/src/LaunchCircularView/index.ts +48 -0
  59. package/src/index.ts +10 -55
  60. package/dist/BaseChordDisplay/components/RpcRenderedSvgGroup.d.ts +0 -12
  61. package/dist/BaseChordDisplay/components/RpcRenderedSvgGroup.js +0 -73
  62. package/dist/BaseChordDisplay/components/RpcRenderedSvgGroup.js.map +0 -1
  63. package/esm/BaseChordDisplay/components/RpcRenderedSvgGroup.d.ts +0 -12
  64. package/esm/BaseChordDisplay/components/RpcRenderedSvgGroup.js +0 -48
  65. package/esm/BaseChordDisplay/components/RpcRenderedSvgGroup.js.map +0 -1
  66. package/src/BaseChordDisplay/components/RpcRenderedSvgGroup.tsx +0 -69
package/esm/index.js CHANGED
@@ -1,37 +1,17 @@
1
- import { lazy } from 'react';
2
- import { when } from 'mobx';
3
1
  import { isAbstractMenuManager } from '@jbrowse/core/util';
4
2
  import Plugin from '@jbrowse/core/Plugin';
5
- import ViewType from '@jbrowse/core/pluggableElementTypes/ViewType';
3
+ import CircularViewF from './CircularView';
4
+ import LaunchCircularViewF from './LaunchCircularView';
5
+ // icons
6
6
  import DataUsageIcon from '@mui/icons-material/DataUsage';
7
- import stateModelFactory from './CircularView/models/CircularView';
8
7
  export default class CircularViewPlugin extends Plugin {
9
8
  constructor() {
10
9
  super(...arguments);
11
10
  this.name = 'CircularViewPlugin';
12
11
  }
13
12
  install(pluginManager) {
14
- pluginManager.addViewType(() => new ViewType({
15
- ReactComponent: lazy(() => import('./CircularView/components/CircularView')),
16
- stateModel: stateModelFactory(pluginManager),
17
- name: 'CircularView',
18
- }));
19
- pluginManager.addToExtensionPoint('LaunchView-CircularView',
20
- // @ts-ignore
21
- async ({ session, assembly, loc, tracks = [], }) => {
22
- const { assemblyManager } = session;
23
- const view = session.addView('CircularView', {});
24
- await when(() => view.initialized);
25
- if (!assembly) {
26
- throw new Error('No assembly provided when launching circular genome view');
27
- }
28
- const asm = await assemblyManager.waitForAssembly(assembly);
29
- if (!asm) {
30
- throw new Error(`Assembly "${assembly}" not found when launching circular genome view`);
31
- }
32
- view.setDisplayedRegions(asm.regions || []);
33
- tracks.forEach(track => view.showTrack(track));
34
- });
13
+ CircularViewF(pluginManager);
14
+ LaunchCircularViewF(pluginManager);
35
15
  }
36
16
  configure(pluginManager) {
37
17
  if (isAbstractMenuManager(pluginManager.rootModel)) {
@@ -45,5 +25,5 @@ export default class CircularViewPlugin extends Plugin {
45
25
  }
46
26
  }
47
27
  }
48
- export { BaseChordDisplayModel, baseChordDisplayConfig, BaseChordDisplayComponent, } from './BaseChordDisplay';
28
+ export { baseChordDisplayConfig, BaseChordDisplayModel, BaseChordDisplayComponent, } from './BaseChordDisplay';
49
29
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAwB,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAEhF,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,QAAQ,MAAM,8CAA8C,CAAA;AACnE,OAAO,aAAa,MAAM,+BAA+B,CAAA;AACzD,OAAO,iBAGN,MAAM,oCAAoC,CAAA;AAI3C,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,MAAM;IAAtD;;QACE,SAAI,GAAG,oBAAoB,CAAA;IAgE7B,CAAC;IA9DC,OAAO,CAAC,aAA4B;QAClC,aAAa,CAAC,WAAW,CACvB,GAAG,EAAE,CACH,IAAI,QAAQ,CAAC;YACX,cAAc,EAAE,IAAI,CAClB,GAAG,EAAE,CAAC,MAAM,CAAC,wCAAwC,CAAC,CACvD;YACD,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC;YAC5C,IAAI,EAAE,cAAc;SACrB,CAAC,CACL,CAAA;QAED,aAAa,CAAC,mBAAmB,CAC/B,yBAAyB;QACzB,aAAa;QACb,KAAK,EAAE,EACL,OAAO,EACP,QAAQ,EACR,GAAG,EACH,MAAM,GAAG,EAAE,GAMZ,EAAE,EAAE;YACH,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAA;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAQ,CAAA;YAEvD,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAElC,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAA;aACF;YAED,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YAC3D,IAAI,CAAC,GAAG,EAAE;gBACR,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,iDAAiD,CACvE,CAAA;aACF;YAED,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;YAE3C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAChD,CAAC,CACF,CAAA;IACH,CAAC;IAED,SAAS,CAAC,aAA4B;QACpC,IAAI,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;YAClD,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC/C,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,CAAC,OAA6B,EAAE,EAAE;oBACzC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;gBACrC,CAAC;aACF,CAAC,CAAA;SACH;IACH,CAAC;CACF;AAED,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAEhF,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAOzC,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAC1C,OAAO,mBAAmB,MAAM,sBAAsB,CAAA;AAEtD,QAAQ;AACR,OAAO,aAAa,MAAM,+BAA+B,CAAA;AAEzD,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,MAAM;IAAtD;;QACE,SAAI,GAAG,oBAAoB,CAAA;IAkB7B,CAAC;IAhBC,OAAO,CAAC,aAA4B;QAClC,aAAa,CAAC,aAAa,CAAC,CAAA;QAC5B,mBAAmB,CAAC,aAAa,CAAC,CAAA;IACpC,CAAC;IAED,SAAS,CAAC,aAA4B;QACpC,IAAI,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;YAClD,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC/C,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,CAAC,OAA6B,EAAE,EAAE;oBACzC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;gBACrC,CAAC;aACF,CAAC,CAAA;SACH;IACH,CAAC;CACF;AAED,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-circular-view",
3
- "version": "2.2.2",
3
+ "version": "2.3.0",
4
4
  "description": "JBrowse 2 circular view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -37,7 +37,8 @@
37
37
  "clean": "rimraf dist esm *.tsbuildinfo"
38
38
  },
39
39
  "dependencies": {
40
- "@mui/icons-material": "^5.0.1"
40
+ "@mui/icons-material": "^5.0.1",
41
+ "clone": "^2.1.2"
41
42
  },
42
43
  "peerDependencies": {
43
44
  "@jbrowse/core": "^2.0.0",
@@ -47,7 +48,7 @@
47
48
  "mobx-state-tree": "^5.0.0",
48
49
  "react": ">=16.8.0",
49
50
  "react-dom": ">=16.8.0",
50
- "tss-react": "^3.0.0"
51
+ "tss-react": "^4.0.0"
51
52
  },
52
53
  "publishConfig": {
53
54
  "access": "public"
@@ -55,5 +56,5 @@
55
56
  "distModule": "esm/index.js",
56
57
  "srcModule": "src/index.ts",
57
58
  "module": "esm/index.js",
58
- "gitHead": "abbc00e8feedbc58de84a7a3e735ec0224909b29"
59
+ "gitHead": "a85b280a8af4d1a11e81ab42913f5f6049e6e580"
59
60
  }
@@ -1,16 +1,26 @@
1
1
  import React from 'react'
2
2
  import { observer } from 'mobx-react'
3
+
4
+ // locals
3
5
  import Loading from './Loading'
4
6
  import DisplayError from './DisplayError'
5
- import RpcRenderedSvgGroup from './RpcRenderedSvgGroup'
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- function BaseChordDisplay({ display }: any) {
7
+
8
+ export default observer(function BaseChordDisplay({
9
+ display,
10
+ }: {
11
+ display: {
12
+ filled: boolean
13
+ error: unknown
14
+ reactElement: React.ReactElement
15
+ renderProps: { radius: number }
16
+ }
17
+ }) {
8
18
  if (display.error) {
9
19
  return <DisplayError model={display} />
10
20
  }
11
21
  if (!display.filled) {
12
22
  return <Loading model={display} />
13
23
  }
14
- return <RpcRenderedSvgGroup model={display} />
15
- }
16
- export default observer(BaseChordDisplay)
24
+
25
+ return display.reactElement
26
+ })
@@ -1,49 +1,47 @@
1
1
  import React from 'react'
2
2
  import { observer } from 'mobx-react'
3
3
 
4
- const DisplayError = observer(
5
- ({
6
- model,
7
- }: {
8
- model: { renderProps: { radius: number }; error: unknown }
9
- }) => {
10
- const {
11
- renderProps: { radius },
12
- error,
13
- } = model
14
- return (
15
- <g>
16
- <defs>
17
- <pattern
18
- id="diagonalHatch"
19
- width="10"
20
- height="10"
21
- patternTransform="rotate(45 0 0)"
22
- patternUnits="userSpaceOnUse"
23
- >
24
- <line
25
- x1="0"
26
- y1="0"
27
- x2="0"
28
- y2="10"
29
- style={{ stroke: 'rgba(255,0,0,0.5)', strokeWidth: 10 }}
30
- />
31
- </pattern>
32
- </defs>
33
- <circle cx="0" cy="0" r={radius} fill="#ffb4b4" />
34
- <circle cx="0" cy="0" r={radius} fill="url(#diagonalHatch)" />
35
- <text
36
- x="0"
37
- y="0"
38
- transform="rotate(90 0 0)"
39
- dominantBaseline="middle"
40
- textAnchor="middle"
4
+ const DisplayError = observer(function ({
5
+ model,
6
+ }: {
7
+ model: { renderProps: { radius: number }; error: unknown }
8
+ }) {
9
+ const {
10
+ renderProps: { radius },
11
+ error,
12
+ } = model
13
+ return (
14
+ <g>
15
+ <defs>
16
+ <pattern
17
+ id="diagonalHatch"
18
+ width="10"
19
+ height="10"
20
+ patternTransform="rotate(45 0 0)"
21
+ patternUnits="userSpaceOnUse"
41
22
  >
42
- {String(error)}
43
- </text>
44
- </g>
45
- )
46
- },
47
- )
23
+ <line
24
+ x1="0"
25
+ y1="0"
26
+ x2="0"
27
+ y2="10"
28
+ style={{ stroke: 'rgba(255,0,0,0.5)', strokeWidth: 10 }}
29
+ />
30
+ </pattern>
31
+ </defs>
32
+ <circle cx="0" cy="0" r={radius} fill="#ffb4b4" />
33
+ <circle cx="0" cy="0" r={radius} fill="url(#diagonalHatch)" />
34
+ <text
35
+ x="0"
36
+ y="0"
37
+ transform="rotate(90 0 0)"
38
+ dominantBaseline="middle"
39
+ textAnchor="middle"
40
+ >
41
+ {String(error)}
42
+ </text>
43
+ </g>
44
+ )
45
+ })
48
46
 
49
47
  export default DisplayError
@@ -48,66 +48,63 @@ const useStyles = makeStyles()(theme => {
48
48
  }
49
49
  })
50
50
 
51
- // 'repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,.5) 5px, rgba(255,255,255,.5) 10px)',
52
- const Loading = observer(
53
- ({
54
- model: {
55
- renderProps: { radius },
56
- },
57
- }: {
58
- model: { renderProps: { radius: number } }
59
- }) => {
60
- const { classes } = useStyles()
51
+ const Loading = observer(function ({
52
+ model: {
53
+ renderProps: { radius },
54
+ },
55
+ }: {
56
+ model: { renderProps: { radius: number } }
57
+ }) {
58
+ const { classes } = useStyles()
61
59
 
62
- // only show the loading message after 400ms to prevent excessive flickering
63
- const [shown, setShown] = useState(false)
64
- useEffect(() => {
65
- const timeout = setTimeout(() => setShown(true), 400)
66
- return () => clearTimeout(timeout)
67
- })
60
+ // only show the loading message after 400ms to prevent excessive flickering
61
+ const [shown, setShown] = useState(false)
62
+ useEffect(() => {
63
+ const timeout = setTimeout(() => setShown(true), 400)
64
+ return () => clearTimeout(timeout)
65
+ })
68
66
 
69
- return !shown ? null : (
70
- <g>
71
- <defs>
72
- <pattern
73
- id="diagonalHatch"
74
- width="10"
75
- height="10"
76
- patternTransform="rotate(45 0 0)"
77
- patternUnits="userSpaceOnUse"
78
- >
79
- <line
80
- x1="0"
81
- y1="0"
82
- x2="0"
83
- y2="10"
84
- style={{ stroke: 'rgba(255,255,255,0.5)', strokeWidth: 10 }}
85
- />
86
- </pattern>
87
- </defs>
88
- <circle cx="0" cy="0" r={radius} fill="#f1f1f1" />
89
- <circle cx="0" cy="0" r={radius} fill="url(#diagonalHatch)" />
90
- <text
91
- x="0"
92
- y="0"
93
- transform="rotate(90 0 0)"
94
- dominantBaseline="middle"
95
- textAnchor="middle"
67
+ return !shown ? null : (
68
+ <g>
69
+ <defs>
70
+ <pattern
71
+ id="diagonalHatch"
72
+ width="10"
73
+ height="10"
74
+ patternTransform="rotate(45 0 0)"
75
+ patternUnits="userSpaceOnUse"
96
76
  >
97
- Loading&hellip;
98
- </text>
99
- <circle
100
- className={classes.path}
101
- fill="none"
102
- strokeWidth="4"
103
- strokeLinecap="round"
104
- cx="0"
105
- cy="0"
106
- r="60"
107
- />
108
- </g>
109
- )
110
- },
111
- )
77
+ <line
78
+ x1="0"
79
+ y1="0"
80
+ x2="0"
81
+ y2="10"
82
+ style={{ stroke: 'rgba(255,255,255,0.5)', strokeWidth: 10 }}
83
+ />
84
+ </pattern>
85
+ </defs>
86
+ <circle cx="0" cy="0" r={radius} fill="#f1f1f1" />
87
+ <circle cx="0" cy="0" r={radius} fill="url(#diagonalHatch)" />
88
+ <text
89
+ x="0"
90
+ y="0"
91
+ transform="rotate(90 0 0)"
92
+ dominantBaseline="middle"
93
+ textAnchor="middle"
94
+ >
95
+ Loading&hellip;
96
+ </text>
97
+ <circle
98
+ className={classes.path}
99
+ fill="none"
100
+ strokeWidth="4"
101
+ strokeLinecap="round"
102
+ cx="0"
103
+ cy="0"
104
+ r="60"
105
+ />
106
+ </g>
107
+ )
108
+ })
112
109
 
113
110
  export default Loading