# BaseFeatureWidget

Auto-generated from the @jbrowse/mobx-state-tree model in the source — see the [developer guide](https://jbrowse.org/jb2/docs/developer_guide/) for concepts. Built into JBrowse core. [View source](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/BaseFeatureWidget/stateModelFactory.ts).

The feature-details panel. `featureData` is the clicked feature with the
track's and the session's `formatDetails` callbacks applied, derived on read
from the raw feature the widget was opened with, so the same widget follows a
config edit and survives its track being closed.

## Properties

| Member | Description |
| --- | --- |
| **id**<br><code>id: ElementId</code> |  |
| **type**<br><code>type: types.literal('BaseFeatureWidget')</code> |  |
| **unformattedFeatureData**<br><code>unformattedFeatureData: types.optional( types.frozen&lt;MaybeSerializedFeat&gt;(), undefined, )</code> | the feature as the click handed it over, before any callback ran. Persisted as `featureData` |
| **view**<br><code>view: types.safeReference( pluginManager.pluggableMstType('view', 'stateModel'), )</code> |  |
| **track**<br><code>track: types.safeReference( pluginManager.pluggableMstType('track', 'stateModel'), )</code> |  |
| **trackId**<br><code>trackId: types.maybe(types.string)</code> |  |
| **trackType**<br><code>trackType: types.maybe(types.string)</code> |  |
| **sequenceFeatureDetails**<br><code>sequenceFeatureDetails: types.optional(SequenceFeatureDetailsF(), {})</code> |  |
| **descriptions**<br><code>descriptions: types.optional( types.frozen&lt;Descriptors &#124; undefined&gt;(), undefined, )</code> |  |
| **parentFeature**<br><code>parentFeature: types.optional( types.frozen&lt;ParentFeatureSummary &#124; undefined&gt;(), undefined, )</code> | names the feature this one was reached through, when it was reached through one -- a transcript clicked inside its gene |

## Volatiles

| Member | Description |
| --- | --- |
| **sequenceHoverPosition**<br><code>SequenceHoverPosition &#124; undefined</code> | genomic base currently hovered in this widget's sequence panel, read by the LGV crosshair overlay |

## Getters

| Member | Description |
| --- | --- |
| **trackConfiguration**<br><code>AnyConfigurationModel &#124; undefined</code> | the config the track tier of `formatDetails` reads. The open track's own while it is open; after it is closed, the session's copy of the same config, which is why the widget records `trackId` |
| **formatDetailsTiers**<br><code>FormatDetailsTiers</code> |  |
| **formatted**<br><code>{ feature?: SimpleFeatureSerialized &#124; undefined; error?: Error &#124; undefined; }</code> |  |
| **canonicalTranscripts**<br><code>CanonicalTranscripts</code> | the isoform tags the open track's display ranks by, so the sequence panel opens on the transcript the track draws first |
| **maxDepth**<br><code>number &#124; undefined</code> | levels of subfeature card the panel renders; unset means no limit |
| **featureData**<br><code>SimpleFeatureSerialized &#124; undefined</code> | the feature with every `formatDetails` callback applied |
| **error**<br><code>Error &#124; undefined</code> |  |

## Actions

| Member | Description |
| --- | --- |
| **setSequenceHoverPosition**<br><code>(pos: SequenceHoverPosition &#124; undefined) =&gt; void</code> |  |
| **setFeatureData**<br><code>(featureData: SimpleFeatureSerialized) =&gt; void</code> |  |
| **clearFeatureData**<br><code>() =&gt; void</code> |  |

