Cinder.Column (Cinder v0.1.1)

View Source

Column configuration and type inference for Cinder table components.

Provides intelligent column parsing that can automatically infer filter types, sort capabilities, and display options from Ash resource definitions. Supports relationship fields using dot notation (e.g., "user.name").

Summary

Functions

Infers column configuration from Ash resource attribute definitions.

Merges slot configuration with inferred defaults.

Parses a single column definition with automatic type inference.

Parses and normalizes column definitions from slots and resource information.

Validates a column configuration.

Types

t()

@type t() :: %Cinder.Column{
  class: String.t(),
  display_field: String.t() | nil,
  field: String.t(),
  filter_fn: function() | nil,
  filter_options: keyword(),
  filter_type: atom(),
  filterable: boolean(),
  label: String.t(),
  options: list(),
  relationship: String.t() | nil,
  search_fn: function() | nil,
  searchable: boolean(),
  slot: map(),
  sort_fn: function() | nil,
  sortable: boolean()
}

Functions

infer_from_resource(resource, key, relationship_info \\ %{}, slot \\ %{})

Infers column configuration from Ash resource attribute definitions.

merge_config(slot, inferred)

Merges slot configuration with inferred defaults.

parse_column(slot, resource)

Parses a single column definition with automatic type inference.

parse_columns(slots, resource)

Parses and normalizes column definitions from slots and resource information.

Parameters

  • slots - List of column slot definitions
  • resource - Ash resource module for type inference

Returns

List of normalized Column structs

validate(column)

Validates a column configuration.