@jbrowse/core 2.17.0 → 2.18.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 (308) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +1 -2
  2. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +4 -8
  3. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
  4. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -2
  5. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +2 -3
  6. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  7. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +2 -3
  8. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +22 -25
  9. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -2
  10. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +6 -8
  11. package/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
  12. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +1 -1
  13. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +1 -1
  14. package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +1 -1
  15. package/BaseFeatureWidget/BaseFeatureDetail/index.js +1 -7
  16. package/BaseFeatureWidget/BaseFeatureDetail/util.js +0 -5
  17. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +2 -2
  18. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +0 -7
  19. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
  20. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +1 -7
  21. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +3 -3
  22. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +24 -33
  23. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +1 -2
  24. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +2 -2
  25. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +3 -4
  26. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +2 -2
  27. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +3 -6
  28. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +1 -1
  29. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
  30. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +2 -2
  31. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +2 -2
  32. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +1 -2
  33. package/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +2 -56
  34. package/BaseFeatureWidget/SequenceFeatureDetails/model.js +1 -56
  35. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +3 -3
  36. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +2 -2
  37. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +5 -6
  38. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +2 -2
  39. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +0 -1
  40. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +2 -2
  41. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +0 -2
  42. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +1 -1
  43. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +1 -3
  44. package/BaseFeatureWidget/SequenceFeatureDetails/util.js +1 -5
  45. package/BaseFeatureWidget/stateModelFactory.d.ts +2 -93
  46. package/BaseFeatureWidget/stateModelFactory.js +3 -73
  47. package/BaseFeatureWidget/types.d.ts +3 -3
  48. package/BaseFeatureWidget/util.js +0 -4
  49. package/CorePlugin.d.ts +1 -1
  50. package/CorePlugin.js +2 -5
  51. package/Plugin.d.ts +2 -5
  52. package/Plugin.js +0 -3
  53. package/PluginLoader.d.ts +1 -1
  54. package/PluginLoader.js +2 -19
  55. package/PluginManager.d.ts +15 -31
  56. package/PluginManager.js +11 -39
  57. package/ReExports/DataGrid.js +0 -1
  58. package/ReExports/list.d.ts +0 -5
  59. package/ReExports/list.js +0 -5
  60. package/ReExports/modules.d.ts +22 -20
  61. package/ReExports/modules.js +16 -25
  62. package/TextSearch/BaseResults.d.ts +3 -3
  63. package/TextSearch/TextSearchManager.d.ts +4 -16
  64. package/TextSearch/TextSearchManager.js +1 -13
  65. package/assemblyManager/assembly.d.ts +5 -100
  66. package/assemblyManager/assembly.js +27 -143
  67. package/assemblyManager/assemblyConfigSchema.d.ts +1 -34
  68. package/assemblyManager/assemblyConfigSchema.js +12 -46
  69. package/assemblyManager/assemblyManager.d.ts +7 -57
  70. package/assemblyManager/assemblyManager.js +2 -57
  71. package/configuration/configurationSchema.d.ts +4 -4
  72. package/configuration/configurationSchema.js +2 -14
  73. package/configuration/configurationSlot.d.ts +1 -12
  74. package/configuration/configurationSlot.js +2 -32
  75. package/configuration/index.d.ts +2 -2
  76. package/configuration/index.js +2 -2
  77. package/configuration/types.d.ts +2 -3
  78. package/configuration/util.d.ts +1 -25
  79. package/configuration/util.js +19 -56
  80. package/data_adapters/BaseAdapter/BaseAdapter.d.ts +4 -14
  81. package/data_adapters/BaseAdapter/BaseAdapter.js +1 -10
  82. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +5 -114
  83. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +3 -79
  84. package/data_adapters/BaseAdapter/BaseOptions.d.ts +2 -2
  85. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +2 -2
  86. package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +3 -6
  87. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +3 -3
  88. package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +3 -3
  89. package/data_adapters/BaseAdapter/index.d.ts +4 -4
  90. package/data_adapters/BaseAdapter/types.d.ts +2 -2
  91. package/data_adapters/BaseAdapter/util.d.ts +6 -6
  92. package/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
  93. package/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -2
  94. package/data_adapters/CytobandAdapter/configSchema.d.ts +0 -3
  95. package/data_adapters/CytobandAdapter/configSchema.js +1 -7
  96. package/data_adapters/CytobandAdapter/index.d.ts +1 -1
  97. package/data_adapters/CytobandAdapter/index.js +1 -1
  98. package/data_adapters/dataAdapterCache.d.ts +4 -21
  99. package/data_adapters/dataAdapterCache.js +0 -19
  100. package/package.json +3 -4
  101. package/pluggableElementTypes/AdapterType.d.ts +2 -2
  102. package/pluggableElementTypes/AddTrackWorkflowType.d.ts +2 -2
  103. package/pluggableElementTypes/ConnectionType.d.ts +3 -3
  104. package/pluggableElementTypes/DisplayType.d.ts +3 -9
  105. package/pluggableElementTypes/InternetAccountType.d.ts +2 -2
  106. package/pluggableElementTypes/PluggableElementBase.d.ts +1 -1
  107. package/pluggableElementTypes/PluggableElementBase.js +2 -2
  108. package/pluggableElementTypes/RpcMethodType.d.ts +5 -11
  109. package/pluggableElementTypes/RpcMethodType.js +7 -19
  110. package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +9 -0
  111. package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +35 -0
  112. package/pluggableElementTypes/TextSearchAdapterType.d.ts +2 -2
  113. package/pluggableElementTypes/TrackType.d.ts +3 -3
  114. package/pluggableElementTypes/ViewType.d.ts +3 -3
  115. package/pluggableElementTypes/WidgetType.d.ts +4 -3
  116. package/pluggableElementTypes/index.d.ts +11 -11
  117. package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +2 -29
  118. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +1 -28
  119. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +3 -83
  120. package/pluggableElementTypes/models/BaseDisplayModel.js +2 -69
  121. package/pluggableElementTypes/models/BaseTrackModel.d.ts +4 -46
  122. package/pluggableElementTypes/models/BaseTrackModel.js +0 -58
  123. package/pluggableElementTypes/models/BaseViewModel.d.ts +2 -42
  124. package/pluggableElementTypes/models/BaseViewModel.js +2 -38
  125. package/pluggableElementTypes/models/InternetAccountModel.d.ts +3 -119
  126. package/pluggableElementTypes/models/InternetAccountModel.js +3 -123
  127. package/pluggableElementTypes/models/baseConnectionConfig.d.ts +0 -6
  128. package/pluggableElementTypes/models/baseConnectionConfig.js +1 -13
  129. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +0 -15
  130. package/pluggableElementTypes/models/baseInternetAccountConfig.js +1 -23
  131. package/pluggableElementTypes/models/baseTrackConfig.d.ts +2 -53
  132. package/pluggableElementTypes/models/baseTrackConfig.js +1 -58
  133. package/pluggableElementTypes/renderers/BoxRendererType.d.ts +7 -15
  134. package/pluggableElementTypes/renderers/BoxRendererType.js +3 -14
  135. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +3 -2
  136. package/pluggableElementTypes/renderers/CircularChordRendererType.js +1 -6
  137. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +6 -21
  138. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +2 -25
  139. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +5 -47
  140. package/pluggableElementTypes/renderers/FeatureRendererType.js +15 -68
  141. package/pluggableElementTypes/renderers/RendererType.d.ts +4 -8
  142. package/pluggableElementTypes/renderers/RendererType.js +1 -5
  143. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +2 -2
  144. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +3 -12
  145. package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +1 -1
  146. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +6 -14
  147. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +9 -49
  148. package/pluggableElementTypes/renderers/ServerSideRendererType.js +7 -57
  149. package/pluggableElementTypes/renderers/index.d.ts +1 -1
  150. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +1 -3
  151. package/rpc/BaseRpcDriver.d.ts +3 -4
  152. package/rpc/BaseRpcDriver.js +20 -80
  153. package/rpc/MainThreadRpcDriver.d.ts +3 -7
  154. package/rpc/MainThreadRpcDriver.js +0 -5
  155. package/rpc/RpcManager.d.ts +3 -3
  156. package/rpc/RpcManager.js +2 -4
  157. package/rpc/WebWorkerRpcDriver.d.ts +3 -2
  158. package/rpc/WebWorkerRpcDriver.js +2 -13
  159. package/rpc/baseRpcConfig.d.ts +0 -3
  160. package/rpc/baseRpcConfig.js +1 -7
  161. package/rpc/configSchema.d.ts +0 -6
  162. package/rpc/configSchema.js +2 -11
  163. package/rpc/mainThreadRpcConfig.js +1 -7
  164. package/rpc/methods/CoreFreeResources.d.ts +0 -6
  165. package/rpc/methods/CoreFreeResources.js +2 -9
  166. package/rpc/methods/CoreGetFeatureDensityStats.d.ts +4 -5
  167. package/rpc/methods/CoreGetFeatureDensityStats.js +1 -1
  168. package/rpc/methods/CoreGetFeatureDetails.d.ts +2 -7
  169. package/rpc/methods/CoreGetFeatureDetails.js +0 -5
  170. package/rpc/methods/CoreGetFeatures.d.ts +5 -5
  171. package/rpc/methods/CoreGetFeatures.js +4 -5
  172. package/rpc/methods/CoreGetFileInfo.d.ts +1 -2
  173. package/rpc/methods/CoreGetFileInfo.js +1 -1
  174. package/rpc/methods/CoreGetMetadata.d.ts +1 -2
  175. package/rpc/methods/CoreGetMetadata.js +1 -1
  176. package/rpc/methods/CoreGetRefNames.d.ts +1 -2
  177. package/rpc/methods/CoreGetRefNames.js +1 -1
  178. package/rpc/methods/CoreRender.d.ts +2 -6
  179. package/rpc/methods/CoreRender.js +5 -7
  180. package/rpc/methods/util.d.ts +3 -3
  181. package/rpc/methods/util.js +0 -1
  182. package/rpc/webWorkerRpcConfig.js +1 -7
  183. package/stories/JBrowseCore.stories.d.ts +1 -1
  184. package/stories/JBrowseCore.stories.js +3 -3
  185. package/stories/examples/WithSequencePanel.d.ts +1 -1
  186. package/stories/examples/WithSequencePanel.js +3 -3
  187. package/tsconfig.build.tsbuildinfo +1 -1
  188. package/ui/AppLogo.d.ts +1 -1
  189. package/ui/AppLogo.js +0 -2
  190. package/ui/AssemblySelector.d.ts +2 -2
  191. package/ui/AssemblySelector.js +0 -3
  192. package/ui/BaseTooltip.js +2 -6
  193. package/ui/CascadingMenu.d.ts +2 -2
  194. package/ui/CascadingMenu.js +3 -4
  195. package/ui/CascadingMenuButton.d.ts +1 -1
  196. package/ui/CascadingMenuButton.js +1 -1
  197. package/ui/ColorPicker.js +1 -7
  198. package/ui/Dialog.d.ts +1 -1
  199. package/ui/Dialog.js +2 -6
  200. package/ui/DropDownMenu.d.ts +1 -1
  201. package/ui/DropDownMenu.js +2 -2
  202. package/ui/EditableTypography.d.ts +1 -1
  203. package/ui/EditableTypography.js +1 -5
  204. package/ui/ErrorBoundary.d.ts +2 -1
  205. package/ui/ErrorMessage.js +2 -9
  206. package/ui/ErrorMessageStackTraceDialog.js +2 -10
  207. package/ui/FactoryResetDialog.js +1 -1
  208. package/ui/FatalErrorDialog.js +1 -1
  209. package/ui/FileSelector/FileSelector.d.ts +4 -3
  210. package/ui/FileSelector/FileSelector.js +40 -40
  211. package/ui/FileSelector/LocalFileChooser.d.ts +1 -1
  212. package/ui/FileSelector/LocalFileChooser.js +0 -1
  213. package/ui/FileSelector/UrlChooser.d.ts +4 -3
  214. package/ui/FileSelector/UrlChooser.js +5 -3
  215. package/ui/Icons.d.ts +1 -1
  216. package/ui/Icons.js +1 -7
  217. package/ui/LoadingEllipses.d.ts +1 -1
  218. package/ui/LoadingEllipses.js +3 -3
  219. package/ui/Menu.d.ts +1 -1
  220. package/ui/Menu.js +3 -10
  221. package/ui/MenuButton.d.ts +1 -1
  222. package/ui/ResizeHandle.js +2 -2
  223. package/ui/ReturnToImportFormDialog.js +1 -1
  224. package/ui/SanitizedHTML.js +1 -21
  225. package/ui/Snackbar.d.ts +2 -2
  226. package/ui/Snackbar.js +1 -2
  227. package/ui/SnackbarModel.d.ts +1 -26
  228. package/ui/SnackbarModel.js +2 -30
  229. package/ui/colors.d.ts +1 -1
  230. package/ui/colors.js +1 -1
  231. package/ui/react-colorful.js +0 -3
  232. package/ui/theme.d.ts +1 -1
  233. package/ui/theme.js +0 -40
  234. package/util/Base1DUtils.d.ts +1 -1
  235. package/util/Base1DUtils.js +0 -12
  236. package/util/Base1DViewModel.d.ts +4 -81
  237. package/util/Base1DViewModel.js +4 -108
  238. package/util/QuickLRU.js +0 -9
  239. package/util/TimeTraveller.js +0 -4
  240. package/util/aborting.d.ts +0 -20
  241. package/util/aborting.js +0 -31
  242. package/util/analytics.js +1 -12
  243. package/util/blockTypes.d.ts +0 -11
  244. package/util/blockTypes.js +0 -13
  245. package/util/calculateDynamicBlocks.d.ts +1 -20
  246. package/util/calculateDynamicBlocks.js +1 -22
  247. package/util/calculateStaticBlocks.d.ts +2 -2
  248. package/util/calculateStaticBlocks.js +0 -2
  249. package/util/color/cssColorsLevel4.js +0 -1
  250. package/util/color/index.d.ts +0 -19
  251. package/util/color/index.js +0 -30
  252. package/util/compositeMap.js +0 -2
  253. package/util/dedupe.js +0 -1
  254. package/util/formatFastaStrings.d.ts +0 -13
  255. package/util/formatFastaStrings.js +0 -13
  256. package/util/idMaker.d.ts +1 -1
  257. package/util/idMaker.js +16 -12
  258. package/util/index.d.ts +16 -164
  259. package/util/index.js +22 -282
  260. package/util/io/RemoteFileWithRangeCache.d.ts +3 -2
  261. package/util/io/RemoteFileWithRangeCache.js +6 -10
  262. package/util/io/index.d.ts +3 -4
  263. package/util/io/index.js +3 -17
  264. package/util/jexl.js +3 -13
  265. package/util/jexlStrings.d.ts +0 -6
  266. package/util/jexlStrings.js +0 -8
  267. package/util/layouts/BaseLayout.d.ts +1 -1
  268. package/util/layouts/GranularRectLayout.d.ts +1 -17
  269. package/util/layouts/GranularRectLayout.js +4 -81
  270. package/util/layouts/MultiLayout.d.ts +1 -6
  271. package/util/layouts/MultiLayout.js +0 -6
  272. package/util/layouts/PrecomputedLayout.d.ts +1 -4
  273. package/util/layouts/PrecomputedLayout.js +0 -5
  274. package/util/layouts/PrecomputedMultiLayout.js +0 -2
  275. package/util/layouts/SceneGraph.d.ts +0 -12
  276. package/util/layouts/SceneGraph.js +0 -13
  277. package/util/makeAbortableReaction.d.ts +2 -0
  278. package/util/makeAbortableReaction.js +50 -0
  279. package/util/map-obj.js +0 -4
  280. package/util/mst-reflection.d.ts +1 -14
  281. package/util/mst-reflection.js +1 -28
  282. package/util/nanoid.js +0 -31
  283. package/util/nextTick.d.ts +1 -0
  284. package/util/nextTick.js +6 -0
  285. package/util/offscreenCanvasPonyfill.d.ts +0 -1
  286. package/util/offscreenCanvasPonyfill.js +1 -9
  287. package/util/offscreenCanvasUtils.js +1 -8
  288. package/util/range.d.ts +0 -25
  289. package/util/range.js +0 -34
  290. package/util/rxjs.d.ts +3 -7
  291. package/util/rxjs.js +2 -9
  292. package/util/simpleFeature.d.ts +0 -50
  293. package/util/simpleFeature.js +0 -35
  294. package/util/stats.d.ts +3 -26
  295. package/util/stats.js +0 -25
  296. package/util/stopToken.d.ts +3 -0
  297. package/util/stopToken.js +29 -0
  298. package/util/tracks.d.ts +3 -25
  299. package/util/tracks.js +0 -30
  300. package/util/types/index.d.ts +14 -30
  301. package/util/types/index.js +5 -14
  302. package/util/types/mst.js +0 -9
  303. package/util/types/util.d.ts +2 -9
  304. package/util/useMeasure.js +0 -1
  305. package/util/when.d.ts +1 -15
  306. package/util/when.js +3 -70
  307. package/rpc/remoteAbortSignals.d.ts +0 -36
  308. package/rpc/remoteAbortSignals.js +0 -79
