Download the PHP package gsferro/filament-odometer-easy without Composer

On this page you can find all versions of the php package gsferro/filament-odometer-easy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package filament-odometer-easy

filament-odometer-easy

Latest Version Total Downloads License

Filament Odometer Easy

🇧🇷 Português · 🇺🇸 English

Contadores animados para o Filament v3, v4 e v5 — tabelas, infolists e widgets de estatísticas — do jeito mais simples possível: instale, registre o plugin e use.

É o mesmo efeito do contador "Items found" da página oficial filamentphp.com/plugins, pronto para os seus dashboards e métricas em tempo real.

🎬 Demo

OdometerStat no dashboard — com poll, os contadores re-animam sozinhos a cada atualização de valor:

OdometerStat com polling

OdometerColumn em tabelas — animação no load, na ordenação e na troca de página:

OdometerColumn em tabela

OdometerEntry em infolists e OdometerNavigationBadge em menus:

OdometerEntry em infolist e navigation badge

Badge visível com a sidebar recolhida — o Filament esconde o badge quando o menu recolhe; com ->badgeOnCollapsedSidebar() ele passa a flutuar no canto do ícone, no mesmo formato do botão de filtros da tabela:

Claro Escuro
Badge na sidebar recolhida Badge na sidebar recolhida, modo escuro

Componentes

Componente Estende Uso
OdometerColumn TextColumn Colunas de tabela
OdometerEntry TextEntry Entries de infolist
OdometerStat Stat Counts no StatsOverviewWidget
OdometerNavigationBadge — Badge de navegação (getNavigationBadge()) — com opção de continuar visível com a sidebar recolhida
Facade FilamentOdometerEasy — Qualquer view/blade customizado

Todos herdam 100% da API do componente base (sortable, searchable, label, description, color etc.) — só o valor passa a ser animado.

Motores de animação (drivers)

O pacote traz dois motores e você escolhe por config ou de forma fluente no plugin:

number-flow — padrão ⭐

O web component number-flow (usado pelo próprio site do Filament):

odometer — secundário

O efeito clássico do odometer.js via gsferro/laravel-odometer-easy (instalado como dependência):

Compatibilidade

Filament Suporte Observações
5.x ✅
4.x ✅
3.x (3.2+) ✅

A mesma versão do pacote atende as três — o Composer resolve pela versão do Filament do seu projeto. Requer PHP 8.2+.

Instalação

Registre o plugin no seu painel:

Pronto. ✨ Sem npm, sem publicar views, sem configurar assets — o driver number-flow já funciona.

[!TIP] A maioria das apps já roda filament:assets automaticamente no post-autoload-dump (via filament:upgrade). Nesse caso, basta o composer require.

Uso

Coluna de tabela

Entry de infolist

Stat (StatsOverviewWidget)

[!TIP] Combine com ->poll('10s') no widget: com o driver number-flow, o contador re-anima a cada atualização de valor. 📈

Badge de navegação (menu do painel)

A API de navegação do Filament só aceita string (HTML é escapado), então o componente envolve o valor com um marcador invisível e o JS do pacote troca o texto do badge por um <number-flow> animado. A formatação usa a config global do number-flow (locales, format, delay, duration).

[!NOTE] Disponível apenas no driver number-flow. No driver odometer, o valor é exibido como texto puro, sem animação.

Mantendo o badge visível com a sidebar recolhida

Com ->sidebarCollapsibleOnDesktop() no painel, o Filament esconde o badge assim que a sidebar recolhe: o container carrega x-show="$store.sidebar.isOpen" e ganha display:none inline. A contagem some justamente no modo em que só há ícone — o modo com menos informação.

A opção vive no plugin, dentro do seu Panel Provider — e depende de o painel ter a sidebar recolhível, que é o estado que ela cobre:

[!WARNING] Sem ->sidebarCollapsibleOnDesktop() (ou ->sidebarFullyCollapsibleOnDesktop()) no painel, a opção não faz nada: o Filament nunca entra no estado recolhido, e o CSS só age em .fi-main-sidebar:not(.fi-sidebar-open).

