Widgets
Widget, de uma forma resumida, é um componente que simplifica o acesso e funcionalidades de um programa ou serviço. Esse método está pressente em muitos aparelhos como computadores, celulares, tablets e outros. Eles geralmente contêm janelas, botões, ícones, menus, barras de rolagem e outras funcionalidades. Esse componente com interface gráfica (GUI) permite adicionar ao sistema operacional uma tarefa específica. Para facilitar a visualização desse recurso como os widgets de previsão do tempo, relógio, atualização de redes sociais, emails, dentre outros.
Além disso, os widgets dá ao usuário a possibilidade de personalizar sua área de trabalho, escolhendo quais serão exibidas, definindo seu tamanho e posição na tela. Assim, otimiza melhor o sistema, executando apenas os serviços uteis para o usuário de forma simplificada, além de economizar tempo e execução.
Como pode perceber, o termo widgets não é novo e sempre esteve pressente no nosso dia a dia. A ideia de trazer essa estratégia para o nosso sistema é simples, criar um dashboard otimizado e personalizável, deixando uma aparência ideal para o usuário, mas é claro, além disso, economizar tempo e execução.
A forma de configurar um Widget não é tão simples como parece. Entretanto, é preciso bastante atenção no tutorial nessa documentação, seguindo corretamente suas instruções.
Criando Widget
Na pasta Widgets, temos a seguinte organização de arquivos:
src
├─ Widgets
│ ├─ ... Demais pastas de todos os widgets existentes
│ ├─ defaultLayout.js
│ ├─ Widget.js
│ └─ index.js
Antes de qualquer coisa, é preciso criar uma pasta específica para o widget, usando um nome genérico e em camelcase, de preferência, o mesmo nome da sua subclasse. Próxima etapa é criar o arquivo interno index.js
e construir a subclasse instanciada e exporta-la. Em seguida, importar e exportar o widget no index raiz da pasta Widgets
. Veríamos algo como:
src/Widgets/WidgetExample/index.js
src/Widgets/index.js
Para exibir na tela, mesmo para teste, é preciso configurar o widget de exibição no layout. O arquivo defaultLayout.js
é especialmente responsável para esse tipo de tarefa, nele definimos as configurações de layout padrão de exibição. Por exemplo:
src/Widgets/defaultLayout.js
Um widget (separado por pastas individualmente) é uma subclasse instanciada da superclasse Widget, herdando as seguintes propriedades:
Propriedades Widget
title
title: string
Uma propriedade que defina o titulo do widget.
icon
icon: string
Uma propriedade que defina o ícone do widget, recebendo como valor, um ícone importada de @mdi/js
.
dataGrid
dataGrid: object
Uma propriedade que defina algumas configurações como o tamanho máximo, mínimo e posição na tela do widget predefinido.
x
number
Número da coluna em que o widget será posicionado entre 0 e 12
y
number
Número da linha em que o widget será posicionado entre 0 e infinito
w
number
Número de colunas em que o widget será ocupado entre 0 e 12
h
number
Número de linhas em que o widget será ocupado entre 0 e infinito
minW
number
Número mínimo de colunas em que o widget poderá ser ocupado entre 0 e 12
minH
number
Número mínimo de linhas em que o widget poderá ser ocupado entre 0 e infinito
maxW
number
Número máximo de colunas em que o widget poderá ser ocupado entre 0 e 12
maxH
number
Número máximo de linhas em que o widget poderá ser ocupado entre 0 e infinito
static
boolean
Defina como true
se caso o widget não poderá ser editado sob hipótese alguma, se mantendo como estático
isDraggable
boolean
Defina como false
se caso o widget não poderá ser arrastado sob hipótese alguma, mantendo sua posição fixa. Substitui static
isResizable
boolean
Defina como false
se caso o tamanho do widget não poderá ser modificado sob hipótese alguma, mantendo sua tamanho fixo. Substitui static
isBounded
boolean
Defina como true
se caso o widget for arrastável, será movido apenas dentro da grade
permission
permission: Array
Uma propriedade que defina quais usuários poderão ter acesso ao widget. O usuário que não possuir a tal permissão predefinida, o widget não será exibida ou mostrará o componente padrão para todos os usuários sem permissão.
Exemplo/Sintaxe:
Last updated