package/ui/AppLogo.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { AnyConfigurationModel } from '../configuration';
2
+ import type { AnyConfigurationModel } from '../configuration';
3
3
  declare const Logo: ({ session, }: {
4
4
  session: {
5
5
  configuration: AnyConfigurationModel;
package/ui/AppLogo.js CHANGED
@@ -5,9 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
7
  const mobx_react_1 = require("mobx-react");
8
- // locals
9
8
  const configuration_1 = require("../configuration");
10
- // ui elements
11
9
  const Logo_1 = require("./Logo");
12
10
  const Logo = (0, mobx_react_1.observer)(function ({ session, }) {
13
11
  const { configuration } = session;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { InputProps as IIP, TextFieldProps as TFP } from '@mui/material';
3
- import { AbstractSessionModel } from '../util';
2
+ import type { AbstractSessionModel } from '../util';
3
+ import type { InputProps as IIP, TextFieldProps as TFP } from '@mui/material';
4
4
  declare const AssemblySelector: ({ session, onChange, selected, InputProps, TextFieldProps, localStorageKey, helperText, }: {
5
5
  session: AbstractSessionModel;
6
6
  helperText?: string;
@@ -27,7 +27,6 @@ const react_1 = __importStar(require("react"));
27
27
  const material_1 = require("@mui/material");
28
28
  const mobx_react_1 = require("mobx-react");
29
29
  const mui_1 = require("tss-react/mui");
30
- // locals
31
30
  const configuration_1 = require("../configuration");
32
31
  const util_1 = require("../util");
33
32
  const useStyles = (0, mui_1.makeStyles)()({
@@ -38,8 +37,6 @@ const useStyles = (0, mui_1.makeStyles)()({
38
37
  const AssemblySelector = (0, mobx_react_1.observer)(function ({ session, onChange, selected, InputProps, TextFieldProps, localStorageKey, helperText = 'Select assembly to view', }) {
39
38
  const { classes } = useStyles();
40
39
  const { assemblyNames, assemblyManager } = session;
41
- // constructs a localstorage key based on host/path/config to help
42
- // remember. non-config assists usage with e.g. embedded apps
43
40
  const config = new URLSearchParams(window.location.search).get('config');
44
41
  const [lastSelected, setLastSelected] = typeof jest === 'undefined' && localStorageKey
45
42
  ? (0, util_1.useLocalStorage)(`lastAssembly-${[
package/ui/BaseTooltip.js CHANGED
@@ -5,15 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = BaseTooltip;
7
7
  const react_1 = __importDefault(require("react"));
8
- const mui_1 = require("tss-react/mui");
9
- const material_1 = require("@mui/material");
10
8
  const react_2 = require("@floating-ui/react");
9
+ const material_1 = require("@mui/material");
10
+ const mui_1 = require("tss-react/mui");
11
11
  function round(value) {
12
12
  return Math.round(value * 1e5) / 1e5;
13
13
  }
14
14
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
15
- // these styles come from
16
- // https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Tooltip/Tooltip.js
17
15
  tooltip: {
18
16
  position: 'absolute',
19
17
  pointerEvents: 'none',
@@ -43,8 +41,6 @@ function BaseTooltip({ clientPoint: clientPointCoords, children, placement = 'ri
43
41
  react_1.default.createElement("div", { className: classes.tooltip, ref: refs.setFloating, style: {
44
42
  ...floatingStyles,
45
43
  zIndex: 100000,
46
- // workaround for tooltips flashing at top left corner of screen
47
- // when first appearing
48
44
  visibility: floatingStyles.transform === 'translate(0px, 0px)'
49
45
  ? 'hidden'
50
46
  : undefined,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { MenuItem as JBMenuItem } from './Menu';
3
- import { PopupState } from 'material-ui-popup-state/hooks';
2
+ import type { MenuItem as JBMenuItem } from './Menu';
3
+ import type { PopupState } from 'material-ui-popup-state/hooks';
4
4
  declare function CascadingMenuChildren(props: {
5
5
  onMenuItemClick: Function;
6
6
  closeAfterItemClick?: boolean;
@@ -26,13 +26,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- /* eslint-disable @typescript-eslint/no-unsafe-function-type */
30
29
  const react_1 = __importStar(require("react"));
30
+ const ChevronRight_1 = __importDefault(require("@mui/icons-material/ChevronRight"));
31
31
  const material_1 = require("@mui/material");
32
- const Menu_1 = require("./Menu");
33
- const hooks_1 = require("material-ui-popup-state/hooks");
34
32
  const HoverMenu_1 = __importDefault(require("material-ui-popup-state/HoverMenu"));
35
- const ChevronRight_1 = __importDefault(require("@mui/icons-material/ChevronRight"));
33
+ const hooks_1 = require("material-ui-popup-state/hooks");
34
+ const Menu_1 = require("./Menu");
36
35
  const CascadingContext = react_1.default.createContext({
37
36
  parentPopupState: null,
38
37
  rootPopupState: null,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { MenuItem } from '@jbrowse/core/ui';
2
+ import type { MenuItem } from '@jbrowse/core/ui';
3
3
  declare const CascadingMenuButton: ({ children, menuItems, closeAfterItemClick, stopPropagation, setOpen, onClick: onClickExtra, ...rest }: {
4
4
  children?: React.ReactElement;
5
5
  menuItems: MenuItem[];
@@ -29,8 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
30
  const CascadingMenu_1 = __importDefault(require("@jbrowse/core/ui/CascadingMenu"));
31
31
  const material_1 = require("@mui/material");
32
- const mobx_react_1 = require("mobx-react");
33
32
  const hooks_1 = require("material-ui-popup-state/hooks");
33
+ const mobx_react_1 = require("mobx-react");
34
34
  const CascadingMenuButton = (0, mobx_react_1.observer)(function CascadingMenuButton({ children, menuItems, closeAfterItemClick = true, stopPropagation, setOpen, onClick: onClickExtra, ...rest }) {
35
35
  const popupState = (0, hooks_1.usePopupState)({
36
36
  popupId: 'viewMenu',
package/ui/ColorPicker.js CHANGED
@@ -30,12 +30,8 @@ const react_1 = __importStar(require("react"));
30
30
  const colord_1 = require("@jbrowse/core/util/colord");
31
31
  const material_1 = require("@mui/material");
32
32
  const mui_1 = require("tss-react/mui");
33
- // locals
34
33
  const paletteColors = __importStar(require("./colors"));
35
34
  const util_1 = require("../util");
36
- // we are using a vendored copy of react-colorful because the default uses
37
- // pure-ESM which is difficult to make pass with jest e.g.
38
- // https://stackoverflow.com/questions/58613492/how-to-resolve-cannot-use-import-statement-outside-a-module-in-jest
39
35
  const react_colorful_1 = require("./react-colorful");
40
36
  const useStyles = (0, mui_1.makeStyles)()({
41
37
  picker: { position: 'relative' },
@@ -93,9 +89,7 @@ function ColorPicker({ onChange, color, }) {
93
89
  const pal = event.target.value;
94
90
  setVal(pal);
95
91
  } }, palettes.map(p => (react_1.default.createElement(material_1.MenuItem, { value: p, key: p }, p)))),
96
- react_1.default.createElement("div", { className: classes.swatches }, presetColors.map((presetColor, idx) => (react_1.default.createElement("button", { type: "button",
97
- /* biome-ignore lint/suspicious/noArrayIndexKey: */
98
- key: `${presetColor}-${idx}`, className: classes.swatch, style: { background: presetColor }, onClick: () => {
92
+ react_1.default.createElement("div", { className: classes.swatches }, presetColors.map((presetColor, idx) => (react_1.default.createElement("button", { type: "button", key: `${presetColor}-${idx}`, className: classes.swatch, style: { background: presetColor }, onClick: () => {
99
93
  handleChange(presetColor);
100
94
  } })))),
101
95
  react_1.default.createElement(material_1.TextField, { helperText: 'Manually set color (hex, rgb, or css color name)', value: text, onChange: event => {
package/ui/Dialog.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { DialogProps } from '@mui/material';
2
+ import type { DialogProps } from '@mui/material';
3
3
  interface Props extends DialogProps {
4
4
  header?: React.ReactNode;
5
5
  }
package/ui/Dialog.js CHANGED
@@ -4,13 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
+ const ErrorBoundary_1 = require("@jbrowse/core/ui/ErrorBoundary");
8
+ const Close_1 = __importDefault(require("@mui/icons-material/Close"));
7
9
  const material_1 = require("@mui/material");
8
10
  const mobx_react_1 = require("mobx-react");
9
11
  const mui_1 = require("tss-react/mui");
10
- const ErrorBoundary_1 = require("@jbrowse/core/ui/ErrorBoundary");
11
- // icons
12
- const Close_1 = __importDefault(require("@mui/icons-material/Close"));
13
- // locals
14
12
  const ErrorMessage_1 = __importDefault(require("./ErrorMessage"));
15
13
  const SanitizedHTML_1 = __importDefault(require("./SanitizedHTML"));
16
14
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
@@ -34,7 +32,6 @@ const Dialog = (0, mobx_react_1.observer)(function (props) {
34
32
  react_1.default.isValidElement(header) ? (header) : (react_1.default.createElement(material_1.DialogTitle, null,
35
33
  react_1.default.createElement(SanitizedHTML_1.default, { html: title || '' }),
36
34
  onClose ? (react_1.default.createElement(material_1.IconButton, { className: classes.closeButton, onClick: () => {
37
- // @ts-expect-error
38
35
  onClose();
39
36
  } },
40
37
  react_1.default.createElement(Close_1.default, null))) : null)),
@@ -45,7 +42,6 @@ const Dialog = (0, mobx_react_1.observer)(function (props) {
45
42
  MuiInputBase: {
46
43
  styleOverrides: {
47
44
  input: {
48
- // xref https://github.com/GMOD/jbrowse-components/pull/3666
49
45
  boxSizing: 'content-box!important',
50
46
  },
51
47
  },
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { MenuItem } from './Menu';
2
+ import type { MenuItem } from './Menu';
3
3
  declare const DropDownMenu: ({ menuTitle, session, menuItems, }: {
4
4
  menuTitle: string;
5
5
  session: any;
@@ -27,10 +27,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
+ const ArrowDropDown_1 = __importDefault(require("@mui/icons-material/ArrowDropDown"));
30
31
  const material_1 = require("@mui/material");
31
- const mui_1 = require("tss-react/mui");
32
32
  const mobx_react_1 = require("mobx-react");
33
- const ArrowDropDown_1 = __importDefault(require("@mui/icons-material/ArrowDropDown"));
33
+ const mui_1 = require("tss-react/mui");
34
34
  const Menu_1 = __importDefault(require("./Menu"));
35
35
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
36
36
  buttonRoot: {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TypographyProps } from '@mui/material';
2
+ import type { TypographyProps } from '@mui/material';
3
3
  type Variant = TypographyProps['variant'];
4
4
  type EditableTypographyClassKey = 'input' | 'inputBase' | 'inputRoot' | 'inputFocused';
5
5
  interface Props {
@@ -27,9 +27,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
+ const useMeasure_1 = __importDefault(require("@jbrowse/core/util/useMeasure"));
30
31
  const material_1 = require("@mui/material");
31
32
  const mui_1 = require("tss-react/mui");
32
- const useMeasure_1 = __importDefault(require("@jbrowse/core/util/useMeasure"));
33
33
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
34
34
  input: {},
35
35
  inputBase: {},
@@ -48,7 +48,6 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
48
48
  borderWidth: 2,
49
49
  },
50
50
  }));
51
- // using forwardRef so that MUI Tooltip can wrap this component
52
51
  const EditableTypography = react_1.default.forwardRef(function EditableTypography2(props, ref) {
53
52
  const { value, setValue, variant, ...other } = props;
54
53
  const [ref2, { width }] = (0, useMeasure_1.default)();
@@ -61,9 +60,6 @@ const EditableTypography = react_1.default.forwardRef(function EditableTypograph
61
60
  setBlur(false);
62
61
  }
63
62
  }, [blur, inputNode]);
64
- // possibly tss-react does not understand the passing of props to
65
- // useStyles, but it appears to work
66
- // @ts-expect-error
67
63
  const { classes } = useStyles(props, { props });
68
64
  const theme = (0, material_1.useTheme)();
69
65
  const val = editedValue === undefined ? value : editedValue;
@@ -1,4 +1,5 @@
1
- import React, { Component, ErrorInfo } from 'react';
1
+ import type { ErrorInfo } from 'react';
2
+ import React, { Component } from 'react';
2
3
  interface Props {
3
4
  children: React.ReactNode;
4
5
  FallbackComponent: React.FC<{
@@ -27,14 +27,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
+ const Refresh_1 = __importDefault(require("@mui/icons-material/Refresh"));
31
+ const Report_1 = __importDefault(require("@mui/icons-material/Report"));
30
32
  const material_1 = require("@mui/material");
31
33
  const mui_1 = require("tss-react/mui");
32
- // locals
33
34
  const RedErrorMessageBox_1 = __importDefault(require("./RedErrorMessageBox"));
34
- // icons
35
- const Refresh_1 = __importDefault(require("@mui/icons-material/Refresh"));
36
- const Report_1 = __importDefault(require("@mui/icons-material/Report"));
37
- // lazies
38
35
  const ErrorMessageStackTraceDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./ErrorMessageStackTraceDialog'))));
39
36
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
40
37
  bg: {
@@ -53,15 +50,11 @@ function parseError(str) {
53
50
  const idx = str.indexOf(findStr);
54
51
  if (idx !== -1) {
55
52
  const trim = str.slice(0, idx + findStr.length);
56
- // best effort to make a better error message than the default
57
- // mobx-state-tree
58
- // case 1. element has a path
59
53
  const match = /.*at path "(.*)" snapshot `(.*)` is not assignable/m.exec(trim);
60
54
  if (match) {
61
55
  str = `Failed to load element at ${match[1]}...Failed element had snapshot`;
62
56
  snapshotError = match[2];
63
57
  }
64
- // case 2. element has no path
65
58
  const match2 = /.*snapshot `(.*)` is not assignable/.exec(trim);
66
59
  if (match2) {
67
60
  str = 'Failed to load element...Failed element had snapshot';
@@ -29,10 +29,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.default = ErrorMessageStackTraceDialog;
30
30
  const react_1 = __importStar(require("react"));
31
31
  const material_1 = require("@mui/material");
32
- const mui_1 = require("tss-react/mui");
33
- const source_map_js_1 = require("source-map-js");
34
32
  const copy_to_clipboard_1 = __importDefault(require("copy-to-clipboard"));
35
- // locals
33
+ const source_map_js_1 = require("source-map-js");
34
+ const mui_1 = require("tss-react/mui");
36
35
  const Dialog_1 = __importDefault(require("./Dialog"));
37
36
  const LoadingEllipses_1 = __importDefault(require("./LoadingEllipses"));
38
37
  function Link2({ href, children, }) {
@@ -53,8 +52,6 @@ async function myfetchtext(uri) {
53
52
  const res = await myfetch(uri);
54
53
  return res.text();
55
54
  }
56
- // produce a source-map resolved stack trace
57
- // reference code https://stackoverflow.com/a/77158517/2129219
58
55
  const sourceMaps = {};
59
56
  async function getSourceMapFromUri(uri) {
60
57
  var _a;
@@ -97,11 +94,8 @@ async function mapStackTrace(stack) {
97
94
  return mappedStack.join('\n');
98
95
  }
99
96
  const MAX_ERR_LEN = 10000;
100
- // Chrome has the error message in the stacktrace, firefox doesn't
101
97
  function stripMessage(trace, error) {
102
98
  if (trace.startsWith('Error:')) {
103
- // remove the error message, which can be very long due to mobx-state-tree
104
- // stuff, to get just the stack trace
105
99
  const err = `${error}`;
106
100
  return trace.slice(err.length);
107
101
  }
@@ -151,7 +145,6 @@ function ErrorMessageStackTraceDialog({ error, onClose, extra, }) {
151
145
  const errorText = error ? `${error}` : '';
152
146
  const stackTrace = stripMessage(stackTracePreProcessed, errorText);
153
147
  (0, react_1.useEffect)(() => {
154
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
155
148
  ;
156
149
  (async () => {
157
150
  try {
@@ -173,7 +166,6 @@ function ErrorMessageStackTraceDialog({ error, onClose, extra, }) {
173
166
  ? `${errorText.slice(0, MAX_ERR_LEN)}...`
174
167
  : errorText,
175
168
  mappedStackTrace || 'No stack trace available',
176
- // @ts-expect-error add version info at bottom if we are in jbrowse-web
177
169
  window.JBrowseSession ? `JBrowse ${window.JBrowseSession.version}` : '',
178
170
  ]
179
171
  .filter(f => !!f)
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = FactoryResetDialog;
7
7
  const react_1 = __importDefault(require("react"));
8
- const material_1 = require("@mui/material");
9
8
  const Dialog_1 = __importDefault(require("@jbrowse/core/ui/Dialog"));
9
+ const material_1 = require("@mui/material");
10
10
  function FactoryResetDialog({ onClose, open, onFactoryReset, }) {
11
11
  function handleDialogClose(action) {
12
12
  if (action === 'reset') {
@@ -29,8 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.default = FatalErrorDialog;
30
30
  const react_1 = __importStar(require("react"));
31
31
  const material_1 = require("@mui/material");
32
- const FactoryResetDialog_1 = __importDefault(require("./FactoryResetDialog"));
33
32
  const ErrorMessage_1 = __importDefault(require("./ErrorMessage"));
33
+ const FactoryResetDialog_1 = __importDefault(require("./FactoryResetDialog"));
34
34
  const ResetComponent = ({ onFactoryReset, resetButtonText, }) => {
35
35
  const [dialogOpen, setDialogOpen] = (0, react_1.useState)(false);
36
36
  return (react_1.default.createElement(react_1.default.Fragment, null,
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
- import { FileLocation, AbstractRootModel } from '../../util/types';
2
+ import type { AbstractRootModel, FileLocation } from '../../util/types';
3
3
  declare const FileSelector: (props: {
4
4
  location?: FileLocation;
5
- setLocation: (param: FileLocation) => void;
6
- setName?: (str: string) => void;
7
5
  name?: string;
8
6
  description?: string;
7
+ inline?: boolean;
9
8
  rootModel?: AbstractRootModel;
9
+ setLocation: (param: FileLocation) => void;
10
+ setName?: (str: string) => void;
10
11
  }) => React.JSX.Element;
11
12
  export default FileSelector;
@@ -27,15 +27,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
- const mobx_react_1 = require("mobx-react");
30
+ const ArrowDropDown_1 = __importDefault(require("@mui/icons-material/ArrowDropDown"));
31
31
  const material_1 = require("@mui/material");
32
- // locals
33
- const types_1 = require("../../util/types");
32
+ const mobx_react_1 = require("mobx-react");
34
33
  const LocalFileChooser_1 = __importDefault(require("./LocalFileChooser"));
35
34
  const UrlChooser_1 = __importDefault(require("./UrlChooser"));
36
35
  const util_1 = require("../../util");
37
- // icons
38
- const ArrowDropDown_1 = __importDefault(require("@mui/icons-material/ArrowDropDown"));
36
+ const types_1 = require("../../util/types");
39
37
  const NUM_SHOWN = 2;
40
38
  function ToggleButtonWithTooltip(props) {
41
39
  const { title, children, ...other } = props;
@@ -48,8 +46,19 @@ function shorten(str, len) {
48
46
  }
49
47
  return str;
50
48
  }
49
+ function Inline({ children }) {
50
+ return react_1.default.createElement("div", { style: { display: 'flex', gap: 4 } }, children);
51
+ }
52
+ function Box2({ children }) {
53
+ return (react_1.default.createElement(material_1.Box, { display: "flex", flexDirection: "row" },
54
+ react_1.default.createElement(material_1.Box, null, children)));
55
+ }
56
+ function Input(props) {
57
+ const { setLocation, inline, toggleButtonValue, selectedAccount } = props;
58
+ return (react_1.default.createElement(react_1.default.Fragment, null, (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.SelectorComponent) ? (react_1.default.createElement(selectedAccount.SelectorComponent, { ...props, setLocation: setLocation })) : toggleButtonValue === 'url' ? (react_1.default.createElement(UrlChooser_1.default, { ...props, setLocation: setLocation, label: selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.selectorLabel, style: inline ? { margin: 0 } : undefined })) : toggleButtonValue === 'file' ? (react_1.default.createElement(LocalFileChooser_1.default, { ...props })) : null));
59
+ }
51
60
  const FileSelector = (0, mobx_react_1.observer)(function (props) {
52
- const { location, name, description, rootModel, setLocation } = props;
61
+ const { inline, location, name, description, rootModel, setLocation } = props;
53
62
  const fileOrUrl = !location || (0, types_1.isUriLocation)(location) ? 'url' : 'file';
54
63
  const [toggleButtonValue, setToggleButtonValue] = (0, react_1.useState)(location && 'internetAccountId' in location && location.internetAccountId
55
64
  ? location.internetAccountId
@@ -74,27 +83,19 @@ const FileSelector = (0, mobx_react_1.observer)(function (props) {
74
83
  });
75
84
  }, [setLocation, selectedAccount]);
76
85
  (0, react_1.useEffect)(() => {
77
- // if you swap account selection after inputting url
78
86
  if (selectedAccount &&
79
87
  (0, types_1.isUriLocation)(location) &&
80
88
  location.internetAccountId !== selectedAccount.internetAccountId) {
81
89
  setLocationWithAccount(location);
82
90
  }
83
91
  }, [location, selectedAccount, setLocationWithAccount]);
84
- let locationInput = (react_1.default.createElement(UrlChooser_1.default, { ...props, setLocation: setLocationWithAccount, label: selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.selectorLabel }));
85
- if (toggleButtonValue === 'file') {
86
- locationInput = react_1.default.createElement(LocalFileChooser_1.default, { ...props });
87
- }
88
- if (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.SelectorComponent) {
89
- const { SelectorComponent } = selectedAccount;
90
- locationInput = (react_1.default.createElement(SelectorComponent, { ...props, setLocation: setLocationWithAccount }));
91
- }
92
+ const Wrapper = inline ? Inline : Box2;
92
93
  return (react_1.default.createElement(react_1.default.Fragment, null,
93
94
  react_1.default.createElement(material_1.Box, { display: "flex" },
94
95
  react_1.default.createElement(material_1.InputLabel, { shrink: true }, name)),
95
- react_1.default.createElement(material_1.Box, { display: "flex", flexDirection: "row" },
96
- react_1.default.createElement(material_1.Box, null,
97
- react_1.default.createElement(material_1.ToggleButtonGroup, { value: toggleButtonValue, exclusive: true, onChange: (_event, newState) => {
96
+ react_1.default.createElement(material_1.FormGroup, null,
97
+ react_1.default.createElement(Wrapper, null,
98
+ react_1.default.createElement(material_1.ToggleButtonGroup, { value: toggleButtonValue, exclusive: true, size: "small", onChange: (_event, newState) => {
98
99
  setRecentlyUsedInternetAccounts([
99
100
  ...new Set([newState, ...recentlyUsedInternetAccounts].filter(util_1.notEmpty)),
100
101
  ]);
@@ -105,37 +106,36 @@ const FileSelector = (0, mobx_react_1.observer)(function (props) {
105
106
  setLocationWithAccount(location);
106
107
  }
107
108
  }, "aria-label": "file, url, or account picker" },
108
- new URLSearchParams(window.location.search).get('adminKey') ? null : (react_1.default.createElement(material_1.ToggleButton, { value: "file", "aria-label": "local file" }, "File")),
109
- react_1.default.createElement(material_1.ToggleButton, { value: "url", "aria-label": "url" }, "URL"),
109
+ new URLSearchParams(window.location.search).get('adminKey') ? null : (react_1.default.createElement(material_1.ToggleButton, { size: "small", value: "file", "aria-label": "local file" }, "File")),
110
+ react_1.default.createElement(material_1.ToggleButton, { size: "small", value: "url", "aria-label": "url" }, "URL"),
110
111
  shownAccounts.map(id => {
111
112
  const { internetAccountId, name, toggleContents } = map[id];
112
113
  return (react_1.default.createElement(ToggleButtonWithTooltip, { key: id, value: internetAccountId, title: name }, typeof toggleContents === 'string'
113
114
  ? shorten(toggleContents, 5)
114
115
  : toggleContents || shorten(name, 5)));
115
116
  }),
116
- hiddenAccounts.length > 0 ? (
117
- // @ts-expect-error
118
- react_1.default.createElement(material_1.ToggleButton, { onClick: event => {
117
+ hiddenAccounts.length > 0 ? (react_1.default.createElement(material_1.ToggleButton, { onClick: event => {
119
118
  setAnchorEl(event.target);
120
119
  }, selected: false },
121
120
  "More",
122
121
  react_1.default.createElement(ArrowDropDown_1.default, null))) : null),
123
- react_1.default.createElement(material_1.Menu, { open: Boolean(anchorEl), anchorEl: anchorEl, onClose: () => {
124
- setAnchorEl(null);
125
- }, anchorOrigin: { vertical: 'bottom', horizontal: 'center' }, transformOrigin: { vertical: 'top', horizontal: 'center' } }, hiddenAccounts.map(id => {
126
- const { internetAccountId, name } = map[id];
127
- return (react_1.default.createElement(material_1.MenuItem, { key: id, value: internetAccountId, onClick: () => {
128
- setRecentlyUsedInternetAccounts([
129
- ...new Set([
130
- internetAccountId,
131
- ...recentlyUsedInternetAccounts,
132
- ].filter(util_1.notEmpty)),
133
- ]);
134
- setToggleButtonValue(internetAccountId);
135
- setAnchorEl(null);
136
- } }, name));
137
- })))),
138
- locationInput,
139
- react_1.default.createElement(material_1.FormHelperText, null, description)));
122
+ inline ? (react_1.default.createElement(Input, { ...props, toggleButtonValue: toggleButtonValue, selectedAccount: selectedAccount, setLocation: setLocationWithAccount })) : null),
123
+ !inline ? (react_1.default.createElement(Input, { ...props, toggleButtonValue: toggleButtonValue, selectedAccount: selectedAccount, setLocation: setLocationWithAccount })) : null),
124
+ react_1.default.createElement(material_1.FormHelperText, null, description),
125
+ anchorEl ? (react_1.default.createElement(material_1.Menu, { open: true, anchorEl: anchorEl, anchorOrigin: { vertical: 'bottom', horizontal: 'center' }, transformOrigin: { vertical: 'top', horizontal: 'center' }, onClose: () => {
126
+ setAnchorEl(null);
127
+ } }, hiddenAccounts.map(id => {
128
+ const { internetAccountId, name } = map[id];
129
+ return (react_1.default.createElement(material_1.MenuItem, { key: id, value: internetAccountId, onClick: () => {
130
+ setRecentlyUsedInternetAccounts([
131
+ ...new Set([
132
+ internetAccountId,
133
+ ...recentlyUsedInternetAccounts,
134
+ ].filter(util_1.notEmpty)),
135
+ ]);
136
+ setToggleButtonValue(internetAccountId);
137
+ setAnchorEl(null);
138
+ } }, name));
139
+ }))) : null));
140
140
  });
141
141
  exports.default = FileSelector;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { FileLocation } from '../../util/types';
2
+ import type { FileLocation } from '../../util/types';
3
3
  declare function LocalFileChooser({ location, setLocation, }: {
4
4
  location?: FileLocation;
5
5
  setLocation: (arg: FileLocation) => void;
@@ -42,7 +42,6 @@ function LocalFileChooser({ location, setLocation, }) {
42
42
  });
43
43
  }
44
44
  else {
45
- // @ts-expect-error
46
45
  setLocation((0, tracks_1.storeBlobLocation)({ blob: file }));
47
46
  }
48
47
  }
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { FileLocation } from '../../util/types';
3
- declare const UrlChooser: ({ location, setLocation, label, }: {
2
+ import type { FileLocation } from '../../util/types';
3
+ declare const UrlChooser: ({ location, label, style, setLocation, }: {
4
4
  location?: FileLocation;
5
- setLocation: (arg: FileLocation) => void;
6
5
  label?: string;
6
+ style?: Record<string, unknown>;
7
+ setLocation: (arg: FileLocation) => void;
7
8
  }) => React.JSX.Element;
8
9
  export default UrlChooser;
@@ -7,14 +7,16 @@ const react_1 = __importDefault(require("react"));
7
7
  const material_1 = require("@mui/material");
8
8
  const mobx_react_1 = require("mobx-react");
9
9
  const types_1 = require("../../util/types");
10
- const UrlChooser = (0, mobx_react_1.observer)(function ({ location, setLocation, label, }) {
11
- return (react_1.default.createElement(material_1.TextField, { fullWidth: true, variant: "outlined", defaultValue: location && (0, types_1.isUriLocation)(location) ? location.uri : '', label: label || 'Enter URL', onChange: event => {
10
+ const UrlChooser = (0, mobx_react_1.observer)(function ({ location, label, style, setLocation, }) {
11
+ return (react_1.default.createElement(material_1.TextField, { variant: "outlined", fullWidth: true, defaultValue: location && (0, types_1.isUriLocation)(location) ? location.uri : '', label: label || 'Enter URL', style: style, onChange: event => {
12
12
  setLocation({
13
13
  uri: event.target.value.trim(),
14
14
  locationType: 'UriLocation',
15
15
  });
16
16
  }, slotProps: {
17
- htmlInput: { 'data-testid': 'urlInput' },
17
+ htmlInput: {
18
+ 'data-testid': 'urlInput',
19
+ },
18
20
  } }));
19
21
  });
20
22
  exports.default = UrlChooser;
package/ui/Icons.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { SvgIconProps } from '@mui/material/SvgIcon';
2
1
  import React from 'react';
2
+ import type { SvgIconProps } from '@mui/material/SvgIcon';
3
3
  export declare function ContentCopy(props: SvgIconProps): React.JSX.Element;
4
4
  export declare function Indexing(props: SvgIconProps): React.JSX.Element;
5
5
  export declare function ContentCut(props: SvgIconProps): React.JSX.Element;
package/ui/Icons.js CHANGED
@@ -12,14 +12,12 @@ exports.SaveAs = SaveAs;
12
12
  exports.Save = Save;
13
13
  exports.DNA = DNA;
14
14
  exports.Cable = Cable;
15
- const SvgIcon_1 = __importDefault(require("@mui/material/SvgIcon"));
16
15
  const react_1 = __importDefault(require("react"));
17
- // Icons below come from https://material.io/resources/icons/?icon=line_style&style=baseline
16
+ const SvgIcon_1 = __importDefault(require("@mui/material/SvgIcon"));
18
17
  function ContentCopy(props) {
19
18
  return (react_1.default.createElement(SvgIcon_1.default, { ...props },
20
19
  react_1.default.createElement("path", { d: "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" })));
21
20
  }
22
- // https://materialdesignicons.com/ text-search icon
23
21
  function Indexing(props) {
24
22
  return (react_1.default.createElement(SvgIcon_1.default, { ...props },
25
23
  react_1.default.createElement("path", { d: "M19.31 18.9L22.39 22L21 23.39L17.88 20.32C17.19 20.75 16.37 21 15.5 21C13 21 11 19 11 16.5C11 14 13 12 15.5 12C18 12 20 14 20 16.5C20 17.38 19.75 18.21 19.31 18.9M15.5 19C16.88 19 18 17.88 18 16.5C18 15.12 16.88 14 15.5 14C14.12 14 13 15.12 13 16.5C13 17.88 14.12 19 15.5 19M21 4V6H3V4H21M3 16V14H9V16H3M3 11V9H21V11H18.97C17.96 10.37 16.77 10 15.5 10C14.23 10 13.04 10.37 12.03 11H3Z" })));
@@ -32,22 +30,18 @@ function ContentPaste(props) {
32
30
  return (react_1.default.createElement(SvgIcon_1.default, { ...props },
33
31
  react_1.default.createElement("path", { d: "M19,20H5V4H7V7H17V4H19M12,2A1,1 0 0,1 13,3A1,1 0 0,1 12,4A1,1 0 0,1 11,3A1,1 0 0,1 12,2M19,2H14.82C14.4,0.84 13.3,0 12,0C10.7,0 9.6,0.84 9.18,2H5A2,2 0 0,0 3,4V20A2,2 0 0,0 5,22H19A2,2 0 0,0 21,20V4A2,2 0 0,0 19,2Z" })));
34
32
  }
35
- // format-list-checkbox from https://materialdesignicons.com/
36
33
  function TrackSelector(props) {
37
34
  return (react_1.default.createElement(SvgIcon_1.default, { ...props },
38
35
  react_1.default.createElement("path", { d: "M21 19v-2H8v2h13m0-6v-2H8v2h13M8 7h13V5H8v2M4 5v2h2V5H4M3 5a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V5m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2z" })));
39
36
  }
40
- // content-save-edit from https://materialdesignicons.com/
41
37
  function SaveAs(props) {
42
38
  return (react_1.default.createElement(SvgIcon_1.default, { ...props },
43
39
  react_1.default.createElement("path", { fill: "currentColor", d: "M10,19L10.14,18.86C8.9,18.5 8,17.36 8,16A3,3 0 0,1 11,13C12.36,13 13.5,13.9 13.86,15.14L20,9V7L16,3H4C2.89,3 2,3.9 2,5V19A2,2 0 0,0 4,21H10V19M4,5H14V9H4V5M20.04,12.13C19.9,12.13 19.76,12.19 19.65,12.3L18.65,13.3L20.7,15.35L21.7,14.35C21.92,14.14 21.92,13.79 21.7,13.58L20.42,12.3C20.31,12.19 20.18,12.13 20.04,12.13M18.07,13.88L12,19.94V22H14.06L20.12,15.93L18.07,13.88Z" })));
44
40
  }
45
- // content-save from https://materialdesignicons.com/
46
41
  function Save(props) {
47
42
  return (react_1.default.createElement(SvgIcon_1.default, { ...props },
48
43
  react_1.default.createElement("path", { fill: "currentColor", d: "M15,9H5V5H15M12,19A3,3 0 0,1 9,16A3,3 0 0,1 12,13A3,3 0 0,1 15,16A3,3 0 0,1 12,19M17,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V7L17,3Z" })));
49
44
  }
50
- // dna from https://materialdesignicons.com/
51
45
  function DNA(props) {
52
46
  return (react_1.default.createElement(SvgIcon_1.default, { ...props },
53
47
  react_1.default.createElement("path", { fill: "currentColor", d: "M4,2H6V4C6,5.44 6.68,6.61 7.88,7.78C8.74,8.61 9.89,9.41 11.09,10.2L9.26,11.39C8.27,10.72 7.31,10 6.5,9.21C5.07,7.82 4,6.1 4,4V2M18,2H20V4C20,6.1 18.93,7.82 17.5,9.21C16.09,10.59 14.29,11.73 12.54,12.84C10.79,13.96 9.09,15.05 7.88,16.22C6.68,17.39 6,18.56 6,20V22H4V20C4,17.9 5.07,16.18 6.5,14.79C7.91,13.41 9.71,12.27 11.46,11.16C13.21,10.04 14.91,8.95 16.12,7.78C17.32,6.61 18,5.44 18,4V2M14.74,12.61C15.73,13.28 16.69,14 17.5,14.79C18.93,16.18 20,17.9 20,20V22H18V20C18,18.56 17.32,17.39 16.12,16.22C15.26,15.39 14.11,14.59 12.91,13.8L14.74,12.61M7,3H17V4L16.94,4.5H7.06L7,4V3M7.68,6H16.32C16.08,6.34 15.8,6.69 15.42,7.06L14.91,7.5H9.07L8.58,7.06C8.2,6.69 7.92,6.34 7.68,6M9.09,16.5H14.93L15.42,16.94C15.8,17.31 16.08,17.66 16.32,18H7.68C7.92,17.66 8.2,17.31 8.58,16.94L9.09,16.5M7.06,19.5H16.94L17,20V21H7V20L7.06,19.5Z" })));
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TypographyProps } from '@mui/material';
2
+ import type { TypographyProps } from '@mui/material';
3
3
  interface Props extends TypographyProps {
4
4
  message?: string;
5
5
  }