O badge passa a flutuar no canto superior direito do ícone, com fundo sólido recortando a borda — exatamente o formato que o Filament já usa no gatilho de filtros da tabela. Com a sidebar aberta, nada muda: o layout nativo (badge em linha, à direita do rótulo) é preservado.

[!IMPORTANT] Opt-in. Fica desligado por padrão para que atualizar a versão não mude a aparência do menu de quem não pediu. Para ligar via config: 'badge-on-collapsed-sidebar' => true.

[!TIP] A folga à direita do item é de ~16px, então contagens de 5+ dígitos podem perder 1-2px na borda (.fi-sidebar-nav é overflow-x:hidden). Se for o seu caso, use notação compacta: ->format(['notation' => 'compact']) — 12.345 vira 12K.

Em qualquer view (facade)

Formatação

O método ->format() está disponível em todos os componentes e aceita o formato do driver ativo. No driver number-flow (padrão), passe um array com opções do Intl.NumberFormat — a formatação (símbolo, separadores, casas decimais) é aplicada pelo navegador, animada dígito a dígito.

Moeda (R$, US$, €…)

Por padrão o contador exibe apenas o número. Para mostrar o símbolo da moeda, passe um format com style: currency:

[!TIP] Combine com ->locales('pt-BR') no plugin (ou na config) para obter R$ 1.234,56 — sem locale, o navegador do usuário decide os separadores.

Receitas prontas (driver number-flow)

Resultado (pt-BR) ->format([...])
R$ 1.234,56 (moeda) ['style' => 'currency', 'currency' => 'BRL']
R$ 1.235 (moeda sem centavos) ['style' => 'currency', 'currency' => 'BRL', 'maximumFractionDigits' => 0]
US$ 1.234,56 / € 1.234,56 ['style' => 'currency', 'currency' => 'USD'] / 'EUR'
12,5% (percentual) ['style' => 'percent', 'minimumFractionDigits' => 1]
1.234,50 (decimais fixos) ['minimumFractionDigits' => 2, 'maximumFractionDigits' => 2]
1,2 mi (notação compacta) ['notation' => 'compact']
1.234 km (unidades) ['style' => 'unit', 'unit' => 'kilometer']
+1.234 (sinal sempre visível) ['signDisplay' => 'always']
1234 (sem agrupamento) ['useGrouping' => false]

[!WARNING] style: percent multiplica o valor por 100 — passe 0.125 para exibir 12,5%.

Formato dinâmico (Closure)

->format() também aceita Closure. Em colunas e entries, o Filament injeta $record/$state:

Velocidade da animação

Todos os componentes aceitam ->duration() (driver number-flow; quanto maior, mais lento):

Driver odometer

No driver secundário, ->format() recebe a string data-format do odometer.js:

Onde configurar cada opção do number-flow

Opção Por componente Global (plugin/config) O que faz
format ->format([...]) ->format([...]) Opções do Intl.NumberFormat (moeda, percentual, decimais…)
duration ->duration(ms) ->duration(ms) Velocidade da animação (padrão ~900ms)
locales — ->locales('pt-BR') Idioma/separadores (1.000,00)
delay — ->delay(ms) Espera antes da animação inicial 0 → valor (padrão 500ms)

O valor por componente sempre vence o global. A facade FilamentOdometerEasy::renderNumberFlow() aceita todas as opções por chamada (format, delay, duration).

Referências: opções do Intl.NumberFormat · format do odometer.

Configuração

Fluente, direto no plugin

Para usar o motor clássico:

Ou pelo arquivo de config

Como funciona por baixo dos panos

Desenvolvimento

O bundle do number-flow só precisa ser regerado se você alterar resources/js/index.js:

Testes

Veja também

gsferro/filament-stat-plus-easy — cards de stat com ícone no canto e borda de acento colorida, para Filament v3, v4 e v5. O StatPlus estende o OdometerStat deste pacote, então o contador animado vem junto — mais o skeleton de carregamento combinando.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.


All versions of filament-odometer-easy with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
filament/filament Version ^3.2|^4.0|^5.0
gsferro/odometer-easy Version ^1.0
spatie/laravel-package-tools Version ^1.15.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package gsferro/filament-odometer-easy contains the following files

Loading the files please wait ...