@jbrowse/core 5.0.0-beta.1 → 5.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1476 -265
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +16 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +50 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
- package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
- package/esm/BaseFeatureWidget/formatDetails.js +62 -83
- package/esm/BaseFeatureWidget/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
- package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
- package/esm/BaseFeatureWidget/types.d.ts +12 -6
- package/esm/BaseFeatureWidget/util.d.ts +0 -10
- package/esm/BaseFeatureWidget/util.js +0 -17
- package/esm/CorePlugin.js +2 -2
- package/esm/PluginLoader.d.ts +24 -13
- package/esm/PluginLoader.js +167 -51
- package/esm/PluginManager.d.ts +130 -24
- package/esm/PluginManager.js +180 -32
- package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
- package/esm/ReExports/MuiDataGridReExports.js +2 -2
- package/esm/ReExports/coreModules.generated.d.ts +2 -0
- package/esm/ReExports/coreModules.generated.js +528 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +488 -0
- package/esm/ReExports/frameworkModules.d.ts +2 -0
- package/esm/ReExports/frameworkModules.js +68 -0
- package/esm/ReExports/frameworkShared.d.ts +12 -0
- package/esm/ReExports/frameworkShared.js +16 -0
- package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
- package/esm/ReExports/list.js +527 -79
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -165
- package/esm/ReExports/registry.d.ts +1 -0
- package/esm/ReExports/registry.js +23 -5
- package/esm/ReExports/uiStub.d.ts +3 -0
- package/esm/ReExports/uiStub.js +33 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +11 -0
- package/esm/TextSearch/TextSearchManager.d.ts +27 -13
- package/esm/TextSearch/TextSearchManager.js +77 -36
- package/esm/TextSearch/places.d.ts +12 -0
- package/esm/TextSearch/places.js +94 -0
- package/esm/assemblyManager/assembly.d.ts +21 -19
- package/esm/assemblyManager/assembly.js +28 -26
- package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
- package/esm/assemblyManager/assemblyAdapters.js +8 -2
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
- package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
- package/esm/assemblyManager/assemblyManager.d.ts +35 -180
- package/esm/assemblyManager/assemblyManager.js +47 -51
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
- package/esm/assemblyManager/geneticCodes.js +2 -5
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
- package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
- package/esm/assemblyManager/indexAssemblyNames.js +22 -0
- package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
- package/esm/assemblyManager/loadRefNameMap.js +4 -9
- package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
- package/esm/assemblyManager/refNameMapKey.js +12 -0
- package/esm/checkPlugins.d.ts +2 -0
- package/esm/checkPlugins.js +38 -17
- package/esm/configuration/bamIndexFields.d.ts +49 -0
- package/esm/configuration/bamIndexFields.js +41 -0
- package/esm/configuration/configurationSchema.d.ts +101 -71
- package/esm/configuration/configurationSchema.js +207 -134
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +56 -0
- package/esm/configuration/configurationSlot.d.ts +150 -60
- package/esm/configuration/configurationSlot.js +103 -75
- package/esm/configuration/fillLocations.d.ts +14 -0
- package/esm/configuration/fillLocations.js +14 -0
- package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
- package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
- package/esm/configuration/formatDetailsConfigSchema.js +10 -13
- package/esm/configuration/fullConfSnapshot.d.ts +4 -19
- package/esm/configuration/fullConfSnapshot.js +30 -52
- package/esm/configuration/getConf.d.ts +45 -41
- package/esm/configuration/getConf.js +111 -44
- package/esm/configuration/index.d.ts +24 -11
- package/esm/configuration/index.js +15 -7
- package/esm/configuration/indexType.d.ts +26 -0
- package/esm/configuration/indexType.js +38 -0
- package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
- package/esm/configuration/mergeFormatCallbacks.js +13 -10
- package/esm/configuration/readConfObject.d.ts +2 -24
- package/esm/configuration/readConfObject.js +20 -63
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +32 -15
- package/esm/configuration/schemaRegistry.js +33 -35
- package/esm/configuration/schemaTypes.d.ts +21 -5
- package/esm/configuration/schemaTypes.js +66 -55
- package/esm/configuration/slotFacade.d.ts +12 -29
- package/esm/configuration/slotFacade.js +44 -23
- package/esm/configuration/snapshotPreprocess.d.ts +43 -0
- package/esm/configuration/snapshotPreprocess.js +161 -0
- package/esm/configuration/tabixIndexFields.d.ts +30 -4
- package/esm/configuration/tabixIndexFields.js +21 -4
- package/esm/configuration/tabixShorthand.d.ts +34 -17
- package/esm/configuration/tabixShorthand.js +49 -22
- package/esm/configuration/types.d.ts +182 -43
- package/esm/configuration/uriShorthand.d.ts +9 -0
- package/esm/configuration/uriShorthand.js +16 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
- package/esm/data_adapters/BaseAdapter/index.js +1 -0
- package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
- package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
- package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
- package/esm/data_adapters/BaseAdapter/stats.js +52 -13
- package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
- package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
- package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
- package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
- package/esm/data_adapters/dataAdapterCache.js +44 -10
- package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
- package/esm/data_adapters/getFeatureAdapter.js +8 -8
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
- package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
- package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
- package/esm/pluggableElementTypes/AdapterType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +46 -16
- package/esm/pluggableElementTypes/DisplayType.js +22 -12
- package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
- package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
- package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
- package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
- package/esm/pluggableElementTypes/ViewType.js +32 -4
- package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
- package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
- package/esm/pluggableElementTypes/extendElementType.js +9 -5
- package/esm/pluggableElementTypes/index.d.ts +2 -1
- package/esm/pluggableElementTypes/index.js +1 -1
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +65 -27
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +72 -10
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +85 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +53 -10
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
- package/esm/pluggableElementTypes/models/index.d.ts +2 -3
- package/esm/pluggableElementTypes/models/index.js +2 -3
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
- package/esm/pluginDefinitions.d.ts +34 -7
- package/esm/pluginDefinitions.js +54 -20
- package/esm/rpc/BaseRpcDriver.d.ts +2 -2
- package/esm/rpc/BaseRpcDriver.js +25 -30
- package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
- package/esm/rpc/MainThreadRpcDriver.js +13 -8
- package/esm/rpc/RpcClient.d.ts +18 -6
- package/esm/rpc/RpcClient.js +51 -16
- package/esm/rpc/RpcManager.d.ts +14 -10
- package/esm/rpc/RpcManager.js +11 -1
- package/esm/rpc/RpcRegistry.d.ts +40 -7
- package/esm/rpc/RpcServer.d.ts +3 -1
- package/esm/rpc/RpcServer.js +19 -12
- package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
- package/esm/rpc/WebWorkerRpcDriver.js +64 -68
- package/esm/rpc/byteBudget.d.ts +20 -5
- package/esm/rpc/byteBudget.js +16 -5
- package/esm/rpc/configSchema.d.ts +7 -21
- package/esm/rpc/coreRpcMethods.d.ts +4 -0
- package/esm/rpc/coreRpcMethods.js +4 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
- package/esm/rpc/methods/CoreGetExportData.js +3 -4
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.js +3 -5
- package/esm/rpc/methods/CoreGetRefNames.js +2 -12
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
- package/esm/rpc/methods/CoreGetSequence.js +2 -2
- package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
- package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
- package/esm/rpc/methods/layerFeatures.d.ts +33 -0
- package/esm/rpc/methods/layerFeatures.js +29 -0
- package/esm/svg/SvgExport.js +6 -7
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/exportViewSvg.d.ts +28 -0
- package/esm/svg/exportViewSvg.js +13 -0
- package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
- package/esm/svg/normalizeSvgMarkup.js +99 -0
- package/esm/svg/serializeSvg.d.ts +7 -0
- package/esm/svg/serializeSvg.js +11 -0
- package/esm/svg/svgId.d.ts +1 -1
- package/esm/svg/svgId.js +1 -1
- package/esm/svg/svgReady.d.ts +9 -7
- package/esm/svg/svgReady.js +8 -7
- package/esm/svg/trackNames.d.ts +7 -5
- package/esm/svg/trackNames.js +12 -9
- package/esm/svg/wrapSvgExport.js +6 -74
- package/esm/ui/AddCustomPluginDialog.js +3 -8
- package/esm/ui/AppReadyMarker.d.ts +45 -0
- package/esm/ui/AppReadyMarker.js +89 -0
- package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
- package/esm/ui/CascadingMenu.js +181 -104
- package/esm/ui/DropDownMenu.js +2 -1
- package/esm/ui/ErrorBanner.js +1 -1
- package/esm/ui/ErrorBoundary.d.ts +2 -2
- package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
- package/esm/ui/ExportSvgDialog.d.ts +1 -1
- package/esm/ui/FileDropZone.js +2 -1
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
- package/esm/ui/HoverMenu.d.ts +1 -2
- package/esm/ui/HoverMenu.js +6 -3
- package/esm/ui/JexlFilterDialog.d.ts +13 -10
- package/esm/ui/JexlFilterDialog.js +122 -49
- package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
- package/esm/ui/JexlFilterRowEditors.js +90 -0
- package/esm/ui/LazyBaseTooltip.d.ts +4 -0
- package/esm/ui/LazyBaseTooltip.js +9 -0
- package/esm/ui/LegendSwatchGlyph.js +26 -21
- package/esm/ui/LoadingOverlay.d.ts +14 -0
- package/esm/ui/LoadingOverlay.js +4 -2
- package/esm/ui/MenuTypes.d.ts +23 -53
- package/esm/ui/MenuTypes.js +3 -0
- package/esm/ui/MonospaceTextField.d.ts +2 -1
- package/esm/ui/MonospaceTextField.js +23 -20
- package/esm/ui/PaletteContext.d.ts +10 -5
- package/esm/ui/PaletteContext.js +44 -6
- package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
- package/esm/ui/RefNameAutocomplete/index.js +8 -2
- package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/util.js +42 -1
- package/esm/ui/ResizeHandle.d.ts +3 -1
- package/esm/ui/ResizeHandle.js +44 -11
- package/esm/ui/ScrollChrome.d.ts +13 -0
- package/esm/ui/ScrollChrome.js +11 -0
- package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
- package/esm/ui/ScrollEdgeShadow.js +14 -35
- package/esm/ui/ScrollZoomToggle.d.ts +4 -27
- package/esm/ui/ScrollZoomToggle.js +34 -51
- package/esm/ui/SessionJsonPanel.d.ts +3 -0
- package/esm/ui/SessionJsonPanel.js +14 -0
- package/esm/ui/SettingsChangesTable.d.ts +1 -0
- package/esm/ui/SettingsChangesTable.js +49 -11
- package/esm/ui/ShareLinkField.d.ts +1 -3
- package/esm/ui/ShareLinkField.js +13 -40
- package/esm/ui/SizeSliderRow.d.ts +1 -3
- package/esm/ui/SizeSliderRow.js +4 -6
- package/esm/ui/SnackbarModel.js +79 -67
- package/esm/ui/StatusProgressBar.js +2 -2
- package/esm/ui/SvgColorLegend.d.ts +9 -4
- package/esm/ui/SvgColorLegend.js +82 -41
- package/esm/ui/VerticalScrollbar.d.ts +13 -34
- package/esm/ui/VerticalScrollbar.js +29 -83
- package/esm/ui/ViewLoadingScreen.d.ts +5 -4
- package/esm/ui/ViewLoadingScreen.js +8 -32
- package/esm/ui/colorScale.d.ts +92 -0
- package/esm/ui/colorScale.js +72 -0
- package/esm/ui/colors.d.ts +64 -0
- package/esm/ui/colors.js +230 -1
- package/esm/ui/hoverBoxStyle.d.ts +14 -2
- package/esm/ui/hoverBoxStyle.js +17 -2
- package/esm/ui/index.d.ts +12 -12
- package/esm/ui/index.js +14 -22
- package/esm/ui/launchViewMenu.js +15 -5
- package/esm/ui/legendMenuItem.d.ts +10 -32
- package/esm/ui/legendMenuItem.js +9 -36
- package/esm/ui/legendSpec.d.ts +15 -8
- package/esm/ui/legendSpec.js +14 -23
- package/esm/ui/makeSizeMenu.d.ts +0 -6
- package/esm/ui/makeSizeMenu.js +6 -30
- package/esm/ui/measureLegendText.js +1 -1
- package/esm/ui/menuItemAdornment.d.ts +9 -20
- package/esm/ui/menuItemAdornment.js +10 -32
- package/esm/ui/menuItems.d.ts +2 -7
- package/esm/ui/menuItems.js +1 -6
- package/esm/ui/multiTrackMenuItems.d.ts +6 -0
- package/esm/ui/palette.d.ts +118 -116
- package/esm/ui/palette.js +114 -75
- package/esm/ui/replaceViewAction.d.ts +1 -1
- package/esm/ui/replaceViewAction.js +1 -1
- package/esm/ui/theme.d.ts +43 -119
- package/esm/ui/theme.js +62 -78
- package/esm/ui/toggleMenuItems.d.ts +1 -3
- package/esm/ui/toggleMenuItems.js +6 -5
- package/esm/ui/useAssemblySelection.d.ts +4 -4
- package/esm/ui/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -0
- package/esm/util/Base1DUtils.d.ts +5 -3
- package/esm/util/Base1DUtils.js +14 -6
- package/esm/util/Base1DViewModel.d.ts +2 -1
- package/esm/util/Base1DViewModel.js +3 -2
- package/esm/util/SvgCanvas.d.ts +15 -13
- package/esm/util/SvgCanvas.js +76 -56
- package/esm/util/aborting.d.ts +39 -0
- package/esm/util/aborting.js +88 -6
- package/esm/util/adapterMetadata.d.ts +1 -1
- package/esm/util/adapterMetadata.js +6 -5
- package/esm/util/addAndShowTrack.d.ts +2 -5
- package/esm/util/addAndShowTrack.js +5 -1
- package/esm/util/addRelativeUris.d.ts +17 -5
- package/esm/util/addRelativeUris.js +46 -10
- package/esm/util/addTrackFromWidget.d.ts +2 -5
- package/esm/util/addTrackFromWidget.js +5 -4
- package/esm/util/aggregateFieldName.d.ts +10 -0
- package/esm/util/aggregateFieldName.js +8 -0
- package/esm/util/analytics.js +46 -13
- package/esm/util/animationAllowed.d.ts +9 -0
- package/esm/util/animationAllowed.js +13 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -5
- package/esm/util/applyRowResizeWheel.js +10 -21
- package/esm/util/bandHeight.d.ts +10 -0
- package/esm/util/bandHeight.js +29 -0
- package/esm/util/bandLayout.d.ts +4 -4
- package/esm/util/bandLayout.js +4 -4
- package/esm/util/bezierConnector.d.ts +4 -3
- package/esm/util/bezierConnector.js +38 -45
- package/esm/util/bgzfWorkerPool.d.ts +20 -74
- package/esm/util/bgzfWorkerPool.js +20 -74
- package/esm/util/binnedAggregate.d.ts +17 -0
- package/esm/util/binnedAggregate.js +275 -0
- package/esm/util/cacheBudgets.d.ts +22 -19
- package/esm/util/cacheBudgets.js +22 -19
- package/esm/util/cachedSetup.d.ts +1 -1
- package/esm/util/cachedSetup.js +2 -2
- package/esm/util/categoricalField.d.ts +56 -0
- package/esm/util/categoricalField.js +73 -0
- package/esm/util/clampToContig.d.ts +17 -0
- package/esm/util/clampToContig.js +19 -0
- package/esm/util/coarseStripHTML.js +1 -2
- package/esm/util/color/cssColorsLevel4.d.ts +1 -0
- package/esm/util/color/cssColorsLevel4.js +1 -0
- package/esm/util/color/index.d.ts +5 -3
- package/esm/util/color/index.js +7 -4
- package/esm/util/colorBits.d.ts +3 -3
- package/esm/util/colorBits.js +19 -44
- package/esm/util/colorRamp.d.ts +49 -5
- package/esm/util/colorRamp.js +169 -18
- package/esm/util/colorScale.d.ts +156 -0
- package/esm/util/colorScale.js +243 -0
- package/esm/util/colorSchemes.d.ts +21 -0
- package/esm/util/colorSchemes.js +30 -0
- package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
- package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
- package/esm/util/createSvgRasterCanvas.d.ts +10 -0
- package/esm/util/cssColorParse.d.ts +15 -0
- package/esm/util/cssColorParse.js +53 -0
- package/esm/util/diagonalizeRegions.d.ts +2 -3
- package/esm/util/diagonalizeRegions.js +8 -13
- package/esm/util/expandLooseSearchIndex.d.ts +19 -0
- package/esm/util/expandLooseSearchIndex.js +29 -0
- package/esm/util/featureTable.d.ts +224 -0
- package/esm/util/featureTable.js +366 -0
- package/esm/util/featureTransforms.d.ts +80 -0
- package/esm/util/featureTransforms.js +1579 -0
- package/esm/util/featureTypes.d.ts +24 -0
- package/esm/util/featureTypes.js +35 -0
- package/esm/util/fetchAndMaybeUnzip.js +16 -9
- package/esm/util/fetchContext.d.ts +7 -8
- package/esm/util/fetchContext.js +3 -3
- package/esm/util/fetchHub.d.ts +4 -2
- package/esm/util/fetchHub.js +2 -2
- package/esm/util/fetchPhases.d.ts +10 -10
- package/esm/util/fetchSeq.d.ts +2 -3
- package/esm/util/fetchSeq.js +2 -2
- package/esm/util/fieldReader.d.ts +17 -0
- package/esm/util/fieldReader.js +62 -0
- package/esm/util/freezeDeep.d.ts +8 -10
- package/esm/util/freezeDeep.js +8 -10
- package/esm/util/groupKeys.d.ts +77 -0
- package/esm/util/groupKeys.js +155 -0
- package/esm/util/highlights.d.ts +10 -6
- package/esm/util/highlights.js +12 -25
- package/esm/util/hooks.d.ts +31 -2
- package/esm/util/hooks.js +72 -3
- package/esm/util/index.d.ts +11 -11
- package/esm/util/index.js +11 -10
- package/esm/util/indexCandidates.d.ts +1 -31
- package/esm/util/indexCandidates.js +5 -63
- package/esm/util/installFetch.d.ts +77 -37
- package/esm/util/installFetch.js +65 -38
- package/esm/util/installInitAutorun.d.ts +14 -13
- package/esm/util/installInitAutorun.js +17 -17
- package/esm/util/installPrerequisiteFetch.d.ts +115 -0
- package/esm/util/installPrerequisiteFetch.js +111 -0
- package/esm/util/io/index.js +19 -14
- package/esm/util/isDataCurrent.d.ts +7 -5
- package/esm/util/isDataCurrent.js +9 -6
- package/esm/util/isTextEntryFocused.d.ts +7 -0
- package/esm/util/isTextEntryFocused.js +16 -0
- package/esm/util/jexl.js +24 -21
- package/esm/util/jexlFilterRows.d.ts +89 -0
- package/esm/util/jexlFilterRows.js +252 -0
- package/esm/util/jexlFilters.d.ts +20 -27
- package/esm/util/jexlFilters.js +23 -11
- package/esm/util/jexlStrings.d.ts +3 -4
- package/esm/util/jexlStrings.js +2 -3
- package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
- package/esm/util/layouts/GranularRectLayout.js +25 -8
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/lazyWithPreload.d.ts +19 -0
- package/esm/util/lazyWithPreload.js +27 -0
- package/esm/util/legendCandidates.d.ts +72 -0
- package/esm/util/legendCandidates.js +138 -0
- package/esm/util/localStorage.js +4 -4
- package/esm/util/markEncoding.d.ts +150 -0
- package/esm/util/markEncoding.js +845 -0
- package/esm/util/markEncodingTypes.d.ts +588 -0
- package/esm/util/markEncodingTypes.js +8 -0
- package/esm/util/mst-reflection.d.ts +2 -20
- package/esm/util/mst-reflection.js +3 -53
- package/esm/util/mstUtils.d.ts +31 -23
- package/esm/util/mstUtils.js +39 -24
- package/esm/util/numericUtils.d.ts +7 -0
- package/esm/util/numericUtils.js +16 -0
- package/esm/util/numericValue.d.ts +14 -0
- package/esm/util/numericValue.js +34 -0
- package/esm/util/openFeatureWidget.d.ts +5 -0
- package/esm/util/openFeatureWidget.js +2 -2
- package/esm/util/openViews.d.ts +17 -0
- package/esm/util/openViews.js +22 -0
- package/esm/util/parentWalk.d.ts +1 -1
- package/esm/util/parentWalk.js +1 -1
- package/esm/util/parseLineByLine.d.ts +4 -5
- package/esm/util/parseLineByLine.js +8 -14
- package/esm/util/pluginStore.d.ts +6 -8
- package/esm/util/pluginStore.js +17 -16
- package/esm/util/preloadComponent.d.ts +5 -0
- package/esm/util/preloadComponent.js +11 -0
- package/esm/util/progress.d.ts +22 -22
- package/esm/util/progress.js +27 -26
- package/esm/util/quantileExtent.d.ts +49 -0
- package/esm/util/quantileExtent.js +162 -0
- package/esm/util/range.d.ts +13 -9
- package/esm/util/range.js +17 -8
- package/esm/util/renameRegions.d.ts +26 -6
- package/esm/util/renameRegions.js +68 -54
- package/esm/util/renderToStaticMarkup.js +24 -14
- package/esm/util/rxjs.d.ts +23 -8
- package/esm/util/rxjs.js +61 -15
- package/esm/util/samplesTsv.d.ts +49 -0
- package/esm/util/samplesTsv.js +86 -0
- package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
- package/esm/util/scheduleDetachedDestroy.js +24 -0
- package/esm/util/scrollLatch.d.ts +1 -0
- package/esm/util/scrollLatch.js +8 -0
- package/esm/util/selectEncodedFeature.d.ts +16 -0
- package/esm/util/selectEncodedFeature.js +34 -0
- package/esm/util/sessionSharing.d.ts +7 -5
- package/esm/util/sessionSharing.js +23 -23
- package/esm/util/shapeNameList.d.ts +2 -0
- package/esm/util/shapeNameList.js +6 -0
- package/esm/util/shapeNames.d.ts +7 -0
- package/esm/util/shapeNames.js +11 -0
- package/esm/util/simpleFeature.d.ts +0 -1
- package/esm/util/starFusion.d.ts +26 -0
- package/esm/util/starFusion.js +37 -0
- package/esm/util/stepTables.d.ts +82 -0
- package/esm/util/stepTables.js +243 -0
- package/esm/util/svAlt.d.ts +145 -0
- package/esm/util/svAlt.js +364 -0
- package/esm/util/svgColorProps.d.ts +11 -0
- package/esm/util/svgColorProps.js +28 -1
- package/esm/util/systemColorScheme.d.ts +12 -0
- package/esm/util/systemColorScheme.js +27 -0
- package/esm/util/tabix.d.ts +13 -8
- package/esm/util/tabix.js +17 -12
- package/esm/util/thresholdScale.d.ts +91 -0
- package/esm/util/thresholdScale.js +166 -0
- package/esm/util/timeGate.d.ts +4 -5
- package/esm/util/timeGate.js +4 -5
- package/esm/util/trackConfigDelta.d.ts +26 -26
- package/esm/util/trackConfigDelta.js +63 -47
- package/esm/util/tracks.d.ts +121 -40
- package/esm/util/tracks.js +497 -112
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- package/esm/util/types/data.d.ts +0 -2
- package/esm/util/types/index.d.ts +121 -22
- package/esm/util/types/index.js +9 -0
- package/esm/util/types/mst.d.ts +3 -0
- package/esm/util/types/mst.js +4 -0
- package/esm/util/types/renameIds.d.ts +1 -0
- package/esm/util/types/renameIds.js +29 -0
- package/esm/util/types/services.d.ts +1 -1
- package/esm/util/unknownSnapshotKeys.d.ts +51 -0
- package/esm/util/unknownSnapshotKeys.js +82 -0
- package/esm/util/useFeatureSequence.js +5 -5
- package/esm/util/useFetch.d.ts +3 -4
- package/esm/util/useFetch.js +19 -10
- package/esm/util/useFetchPlugins.d.ts +6 -2
- package/esm/util/useFetchPlugins.js +7 -3
- package/esm/util/usePanelVirtualScroll.d.ts +7 -35
- package/esm/util/usePanelVirtualScroll.js +9 -36
- package/esm/util/useRowVirtualScroll.d.ts +6 -29
- package/esm/util/useRowVirtualScroll.js +8 -49
- package/esm/util/useVirtualScrollWheel.d.ts +20 -4
- package/esm/util/useVirtualScrollWheel.js +40 -74
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +47 -15
- package/esm/util/viewStatus.js +34 -0
- package/esm/util/wheelZoom.d.ts +7 -1
- package/esm/util/wheelZoom.js +85 -19
- package/esm/util/whenViewSettled.d.ts +55 -8
- package/esm/util/whenViewSettled.js +56 -7
- package/esm/util/withLaunchInput.d.ts +174 -0
- package/esm/util/withLaunchInput.js +274 -0
- package/package.json +70 -20
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
- package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
- package/esm/ReExports/BaseFeatureDetails.js +0 -10
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.js +0 -1
- package/esm/ReExports/publicUtil.d.ts +0 -1
- package/esm/ReExports/publicUtil.js +0 -28
- package/esm/configuration/promotableDefaults.d.ts +0 -199
- package/esm/configuration/promotableDefaults.js +0 -326
- package/esm/configuration/promotablePin.d.ts +0 -55
- package/esm/configuration/promotablePin.js +0 -1
- package/esm/configuration/promotableResolve.d.ts +0 -108
- package/esm/configuration/promotableResolve.js +0 -117
- package/esm/configuration/promotableSlots.d.ts +0 -12
- package/esm/configuration/promotableSlots.js +0 -45
- package/esm/configuration/slotShape.d.ts +0 -12
- package/esm/configuration/slotShape.js +0 -84
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
- package/esm/ui/PinAdornment.d.ts +0 -5
- package/esm/ui/PinAdornment.js +0 -79
- package/esm/ui/SvgGradientLegend.d.ts +0 -26
- package/esm/ui/SvgGradientLegend.js +0 -26
- package/esm/ui/highlightChipReveal.d.ts +0 -32
- package/esm/ui/highlightChipReveal.js +0 -39
- package/esm/ui/promotableMenuItems.d.ts +0 -19
- package/esm/ui/promotableMenuItems.js +0 -89
- package/esm/ui/promotablePinCoverage.d.ts +0 -44
- package/esm/ui/promotablePinCoverage.js +0 -87
- package/esm/util/applyInitSettings.d.ts +0 -79
- package/esm/util/applyInitSettings.js +0 -91
- package/esm/util/openDisplays.d.ts +0 -23
- package/esm/util/openDisplays.js +0 -79
- package/esm/util/stopToken.d.ts +0 -211
- package/esm/util/stopToken.js +0 -438
- /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
|
@@ -2,7 +2,6 @@ import RpcMethodTypeWithRenameRegions from './RpcMethodTypeWithRenameRegions.ts'
|
|
|
2
2
|
import SerializableFilterChain from './renderers/util/serializableFilterChain.ts';
|
|
3
3
|
import type { Region } from '../util/index.ts';
|
|
4
4
|
import type { StatusCallback } from '../util/progress.ts';
|
|
5
|
-
import type { StopToken } from '../util/stopToken.ts';
|
|
6
5
|
interface FilterRenameArgs {
|
|
7
6
|
sessionId: string;
|
|
8
7
|
regions?: Region[];
|
|
@@ -14,7 +13,7 @@ export default abstract class RpcMethodTypeWithFiltersAndRenameRegions<MethodNam
|
|
|
14
13
|
filters?: unknown;
|
|
15
14
|
}): Promise<T>;
|
|
16
15
|
serializeArguments(args: FilterRenameArgs & {
|
|
17
|
-
|
|
16
|
+
signal?: AbortSignal;
|
|
18
17
|
statusCallback?: StatusCallback;
|
|
19
18
|
}): Promise<Record<string, unknown>>;
|
|
20
19
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import PluggableElementBase from './PluggableElementBase.ts';
|
|
2
2
|
import type { AnyConfigurationSchemaType } from '../configuration/index.ts';
|
|
3
|
-
import type {
|
|
4
|
-
export default class TextSearchAdapterType extends PluggableElementBase {
|
|
5
|
-
getAdapterClass: () => Promise<
|
|
6
|
-
configSchema:
|
|
3
|
+
import type { AdapterClassFor } from '../data_adapters/BaseAdapter/index.ts';
|
|
4
|
+
export default class TextSearchAdapterType<SCHEMA extends AnyConfigurationSchemaType = any> extends PluggableElementBase {
|
|
5
|
+
getAdapterClass: () => Promise<AdapterClassFor<SCHEMA>>;
|
|
6
|
+
configSchema: SCHEMA;
|
|
7
7
|
description?: string;
|
|
8
8
|
constructor(stuff: {
|
|
9
9
|
name: string;
|
|
10
|
-
configSchema:
|
|
10
|
+
configSchema: SCHEMA;
|
|
11
11
|
displayName?: string;
|
|
12
12
|
description?: string;
|
|
13
13
|
} & ({
|
|
14
|
-
getAdapterClass: () => Promise<
|
|
14
|
+
getAdapterClass: () => Promise<AdapterClassFor<SCHEMA>>;
|
|
15
15
|
} | {
|
|
16
|
-
AdapterClass:
|
|
16
|
+
AdapterClass: AdapterClassFor<SCHEMA>;
|
|
17
17
|
}));
|
|
18
18
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import LazyStateModelElement from './LazyStateModelElement.ts';
|
|
2
|
+
import type { LaunchKeyRegistration } from '../util/withLaunchInput.ts';
|
|
2
3
|
import type DisplayType from './DisplayType.ts';
|
|
3
4
|
import type { IAnyModelType, IAnyStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
4
5
|
import type React from 'react';
|
|
@@ -10,21 +11,36 @@ type ViewComponentType = React.LazyExoticComponent<BasicView> | BasicView;
|
|
|
10
11
|
interface ViewMetadata {
|
|
11
12
|
hiddenFromGUI?: boolean;
|
|
12
13
|
}
|
|
13
|
-
export default class ViewType extends
|
|
14
|
+
export default class ViewType extends LazyStateModelElement {
|
|
15
|
+
protected readonly group = "view";
|
|
14
16
|
ReactComponent: ViewComponentType;
|
|
15
|
-
|
|
17
|
+
launchKeys?: LaunchKeyRegistration<unknown, string>;
|
|
16
18
|
displayTypes: DisplayType[];
|
|
17
19
|
viewMetadata: ViewMetadata;
|
|
18
20
|
extendedName?: string;
|
|
19
21
|
constructor(stuff: {
|
|
20
22
|
name: string;
|
|
21
23
|
displayName?: string;
|
|
22
|
-
stateModel: IAnyModelType;
|
|
24
|
+
stateModel: IAnyModelType | (() => Promise<IAnyModelType>);
|
|
25
|
+
launchKeys?: LaunchKeyRegistration<unknown, string>;
|
|
23
26
|
extendedName?: string;
|
|
24
27
|
viewMetadata?: ViewMetadata;
|
|
25
28
|
ReactComponent: ViewComponentType;
|
|
26
29
|
aliases?: string[];
|
|
27
30
|
});
|
|
31
|
+
/**
|
|
32
|
+
* Every key this view accepts written on the view object — its declared MST
|
|
33
|
+
* properties plus the launch keys above. `undefined` for a view that
|
|
34
|
+
* registers none: nothing there says which of its launcher's arguments are
|
|
35
|
+
* settings, so a caller must classify nothing rather than call them all typos.
|
|
36
|
+
* Also `undefined` while a lazily registered state model is not loaded yet,
|
|
37
|
+
* for the same reason: nothing is known, so nothing is a typo.
|
|
38
|
+
*
|
|
39
|
+
* This is the set `withLaunchInput`'s partition reads off the same two
|
|
40
|
+
* declarations, published for the surfaces that never build a view snapshot —
|
|
41
|
+
* a session spec launches straight through `LaunchView-<type>`.
|
|
42
|
+
*/
|
|
43
|
+
get acceptedKeys(): string[] | undefined;
|
|
28
44
|
addDisplayType(display: DisplayType): void;
|
|
29
45
|
}
|
|
30
46
|
export {};
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class ViewType extends
|
|
1
|
+
import LazyStateModelElement from './LazyStateModelElement.js';
|
|
2
|
+
export default class ViewType extends LazyStateModelElement {
|
|
3
|
+
group = 'view';
|
|
3
4
|
ReactComponent;
|
|
4
|
-
|
|
5
|
+
// What `withLaunchInput` partitioned out of this view's snapshots, published
|
|
6
|
+
// beside the model so an out-of-tree plugin, the doc generator and the
|
|
7
|
+
// validator read one declaration rather than each keeping a list.
|
|
8
|
+
launchKeys;
|
|
5
9
|
displayTypes = [];
|
|
6
10
|
viewMetadata = {};
|
|
7
11
|
// extendedName can be used for when you extend a given view type, and want
|
|
@@ -16,9 +20,33 @@ export default class ViewType extends PluggableElementBase {
|
|
|
16
20
|
super(stuff);
|
|
17
21
|
this.ReactComponent = stuff.ReactComponent;
|
|
18
22
|
this.viewMetadata = stuff.viewMetadata ?? {};
|
|
19
|
-
this.
|
|
23
|
+
this.launchKeys = stuff.launchKeys;
|
|
20
24
|
this.extendedName = stuff.extendedName;
|
|
21
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Every key this view accepts written on the view object — its declared MST
|
|
28
|
+
* properties plus the launch keys above. `undefined` for a view that
|
|
29
|
+
* registers none: nothing there says which of its launcher's arguments are
|
|
30
|
+
* settings, so a caller must classify nothing rather than call them all typos.
|
|
31
|
+
* Also `undefined` while a lazily registered state model is not loaded yet,
|
|
32
|
+
* for the same reason: nothing is known, so nothing is a typo.
|
|
33
|
+
*
|
|
34
|
+
* This is the set `withLaunchInput`'s partition reads off the same two
|
|
35
|
+
* declarations, published for the surfaces that never build a view snapshot —
|
|
36
|
+
* a session spec launches straight through `LaunchView-<type>`.
|
|
37
|
+
*/
|
|
38
|
+
get acceptedKeys() {
|
|
39
|
+
const properties = this.isStateModelLoaded
|
|
40
|
+
? this.stateModel.properties
|
|
41
|
+
: undefined;
|
|
42
|
+
return this.launchKeys && properties
|
|
43
|
+
? [
|
|
44
|
+
...Object.keys(properties),
|
|
45
|
+
...Object.keys(this.launchKeys.keys),
|
|
46
|
+
...this.launchKeys.passThrough,
|
|
47
|
+
]
|
|
48
|
+
: undefined;
|
|
49
|
+
}
|
|
22
50
|
addDisplayType(display) {
|
|
23
51
|
this.displayTypes.push(display);
|
|
24
52
|
}
|
|
@@ -12,9 +12,10 @@ type ModelOf<T> = T extends IAnyType ? Instance<T> : never;
|
|
|
12
12
|
/**
|
|
13
13
|
* The methods on a model that return a menu. Derived from the model rather than
|
|
14
14
|
* listed, which is what makes a renamed or retired method a compile error at
|
|
15
|
-
* the call site: there are
|
|
15
|
+
* the call site: there are seven of them across views and displays (`menuItems`,
|
|
16
16
|
* `trackMenuItems`, `contextMenuItems`, `rubberBandMenuItems`,
|
|
17
|
-
* `rubberBandLaunchMenuItems`, `highlightMenuItems`),
|
|
17
|
+
* `rubberBandLaunchMenuItems`, `highlightMenuItems`, `highlightsSubMenuItems`),
|
|
18
|
+
* they are a convention
|
|
18
19
|
* rather than one declared interface, and a contribution to a name the model no
|
|
19
20
|
* longer has is otherwise silent.
|
|
20
21
|
*
|
|
@@ -5,8 +5,7 @@ import type { IAnyModelType } from '@jbrowse/mobx-state-tree';
|
|
|
5
5
|
* Replace a view type's state model with an extended one, e.g. to add a menu
|
|
6
6
|
* item to `LinearGenomeView`. Pass an array to extend several at once, which is
|
|
7
7
|
* how a contribution reaches a family: the tree spells a display family as a
|
|
8
|
-
* shared mixin set rather than a chain, so there is no parent to name
|
|
9
|
-
* `reference/REJECTED_IDEAS.md`, "Give a pluggable element an `extendsType`".
|
|
8
|
+
* shared mixin set rather than a chain, so there is no parent to name, which is why an `extendsType` was declined.
|
|
10
9
|
*
|
|
11
10
|
* `Core-extendPluggableElement` fires for every pluggable element there is —
|
|
12
11
|
* adapters, widgets, RPC methods, all of them — so a callback written against
|
|
@@ -14,8 +14,7 @@ function namesOf(name) {
|
|
|
14
14
|
* Replace a view type's state model with an extended one, e.g. to add a menu
|
|
15
15
|
* item to `LinearGenomeView`. Pass an array to extend several at once, which is
|
|
16
16
|
* how a contribution reaches a family: the tree spells a display family as a
|
|
17
|
-
* shared mixin set rather than a chain, so there is no parent to name
|
|
18
|
-
* `reference/REJECTED_IDEAS.md`, "Give a pluggable element an `extendsType`".
|
|
17
|
+
* shared mixin set rather than a chain, so there is no parent to name, which is why an `extendsType` was declined.
|
|
19
18
|
*
|
|
20
19
|
* `Core-extendPluggableElement` fires for every pluggable element there is —
|
|
21
20
|
* adapters, widgets, RPC methods, all of them — so a callback written against
|
|
@@ -45,8 +44,12 @@ export function extendViewType(pluginManager, name, extend) {
|
|
|
45
44
|
// point of the signature; widening it once here costs nothing, since
|
|
46
45
|
// the only operation is handing the model to `extend` and storing what
|
|
47
46
|
// comes back.
|
|
47
|
+
//
|
|
48
|
+
// Routed through extendStateModel rather than assigning `.stateModel`
|
|
49
|
+
// directly so a view registered with a lazy loader queues the
|
|
50
|
+
// extension and composes it when the loader resolves.
|
|
48
51
|
const view = element;
|
|
49
|
-
view.
|
|
52
|
+
view.extendStateModel(widen(extend));
|
|
50
53
|
}
|
|
51
54
|
return element;
|
|
52
55
|
});
|
|
@@ -59,9 +62,10 @@ export function extendDisplayType(pluginManager, name, extend) {
|
|
|
59
62
|
const names = namesOf(name);
|
|
60
63
|
pluginManager.addToExtensionPoint('Core-extendPluggableElement', (element, props) => {
|
|
61
64
|
if (props.group === 'display' && names.has(element.name)) {
|
|
62
|
-
// widened for the reason in extendViewType
|
|
65
|
+
// widened for the reason in extendViewType; routed through
|
|
66
|
+
// extendStateModel so a lazy registration queues the extension
|
|
63
67
|
const display = element;
|
|
64
|
-
display.
|
|
68
|
+
display.extendStateModel(widen(extend));
|
|
65
69
|
}
|
|
66
70
|
return element;
|
|
67
71
|
});
|
|
@@ -8,7 +8,7 @@ import type TextSearchAdapterType from './TextSearchAdapterType.ts';
|
|
|
8
8
|
import type TrackType from './TrackType.ts';
|
|
9
9
|
import type ViewType from './ViewType.ts';
|
|
10
10
|
import type WidgetType from './WidgetType.ts';
|
|
11
|
-
export { BaseConnectionModelFactory, BaseDisplay, type BaseDisplayModel, type BaseDisplayStateModel, BaseInternetAccountConfig, type BaseInternetAccountModel, type BaseInternetAccountStateModel, type BaseTrackConfig, type BaseTrackModel, type BaseTrackStateModel, BaseViewModel, type DisplayModel, type FileTypeExporter,
|
|
11
|
+
export { BaseConnectionModelFactory, BaseDisplay, type BaseDisplayModel, type BaseDisplayStateModel, BaseInternetAccountConfig, type BaseInternetAccountModel, type BaseInternetAccountStateModel, type BaseTrackConfig, type BaseTrackModel, type BaseTrackStateModel, BaseViewModel, type DisplayModel, type FileTypeExporter, type IBaseViewModel, InternetAccount, baseConnectionConfig, createBaseTrackConfig, createBaseTrackModel, preprocessTrackConfigSnapshot, type TrackConfigSnapshot, } from './models/index.ts';
|
|
12
12
|
export type PluggableElementType = AdapterType | ConnectionType | WidgetType | TrackType | DisplayType | ViewType | RpcMethodType | InternetAccountType | TextSearchAdapterType | AddTrackWorkflowType;
|
|
13
13
|
export { extendDisplayType, extendViewType } from './extendElementType.ts';
|
|
14
14
|
export { addDisplayMenuItems, addViewMenuItems } from './addMenuItems.ts';
|
|
@@ -18,6 +18,7 @@ export { default as TrackType } from './TrackType.ts';
|
|
|
18
18
|
export { default as WidgetType } from './WidgetType.ts';
|
|
19
19
|
export { default as ViewType } from './ViewType.ts';
|
|
20
20
|
export { default as DisplayType } from './DisplayType.ts';
|
|
21
|
+
export type { DisplayEntry, RetiredDisplayState, RetiredDisplayType, } from './DisplayType.ts';
|
|
21
22
|
export { default as InternetAccountType } from './InternetAccountType.ts';
|
|
22
23
|
export { default as RpcMethodType } from './RpcMethodType.ts';
|
|
23
24
|
export { default as RpcMethodTypeWithRenameRegion } from './RpcMethodTypeWithRenameRegion.ts';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BaseConnectionModelFactory, BaseDisplay, BaseInternetAccountConfig, BaseViewModel,
|
|
1
|
+
export { BaseConnectionModelFactory, BaseDisplay, BaseInternetAccountConfig, BaseViewModel, InternetAccount, baseConnectionConfig, createBaseTrackConfig, createBaseTrackModel, preprocessTrackConfigSnapshot, } from './models/index.js';
|
|
2
2
|
export { extendDisplayType, extendViewType } from './extendElementType.js';
|
|
3
3
|
export { addDisplayMenuItems, addViewMenuItems } from './addMenuItems.js';
|
|
4
4
|
export { default as AdapterType } from './AdapterType.js';
|
|
@@ -8,22 +8,32 @@ declare function stateModelFactory(pluginManager: PluginManager): import("@jbrow
|
|
|
8
8
|
/**
|
|
9
9
|
* #property
|
|
10
10
|
*/
|
|
11
|
-
tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/
|
|
11
|
+
tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/core/PluginManager").PluggableConfigSchemaType>;
|
|
12
12
|
/**
|
|
13
13
|
* #property
|
|
14
14
|
*/
|
|
15
15
|
configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
16
16
|
readonly name: {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
type: "string";
|
|
18
|
+
} & {
|
|
19
|
+
defaultValue: string;
|
|
20
20
|
};
|
|
21
21
|
readonly assemblyNames: {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
type: "stringArray";
|
|
23
|
+
} & {
|
|
24
|
+
defaultValue: unknown;
|
|
25
25
|
};
|
|
26
|
-
|
|
26
|
+
type: {
|
|
27
|
+
type: "string";
|
|
28
|
+
} & {
|
|
29
|
+
defaultValue: string;
|
|
30
|
+
};
|
|
31
|
+
connectionId: {
|
|
32
|
+
type: "string";
|
|
33
|
+
} & {
|
|
34
|
+
defaultValue: string;
|
|
35
|
+
};
|
|
36
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "connectionId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>>;
|
|
27
37
|
/**
|
|
28
38
|
* #property
|
|
29
39
|
* set when the connection is being re-established on session load (its
|
|
@@ -70,7 +80,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("@jbrow
|
|
|
70
80
|
/**
|
|
71
81
|
* #action
|
|
72
82
|
*/
|
|
73
|
-
addTrackConf(trackConf: TrackConf):
|
|
83
|
+
addTrackConf(trackConf: TrackConf): (import("../../configuration/types.ts").PluggableConfigNode & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/PluginManager").PluggableConfigSchemaType>) | undefined;
|
|
74
84
|
/**
|
|
75
85
|
* #action
|
|
76
86
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AnyConfigurationModel } from '../../configuration/index.ts';
|
|
2
2
|
import type { MenuItem } from '../../ui/index.ts';
|
|
3
3
|
import type { RpcStatus } from '../../util/progress.ts';
|
|
4
|
+
import type { UnappliedSetting } from '../../util/unknownSnapshotKeys.ts';
|
|
4
5
|
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
5
6
|
import type React from 'react';
|
|
6
7
|
export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<{
|
|
@@ -161,7 +162,7 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
161
162
|
* pointing at" channel a plugin can subscribe to.
|
|
162
163
|
*
|
|
163
164
|
* Declared here because a cross-display consumer can only read a name the
|
|
164
|
-
* base declares — the same reason `
|
|
165
|
+
* base declares — the same reason `FetchMixin.fetchInert` is a
|
|
165
166
|
* hook rather than a getter each display invents. The container used to
|
|
166
167
|
* read `featureUnderMouse`, which only the wiggle, alignments and
|
|
167
168
|
* Manhattan families spelled that way — canvas said `hoveredFeature`,
|
|
@@ -202,15 +203,14 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
202
203
|
readonly featureNoun: string;
|
|
203
204
|
/**
|
|
204
205
|
* #getter
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
* out by hand.
|
|
206
|
+
* The widget `openFeatureWidget` opens for one of this display's
|
|
207
|
+
* features. Displays may override it. The default is the generic feature
|
|
208
|
+
* widget, for displays drawing plain features.
|
|
209
209
|
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
210
|
+
* Displays whose features are a specific kind (a read, a variant, a
|
|
211
|
+
* synteny block) override it, including the `id`: two displays naming
|
|
212
|
+
* one id share the drawer panel, which suits two displays showing the
|
|
213
|
+
* same kind of feature.
|
|
214
214
|
*/
|
|
215
215
|
readonly featureWidgetType: {
|
|
216
216
|
type: string;
|
|
@@ -382,7 +382,7 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
382
382
|
* pointing at" channel a plugin can subscribe to.
|
|
383
383
|
*
|
|
384
384
|
* Declared here because a cross-display consumer can only read a name the
|
|
385
|
-
* base declares — the same reason `
|
|
385
|
+
* base declares — the same reason `FetchMixin.fetchInert` is a
|
|
386
386
|
* hook rather than a getter each display invents. The container used to
|
|
387
387
|
* read `featureUnderMouse`, which only the wiggle, alignments and
|
|
388
388
|
* Manhattan families spelled that way — canvas said `hoveredFeature`,
|
|
@@ -423,15 +423,14 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
423
423
|
readonly featureNoun: string;
|
|
424
424
|
/**
|
|
425
425
|
* #getter
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
* out by hand.
|
|
426
|
+
* The widget `openFeatureWidget` opens for one of this display's
|
|
427
|
+
* features. Displays may override it. The default is the generic feature
|
|
428
|
+
* widget, for displays drawing plain features.
|
|
430
429
|
*
|
|
431
|
-
*
|
|
432
|
-
*
|
|
433
|
-
*
|
|
434
|
-
*
|
|
430
|
+
* Displays whose features are a specific kind (a read, a variant, a
|
|
431
|
+
* synteny block) override it, including the `id`: two displays naming
|
|
432
|
+
* one id share the drawer panel, which suits two displays showing the
|
|
433
|
+
* same kind of feature.
|
|
435
434
|
*/
|
|
436
435
|
readonly featureWidgetType: {
|
|
437
436
|
type: string;
|
|
@@ -595,7 +594,7 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
595
594
|
* pointing at" channel a plugin can subscribe to.
|
|
596
595
|
*
|
|
597
596
|
* Declared here because a cross-display consumer can only read a name the
|
|
598
|
-
* base declares — the same reason `
|
|
597
|
+
* base declares — the same reason `FetchMixin.fetchInert` is a
|
|
599
598
|
* hook rather than a getter each display invents. The container used to
|
|
600
599
|
* read `featureUnderMouse`, which only the wiggle, alignments and
|
|
601
600
|
* Manhattan families spelled that way — canvas said `hoveredFeature`,
|
|
@@ -636,15 +635,14 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
636
635
|
readonly featureNoun: string;
|
|
637
636
|
/**
|
|
638
637
|
* #getter
|
|
639
|
-
*
|
|
640
|
-
*
|
|
641
|
-
*
|
|
642
|
-
* out by hand.
|
|
638
|
+
* The widget `openFeatureWidget` opens for one of this display's
|
|
639
|
+
* features. Displays may override it. The default is the generic feature
|
|
640
|
+
* widget, for displays drawing plain features.
|
|
643
641
|
*
|
|
644
|
-
*
|
|
645
|
-
*
|
|
646
|
-
*
|
|
647
|
-
*
|
|
642
|
+
* Displays whose features are a specific kind (a read, a variant, a
|
|
643
|
+
* synteny block) override it, including the `id`: two displays naming
|
|
644
|
+
* one id share the drawer panel, which suits two displays showing the
|
|
645
|
+
* same kind of feature.
|
|
648
646
|
*/
|
|
649
647
|
readonly featureWidgetType: {
|
|
650
648
|
type: string;
|
|
@@ -684,6 +682,46 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
684
682
|
* base display reload does nothing, see specialized displays for details
|
|
685
683
|
*/
|
|
686
684
|
reload(): void;
|
|
685
|
+
/**
|
|
686
|
+
* #action
|
|
687
|
+
* Apply a set of display settings to the live display, and report which
|
|
688
|
+
* were applied. Each key runs through the display config schema's
|
|
689
|
+
* `preProcessSnapshot` (shorthand expansions and legacy-key migrations,
|
|
690
|
+
* as `showTrackGeneric` applies to a session spec's inline track keys),
|
|
691
|
+
* then writes the matching config slot. A key naming a sub-schema
|
|
692
|
+
* (`facet`, `color`) replaces the whole object, its string shorthand
|
|
693
|
+
* lifted by that schema, and `null` clears it. Keys that are not slots
|
|
694
|
+
* come back in `unapplied` as `{ key, reason }`, so a caller can tell a
|
|
695
|
+
* misspelling from a key that has an action instead of a slot.
|
|
696
|
+
*
|
|
697
|
+
* `allowSetters` also routes a non-slot key to a single-argument action
|
|
698
|
+
* named `set<Key>`. It is off by default because session specs, share
|
|
699
|
+
* links and embeds pass untyped JSON here, and a default fallback would
|
|
700
|
+
* let them call internal setters (`setError`, `setScrollTop`, ...) and
|
|
701
|
+
* call multi-argument setters with one argument. A caller that wants a
|
|
702
|
+
* specific action can call it directly.
|
|
703
|
+
*
|
|
704
|
+
* A key whose write threw is reported in `failed`. Only `failed` means
|
|
705
|
+
* the caller passed a bad value. `unapplied` needs the caller's own
|
|
706
|
+
* context to read: `showTrackGeneric` spreads the same settings into the
|
|
707
|
+
* display's snapshot, so a declared prop (`resolution`) has already
|
|
708
|
+
* landed by the time it reports here, while the restyle path spreads
|
|
709
|
+
* nothing and every entry there did nothing.
|
|
710
|
+
*
|
|
711
|
+
* A per-key error does not abort the remaining keys. A caller
|
|
712
|
+
* mid-`showTrack` has already pushed the track, and one rejected value
|
|
713
|
+
* should not leave it half-configured.
|
|
714
|
+
*/
|
|
715
|
+
applyDisplaySettings(settings: Record<string, unknown>, options?: {
|
|
716
|
+
allowSetters?: boolean;
|
|
717
|
+
}): {
|
|
718
|
+
applied: string[];
|
|
719
|
+
unapplied: UnappliedSetting[];
|
|
720
|
+
failed: {
|
|
721
|
+
key: string;
|
|
722
|
+
error: string;
|
|
723
|
+
}[];
|
|
724
|
+
};
|
|
687
725
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
|
|
688
726
|
export type BaseDisplayStateModel = typeof BaseDisplay;
|
|
689
727
|
export type BaseDisplayModel = Instance<BaseDisplayStateModel>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { hasParent, isAlive, types } from '@jbrowse/mobx-state-tree';
|
|
2
|
-
import { getConf } from '../../configuration/index.js';
|
|
2
|
+
import { applyConfSettings, getConf } from '../../configuration/index.js';
|
|
3
3
|
import { getContainingTrack, getEnv, statusFraction, statusMessageText, } from '../../util/index.js';
|
|
4
4
|
import { ElementId } from '../../util/types/mst.js';
|
|
5
|
+
import { displaySetterName } from '../../util/unknownSnapshotKeys.js';
|
|
5
6
|
/**
|
|
6
7
|
* #stateModel BaseDisplay
|
|
7
8
|
* #category display
|
|
@@ -94,7 +95,7 @@ function stateModelFactory() {
|
|
|
94
95
|
* pointing at" channel a plugin can subscribe to.
|
|
95
96
|
*
|
|
96
97
|
* Declared here because a cross-display consumer can only read a name the
|
|
97
|
-
* base declares — the same reason `
|
|
98
|
+
* base declares — the same reason `FetchMixin.fetchInert` is a
|
|
98
99
|
* hook rather than a getter each display invents. The container used to
|
|
99
100
|
* read `featureUnderMouse`, which only the wiggle, alignments and
|
|
100
101
|
* Manhattan families spelled that way — canvas said `hoveredFeature`,
|
|
@@ -139,15 +140,14 @@ function stateModelFactory() {
|
|
|
139
140
|
},
|
|
140
141
|
/**
|
|
141
142
|
* #getter
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* out by hand.
|
|
143
|
+
* The widget `openFeatureWidget` opens for one of this display's
|
|
144
|
+
* features. Displays may override it. The default is the generic feature
|
|
145
|
+
* widget, for displays drawing plain features.
|
|
146
146
|
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
147
|
+
* Displays whose features are a specific kind (a read, a variant, a
|
|
148
|
+
* synteny block) override it, including the `id`: two displays naming
|
|
149
|
+
* one id share the drawer panel, which suits two displays showing the
|
|
150
|
+
* same kind of feature.
|
|
151
151
|
*/
|
|
152
152
|
get featureWidgetType() {
|
|
153
153
|
return {
|
|
@@ -210,6 +210,68 @@ function stateModelFactory() {
|
|
|
210
210
|
* base display reload does nothing, see specialized displays for details
|
|
211
211
|
*/
|
|
212
212
|
reload() { },
|
|
213
|
+
/**
|
|
214
|
+
* #action
|
|
215
|
+
* Apply a set of display settings to the live display, and report which
|
|
216
|
+
* were applied. Each key runs through the display config schema's
|
|
217
|
+
* `preProcessSnapshot` (shorthand expansions and legacy-key migrations,
|
|
218
|
+
* as `showTrackGeneric` applies to a session spec's inline track keys),
|
|
219
|
+
* then writes the matching config slot. A key naming a sub-schema
|
|
220
|
+
* (`facet`, `color`) replaces the whole object, its string shorthand
|
|
221
|
+
* lifted by that schema, and `null` clears it. Keys that are not slots
|
|
222
|
+
* come back in `unapplied` as `{ key, reason }`, so a caller can tell a
|
|
223
|
+
* misspelling from a key that has an action instead of a slot.
|
|
224
|
+
*
|
|
225
|
+
* `allowSetters` also routes a non-slot key to a single-argument action
|
|
226
|
+
* named `set<Key>`. It is off by default because session specs, share
|
|
227
|
+
* links and embeds pass untyped JSON here, and a default fallback would
|
|
228
|
+
* let them call internal setters (`setError`, `setScrollTop`, ...) and
|
|
229
|
+
* call multi-argument setters with one argument. A caller that wants a
|
|
230
|
+
* specific action can call it directly.
|
|
231
|
+
*
|
|
232
|
+
* A key whose write threw is reported in `failed`. Only `failed` means
|
|
233
|
+
* the caller passed a bad value. `unapplied` needs the caller's own
|
|
234
|
+
* context to read: `showTrackGeneric` spreads the same settings into the
|
|
235
|
+
* display's snapshot, so a declared prop (`resolution`) has already
|
|
236
|
+
* landed by the time it reports here, while the restyle path spreads
|
|
237
|
+
* nothing and every entry there did nothing.
|
|
238
|
+
*
|
|
239
|
+
* A per-key error does not abort the remaining keys. A caller
|
|
240
|
+
* mid-`showTrack` has already pushed the track, and one rejected value
|
|
241
|
+
* should not leave it half-configured.
|
|
242
|
+
*/
|
|
243
|
+
applyDisplaySettings(settings, options) {
|
|
244
|
+
// configuration is the reference every concrete display adds at
|
|
245
|
+
// instantiation (see DisplayModel below); the base model composes
|
|
246
|
+
// before it exists, hence the cast rather than a prop
|
|
247
|
+
const { configuration } = self;
|
|
248
|
+
const { applied, undeclared, failed } = applyConfSettings(configuration, settings);
|
|
249
|
+
const unapplied = [];
|
|
250
|
+
for (const [key, value] of Object.entries(undeclared)) {
|
|
251
|
+
if (!key || key === 'type') {
|
|
252
|
+
unapplied.push({ key, reason: key ? 'display-type' : 'no-slot' });
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
const setter = self[displaySetterName(key)];
|
|
256
|
+
if (typeof setter !== 'function') {
|
|
257
|
+
unapplied.push({ key, reason: 'no-slot' });
|
|
258
|
+
}
|
|
259
|
+
else if (!options?.allowSetters) {
|
|
260
|
+
unapplied.push({ key, reason: 'setter-only' });
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
try {
|
|
264
|
+
;
|
|
265
|
+
setter(value);
|
|
266
|
+
applied.push(`${key} (via setter)`);
|
|
267
|
+
}
|
|
268
|
+
catch (e) {
|
|
269
|
+
failed.push({ key, error: `${e}` });
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return { applied, unapplied, failed };
|
|
274
|
+
},
|
|
213
275
|
}));
|
|
214
276
|
}
|
|
215
277
|
export const BaseDisplay = stateModelFactory();
|