
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
fab-material
Advanced tools
Baixe o boilerplate para iniciar o admin.
git clone https://gitlab.com/lab123/fab-admin-boilerplate.git
Dê npm i para instalar as dependencias.
import {PanelModule} from '@laberry/fab-material';
selector: fab-panel
| Propriedades |
|---|
| @Input() navMenu: IMenuItem |
selector: fab-panel-header
| Propriedades |
|---|
| @Input() navRef: MatSidenav |
selector: fab-panel-title
selector: fab-panel-nav
selector: fab-panel-content
| Propriedades |
|---|
| name: string |
| icon?: string |
| active?: boolean |
| route?: string |
| items?: IMenuItem[] |
| hide?: boolean |
<fab-panel [navMenu]="menu">
<fab-panel-title>
Laberry SDK
</fab-panel-title>
<fab-panel-nav>
<ul>
<li>
<fab-hub-message [seeAll]="actionMessage()">
<ng-container *ngFor="let item of hubMessage">
<button mat-list-item>
<fab-avatar mat-list-icon>
<img class="avatardefault" [src]="item.image" />
</fab-avatar>
<h4 mat-line [innerHTML]="item.message"></h4>
<time mat-line>
<mat-icon mat-list-icon>access_time</mat-icon>
{{ item.send_date | date:'EEEE, d \' de \' MMMM | h\'h\'mm' }}
</time>
</button>
</ng-container>
</fab-hub-message>
</li>
<li>
<fab-hub-notification [seeAll]="actionNotification()">
<button mat-list-item>
<mat-icon mat-list-icon color="accent">folder</mat-icon>
<h4 mat-line>
<strong>Hospital da Luz</strong> e
<strong>Maria regina</strong> realizaram um match
</h4>
<time mat-line>
<mat-icon mat-list-icon>access_time</mat-icon>
Quarta-feira, 18 de novembro | 14h00
</time>
</button>
</fab-hub-notification>
</li>
<li class="divider">
<fab-nav-user>
<button mat-menu-item>
<mat-icon>person</mat-icon>
Perfil do Usuário
</button>
<button mat-menu-item>
<mat-icon>exit_to_app</mat-icon>
Sair
</button>
</fab-nav-user>
</li>
</ul>
</fab-panel-nav>
<fab-panel-content>
<router-outlet></router-outlet>
</fab-panel-content>
</fab-panel>
import {CopyBoxModule} from '@laberry/fab-material';
selector: fab-copy-box
| Parameters | Type | |
|---|---|---|
| content | string | Conteúdo para ser copiado. |
| label? | string | Título do campo. |
| notification? | string | Mensagem para mostrar no snackbar. |
<fab-copy-box
[label]="Nome do App"
[content]="appDef.name"
[notification]=""
></fab-copy-box>
Serviço para disparar mensagens para o usuário.
| Parameters | Type | |
|---|---|---|
| error(metodo error() apenas) | Error | IApiTransportError | Erro para mostrar no snackbar. |
| message | string | Mensagem para mostrar no snackbar. |
| config? | MatSnackBarConfig<any> | Configurações adicionais para o snackbar. |
| action | string = 'Fechar' | Label para botão do snackbar. |
| Return |
|---|
| MatSnackBarRef<SimpleSnackBar> |
import {AlertModule} from '@laberry/fab-material';
Componente para ser usado como serviço de diálogo.
| Open() | Type | |
|---|---|---|
| data | AlertInfo | |
| returns | MatDialogRef<AlertComponent, any> |
| close() | Type | |
|---|---|---|
| returns | void |
| Name | Type | |
|---|---|---|
| data | AlertInfo | |
| dialogRef | MatDialogRef<AlertComponent> |
import {HubModule} from '@laberry/fab-material';
Component para usar com mat-menu, normalmente usado no header para ver notificações ou as ultimas mensagens.
selector: fab-hub
<mat-menu>
<fab-hub>
<mat-card-header>
<mat-card-title>Últimas Mensagens</mat-card-title>
</mat-card-header>
<mat-card-content>
<mat-action-list>
<button mat-list-item>
<!-- Avatar -->
<fab-avatar mat-list-icon>
<img src="" alt="Avatar" />
</fab-avatar>
<!-- OU Icone -->
<mat-icon mat-list-icon color="accent">
folder
</mat-icon>
<h4 mat-line>Opa! Beleza?</h4>
<time mat-line>
<mat-icon mat-list-icon>access_time</mat-icon>
Quarta-feira, 18 de novembro | 14h00
</time>
</button>
</mat-action-list>
</mat-card-content>
<mat-card-actions>
<button mat-button>
Ver todos
<mat-icon>arrow_forward_ios</mat-icon>
</button>
</mat-card-actions>
</fab-hub>
</mat-menu>
import {HubMessageModule} from '@laberry/fab-material';
selector: fab-hub-message
| Propriedades |
|---|
| @Input() seeAll: Function |
<fab-hub-message [seeAll]="actionMessage()">
<ng-container *ngFor="let item of hubMessage">
<button mat-list-item>
<fab-avatar mat-list-icon>
<img class="avatardefault" [src]="item.image" />
</fab-avatar>
<h4 mat-line [innerHTML]="item.message"></h4>
<time mat-line
><mat-icon mat-list-icon>access_time</mat-icon> {{ item.send_date |
date:'EEEE, d \' de \' MMMM | h\'h\'mm' }}
</time>
</button>
</ng-container>
</fab-hub-message>
import {HubNotificationModule} from '@laberry/fab-material';
selector: fab-hub-notification
| Propriedades |
|---|
| @Input() seeAll: Function |
<fab-hub-notification [seeAll]="actionNotification()">
<button mat-list-item>
<mat-icon mat-list-icon color="accent">folder</mat-icon>
<h4 mat-line>
<strong>Hospital da Luz</strong> e
<strong>Maria regina</strong> realizaram um match
</h4>
<time mat-line
><mat-icon mat-list-icon>access_time</mat-icon> Quarta-feira, 18 de
novembro | 14h00
</time>
</button>
</fab-hub-notification>
import {AvatarModule} from '@laberry/fab-material';
Component para criar avatar de usuário.
selector: fab-avatar
| Propriedades |
|---|
| @Input() size: AvatarSizeEnum |
#Enums
| Key | Value |
|---|---|
| Small | 'small' |
| Medium | 'medium' |
| Larger | 'larger' |
<fab-avatar>
<img src="../../../../assets/avatar@2x.png" alt="Avatar" />
</fab-avatar>
import {NavUserModule} from '@laberry/fab-material';
Component para criar botão com avatar para abrir o menu de usuário.
selector: fab-nav-user
| Propriedades |
|---|
| @Input() avatar: string |
| @Input() name: string |
<fab-avatar>
<img src="../../../../assets/avatar@2x.png" alt="Avatar" />
</fab-avatar>
import {FabModalModule} from '@laberry/fab-material';
Essa é a estrutura de modal para ser injetada no metodo do open do serviço MatDialog.
selector: fab-modal
selector: fab-modal-header
| Propriedades |
|---|
| @Input() disableClose:boolean = false |
selector: fab-modal-content
Esse component está preparado para receber texto e o component mat-tab-group.
selector: fab-modal-footer
Enum de tamanhos padronizados de modal
| Key | Value |
|---|---|
| Small | '250px' |
| Medium | '400px' |
| Larger | '800px' |
<fab-modal-header>
<h1 mat-dialog-title>Modal Fab</h1>
</fab-modal-header>
<fab-modal-content>
Qualquer conteudo OU
<!-- Tabs -->
<mat-tab-group>
<mat-tab label="First"> Content 1 </mat-tab>
<mat-tab label="Second"> Content 2 </mat-tab>
<mat-tab label="Third"> Content 3 </mat-tab>
</mat-tab-group>
</fab-modal-content>
<fab-modal-footer>
<button mat-button [mat-dialog-close]="true">
CANCELAR
</button>
<button mat-raised-button color="accent" [mat-dialog-close]="true">
SALVAR
</button>
</fab-modal-footer>
import {DrawerModule} from '@laberry/fab-material';
selector: fab-drawer
Componente para ser usado como serviço de diálogo.
| setDrawer() | Type | |
|---|---|---|
| drawer | MatDrawer | |
| drawerPlaceholder | ViewContainerRef | |
| returns | void |
| toggle() | Type | |
|---|---|---|
| returns | Promise |
| close() | Type | |
|---|---|---|
| returns | Promise |
| open() | Type | |
|---|---|---|
| component | Type | |
| config? | { data: object } | |
| returns | Promise |
<fab-drawer>
<fab-panel>
<fab-panel-title>...</fab-panel-title>
</fab-panel>
...
</fab-drawer>
import { DrawerService } from '@laberry/fab-material';
...
constructor(private matDrawer: DrawerService) {}
...
openDrawer() {
this.drawerService.open(DrawerContentComponent)
}
FAQs
Unknown package
We found that fab-material demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.