table

package
v0.6.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func JoinHorizontal

func JoinHorizontal(pos lipgloss.Position, strs ...string) string

func JoinVertical

func JoinVertical(pos lipgloss.Position, strs ...string) string

Types

type Column

type Column struct {
	Title string
	Width int
}

Column defines the table structure.

type Event

type Event func(key string, l *List) tea.Cmd

type KeyEvent

type KeyEvent struct {
	Event    Event
	HelpInfo string
}

type KeyMap

type KeyMap struct {
	LineUp       key.Binding
	LineDown     key.Binding
	PageUp       key.Binding
	PageDown     key.Binding
	HalfPageUp   key.Binding
	HalfPageDown key.Binding
	GotoTop      key.Binding
	GotoBottom   key.Binding
}

KeyMap defines keybindings. It satisfies to the help.KeyMap interface, which is used to render the menu.

func DefaultKeyMap

func DefaultKeyMap() KeyMap

DefaultKeyMap returns a default set of keybindings.

type List

type List struct {
	Table        Model
	Text         textinput.Model
	WindowHeight int
	WindowWidth  int

	Type          ListType
	TableKeyEvent map[string]KeyEvent
	NextEvent     string
	// contains filtered or unexported fields
}

Searchable list.

func NewList

func NewList() (l *List)

func (*List) GetSelected

func (l *List) GetSelected() string

func (*List) Init

func (l *List) Init() tea.Cmd

func (*List) Run

func (l *List) Run()

func (*List) Search

func (l *List) Search()

func (*List) SetHeader

func (l *List) SetHeader(header []Column)

func (*List) SetKeyEventForTable

func (l *List) SetKeyEventForTable(key string, ke KeyEvent)

func (*List) SetListType

func (l *List) SetListType(t ListType)

func (*List) SetRows

func (l *List) SetRows(rows []Row)

func (*List) Update

func (l *List) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*List) View

func (l *List) View() string

type ListType

type ListType string
const (
	SDKList     ListType = "SDKs"
	VersionList ListType = "Versions"
)

type Model

type Model struct {
	KeyMap KeyMap
	// contains filtered or unexported fields
}

Model defines a state for the table widget.

func New

func New(opts ...Option) Model

New creates a new model for the table widget.

func (*Model) Blur

func (m *Model) Blur()

Blur blurs the table, preventing selection or movement.

func (Model) Cursor

func (m Model) Cursor() int

Cursor returns the index of the selected row.

func (*Model) Focus

func (m *Model) Focus()

Focus focuses the table, allowing the user to move around the rows and interact.

func (Model) Focused

func (m Model) Focused() bool

Focused returns the focus state of the table.

func (*Model) FromValues

func (m *Model) FromValues(value, separator string)

FromValues create the table rows from a simple string. It uses `\n` by default for getting all the rows and the given separator for the fields on each row.

func (*Model) GotoBottom

func (m *Model) GotoBottom()

GotoBottom moves the selection to the last row.

func (*Model) GotoTop

func (m *Model) GotoTop()

GotoTop moves the selection to the first row.

func (Model) Height

func (m Model) Height() int

Height returns the viewport height of the table.

func (*Model) MoveDown

func (m *Model) MoveDown(n int)

MoveDown moves the selection down by any number of rows. It can not go below the last row.

func (*Model) MoveUp

func (m *Model) MoveUp(n int)

MoveUp moves the selection up by any number of rows. It can not go above the first row.

func (Model) Rows

func (m Model) Rows() []Row

Rows returns the current rows.

func (Model) SelectedRow

func (m Model) SelectedRow() Row

SelectedRow returns the selected row. You can cast it to your own implementation.

func (*Model) SetColumns

func (m *Model) SetColumns(c []Column)

SetColumns sets a new columns state.

func (*Model) SetCursor

func (m *Model) SetCursor(n int)

SetCursor sets the cursor position in the table.

func (*Model) SetHeight

func (m *Model) SetHeight(h int)

SetHeight sets the height of the viewport of the table.

func (*Model) SetRows

func (m *Model) SetRows(r []Row)

SetRows sets a new rows state.

func (*Model) SetStyles

func (m *Model) SetStyles(s Styles)

SetStyles sets the table styles.

func (*Model) SetWidth

func (m *Model) SetWidth(w int)

SetWidth sets the width of the viewport of the table.

func (Model) Update

func (m Model) Update(msg tea.Msg) (Model, tea.Cmd)

Update is the Bubble Tea update loop.

func (*Model) UpdateViewport

func (m *Model) UpdateViewport()

UpdateViewport updates the list content based on the previously defined columns and rows.

func (Model) View

func (m Model) View() string

View renders the component.

func (Model) Width

func (m Model) Width() int

Width returns the viewport width of the table.

type Option

type Option func(*Model)

Option is used to set options in New. For example:

table := New(WithColumns([]Column{{Title: "ID", Width: 10}}))

func WithColumns

func WithColumns(cols []Column) Option

WithColumns sets the table columns (headers).

func WithFocused

func WithFocused(f bool) Option

WithFocused sets the focus state of the table.

func WithHeight

func WithHeight(h int) Option

WithHeight sets the height of the table.

func WithKeyMap

func WithKeyMap(km KeyMap) Option

WithKeyMap sets the key map.

func WithRows

func WithRows(rows []Row) Option

WithRows sets the table rows (data).

func WithStyles

func WithStyles(s Styles) Option

WithStyles sets the table styles.

func WithWidth

func WithWidth(w int) Option

WithWidth sets the width of the table.

type Row

type Row []string

Row represents one line in the table.

type Styles

type Styles struct {
	Header   lipgloss.Style
	Cell     lipgloss.Style
	Selected lipgloss.Style
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL