FrappeUIPhx.Duration (frappe_ui_phx v0.3.1)

Copy Markdown View Source

Duração em segundos ⇄ texto digitado (1h 30m, 90m, 45s, 1:30, 1:30:15, 5400).

Núcleo puro compartilhado pelo componente duration e pelo tipo FrappeUIPhx.Ecto.Duration, para que tela e domínio nunca divirjam.

Summary

Functions

Valor de campo (segundos, texto digitado ou nil) → texto para exibir no controle.

Segundos → "1h 30m 15s" ("0s" para zero, "" para nil).

Texto → {:ok, segundos | nil} ou :error. Vazio vira nil.

Functions

display(seconds)

@spec display(term()) :: String.t()

Valor de campo (segundos, texto digitado ou nil) → texto para exibir no controle.

humanize(seconds)

@spec humanize(non_neg_integer() | nil) :: String.t()

Segundos → "1h 30m 15s" ("0s" para zero, "" para nil).

parse(seconds)

@spec parse(term()) :: {:ok, non_neg_integer() | nil} | :error

Texto → {:ok, segundos | nil} ou :error. Vazio vira nil.