@dev-tcloud/tcloud-ui 6.19.2 → 6.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/tcloud-ui-dialog.md +167 -0
- package/docs/tcloud-ui-progress-status-bar.md +92 -0
- package/fesm2022/dev-tcloud-tcloud-ui.mjs +371 -39
- package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/js/tcloud-ui-app.js +1 -1
- package/lib/_modules/tcloud-ui-dialog/enums/tcloud-ui-dialog-events.enum.d.ts +4 -0
- package/lib/_modules/tcloud-ui-dialog/enums/tcloud-ui-dialog-status.enum.d.ts +6 -0
- package/lib/_modules/tcloud-ui-dialog/enums/tcloud-ui-dialog-text-confirmation.enum.d.ts +5 -0
- package/lib/_modules/tcloud-ui-dialog/models/tcloud-ui-dialog.model.d.ts +12 -0
- package/lib/_modules/tcloud-ui-dialog/services/tcloud-ui-dialog-service.d.ts +26 -0
- package/lib/_modules/tcloud-ui-dialog/tcloud-ui-dialog.component.d.ts +53 -0
- package/lib/_modules/tcloud-ui-progress-status-bar/tcloud-ui-progress-status-bar.component.d.ts +22 -0
- package/lib/revitalizacao/components/tc-rev-progress-status-bar/tc-rev-progress-status-bar.component.d.ts +3 -2
- package/lib/tcloud-ui.module.d.ts +60 -58
- package/package.json +1 -1
- package/public-api.d.ts +7 -0
- package/scss/components/custom/modal.scss +6 -6
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# TCloud UI Dialog
|
|
2
|
+
|
|
3
|
+
Componente standalone de diálogo de confirmação criado dinamicamente via `TCloudUiDialogService`, com suporte a mensagem HTML, estado de carregamento, confirmação por texto digitado e encadeamento fluente (`onConfirm` / `onCancel`).
|
|
4
|
+
|
|
5
|
+
## Características
|
|
6
|
+
|
|
7
|
+
- Abertura imperativa com `ComponentFactoryResolver` e `ViewContainerRef` raiz definido pelo consumidor
|
|
8
|
+
- Título, mensagem (`innerHTML`), textos de botões e rótulos via `TCloudUiDialogModel` e i18n padrão
|
|
9
|
+
- Modo de confirmação por palavra (`TCloudUiDialogTextConfirmationEnum`) com validação case-insensitive
|
|
10
|
+
- Indicador de carregamento (`tc-rev-small-loading`) quando `data.loading` é verdadeiro
|
|
11
|
+
- Tecla Escape e botão fechar disparam fluxo de cancelamento; animação de entrada/saída (`fade`)
|
|
12
|
+
- `BehaviorSubject` `events` notifica ciclo de vida (`open` / `close`); após `close` o serviço destrói a instância do componente
|
|
13
|
+
|
|
14
|
+
## Instalação
|
|
15
|
+
|
|
16
|
+
O componente e o serviço estão no `TCloudUiModule` (o serviço também está em `providedIn: 'root'`).
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { TCloudUiModule, TCloudUiDialogService } from 'projects/tcloud-ui/src/public-api';
|
|
20
|
+
|
|
21
|
+
@NgModule({
|
|
22
|
+
imports: [TCloudUiModule],
|
|
23
|
+
})
|
|
24
|
+
export class AppModule {}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Uso standalone (apenas o componente, sem abrir via serviço — cenário raro, pois o fluxo previsto é via serviço):
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { TCloudUiDialogComponent } from 'projects/tcloud-ui/src/public-api';
|
|
31
|
+
|
|
32
|
+
@Component({
|
|
33
|
+
standalone: true,
|
|
34
|
+
imports: [TCloudUiDialogComponent],
|
|
35
|
+
})
|
|
36
|
+
export class ExampleComponent {}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Propriedades (API)
|
|
40
|
+
|
|
41
|
+
O seletor `tcloud-ui-dialog` não expõe `@Input()` nem `@Output()` para templates externos: a configuração ocorre pelo retorno de `TCloudUiDialogService.open()` e pela mutação de `data` na instância retornada.
|
|
42
|
+
|
|
43
|
+
### Parâmetros de `TCloudUiDialogService.open(_data?)`
|
|
44
|
+
|
|
45
|
+
Valores passados em `_data` são mesclados com padrões do serviço (incluindo chaves i18n). O serviço instancia `TCloudUiDialogModel` internamente.
|
|
46
|
+
|
|
47
|
+
| Campo | Tipo | Descrição | Valor padrão (comportamento do serviço) |
|
|
48
|
+
|-------|------|-----------|----------------------------------------|
|
|
49
|
+
| `title` | `string` | Título do cabeçalho | Tradução de `dialogConfirmation.default_title` ou *Atenção* |
|
|
50
|
+
| `message` | `string` | Corpo do diálogo (HTML) | Tradução de `dialogConfirmation.default_message` |
|
|
51
|
+
| `loading` | `boolean` | Exibe loading e bloqueia ações enquanto verdadeiro | `undefined` / herdado do objeto |
|
|
52
|
+
| `disable` | `boolean` | Desabilita botões, fechar e Escape | `undefined` / herdado |
|
|
53
|
+
| `disableClickOutside` | `boolean` | Comportamento do clique no backdrop: quando **falso** ou indefinido, o clique é ignorado; quando **verdadeiro** e `disable` é falso, o clique chama `close(true)` (mesmo fluxo que cancelar) | `undefined` / herdado |
|
|
54
|
+
| `inputConfirmationText` | `TCloudUiDialogTextConfirmationEnum` | Palavra esperada no campo de confirmação (mapeada para texto i18n) | `confirm` |
|
|
55
|
+
| `buttonConfirmText` | `string` | Armazenado em `TCloudUiDialogModel`; o template atual do diálogo exibe no botão principal o valor de `textConfirmation` com `titlecase`, não este campo | Opcional |
|
|
56
|
+
| `buttonCancelText` | `string` | Rótulo do botão cancelar | Tradução de `dialogConfirmation.cancel` se omitido |
|
|
57
|
+
|
|
58
|
+
### `TCloudUiDialogTextConfirmationEnum`
|
|
59
|
+
|
|
60
|
+
| Valor | Uso |
|
|
61
|
+
|-------|-----|
|
|
62
|
+
| `continue` | Palavra de confirmação associada à tradução `dialogConfirmation.continue` |
|
|
63
|
+
| `remove` | Idem `dialogConfirmation.remove` |
|
|
64
|
+
| `confirm` | Idem `dialogConfirmation.confirm` (padrão do serviço) |
|
|
65
|
+
|
|
66
|
+
### `TCloudUiDialogEventsEnum`
|
|
67
|
+
|
|
68
|
+
Emitido em `events` da instância do componente: `open` (valor inicial) e `close` ao finalizar animação de fechamento.
|
|
69
|
+
|
|
70
|
+
### `TCloudUiDialogStatusEnum`
|
|
71
|
+
|
|
72
|
+
Valores `success`, `error`, `info`, `warning` exportados no pacote para uso alinhado a fluxos de UI; o componente de diálogo atual não aplica esse enum no template.
|
|
73
|
+
|
|
74
|
+
### API pública da instância (`TCloudUiDialogComponent`)
|
|
75
|
+
|
|
76
|
+
| Membro | Tipo | Descrição |
|
|
77
|
+
|--------|------|-----------|
|
|
78
|
+
| `data` | `TCloudUiDialogModel` | Modelo exibido; pode ser mutado após abrir (ex.: `dialog.data.loading = true`) |
|
|
79
|
+
| `textConfirmation` | `string` | Palavra efetiva de confirmação (definida pelo serviço com base no enum e i18n) |
|
|
80
|
+
| `inputConfirmationControl` | `FormControl` | Controle do campo de confirmação; `Validators.required`; desabilitado quando `disable` ou `loading` |
|
|
81
|
+
| `events` | `BehaviorSubject<TCloudUiDialogEventsEnum>` | Ciclo de vida; completa após `close` |
|
|
82
|
+
| `animation` | `string` | Estado da animação (`visible` / `hide`) |
|
|
83
|
+
| `close(emitCancel?)` | `void` | Inicia fechamento; `emitCancel === true` (padrão) invoca callback de `onCancel`; `false` apenas encerra sem disparar cancelamento |
|
|
84
|
+
| `confirm()` | `void` | Valida texto de confirmação (se habilitado) e chama callback de `onConfirm` |
|
|
85
|
+
| `onConfirm(fn)` | `TCloudUiDialogComponent` | Registra callback recebendo a instância do diálogo; encadeável |
|
|
86
|
+
| `onCancel(fn)` | `TCloudUiDialogComponent` | Registra callback de cancelamento; encadeável |
|
|
87
|
+
|
|
88
|
+
### Configuração obrigatória do serviço
|
|
89
|
+
|
|
90
|
+
| Método | Descrição |
|
|
91
|
+
|--------|-----------|
|
|
92
|
+
| `setRootViewContainerRef(ref: ViewContainerRef)` | Define o container onde o host do diálogo será inserido (tipicamente `ViewChild` template em `#dialogRoot`) |
|
|
93
|
+
|
|
94
|
+
## Exemplos de uso
|
|
95
|
+
|
|
96
|
+
### Uso básico
|
|
97
|
+
|
|
98
|
+
Template com âncora para o diálogo e botão para abrir:
|
|
99
|
+
|
|
100
|
+
```html
|
|
101
|
+
<ng-container #dialogRoot></ng-container>
|
|
102
|
+
<button type="button" (click)="open()">Abrir diálogo</button>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
import { AfterViewInit, Component, ViewChild, ViewContainerRef } from '@angular/core';
|
|
107
|
+
import {
|
|
108
|
+
TCloudUiDialogService,
|
|
109
|
+
TCloudUiDialogTextConfirmationEnum,
|
|
110
|
+
} from 'projects/tcloud-ui/src/public-api';
|
|
111
|
+
|
|
112
|
+
@Component({
|
|
113
|
+
selector: 'app-example',
|
|
114
|
+
templateUrl: './example.component.html',
|
|
115
|
+
})
|
|
116
|
+
export class ExampleComponent implements AfterViewInit {
|
|
117
|
+
@ViewChild('dialogRoot', { read: ViewContainerRef }) dialogRoot!: ViewContainerRef;
|
|
118
|
+
|
|
119
|
+
constructor(private readonly dialog: TCloudUiDialogService) {}
|
|
120
|
+
|
|
121
|
+
ngAfterViewInit(): void {
|
|
122
|
+
this.dialog.setRootViewContainerRef(this.dialogRoot);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
open(): void {
|
|
126
|
+
this.dialog
|
|
127
|
+
.open({
|
|
128
|
+
title: 'Confirmar operação',
|
|
129
|
+
message: '<p>Deseja prosseguir?</p>',
|
|
130
|
+
inputConfirmationText: TCloudUiDialogTextConfirmationEnum.confirm,
|
|
131
|
+
})
|
|
132
|
+
.onConfirm((d) => d.close(false))
|
|
133
|
+
.onCancel(() => {});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Uso avançado
|
|
139
|
+
|
|
140
|
+
Padrão da página de demonstração: confirmação com palavra `remove`, bloqueio de clique externo até confirmar texto, fluxo assíncrono com `loading` e fechamento sem callback de cancelamento após sucesso.
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
openDialogWarning(): void {
|
|
144
|
+
this.tCloudUiDialogService
|
|
145
|
+
.open({
|
|
146
|
+
title: 'Teste title',
|
|
147
|
+
message: 'Teste message',
|
|
148
|
+
disableClickOutside: true,
|
|
149
|
+
inputConfirmationText: TCloudUiDialogTextConfirmationEnum.remove,
|
|
150
|
+
buttonConfirmText: 'Teste confirm',
|
|
151
|
+
buttonCancelText: 'Teste cancel',
|
|
152
|
+
})
|
|
153
|
+
.onConfirm((dialog) => {
|
|
154
|
+
dialog.data.loading = true;
|
|
155
|
+
setTimeout(() => dialog.close(false), 3000);
|
|
156
|
+
})
|
|
157
|
+
.onCancel(() => {
|
|
158
|
+
alert('Cancelado');
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Notas de comportamento:
|
|
164
|
+
|
|
165
|
+
- `dialog.close(false)` após operações bem-sucedidas evita executar o handler registrado em `onCancel`.
|
|
166
|
+
- Enquanto `data.loading` ou `data.disable` é verdadeiro, Escape não fecha o diálogo e os botões permanecem desabilitados.
|
|
167
|
+
- Com campo de confirmação ativo, o valor digitado deve coincidir com `textConfirmation` (comparação sem diferenciar maiúsculas/minúsculas).
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Progress Status Bar
|
|
2
|
+
|
|
3
|
+
## Características
|
|
4
|
+
- Componente standalone para exibir progresso com gradiente por faixa de status.
|
|
5
|
+
- Permite definir múltiplas faixas (`start` e `end`) para trocar automaticamente a cor.
|
|
6
|
+
- Suporte aos status de gradiente: `info`, `danger`, `success` e `alert`.
|
|
7
|
+
- Quando o valor atual ultrapassa a última faixa, mantém o gradiente da última configuração.
|
|
8
|
+
|
|
9
|
+
## Instalação
|
|
10
|
+
```ts
|
|
11
|
+
import { TCloudUiProgressStatusBarComponent } from 'projects/tcloud-ui/src/public-api';
|
|
12
|
+
|
|
13
|
+
@Component({
|
|
14
|
+
selector: 'app-example',
|
|
15
|
+
standalone: true,
|
|
16
|
+
imports: [TCloudUiProgressStatusBarComponent],
|
|
17
|
+
template: `
|
|
18
|
+
<tcloud-ui-progress-status-bar
|
|
19
|
+
[currentValue]="42"
|
|
20
|
+
[progressStatusConfig]="statusConfig">
|
|
21
|
+
</tcloud-ui-progress-status-bar>
|
|
22
|
+
`
|
|
23
|
+
})
|
|
24
|
+
export class ExampleComponent {
|
|
25
|
+
statusConfig = [
|
|
26
|
+
{ start: 0, end: 25, gradientStatus: 'info' },
|
|
27
|
+
{ start: 26, end: 60, gradientStatus: 'alert' },
|
|
28
|
+
{ start: 61, end: 85, gradientStatus: 'danger' },
|
|
29
|
+
{ start: 86, end: 100, gradientStatus: 'success' }
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Propriedades (API)
|
|
35
|
+
### Inputs
|
|
36
|
+
| Nome | Tipo | Descrição | Valor Default |
|
|
37
|
+
| --- | --- | --- | --- |
|
|
38
|
+
| currentValue | number | Valor percentual atual da barra. | obrigatório |
|
|
39
|
+
| progressStatusConfig | ProgressStatusConfig[] | Lista de faixas para definir gradiente por intervalo. | obrigatório |
|
|
40
|
+
|
|
41
|
+
### Tipo ProgressStatusConfig
|
|
42
|
+
| Nome | Tipo | Descrição |
|
|
43
|
+
| --- | --- | --- |
|
|
44
|
+
| start | number | Valor inicial da faixa (inclusivo). |
|
|
45
|
+
| end | number | Valor final da faixa (inclusivo). |
|
|
46
|
+
| gradientStatus | ProgressStatusBarGradientStatus | Tipo de gradiente aplicado para a faixa. |
|
|
47
|
+
|
|
48
|
+
### Enum ProgressStatusBarGradientStatus
|
|
49
|
+
- `info`
|
|
50
|
+
- `danger`
|
|
51
|
+
- `success`
|
|
52
|
+
- `alert`
|
|
53
|
+
|
|
54
|
+
### Outputs
|
|
55
|
+
| Nome | Tipo de Evento | Descrição |
|
|
56
|
+
| --- | --- | --- |
|
|
57
|
+
| (não possui) | - | Componente não emite eventos. |
|
|
58
|
+
|
|
59
|
+
## Exemplos de Uso
|
|
60
|
+
### Uso Básico
|
|
61
|
+
```html
|
|
62
|
+
<tcloud-ui-progress-status-bar
|
|
63
|
+
[currentValue]="42"
|
|
64
|
+
[progressStatusConfig]="statusConfig">
|
|
65
|
+
</tcloud-ui-progress-status-bar>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Exemplo com faixas operacionais
|
|
69
|
+
```ts
|
|
70
|
+
statusConfig = [
|
|
71
|
+
{ start: 0, end: 40, gradientStatus: 'success' },
|
|
72
|
+
{ start: 41, end: 75, gradientStatus: 'info' },
|
|
73
|
+
{ start: 76, end: 90, gradientStatus: 'alert' },
|
|
74
|
+
{ start: 91, end: 100, gradientStatus: 'danger' }
|
|
75
|
+
];
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<tcloud-ui-progress-status-bar
|
|
80
|
+
[currentValue]="82"
|
|
81
|
+
[progressStatusConfig]="statusConfig">
|
|
82
|
+
</tcloud-ui-progress-status-bar>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Valor acima da última faixa
|
|
86
|
+
```html
|
|
87
|
+
<!-- Usa o gradiente da última faixa configurada -->
|
|
88
|
+
<tcloud-ui-progress-status-bar
|
|
89
|
+
[currentValue]="120"
|
|
90
|
+
[progressStatusConfig]="statusConfig">
|
|
91
|
+
</tcloud-ui-progress-status-bar>
|
|
92
|
+
```
|