@outlinestudio/wiz-tree v1.0.15
:sparkles: Wiz Tree
Um simples e flexível componente de visualização de pastas ou hierarquia, trazendo funcionalidade dinâmicas.
Como usar
npm i @outlinestudio/wiz-tree| Frameworks | Link |
|---|---|
| Angular | Link |
| React | Link |
| Vue | Link |
Componente html
<wiz-tree list="list"></wiz-tree>Exemplo parametros listagem
Para mostrar a árvore de arquivos deve seguir o seguinte exemplo.
const list = [{
label: 'Julieta Pena Rocha',
selected: false,
disabledChild: false,
open: false,
child: [
{label: 'Paula Domingues', selected: false, disabledChild: true, open: false, child: []},
{label: 'Joaquin Corona', selected: false, disabledChild: false, open: false, child: []},
]
}]Parâmetros da listagem
| Parâmetro | tipagem | Obrigatório | Descrição |
|---|---|---|---|
| Label | string | Sim | Esse parâmetro é o que mostra no front para selecionar. |
| selected | boolean | Não | Esse parâmetro corresponde se o item já vem selecionado. |
| disabledChild | boolean | Não | Esse parâmetro sinaliza se existe valores abaixo dele. |
| open | boolean | Não | Esse parâmetro define se há árvore abaixo já deve vim aberta. |
| child | Array | Não | Deve passar os elementos filhos com os mesmo parâmetro acima. |
Outros parâmetros
| Atributo | tipagem | obrigatório | Descrição |
|---|---|---|---|
| list | itemTreeModel[] | Sim | Listagem da pasta ou de hierarquia |
| fetchdata | Boolean | Não | Passe o valor true para informa que os valores abaixo da lista é dinâmico. |
Eventos
Existe 2 tipos de eventos do componente para emitir para o componente pai ou página responsável pelo web componente, handleSelected e requestData.
O web componente não suporta o evento de emitir do web componente para o componente pai. No entanto, o stencilJS fornece uma API para especificar os evento que um componente pode emitir para o componente pai, usando os
Event()eListen()Saiba mais nos links abaixo: Mozilla web componentes eventos Eventos com stencilJS
nos exemplos abaixo estaremos mostrando com javascript puro, deixaremos os links abaixo com o exemplo de frameworks populares.
Link React Link Vue Link Angular
Evento: handleSelected
Esse evento emite os items selecionados da listagem do web componente.
Exemplo:
Html
<wiz-tree id="view"></wiz-tree>Javascript
// declare componente
var wizTree = document.getElementById('view');
// recebendo valores selecionados
wizTree.addEventListener('handleSelected', event => {
console.log('items selecionados --> ', event)
});Evento: requestData
Esse evento é chamado quando o parâmetro fetchdata é passado como true , esse evento acontecerá apos o clique da hierarquia abaixo, esperando um retorno para o carregamento dos novos items.
Esse evento aciona o loading da hierarquia, esperando o retorno dos novos items, caso não há novos items deve retorna vazio para desabilitar o loading.
Exemplo:
Html
<wiz-tree id="view"></wiz-tree>Javascript
// declare componente
var wizTree = document.getElementById('view');
// recebendo valores selecionados da requisição
wizTree.addEventListener('requestData', event => {
const itemSelected = event.detail
/// Exemplo de requisição
Axios.get(`exemplo/requisicao/${itemSelected.id}`)
.then( data => {
itemSelected.child = data // Adiciona os novos valores no parametro child.
//ABAIXO RETORNA PARA O COMPONENTE OS NOVOS VALORES
wizTree.setchild = itemSelected
})
});Customização
Você pode customizar o web componente usando variáveis CSS, saber mais sobre CSS variaveis
| Variável | valor padrão | Descrição |
|---|---|---|
--colorSelected | #00AA9B | Cor do checkbox selecionado |
--sizeCheck | 12px | Tamanho do quadrado indicando checkbox |
--sizeArrow | 15px | Tamanho da seta indicadora em pixel. |
--textSize | 16px | Tamanho do texto padrão em pixel |
--colorText | #AFAEAE | Cor da label descrição do item. |
--colorArrow | #00AA9B | Cor da seta indicando hierarquia. |
--fontFamily | 'Roboto', sans-serif; | Fonte web para visualizar label. |
--textLoading | Aguarde | Texto do seletor ::before no estado de loading. |