Skip to content

LxCheckboxSelectAll

Visão geral

O componente LxCheckboxSelectAll é utilizado para fazer a seleção de itens em uma lista, permitindo selecionar apenas os itens da página atual, todos os itens de todas as páginas ou remover toda a seleção realizada.

Ele possui dois modos de funcionamento:

1. Modo automático (com o parâmetro list): Ao passar a propriedade list, o componente gerencia automaticamente a seleção dos itens com base no array informado. Esse modo é ideal para casos em que se deseja uma implementação pronta, com controle interno da seleção.

2. Modo manual/personalizado (sem o parâmetro list): Quando a propriedade list não é utilizada, o controle da seleção é feito de forma externa e personalizada através do evento update:modelValue. Nesse caso, é responsabilidade do desenvolvedor escutar esse evento e atualizar os dados conforme necessário, permitindo maior flexibilidade em integrações com lógicas mais complexas.

Clique para visualizar o código
vue
<script setup>
import { ref } from 'vue';
import { LxCheckboxSelectAll } from '@lde/lxcomponents';

const modelValue = ref({});
const loading = ref(false);
const disabled = ref(false);
const partialSelected = ref(false);
const hasPagination = ref(true);

const lista = ref([
	{ selected: false, situacao: 'Ativo', texto: 'Item 1', valor: 1 },
	{ selected: false, situacao: 'Inativo', texto: 'Item 2', valor: 2 },
	{ selected: false, situacao: 'Ativo', texto: 'Item 3', valor: 3 },
	{ selected: false, situacao: 'Inativo', texto: 'Item 4', valor: 4 }
]);
</script>
<template>
	<LxCheckboxSelectAll
		id="lxcheckboxselectall"
		v-model="modelValue"
		:loading="loading"
		:disabled="disabled"
		:partial-selected="partialSelected"
		:list="lista"
		:selection-rule="(item) => (item.situacao === 'Ativo' ? true : false)"
		:property-to-select="'selected'"
		:current-page-range="{ startIndex: 1, endIndex: 2 }"
		:has-pagination="hasPagination"
		@update:partialSelected="partialSelected"
	/>
</template>

Formato do v-model

ℹ️ O v-model do LxCheckboxSelectAll armazena um objeto SelectAllType que indica o estado da seleção.

javascript
const selecaoTudo = ref({ selected: false, currentPage: false })

// tipos possíveis:
// { selected: false, currentPage: false }  — nenhum item selecionado
// { selected: true, currentPage: true }    — apenas a página atual selecionada
// { selected: true, currentPage: false }   — todos os itens selecionados

Modo automático (com :list): passe a lista e property-to-select — o componente gerencia automaticamente a seleção.

Modo manual (sem :list): ouça @update:modelValue para implementar lógica de seleção personalizada.

Inicialização: ref({ selected: false, currentPage: false }).

Propriedades

NomeDescriçãoTipoPadrão
idIdentificador único do checkboxString'lx-checkbox-select-all'
modelValueValor indicando se tem itens selecionados.
Nota: Utilizar a implementação padrão com o v-model.
SelectAllType
loadingIndica se o campo está carregando.Boolean
disabledIndica se o campo está desabilitado.Boolean
partialSelectedIndica se selecionou parcialmente os itens.
Nota: Se for passado o list, não é necessário.
Boolean
listLista de itens para seleção.Array, Set ou nullnull
selectionRuleRegra para ser atendida no momento de seleção dos itens, necessária somente se a seleção tiver alguma condição.
Nota: Deve ser passado somente se list existir.
Functiontrue
propertyToSelectIndique qual propriedade na lista, deve ser marcada.
Nota: Deve ser passado somente se list existir.
String
currentPageRangeIndique o intervalo de itens que deseja selecionar na página.
Nota: Deve ser passado somente se list existir e hasPagination for true.
CurrentPageRange
hasPaginationIndica se tem paginação na lista e deve exibir o menu.Booleantrue

Tipos

NomeDicaEstrutura
CurrentPageRangeCaso não deseja passar esse intervalo, deixe vazio, pois o default é startIndex e endIndex -1.{ startIndex: -1, endIndex: -1 }
SelectAllTypecurrentPage indica que foi selecionado apenas a pagina atual e selectedindica que foi selecionado.{ selected: true, currentPage: true }

Eventos

NomeDescriçãoParâmetro
update:modelValueEmitido ao clicar no botão de selecão.
Nota: Utilizar a implementação padrão com o v-model.
Atenção: Usar esse evento somente se, não passar list, e, quiser fazer uma seleção personalizada.
SelectAllType

Playground

SituaçãoTextoValor
AtivoItem 11
InativoItem 22
AtivoItem 33
InativoItem 44

Desenvolvido pelo time Linx Microvix