Documentation
¶
Index ¶
- Variables
- func TruncateLeft(s string, w int, prefix string) string
- func TruncateRight(s string, w int, tail string) string
- type BulkInsertMsg
- type Column
- type ColumnKey
- type Model
- func (m *Model[K, V]) Blur()
- func (m Model[K, V]) Cursor() int
- func (m *Model[K, V]) DeselectAll()
- func (m *Model[K, V]) Focus()
- func (m Model[K, V]) Focused() bool
- func (m *Model[K, V]) GotoBottom()
- func (m *Model[K, V]) GotoTop()
- func (m Model[K, V]) Height() int
- func (m Model[K, V]) Highlighted() (Row[K, V], bool)
- func (m Model[K, V]) HighlightedKey() (K, bool)
- func (m Model[K, V]) HighlightedOrSelected() []Row[K, V]
- func (m Model[K, V]) HighlightedOrSelectedKeys() []K
- func (m Model[K, V]) Items() map[K]V
- func (m *Model[K, V]) MoveDown(n int)
- func (m *Model[K, V]) MoveUp(n int)
- func (m *Model[K, V]) SelectRange()
- func (m *Model[K, V]) SetColumns(c []Column)
- func (m *Model[K, V]) SetCursor(n int)
- func (m *Model[K, V]) SetItems(items map[K]V)
- func (m *Model[K, V]) SetStyles(s Styles)
- func (m *Model[K, V]) ToggleSelectAll()
- func (m *Model[K, V]) ToggleSelection()
- func (m *Model[K, V]) ToggleSelectionByKey(key K)
- func (m Model[K, V]) TotalString() string
- func (m Model[K, V]) Update(msg tea.Msg) (Model[K, V], tea.Cmd)
- func (m *Model[K, V]) UpdateViewport()
- func (m Model[K, V]) View() string
- func (m Model[K, V]) Width() int
- func (m Model[K, V]) WithSelectable(s bool) Model[K, V]
- func (m Model[K, V]) WithSortFunc(sortFunc func(V, V) int) Model[K, V]
- type RenderedRow
- type Resource
- type ResourceOptions
- type ResourceValue
- type Row
- type RowRenderer
- type SortFunc
- type Styles
- type TruncationFunc
Constants ¶
This section is empty.
Variables ¶
var ( IDColumn = Column{ Key: "id", Title: "ID", Width: resource.IDEncodedMaxLen, FlexFactor: 1, } ModuleColumn = Column{ Key: "module", Title: "MODULE", TruncationFunc: TruncateLeft, FlexFactor: 3, } WorkspaceColumn = Column{ Key: "workspace", Title: "WORKSPACE", FlexFactor: 2, } RunColumn = Column{ Key: "run", Title: "RUN", Width: resource.IDEncodedMaxLen, FlexFactor: 1, } TaskColumn = Column{ Key: "task", Title: "TASK", Width: resource.IDEncodedMaxLen, FlexFactor: 1, } RunStatusColumn = Column{ Key: "run_status", Title: "STATUS", Width: run.MaxStatusLen, } RunChangesColumn = Column{ Key: "run_changes", Title: "CHANGES", FlexFactor: 1, } )
Functions ¶
Types ¶
type BulkInsertMsg ¶
type BulkInsertMsg[T any] []T
BulkInsertMsg performs a bulk insertion of entities into a table
type Column ¶
type Column struct { Key ColumnKey // TODO: Default to upper case of key Title string Width int FlexFactor int TruncationFunc func(s string, w int, tail string) string }
Column defines the table structure.
type Model ¶
type Model[K comparable, V any] struct { Selected map[K]V // contains filtered or unexported fields }
Model defines a state for the table widget.
func New ¶
func New[K comparable, V any](columns []Column, fn RowRenderer[V], width, height int) Model[K, V]
New creates a new model for the table widget.
func (*Model[K, V]) Blur ¶
func (m *Model[K, V]) Blur()
Blur blurs the table, preventing selection or movement.
func (*Model[K, V]) DeselectAll ¶
func (m *Model[K, V]) DeselectAll()
DeselectAll de-selects any rows that are currently selected
func (*Model[K, V]) Focus ¶
func (m *Model[K, V]) Focus()
Focus focuses the table, allowing the user to move around the rows and interact.
func (*Model[K, V]) GotoBottom ¶
func (m *Model[K, V]) GotoBottom()
GotoBottom moves the highlightion to the last row.
func (*Model[K, V]) GotoTop ¶
func (m *Model[K, V]) GotoTop()
GotoTop moves the highlightion to the first row.
func (Model[K, V]) Highlighted ¶
Highlighted returns the currently highlighted entity.
TODO: This is identical to currentRow above; remove.
func (Model[K, V]) HighlightedKey ¶
Highlighted returns the currently highlighted entity key.
TODO: rename currentRowKey or currentKey
func (Model[K, V]) HighlightedOrSelected ¶
HighlightedOrSelected returns either the selected entities, if there are no selections, the currently highlighted entity.
func (Model[K, V]) HighlightedOrSelectedKeys ¶
func (m Model[K, V]) HighlightedOrSelectedKeys() []K
func (Model[K, V]) Items ¶
func (m Model[K, V]) Items() map[K]V
Items returns the current items. Note this is the number of items prior to any filtering.
func (*Model[K, V]) MoveDown ¶
MoveDown moves the highlightion down by any number of rows. It can not go below the last row.
func (*Model[K, V]) MoveUp ¶
MoveUp moves the highlightion up by any number of rows. It can not go above the first row.
func (*Model[K, V]) SelectRange ¶ added in v0.1.8
func (m *Model[K, V]) SelectRange()
SelectRange selects a range of rows. If the current row is *below* a selected row then rows between them are selected, including the current row. Otherwise, if the current row is *above* a selected row then rows between them are selected, including the current row. If there are no selected rows then no action is taken.
func (*Model[K, V]) SetColumns ¶
SetColumns sets a new columns state.
func (*Model[K, V]) SetItems ¶
func (m *Model[K, V]) SetItems(items map[K]V)
SetItems sets new items on the table, overwriting existing items.
func (*Model[K, V]) ToggleSelectAll ¶
func (m *Model[K, V]) ToggleSelectAll()
ToggleSelectAll toggles the selection of all rows.
func (*Model[K, V]) ToggleSelection ¶
func (m *Model[K, V]) ToggleSelection()
ToggleSelection toggles the selection of the currently highlighted row.
TODO: rename 'highlighted' to current
func (*Model[K, V]) ToggleSelectionByKey ¶
func (m *Model[K, V]) ToggleSelectionByKey(key K)
ToggleSelectionByKey toggles the selection of the row with the given key. If the key does not exist no action is taken.
func (Model[K, V]) TotalString ¶ added in v0.1.9
TotalString returns a stringified representation of the total number of items in the table. If the table is filtered it is further broken down into number of filtered items as well as total items, formatted as "<filtered>/<total>".
func (*Model[K, V]) UpdateViewport ¶
func (m *Model[K, V]) UpdateViewport()
UpdateViewport updates the list content based on the previously defined columns and rows.
func (Model[K, V]) WithSelectable ¶
WithSelectable sets whether rows are selectable.
func (Model[K, V]) WithSortFunc ¶
WithSortFunc configures the table to sort rows using the given func.
type RenderedRow ¶
RenderedRow provides the rendered string for each column in a row.
type Resource ¶
type Resource[K resource.ID, V ResourceValue] struct { Model[K, V] // contains filtered or unexported fields }
Resource is a wrapper of table.Model specifically for use with pug resources.
func NewResource ¶
func NewResource[K resource.ID, V ResourceValue](opts ResourceOptions[V]) Resource[K, V]
NewResource creates a new resource table
func (*Resource[K, V]) Prune ¶ added in v0.1.4
Prune passes each value from the selected rows (or if there are no selections, from the highlighted row) to the provided func. If the func returns an error the row is de-selected (or if there are no selections, then an error is returned). The resulting IDs from the provided func are returned. If all selections are de-selected then an error is returned.
type ResourceOptions ¶
type ResourceOptions[V ResourceValue] struct { Columns []Column Renderer RowRenderer[V] Width, Height int Parent resource.Resource SortFunc SortFunc[V] }
type ResourceValue ¶
type Row ¶
type Row[K comparable, V any] struct { Key K Value V }
type RowRenderer ¶
type RowRenderer[V any] func(V) RenderedRow
type Styles ¶
Styles contains style definitions for this list component. By default, these values are generated by DefaultStyles.
func DefaultStyles ¶
func DefaultStyles() Styles
DefaultStyles returns a set of default style definitions for this table.