@jbrowse/core 4.3.0 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +783 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +40 -40
- package/esm/PluginLoader.js +166 -82
- package/esm/PluginManager.d.ts +368 -55
- package/esm/PluginManager.js +326 -85
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +84 -65
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +154 -19
- package/esm/configuration/configurationSchema.js +359 -138
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +326 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +120 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +99 -27
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +6 -4
- package/esm/data_adapters/BaseAdapter/index.js +5 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +5 -5
- package/esm/data_adapters/BaseAdapter/stats.js +48 -22
- package/esm/data_adapters/BaseAdapter/types.d.ts +10 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +10 -0
- package/esm/pluggableElementTypes/DisplayType.js +14 -1
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +2 -1
- package/esm/pluggableElementTypes/ViewType.js +9 -2
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +68 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +605 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +172 -64
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +195 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +332 -85
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +167 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +111 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +174 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +246 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +265 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +49 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +2 -5
- package/esm/rpc/coreRpcMethods.js +9 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +136 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +368 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +9 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +124 -4
- package/esm/ui/MenuTypes.js +13 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +85 -0
- package/esm/ui/PaletteContext.js +104 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +79 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +36 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +89 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +87 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +44 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +23 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyInitSettings.d.ts +79 -0
- package/esm/util/applyInitSettings.js +91 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +52 -0
- package/esm/util/cacheBudgets.js +52 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +117 -0
- package/esm/util/createStopTokenRotation.js +147 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +160 -0
- package/esm/util/hooks.js +416 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +82 -268
- package/esm/util/index.js +136 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +194 -0
- package/esm/util/installFetch.js +178 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +89 -0
- package/esm/util/mstUtils.js +122 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +113 -0
- package/esm/util/pluginStore.js +253 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +42 -1
- package/esm/util/range.js +59 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +14 -1
- package/esm/util/rxjs.js +39 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +120 -0
- package/esm/util/tabix.js +143 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +350 -30
- package/esm/util/tracks.js +574 -192
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +358 -119
- package/esm/util/types/index.js +87 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +58 -0
- package/esm/util/viewStatus.js +20 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +27 -0
- package/esm/util/whenViewSettled.js +28 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/package.json +240 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { cast, clampByte, get, set } from './bit.js';
|
|
2
|
+
export const OFFSET_R = 24;
|
|
3
|
+
export const OFFSET_G = 16;
|
|
4
|
+
export const OFFSET_B = 8;
|
|
5
|
+
export const OFFSET_A = 0;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new color from the given RGBA components.
|
|
8
|
+
* Every component should be in the [0, 255] range.
|
|
9
|
+
*/
|
|
10
|
+
export function newColor(r, g, b, a) {
|
|
11
|
+
return ((clampByte(r) << OFFSET_R) +
|
|
12
|
+
(clampByte(g) << OFFSET_G) +
|
|
13
|
+
(clampByte(b) << OFFSET_B) +
|
|
14
|
+
(clampByte(a) << OFFSET_A));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new color from a number in the canonical `0xRRGGBBAA` layout —
|
|
18
|
+
* alpha in the LOW byte, which is what `newColor` composes and what
|
|
19
|
+
* `getRed`/`getAlpha` read.
|
|
20
|
+
*
|
|
21
|
+
* A 24-bit CSS hex is therefore not one of these, and this used to say it was:
|
|
22
|
+
* `from(0x599eff)` is `0x00599eff`, so it reads R=0x00, G=0x59, B=0x9e and
|
|
23
|
+
* A=0xff — every intended channel one byte down, with the blue arriving as the
|
|
24
|
+
* alpha. Spell the alpha (`from(0x599effff)`), or use `newColor(r, g, b, a)`.
|
|
25
|
+
*/
|
|
26
|
+
export function from(color) {
|
|
27
|
+
return newColor(get(color, OFFSET_R), get(color, OFFSET_G), get(color, OFFSET_B), get(color, OFFSET_A));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Turns the color into its equivalent number representation.
|
|
31
|
+
* This is essentially a cast from int32 to uint32.
|
|
32
|
+
*/
|
|
33
|
+
export function toNumber(color) {
|
|
34
|
+
return cast(color);
|
|
35
|
+
}
|
|
36
|
+
// These read the canonical 0xRRGGBBAA layout (R in the HIGH byte). Their
|
|
37
|
+
// mirror image is `abgrRed`/`abgrGreen`/`abgrBlue`/`abgrAlpha` in
|
|
38
|
+
// ../colorBits.ts, which reads the ABGR u32 the GPU path packs (R in the LOW
|
|
39
|
+
// byte) — calling the wrong pair silently swaps R and B. Both take a plain
|
|
40
|
+
// number and cannot be told apart by the type system: a branded Color was
|
|
41
|
+
// considered and rejected, because ABGR values are read back out of
|
|
42
|
+
// Uint32Arrays, where indexing yields `number` and every read would need the
|
|
43
|
+
// cast that defeats the brand.
|
|
44
|
+
export function getRed(c) {
|
|
45
|
+
return get(c, OFFSET_R);
|
|
46
|
+
}
|
|
47
|
+
export function getGreen(c) {
|
|
48
|
+
return get(c, OFFSET_G);
|
|
49
|
+
}
|
|
50
|
+
export function getBlue(c) {
|
|
51
|
+
return get(c, OFFSET_B);
|
|
52
|
+
}
|
|
53
|
+
export function getAlpha(c) {
|
|
54
|
+
return get(c, OFFSET_A);
|
|
55
|
+
}
|
|
56
|
+
export function setRed(c, value) {
|
|
57
|
+
return set(c, OFFSET_R, value);
|
|
58
|
+
}
|
|
59
|
+
export function setGreen(c, value) {
|
|
60
|
+
return set(c, OFFSET_G, value);
|
|
61
|
+
}
|
|
62
|
+
export function setBlue(c, value) {
|
|
63
|
+
return set(c, OFFSET_B, value);
|
|
64
|
+
}
|
|
65
|
+
export function setAlpha(c, value) {
|
|
66
|
+
return set(c, OFFSET_A, value);
|
|
67
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Color } from './core.ts';
|
|
2
|
+
/** Format to a #RRGGBBAA string */
|
|
3
|
+
export declare const format: typeof formatHEXA;
|
|
4
|
+
/** Format to a #RRGGBBAA string */
|
|
5
|
+
export declare function formatHEXA(color: Color): string;
|
|
6
|
+
export declare function formatHEX(color: Color): string;
|
|
7
|
+
export declare function formatRGBA(color: Color): string;
|
|
8
|
+
export declare function toRGBA(color: Color): {
|
|
9
|
+
r: number;
|
|
10
|
+
g: number;
|
|
11
|
+
b: number;
|
|
12
|
+
a: number;
|
|
13
|
+
};
|
|
14
|
+
export declare function formatHSLA(color: Color): string;
|
|
15
|
+
export declare function toHSLA(color: Color): {
|
|
16
|
+
h: number;
|
|
17
|
+
s: number;
|
|
18
|
+
l: number;
|
|
19
|
+
a: number;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Returns [r, g, b] as floats in 0-1 range, suitable for GPU shader uniforms.
|
|
23
|
+
*/
|
|
24
|
+
export declare function toGLrgb(color: Color): [number, number, number];
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { getAlpha, getBlue, getGreen, getRed } from './core.js';
|
|
2
|
+
// Return buffer, avoid allocations
|
|
3
|
+
const buffer = [0, 0, 0];
|
|
4
|
+
/**
|
|
5
|
+
* Map 8-bits value to its hexadecimal representation
|
|
6
|
+
* ['00', '01', '02', ..., 'fe', 'ff']
|
|
7
|
+
*/
|
|
8
|
+
const FORMAT_HEX = Array.from({ length: 256 }).map((_, byte) => byte.toString(16).padStart(2, '0'));
|
|
9
|
+
/** Format to a #RRGGBBAA string */
|
|
10
|
+
export const format = formatHEXA;
|
|
11
|
+
/** Format to a #RRGGBBAA string */
|
|
12
|
+
export function formatHEXA(color) {
|
|
13
|
+
return `#${FORMAT_HEX[getRed(color)]}${FORMAT_HEX[getGreen(color)]}${FORMAT_HEX[getBlue(color)]}${FORMAT_HEX[getAlpha(color)]}`;
|
|
14
|
+
}
|
|
15
|
+
export function formatHEX(color) {
|
|
16
|
+
return `#${FORMAT_HEX[getRed(color)]}${FORMAT_HEX[getGreen(color)]}${FORMAT_HEX[getBlue(color)]}`;
|
|
17
|
+
}
|
|
18
|
+
export function formatRGBA(color) {
|
|
19
|
+
return `rgba(${getRed(color)} ${getGreen(color)} ${getBlue(color)} / ${getAlpha(color) / 255})`;
|
|
20
|
+
}
|
|
21
|
+
export function toRGBA(color) {
|
|
22
|
+
return {
|
|
23
|
+
r: getRed(color),
|
|
24
|
+
g: getGreen(color),
|
|
25
|
+
b: getBlue(color),
|
|
26
|
+
a: getAlpha(color),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function formatHSLA(color) {
|
|
30
|
+
rgbToHSL(getRed(color), getGreen(color), getBlue(color));
|
|
31
|
+
const h = buffer[0];
|
|
32
|
+
const s = buffer[1];
|
|
33
|
+
const l = buffer[2];
|
|
34
|
+
const a = getAlpha(color) / 255;
|
|
35
|
+
return `hsla(${h} ${s}% ${l}% / ${a})`;
|
|
36
|
+
}
|
|
37
|
+
export function toHSLA(color) {
|
|
38
|
+
rgbToHSL(getRed(color), getGreen(color), getBlue(color));
|
|
39
|
+
const h = buffer[0];
|
|
40
|
+
const s = buffer[1];
|
|
41
|
+
const l = buffer[2];
|
|
42
|
+
const a = getAlpha(color) / 255;
|
|
43
|
+
return { h, s, l, a };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Returns [r, g, b] as floats in 0-1 range, suitable for GPU shader uniforms.
|
|
47
|
+
*/
|
|
48
|
+
export function toGLrgb(color) {
|
|
49
|
+
return [getRed(color) / 255, getGreen(color) / 255, getBlue(color) / 255];
|
|
50
|
+
}
|
|
51
|
+
// Conversion functions
|
|
52
|
+
// https://www.30secondsofcode.org/js/s/rgb-hex-hsl-hsb-color-format-conversion/
|
|
53
|
+
function rgbToHSL(r, g, b) {
|
|
54
|
+
r /= 255;
|
|
55
|
+
g /= 255;
|
|
56
|
+
b /= 255;
|
|
57
|
+
// `l` here is the max channel (HSV value) and `s` the chroma, not the HSL
|
|
58
|
+
// lightness/saturation; the real lightness is (max + min) / 2 = l - s / 2
|
|
59
|
+
const l = Math.max(r, g, b);
|
|
60
|
+
const s = l - Math.min(r, g, b);
|
|
61
|
+
const h = s
|
|
62
|
+
? l === r
|
|
63
|
+
? (g - b) / s
|
|
64
|
+
: l === g
|
|
65
|
+
? 2 + (b - r) / s
|
|
66
|
+
: 4 + (r - g) / s
|
|
67
|
+
: 0;
|
|
68
|
+
// the saturation formula is picked by lightness, not by the max channel:
|
|
69
|
+
// branching on `l` understated it whenever max > 0.5 while lightness < 0.5
|
|
70
|
+
// (e.g. #0a0ac8 came out 63.3% instead of 90.5%)
|
|
71
|
+
const doubleLightness = 2 * l - s;
|
|
72
|
+
buffer[0] = 60 * h < 0 ? 60 * h + 360 : 60 * h;
|
|
73
|
+
buffer[1] =
|
|
74
|
+
100 *
|
|
75
|
+
(s
|
|
76
|
+
? doubleLightness <= 1
|
|
77
|
+
? s / doubleLightness
|
|
78
|
+
: s / (2 - doubleLightness)
|
|
79
|
+
: 0);
|
|
80
|
+
buffer[2] = (100 * doubleLightness) / 2;
|
|
81
|
+
}
|
|
82
|
+
// https://stackoverflow.com/a/29463581/3112706
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Color } from './core.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Modifies color alpha channel.
|
|
4
|
+
* @param color - Color
|
|
5
|
+
* @param value - Value in the range [0, 1]
|
|
6
|
+
*/
|
|
7
|
+
export declare function alpha(color: Color, value: number): Color;
|
|
8
|
+
/**
|
|
9
|
+
* Darkens a color.
|
|
10
|
+
* @param color - Color
|
|
11
|
+
* @param coefficient - Multiplier in the range [0, 1]
|
|
12
|
+
*/
|
|
13
|
+
export declare function darken(color: Color, coefficient: number): Color;
|
|
14
|
+
/**
|
|
15
|
+
* Lighten a color.
|
|
16
|
+
* @param color - Color
|
|
17
|
+
* @param coefficient - Multiplier in the range [0, 1]
|
|
18
|
+
*/
|
|
19
|
+
export declare function lighten(color: Color, coefficient: number): Color;
|
|
20
|
+
/**
|
|
21
|
+
* Blend (aka mix) two colors together.
|
|
22
|
+
* @param background The background color
|
|
23
|
+
* @param overlay The overlay color that is affected by @opacity
|
|
24
|
+
* @param opacity Opacity (alpha) for @overlay
|
|
25
|
+
* @param [gamma=1.0] Gamma correction coefficient. `1.0` to match browser behavior, `2.2` for gamma-corrected blending.
|
|
26
|
+
*/
|
|
27
|
+
export declare function blend(background: Color, overlay: Color, opacity: number, gamma?: number): number;
|
|
28
|
+
/**
|
|
29
|
+
* The relative brightness of any point in a color space, normalized to 0 for
|
|
30
|
+
* darkest black and 1 for lightest white.
|
|
31
|
+
* @returns The relative brightness of the color in the range 0 - 1, with 3 digits precision
|
|
32
|
+
*/
|
|
33
|
+
export declare function getLuminance(color: Color): number;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { getAlpha, getBlue, getGreen, getRed, newColor, setAlpha, } from './core.js';
|
|
2
|
+
/**
|
|
3
|
+
* Modifies color alpha channel.
|
|
4
|
+
* @param color - Color
|
|
5
|
+
* @param value - Value in the range [0, 1]
|
|
6
|
+
*/
|
|
7
|
+
export function alpha(color, value) {
|
|
8
|
+
return setAlpha(color, Math.round(value * 255));
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Darkens a color.
|
|
12
|
+
* @param color - Color
|
|
13
|
+
* @param coefficient - Multiplier in the range [0, 1]
|
|
14
|
+
*/
|
|
15
|
+
export function darken(color, coefficient) {
|
|
16
|
+
const r = getRed(color);
|
|
17
|
+
const g = getGreen(color);
|
|
18
|
+
const b = getBlue(color);
|
|
19
|
+
const a = getAlpha(color);
|
|
20
|
+
const factor = 1 - coefficient;
|
|
21
|
+
return newColor(r * factor, g * factor, b * factor, a);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Lighten a color.
|
|
25
|
+
* @param color - Color
|
|
26
|
+
* @param coefficient - Multiplier in the range [0, 1]
|
|
27
|
+
*/
|
|
28
|
+
export function lighten(color, coefficient) {
|
|
29
|
+
const r = getRed(color);
|
|
30
|
+
const g = getGreen(color);
|
|
31
|
+
const b = getBlue(color);
|
|
32
|
+
const a = getAlpha(color);
|
|
33
|
+
return newColor(r + (255 - r) * coefficient, g + (255 - g) * coefficient, b + (255 - b) * coefficient, a);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Blend (aka mix) two colors together.
|
|
37
|
+
* @param background The background color
|
|
38
|
+
* @param overlay The overlay color that is affected by @opacity
|
|
39
|
+
* @param opacity Opacity (alpha) for @overlay
|
|
40
|
+
* @param [gamma=1.0] Gamma correction coefficient. `1.0` to match browser behavior, `2.2` for gamma-corrected blending.
|
|
41
|
+
*/
|
|
42
|
+
export function blend(background, overlay, opacity, gamma = 1) {
|
|
43
|
+
const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);
|
|
44
|
+
const r = blendChannel(getRed(background), getRed(overlay));
|
|
45
|
+
const g = blendChannel(getGreen(background), getGreen(overlay));
|
|
46
|
+
const b = blendChannel(getBlue(background), getBlue(overlay));
|
|
47
|
+
// Alpha is interpolated too, and linearly — it is a coverage fraction, not a
|
|
48
|
+
// gamma-encoded channel, so `gamma` has no business in it. Hardcoding 255
|
|
49
|
+
// made `colord(a).mix(b)` return opaque where real colord carries the
|
|
50
|
+
// operands' alpha through, on a `mix` that is public API with a colord-shaped
|
|
51
|
+
// signature. Both operands opaque is byte-identical, which is every in-tree
|
|
52
|
+
// caller today.
|
|
53
|
+
const a = Math.round(getAlpha(background) * (1 - opacity) + getAlpha(overlay) * opacity);
|
|
54
|
+
return newColor(r, g, b, a);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The relative brightness of any point in a color space, normalized to 0 for
|
|
58
|
+
* darkest black and 1 for lightest white.
|
|
59
|
+
* @returns The relative brightness of the color in the range 0 - 1, with 3 digits precision
|
|
60
|
+
*/
|
|
61
|
+
export function getLuminance(color) {
|
|
62
|
+
const r = getRed(color) / 255;
|
|
63
|
+
const g = getGreen(color) / 255;
|
|
64
|
+
const b = getBlue(color) / 255;
|
|
65
|
+
const apply = (v) => v <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4;
|
|
66
|
+
const r1 = apply(r);
|
|
67
|
+
const g1 = apply(g);
|
|
68
|
+
const b1 = apply(b);
|
|
69
|
+
return Math.round((0.2126 * r1 + 0.7152 * g1 + 0.0722 * b1) * 1000) / 1000;
|
|
70
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { OFFSET_A, OFFSET_B, OFFSET_G, OFFSET_R, from, getAlpha, getBlue, getGreen, getRed, newColor, setAlpha, setBlue, setGreen, setRed, toNumber, } from './core.ts';
|
|
2
|
+
export type { Color } from './core.ts';
|
|
3
|
+
export { parse, parseColor, parseHex } from './parse.ts';
|
|
4
|
+
export { format, formatHEX, formatHEXA, formatHSLA, formatRGBA, toGLrgb, toHSLA, toRGBA, } from './format.ts';
|
|
5
|
+
export { alpha, blend, darken, getLuminance, lighten } from './functions.ts';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { OFFSET_A, OFFSET_B, OFFSET_G, OFFSET_R, from, getAlpha, getBlue, getGreen, getRed, newColor, setAlpha, setBlue, setGreen, setRed, toNumber, } from './core.js';
|
|
2
|
+
export { parse, parseColor, parseHex } from './parse.js';
|
|
3
|
+
export { format, formatHEX, formatHEXA, formatHSLA, formatRGBA, toGLrgb, toHSLA, toRGBA, } from './format.js';
|
|
4
|
+
export { alpha, blend, darken, getLuminance, lighten } from './functions.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Color } from './core.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Parse CSS color
|
|
4
|
+
* @param color CSS color string: #xxx, #xxxxxx, #xxxxxxxx, rgb(), rgba(), hsl(), hsla(), color()
|
|
5
|
+
*/
|
|
6
|
+
export declare function parse(color: string): Color;
|
|
7
|
+
/**
|
|
8
|
+
* Parse hexadecimal CSS color
|
|
9
|
+
* @param color Hex color string: #xxx, #xxxx, #xxxxxx, #xxxxxxxx
|
|
10
|
+
*/
|
|
11
|
+
export declare function parseHex(color: string): Color;
|
|
12
|
+
/**
|
|
13
|
+
* Parse CSS color
|
|
14
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/color_value
|
|
15
|
+
* @param color CSS color string: rgb(), rgba(), hsl(), hsla(), color()
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseColor(color: string): Color;
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
import * as convert from './convert.js';
|
|
2
|
+
import { newColor } from './core.js';
|
|
3
|
+
const HASH = '#'.charCodeAt(0);
|
|
4
|
+
const PERCENT = '%'.charCodeAt(0);
|
|
5
|
+
const G = 'g'.charCodeAt(0);
|
|
6
|
+
const N = 'n'.charCodeAt(0);
|
|
7
|
+
const D = 'd'.charCodeAt(0);
|
|
8
|
+
const E = 'e'.charCodeAt(0);
|
|
9
|
+
/**
|
|
10
|
+
* Approximative CSS colorspace string pattern, e.g. rgb(), color()
|
|
11
|
+
*
|
|
12
|
+
* **Anchored**, because the whole string has to be a colour for this to be one.
|
|
13
|
+
* Unanchored it matched a colour sitting anywhere inside anything, so
|
|
14
|
+
* `parseCssColor('foo rgb(1,2,3) bar')` answered `[1,2,3]` — and a config slot
|
|
15
|
+
* holding prose, a jexl expression that did not evaluate, or two colours by
|
|
16
|
+
* mistake read as a plausible colour instead of reaching the invalid-colour
|
|
17
|
+
* sentinel. That sentinel is a contract (`colorBits.test.ts`: a broken config
|
|
18
|
+
* reads as magenta, never as a plausible wrong colour), and it was unreachable
|
|
19
|
+
* for every such string. Surrounding whitespace is still tolerated: a slot with
|
|
20
|
+
* a trailing space is a formatting slip, not a different colour.
|
|
21
|
+
*/
|
|
22
|
+
const PATTERN = (() => {
|
|
23
|
+
const NAME = String.raw `(\w+)`;
|
|
24
|
+
const SEPARATOR = String.raw `[\s,\/]`;
|
|
25
|
+
const VALUE = String.raw `([^\s,\/]+)`;
|
|
26
|
+
const SEPARATOR_THEN_VALUE = `(?:${SEPARATOR}+${VALUE})`;
|
|
27
|
+
return new RegExp(String.raw `^\s*
|
|
28
|
+
${NAME}\(
|
|
29
|
+
${SEPARATOR}*
|
|
30
|
+
${VALUE}
|
|
31
|
+
${SEPARATOR_THEN_VALUE}
|
|
32
|
+
${SEPARATOR_THEN_VALUE}
|
|
33
|
+
${SEPARATOR_THEN_VALUE}?
|
|
34
|
+
${SEPARATOR_THEN_VALUE}?
|
|
35
|
+
${SEPARATOR}*
|
|
36
|
+
\)\s*$`.replaceAll(/\s/g, ''));
|
|
37
|
+
})();
|
|
38
|
+
/**
|
|
39
|
+
* Parse CSS color
|
|
40
|
+
* @param color CSS color string: #xxx, #xxxxxx, #xxxxxxxx, rgb(), rgba(), hsl(), hsla(), color()
|
|
41
|
+
*/
|
|
42
|
+
export function parse(color) {
|
|
43
|
+
return color.charCodeAt(0) === HASH ? parseHex(color) : parseColor(color);
|
|
44
|
+
}
|
|
45
|
+
// The four legal hex forms. Validated up front rather than trusted, because
|
|
46
|
+
// hexValue() maps any character to a number: '#zzzzzz' produced a plausible dark
|
|
47
|
+
// grey and '#ff' opaque black, so parseCssColor's invalid-color sentinel was
|
|
48
|
+
// unreachable for anything starting with '#'. Nibbles above 0xf also overflow
|
|
49
|
+
// into the neighbouring channel once packed.
|
|
50
|
+
const HEX = /^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/i;
|
|
51
|
+
/**
|
|
52
|
+
* Parse hexadecimal CSS color
|
|
53
|
+
* @param color Hex color string: #xxx, #xxxx, #xxxxxx, #xxxxxxxx
|
|
54
|
+
*/
|
|
55
|
+
export function parseHex(color) {
|
|
56
|
+
if (!HEX.test(color)) {
|
|
57
|
+
throw new Error(`Color.parse(): invalid CSS color: "${color}"`);
|
|
58
|
+
}
|
|
59
|
+
let r = 0x00;
|
|
60
|
+
let g = 0x00;
|
|
61
|
+
let b = 0x00;
|
|
62
|
+
let a = 0xff;
|
|
63
|
+
switch (color.length) {
|
|
64
|
+
// #59f
|
|
65
|
+
case 4: {
|
|
66
|
+
r = (hexValue(color.charCodeAt(1)) << 4) + hexValue(color.charCodeAt(1));
|
|
67
|
+
g = (hexValue(color.charCodeAt(2)) << 4) + hexValue(color.charCodeAt(2));
|
|
68
|
+
b = (hexValue(color.charCodeAt(3)) << 4) + hexValue(color.charCodeAt(3));
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
// #59fa
|
|
72
|
+
case 5: {
|
|
73
|
+
r = (hexValue(color.charCodeAt(1)) << 4) + hexValue(color.charCodeAt(1));
|
|
74
|
+
g = (hexValue(color.charCodeAt(2)) << 4) + hexValue(color.charCodeAt(2));
|
|
75
|
+
b = (hexValue(color.charCodeAt(3)) << 4) + hexValue(color.charCodeAt(3));
|
|
76
|
+
a = (hexValue(color.charCodeAt(4)) << 4) + hexValue(color.charCodeAt(4));
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
// #5599ff
|
|
80
|
+
case 7: {
|
|
81
|
+
r = (hexValue(color.charCodeAt(1)) << 4) + hexValue(color.charCodeAt(2));
|
|
82
|
+
g = (hexValue(color.charCodeAt(3)) << 4) + hexValue(color.charCodeAt(4));
|
|
83
|
+
b = (hexValue(color.charCodeAt(5)) << 4) + hexValue(color.charCodeAt(6));
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
// #5599ff88
|
|
87
|
+
case 9: {
|
|
88
|
+
r = (hexValue(color.charCodeAt(1)) << 4) + hexValue(color.charCodeAt(2));
|
|
89
|
+
g = (hexValue(color.charCodeAt(3)) << 4) + hexValue(color.charCodeAt(4));
|
|
90
|
+
b = (hexValue(color.charCodeAt(5)) << 4) + hexValue(color.charCodeAt(6));
|
|
91
|
+
a = (hexValue(color.charCodeAt(7)) << 4) + hexValue(color.charCodeAt(8));
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
default: {
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return newColor(r, g, b, a);
|
|
99
|
+
}
|
|
100
|
+
// https://lemire.me/blog/2019/04/17/parsing-short-hexadecimal-strings-efficiently/
|
|
101
|
+
function hexValue(c) {
|
|
102
|
+
return (c & 0xf) + 9 * (c >> 6);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Parse CSS color
|
|
106
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/color_value
|
|
107
|
+
* @param color CSS color string: rgb(), rgba(), hsl(), hsla(), color()
|
|
108
|
+
*/
|
|
109
|
+
export function parseColor(color) {
|
|
110
|
+
const match = PATTERN.exec(color);
|
|
111
|
+
if (match === null) {
|
|
112
|
+
throw new Error(`Color.parse(): invalid CSS color: "${color}"`);
|
|
113
|
+
}
|
|
114
|
+
const fmt = match[1];
|
|
115
|
+
const p1 = match[2];
|
|
116
|
+
const p2 = match[3];
|
|
117
|
+
const p3 = match[4];
|
|
118
|
+
const p4 = match[5];
|
|
119
|
+
const p5 = match[6];
|
|
120
|
+
switch (fmt) {
|
|
121
|
+
case 'rgb':
|
|
122
|
+
case 'rgba': {
|
|
123
|
+
const r = parseColorChannel(p1);
|
|
124
|
+
const g = parseColorChannel(p2);
|
|
125
|
+
const b = parseColorChannel(p3);
|
|
126
|
+
const a = p4 ? parseAlphaChannel(p4) : 255;
|
|
127
|
+
return newColor(r, g, b, a);
|
|
128
|
+
}
|
|
129
|
+
case 'hsl':
|
|
130
|
+
case 'hsla': {
|
|
131
|
+
const h = parseAngle(p1);
|
|
132
|
+
const s = parsePercentage(p2);
|
|
133
|
+
const l = parsePercentage(p3);
|
|
134
|
+
const a = p4 ? parseAlphaChannel(p4) : 255;
|
|
135
|
+
// https://stackoverflow.com/a/9493060/3112706
|
|
136
|
+
let r;
|
|
137
|
+
let g;
|
|
138
|
+
let b;
|
|
139
|
+
if (s === 0) {
|
|
140
|
+
r = g = b = Math.round(l * 255); // achromatic
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
144
|
+
const p = 2 * l - q;
|
|
145
|
+
r = Math.round(hueToRGB(p, q, h + 1 / 3) * 255);
|
|
146
|
+
g = Math.round(hueToRGB(p, q, h) * 255);
|
|
147
|
+
b = Math.round(hueToRGB(p, q, h - 1 / 3) * 255);
|
|
148
|
+
}
|
|
149
|
+
return newColor(r, g, b, a);
|
|
150
|
+
}
|
|
151
|
+
case 'hwb': {
|
|
152
|
+
const h = parseAngle(p1);
|
|
153
|
+
const w = parsePercentage(p2);
|
|
154
|
+
const bl = parsePercentage(p3);
|
|
155
|
+
const a = p4 ? parseAlphaChannel(p4) : 255;
|
|
156
|
+
/* https://drafts.csswg.org/css-color/#hwb-to-rgb */
|
|
157
|
+
const s = 1;
|
|
158
|
+
const l = 0.5;
|
|
159
|
+
// Same as HSL to RGB
|
|
160
|
+
const q = l + s - l * s;
|
|
161
|
+
const p = 2 * l - q;
|
|
162
|
+
let r = Math.round(hueToRGB(p, q, h + 1 / 3) * 255);
|
|
163
|
+
let g = Math.round(hueToRGB(p, q, h) * 255);
|
|
164
|
+
let b = Math.round(hueToRGB(p, q, h - 1 / 3) * 255);
|
|
165
|
+
// Then HWB
|
|
166
|
+
r = hwbApply(r, w, bl);
|
|
167
|
+
g = hwbApply(g, w, bl);
|
|
168
|
+
b = hwbApply(b, w, bl);
|
|
169
|
+
return newColor(r, g, b, a);
|
|
170
|
+
}
|
|
171
|
+
case 'lab': {
|
|
172
|
+
const l = parsePercentageFor(p1, 100);
|
|
173
|
+
const aa = parsePercentageFor(p2, 125);
|
|
174
|
+
const b = parsePercentageFor(p3, 125);
|
|
175
|
+
const a = p4 ? parseAlphaChannel(p4) : 255;
|
|
176
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.labToXyzd50(l, aa, b)));
|
|
177
|
+
}
|
|
178
|
+
case 'lch': {
|
|
179
|
+
const l = parsePercentageFor(p1, 100);
|
|
180
|
+
const c = parsePercentageFor(p2, 150);
|
|
181
|
+
const h = parseAngle(p3) * 360;
|
|
182
|
+
const a = p4 ? parseAlphaChannel(p4) : 255;
|
|
183
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.labToXyzd50(...convert.lchToLab(l, c, h))));
|
|
184
|
+
}
|
|
185
|
+
case 'oklab': {
|
|
186
|
+
const l = parsePercentageFor(p1, 1);
|
|
187
|
+
const aa = parsePercentageFor(p2, 0.4);
|
|
188
|
+
const b = parsePercentageFor(p3, 0.4);
|
|
189
|
+
const a = p4 ? parseAlphaChannel(p4) : 255;
|
|
190
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.xyzd65ToD50(...convert.oklabToXyzd65(l, aa, b))));
|
|
191
|
+
}
|
|
192
|
+
case 'oklch': {
|
|
193
|
+
const l = parsePercentageOrValue(p1);
|
|
194
|
+
const c = parsePercentageOrValue(p2);
|
|
195
|
+
const h = parsePercentageOrValue(p3);
|
|
196
|
+
const a = p4 ? parseAlphaChannel(p4) : 255;
|
|
197
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.oklchToXyzd50(l, c, h)));
|
|
198
|
+
}
|
|
199
|
+
case 'color': {
|
|
200
|
+
// https://drafts.csswg.org/css-color-4/#color-function
|
|
201
|
+
const colorspace = p1;
|
|
202
|
+
const c1 = parsePercentageOrValue(p2);
|
|
203
|
+
const c2 = parsePercentageOrValue(p3);
|
|
204
|
+
const c3 = parsePercentageOrValue(p4);
|
|
205
|
+
const a = p5 ? parseAlphaChannel(p5) : 255;
|
|
206
|
+
switch (colorspace) {
|
|
207
|
+
// RGB color spaces
|
|
208
|
+
case 'srgb': {
|
|
209
|
+
return newColorFromArray(a, [c1, c2, c3]);
|
|
210
|
+
}
|
|
211
|
+
case 'srgb-linear': {
|
|
212
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.srgbLinearToXyzd50(c1, c2, c3)));
|
|
213
|
+
}
|
|
214
|
+
case 'display-p3': {
|
|
215
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.displayP3ToXyzd50(c1, c2, c3)));
|
|
216
|
+
}
|
|
217
|
+
case 'a98-rgb': {
|
|
218
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.adobeRGBToXyzd50(c1, c2, c3)));
|
|
219
|
+
}
|
|
220
|
+
case 'prophoto-rgb': {
|
|
221
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.proPhotoToXyzd50(c1, c2, c3)));
|
|
222
|
+
}
|
|
223
|
+
case 'rec2020': {
|
|
224
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.rec2020ToXyzd50(c1, c2, c3)));
|
|
225
|
+
}
|
|
226
|
+
// XYZ color spaces
|
|
227
|
+
case 'xyz':
|
|
228
|
+
case 'xyz-d65': {
|
|
229
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(...convert.xyzd65ToD50(c1, c2, c3)));
|
|
230
|
+
}
|
|
231
|
+
case 'xyz-d50': {
|
|
232
|
+
return newColorFromArray(a, convert.xyzd50ToSrgb(c1, c2, c3));
|
|
233
|
+
}
|
|
234
|
+
default:
|
|
235
|
+
}
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
default:
|
|
239
|
+
}
|
|
240
|
+
throw new Error(`Color.parse(): invalid CSS color: "${color}"`);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Accepts: "50%", "128"
|
|
244
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb#values
|
|
245
|
+
* @returns a value in the 0 to 255 range
|
|
246
|
+
*/
|
|
247
|
+
function parseColorChannel(channel) {
|
|
248
|
+
if (channel.charCodeAt(channel.length - 1) === PERCENT) {
|
|
249
|
+
return Math.round((Number.parseFloat(channel) / 100) * 255);
|
|
250
|
+
}
|
|
251
|
+
return Math.round(Number.parseFloat(channel));
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Accepts: "50%", ".5", "0.5"
|
|
255
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/alpha-value
|
|
256
|
+
* @returns a value in the [0, 255] range
|
|
257
|
+
*/
|
|
258
|
+
function parseAlphaChannel(channel) {
|
|
259
|
+
return Math.round(parseAlphaValue(channel) * 255);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Accepts: "50%", ".5", "0.5"
|
|
263
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/alpha-value
|
|
264
|
+
* @returns a value in the [0, 1] range
|
|
265
|
+
*/
|
|
266
|
+
function parseAlphaValue(channel) {
|
|
267
|
+
if (channel.charCodeAt(0) === N) {
|
|
268
|
+
return 0;
|
|
269
|
+
}
|
|
270
|
+
if (channel.charCodeAt(channel.length - 1) === PERCENT) {
|
|
271
|
+
return Number.parseFloat(channel) / 100;
|
|
272
|
+
}
|
|
273
|
+
return Number.parseFloat(channel);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Accepts: "360", "360deg", "400grad", "6.28rad", "1turn", "none"
|
|
277
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/angle
|
|
278
|
+
* @returns a value in the 0.0 to 1.0 range
|
|
279
|
+
*/
|
|
280
|
+
function parseAngle(angle) {
|
|
281
|
+
let factor;
|
|
282
|
+
switch (angle.charCodeAt(angle.length - 1)) {
|
|
283
|
+
case E: {
|
|
284
|
+
// 'none'
|
|
285
|
+
return 0;
|
|
286
|
+
}
|
|
287
|
+
case D: {
|
|
288
|
+
// 'rad', 'grad'
|
|
289
|
+
factor =
|
|
290
|
+
angle.charCodeAt(Math.max(0, angle.length - 4)) === G
|
|
291
|
+
? 400
|
|
292
|
+
: 2 * Math.PI; // TAU
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
case N: {
|
|
296
|
+
// 'turn'
|
|
297
|
+
factor = 1;
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
// case G: // 'deg', but no need to check as it's also the default
|
|
301
|
+
default: {
|
|
302
|
+
factor = 360;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
const turns = Number.parseFloat(angle) / factor;
|
|
306
|
+
// Hue is periodic, and every caller of this is a hue. `hueToRGB` corrects its
|
|
307
|
+
// argument by at most one turn, so it reads `hsl(-720deg)` as a hue two turns
|
|
308
|
+
// below the wheel rather than as red — folding here is what makes the three
|
|
309
|
+
// hue syntaxes agree with a browser past ±1 turn.
|
|
310
|
+
return turns - Math.floor(turns);
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Accepts: "100%", "none"
|
|
314
|
+
* @returns a value in the 0.0 to 1.0 range
|
|
315
|
+
*/
|
|
316
|
+
function parsePercentage(value) {
|
|
317
|
+
if (value.charCodeAt(0) === N) {
|
|
318
|
+
return 0;
|
|
319
|
+
}
|
|
320
|
+
return Number.parseFloat(value) / 100;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Accepts: "1.0", "100%", "none"
|
|
324
|
+
* @returns a value in the 0.0 to 1.0 range
|
|
325
|
+
*/
|
|
326
|
+
function parsePercentageOrValue(value) {
|
|
327
|
+
if (value.charCodeAt(0) === N) {
|
|
328
|
+
return 0;
|
|
329
|
+
}
|
|
330
|
+
if (value.charCodeAt(value.length - 1) === PERCENT) {
|
|
331
|
+
return Number.parseFloat(value) / 100;
|
|
332
|
+
}
|
|
333
|
+
return Number.parseFloat(value);
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Accepts: "100", "100%", "none"
|
|
337
|
+
* @returns a value in the -@range to @range range
|
|
338
|
+
*/
|
|
339
|
+
function parsePercentageFor(value, range) {
|
|
340
|
+
if (value.charCodeAt(0) === N) {
|
|
341
|
+
return 0;
|
|
342
|
+
}
|
|
343
|
+
if (value.charCodeAt(value.length - 1) === PERCENT) {
|
|
344
|
+
return (Number.parseFloat(value) / 100) * range;
|
|
345
|
+
}
|
|
346
|
+
return Number.parseFloat(value);
|
|
347
|
+
}
|
|
348
|
+
// HSL functions
|
|
349
|
+
function hueToRGB(p, q, t) {
|
|
350
|
+
if (t < 0) {
|
|
351
|
+
t += 1;
|
|
352
|
+
}
|
|
353
|
+
if (t > 1) {
|
|
354
|
+
t -= 1;
|
|
355
|
+
}
|
|
356
|
+
if (t < 1 / 6) {
|
|
357
|
+
return p + (q - p) * 6 * t;
|
|
358
|
+
}
|
|
359
|
+
if (t < 1 / 2) {
|
|
360
|
+
return q;
|
|
361
|
+
}
|
|
362
|
+
if (t < 2 / 3) {
|
|
363
|
+
return p + (q - p) * (2 / 3 - t) * 6;
|
|
364
|
+
}
|
|
365
|
+
return p;
|
|
366
|
+
}
|
|
367
|
+
// HWB functions
|
|
368
|
+
function hwbApply(channel, w, b) {
|
|
369
|
+
let result = channel / 255;
|
|
370
|
+
result *= 1 - w - b;
|
|
371
|
+
result += w;
|
|
372
|
+
return Math.round(result * 255);
|
|
373
|
+
}
|
|
374
|
+
function clamp(value) {
|
|
375
|
+
return Math.max(0, Math.min(255, value));
|
|
376
|
+
}
|
|
377
|
+
function newColorFromArray(a, rgb) {
|
|
378
|
+
const r = clamp(Math.round(rgb[0] * 255));
|
|
379
|
+
const g = clamp(Math.round(rgb[1] * 255));
|
|
380
|
+
const b = clamp(Math.round(rgb[2] * 255));
|
|
381
|
+
return newColor(r, g, b, a);
|
|
382
|
+
}
|