ngx-opalbytes-components 1.6.1 → 1.7.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/README.md
CHANGED
|
@@ -84,19 +84,238 @@ src/
|
|
|
84
84
|
|
|
85
85
|
---
|
|
86
86
|
|
|
87
|
-
## Componentes
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
| `
|
|
99
|
-
| `
|
|
87
|
+
## Detalhes dos Componentes
|
|
88
|
+
|
|
89
|
+
### `BaseButton`
|
|
90
|
+
Um botão customizável com suporte a ícones, estado de loading e tooltip.
|
|
91
|
+
|
|
92
|
+
**Seletor:** `<cao-base-button>`
|
|
93
|
+
|
|
94
|
+
**Atributos (Inputs)**
|
|
95
|
+
|
|
96
|
+
| Atributo | Tipo | Padrão | Descrição |
|
|
97
|
+
| --- | --- | --- | --- |
|
|
98
|
+
| `buttonText` | `string` | `'Clique!'` | O texto exibido no botão. |
|
|
99
|
+
| `isDarkMode` | `boolean` | `false` | Aplica o tema escuro ao botão. |
|
|
100
|
+
| `isDisabled` | `boolean` | `false` | Desabilita o botão. |
|
|
101
|
+
| `isLoading` | `boolean` | `false` | Exibe um spinner de carregamento no botão. |
|
|
102
|
+
| `btnClass` | `string` | `''` | Classes CSS customizadas para o botão. |
|
|
103
|
+
| `tooltip` | `string` | `undefined` | Texto a ser exibido em uma tooltip. |
|
|
104
|
+
| `trailingIcon` | `string` | `undefined` | Ícone a ser exibido após o texto. |
|
|
105
|
+
| `leadingIcon` | `string` | `undefined` | Ícone a ser exibido antes do texto. |
|
|
106
|
+
| `isLucideIcon` | `boolean` | `true` | Define se o ícone é do pacote Lucide. |
|
|
107
|
+
| `dataCy` | `string` | `undefined` | Atributo para testes E2E com Cypress. |
|
|
108
|
+
|
|
109
|
+
**Eventos (Outputs)**
|
|
110
|
+
|
|
111
|
+
| Evento | Tipo | Descrição |
|
|
112
|
+
| --- | --- | --- |
|
|
113
|
+
| `buttonClick` | `EventEmitter<void>` | Emitido quando o botão é clicado. |
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### `BaseAlert`
|
|
118
|
+
Um componente para exibir alertas de sucesso, erro, informação ou aviso. Geralmente utilizado com um serviço de diálogo.
|
|
119
|
+
|
|
120
|
+
**Seletor:** `<cao-base-alert>`
|
|
121
|
+
|
|
122
|
+
**Atributos (Inputs via `data`)**
|
|
123
|
+
|
|
124
|
+
| Atributo | Tipo | Descrição |
|
|
125
|
+
| --- | --- | --- |
|
|
126
|
+
| `type` | `'success' \| 'error' \| 'info' \| 'warning'` | O tipo de alerta a ser exibido. |
|
|
127
|
+
| `title` | `string` | O título do alerta. |
|
|
128
|
+
| `message` | `string` | A mensagem do alerta. |
|
|
129
|
+
| `alertIcon` | `string` | (Opcional) Caminho para um ícone customizado. |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### `BaseDialog`
|
|
134
|
+
Exibe uma caixa de diálogo modal para interações que exigem confirmação do usuário.
|
|
135
|
+
|
|
136
|
+
**Seletor:** `<cao-base-dialog>`
|
|
137
|
+
|
|
138
|
+
**Atributos (Inputs via `config`)**
|
|
139
|
+
|
|
140
|
+
| Atributo | Tipo | Descrição |
|
|
141
|
+
| --- | --- | --- |
|
|
142
|
+
| `type` | `'success' \| 'error' \| 'info' \| 'warning'` | O tipo de diálogo. |
|
|
143
|
+
| `title` | `string` | O título do diálogo. |
|
|
144
|
+
| `logoIcon` | `string` | (Opcional) Caminho para o ícone do logo. |
|
|
145
|
+
| `message` | `string` | A mensagem principal do diálogo. |
|
|
146
|
+
| `confirmButtonText`| `string` | Texto para o botão de confirmação. |
|
|
147
|
+
| `cancelButtonText` | `string` | Texto para o botão de cancelamento. |
|
|
148
|
+
| `onConfirm` | `() => void` | Função a ser executada na confirmação. |
|
|
149
|
+
| `onCancel` | `() => void` | Função a ser executada no cancelamento. |
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### `Autocomplete`
|
|
154
|
+
Um campo de preenchimento automático que funciona com `ngModel` ou `formControlName`.
|
|
155
|
+
|
|
156
|
+
**Seletor:** `<cao-autocomplete>`
|
|
157
|
+
|
|
158
|
+
**Atributos (Inputs)**
|
|
159
|
+
|
|
160
|
+
| Atributo | Tipo | Descrição |
|
|
161
|
+
| --- | --- | --- |
|
|
162
|
+
| `label` | `string` | O rótulo do campo. |
|
|
163
|
+
| `placeholder` | `string` | O texto de placeholder. |
|
|
164
|
+
| `options` | `IAutoCompleteOption[]` | A lista de opções para o autocomplete. |
|
|
165
|
+
| `control` | `AbstractControl` | O `FormControl` associado. |
|
|
166
|
+
| `dataCy` | `string` | Atributo para testes E2E. |
|
|
167
|
+
| `controlName` | `string` | O nome do controle de formulário. |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### `BaseTable`
|
|
172
|
+
Uma tabela de dados com ordenação, paginação e seleção de linhas. A configuração é feita através do `TableService`.
|
|
173
|
+
|
|
174
|
+
**Seletor:** `<cao-base-table>`
|
|
175
|
+
|
|
176
|
+
**Atributos (Inputs)**
|
|
177
|
+
|
|
178
|
+
| Atributo | Tipo | Padrão | Descrição |
|
|
179
|
+
| --- | --- | --- | --- |
|
|
180
|
+
| `customClass` | `string` | `''` | Classe CSS customizada para a tabela. |
|
|
181
|
+
| `pageSizeOptions` | `number[]` | `[5, 10, 20, 50]` | Opções para o número de itens por página. |
|
|
182
|
+
| `showFirstLastButtons`| `boolean`| `true` | Exibe os botões de primeira/última página. |
|
|
183
|
+
| `isPaginatedByServer`| `boolean`| `false` | Define se a paginação é controlada pelo servidor. |
|
|
184
|
+
|
|
185
|
+
**Eventos (Outputs)**
|
|
186
|
+
|
|
187
|
+
| Evento | Tipo | Descrição |
|
|
188
|
+
| --- | --- | --- |
|
|
189
|
+
| `pageChanged` | `EventEmitter<number>` | Emitido quando a página muda. |
|
|
190
|
+
| `pageSizeChanged` | `EventEmitter<number>` | Emitido quando o tamanho da página muda. |
|
|
191
|
+
| `firstPageClicked` | `EventEmitter<void>` | Emitido ao clicar no botão de primeira página. |
|
|
192
|
+
| `lastPageClicked` | `EventEmitter<void>` | Emitido ao clicar no botão de última página. |
|
|
193
|
+
| `selectionChanged` | `EventEmitter<any[]>` | Emitido quando a seleção de linhas muda. |
|
|
194
|
+
| `pageEvent` | `EventEmitter<PageEvent>`| Emitido em qualquer evento de paginação. |
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
### `BaseTimeRange`
|
|
199
|
+
Um seletor de intervalo de datas.
|
|
200
|
+
|
|
201
|
+
**Seletor:** `<cao-base-time-range>`
|
|
202
|
+
|
|
203
|
+
**Atributos (Inputs)**
|
|
204
|
+
|
|
205
|
+
| Atributo | Tipo | Descrição |
|
|
206
|
+
| --- | --- | --- |
|
|
207
|
+
| `label` | `string` | O rótulo do campo. |
|
|
208
|
+
| `max` | `Date` | A data máxima permitida. |
|
|
209
|
+
| `minDate` | `Date` | A data mínima permitida. |
|
|
210
|
+
| `maxDate` | `Date` | A data máxima permitida para o segundo campo. |
|
|
211
|
+
| `startDate` | `Date` | A data de início pré-selecionada. |
|
|
212
|
+
| `finalDate` | `Date` | A data final pré-selecionada. |
|
|
213
|
+
| `dataCy` | `string` | Atributo para testes E2E. |
|
|
214
|
+
| `controlName` | `string` | O nome do controle de formulário. |
|
|
215
|
+
|
|
216
|
+
**Eventos (Outputs)**
|
|
217
|
+
|
|
218
|
+
| Evento | Tipo | Descrição |
|
|
219
|
+
| --- | --- | --- |
|
|
220
|
+
| `rangeSelected`| `EventEmitter<Date[]>` | Emitido quando um intervalo de datas é selecionado. |
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
### `DropDown`
|
|
225
|
+
Um menu suspenso (dropdown) com busca, que funciona com `ngModel` ou `formControlName`.
|
|
226
|
+
|
|
227
|
+
**Seletor:** `<cao-drop-down>`
|
|
228
|
+
|
|
229
|
+
**Atributos (Inputs)**
|
|
230
|
+
|
|
231
|
+
| Atributo | Tipo | Descrição |
|
|
232
|
+
| --- | --- | --- |
|
|
233
|
+
| `textHeader` | `string` | Texto do cabeçalho do dropdown. |
|
|
234
|
+
| `options` | `IDropDownOption[]` | Lista de opções. |
|
|
235
|
+
| `isDisabled` | `boolean` | Desabilita o componente. |
|
|
236
|
+
| `tooltip` | `string` | Texto para a tooltip. |
|
|
237
|
+
| `dropDirectionInput`| `'up' \| 'down'` | Direção em que o dropdown abrirá. |
|
|
238
|
+
| `control` | `AbstractControl` | O `FormControl` associado. |
|
|
239
|
+
|
|
240
|
+
**Eventos (Outputs)**
|
|
241
|
+
|
|
242
|
+
| Evento | Tipo | Descrição |
|
|
243
|
+
| --- | --- | --- |
|
|
244
|
+
| `itemSelected`| `EventEmitter<IDropDownOption>` | Emitido quando um item é selecionado. |
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
### `Footer`
|
|
249
|
+
Um rodapé simples para a aplicação.
|
|
250
|
+
|
|
251
|
+
**Seletor:** `<cao-footer>`
|
|
252
|
+
|
|
253
|
+
**Atributos (Inputs)**
|
|
254
|
+
|
|
255
|
+
| Atributo | Tipo | Padrão | Descrição |
|
|
256
|
+
| --- | --- | --- | --- |
|
|
257
|
+
| `currentRoute` | `string` | `undefined` | A rota atual (usado para lógica interna). |
|
|
258
|
+
| `footerText` | `string` | `undefined` | Texto customizado para o rodapé. |
|
|
259
|
+
| `isFixed` | `boolean` | `true` | Fixa o rodapé na parte inferior da página. |
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
### `LinksButton`
|
|
264
|
+
Exibe uma lista de links de navegação como botões.
|
|
265
|
+
|
|
266
|
+
**Seletor:** `<cao-links-button>`
|
|
267
|
+
|
|
268
|
+
**Atributos (Inputs)**
|
|
269
|
+
|
|
270
|
+
| Atributo | Tipo | Descrição |
|
|
271
|
+
| --- | --- | --- |
|
|
272
|
+
| `navContent` | `Signal<INavContent>` | **Obrigatório.** Objeto com o título e a lista de links. |
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
### `Paginator`
|
|
277
|
+
Controle de paginação para tabelas ou listas.
|
|
278
|
+
|
|
279
|
+
**Seletor:** `<cao-paginator>`
|
|
280
|
+
|
|
281
|
+
**Atributos (Inputs)**
|
|
282
|
+
|
|
283
|
+
| Atributo | Tipo | Padrão | Descrição |
|
|
284
|
+
| --- | --- | --- | --- |
|
|
285
|
+
| `totalItems` | `number` | `0` | O número total de itens. |
|
|
286
|
+
| `pageSize` | `number` | `10` | O número de itens por página. |
|
|
287
|
+
| `currentPage`| `number` | `1` | A página atual. |
|
|
288
|
+
| `pageSizeOptions`| `number[]` | `[5, 10, 20, 50]` | Opções para o tamanho da página. |
|
|
289
|
+
| `showFirstLastButtons`| `boolean`| `true` | Exibe os botões de primeira/última página. |
|
|
290
|
+
|
|
291
|
+
**Eventos (Outputs)**
|
|
292
|
+
|
|
293
|
+
| Evento | Tipo | Descrição |
|
|
294
|
+
| --- | --- | --- |
|
|
295
|
+
| `pageEvent` | `EventEmitter<PageEvent>` | Emitido em qualquer evento de paginação. |
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
### `TimePicker`
|
|
300
|
+
Um seletor de horário.
|
|
301
|
+
|
|
302
|
+
**Seletor:** `<cao-time-picker>`
|
|
303
|
+
|
|
304
|
+
**Atributos (Inputs)**
|
|
305
|
+
|
|
306
|
+
| Atributo | Tipo | Descrição |
|
|
307
|
+
| --- | --- | --- |
|
|
308
|
+
| `control` | `FormControl<Date \| null>` | O `FormControl` associado. |
|
|
309
|
+
| `isDisabled` | `boolean` | Desabilita o seletor. |
|
|
310
|
+
| `dataCy` | `string` | Atributo para testes E2E. |
|
|
311
|
+
| `min` | `string` | (setter) Horário mínimo no formato 'HH:mm'. |
|
|
312
|
+
| `max` | `string` | (setter) Horário máximo no formato 'HH:mm'. |
|
|
313
|
+
|
|
314
|
+
**Eventos (Outputs)**
|
|
315
|
+
|
|
316
|
+
| Evento | Tipo | Descrição |
|
|
317
|
+
| --- | --- | --- |
|
|
318
|
+
| `timeChange` | `EventEmitter<Date>` | Emitido quando o horário é alterado. |
|
|
100
319
|
|
|
101
320
|
---
|
|
102
321
|
|
|
@@ -48,6 +48,7 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
|
48
48
|
import { MatSliderModule } from '@angular/material/slider';
|
|
49
49
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
50
50
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
51
|
+
import { MatTimepickerModule } from '@angular/material/timepicker';
|
|
51
52
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
52
53
|
import { MatTreeModule } from '@angular/material/tree';
|
|
53
54
|
import * as i1$1 from '@angular/cdk/a11y';
|
|
@@ -197,6 +198,7 @@ const modules = [
|
|
|
197
198
|
MatListModule,
|
|
198
199
|
MatToolbarModule,
|
|
199
200
|
MatTreeModule,
|
|
201
|
+
MatTimepickerModule
|
|
200
202
|
];
|
|
201
203
|
class MaterialModule {
|
|
202
204
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -230,7 +232,8 @@ class MaterialModule {
|
|
|
230
232
|
MatSidenavModule,
|
|
231
233
|
MatListModule,
|
|
232
234
|
MatToolbarModule,
|
|
233
|
-
MatTreeModule
|
|
235
|
+
MatTreeModule,
|
|
236
|
+
MatTimepickerModule], exports: [OverlayModule,
|
|
234
237
|
MatSnackBarModule,
|
|
235
238
|
MatAutocompleteModule,
|
|
236
239
|
MatButtonModule,
|
|
@@ -260,7 +263,8 @@ class MaterialModule {
|
|
|
260
263
|
MatSidenavModule,
|
|
261
264
|
MatListModule,
|
|
262
265
|
MatToolbarModule,
|
|
263
|
-
MatTreeModule
|
|
266
|
+
MatTreeModule,
|
|
267
|
+
MatTimepickerModule] });
|
|
264
268
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: MaterialModule, providers: [{ provide: MAT_DATE_LOCALE, useValue: "pt-BR" }], imports: [modules, OverlayModule,
|
|
265
269
|
MatSnackBarModule,
|
|
266
270
|
MatAutocompleteModule,
|
|
@@ -291,7 +295,8 @@ class MaterialModule {
|
|
|
291
295
|
MatSidenavModule,
|
|
292
296
|
MatListModule,
|
|
293
297
|
MatToolbarModule,
|
|
294
|
-
MatTreeModule
|
|
298
|
+
MatTreeModule,
|
|
299
|
+
MatTimepickerModule] });
|
|
295
300
|
}
|
|
296
301
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: MaterialModule, decorators: [{
|
|
297
302
|
type: NgModule,
|
|
@@ -1304,18 +1309,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImpor
|
|
|
1304
1309
|
|
|
1305
1310
|
class Footer {
|
|
1306
1311
|
currentYear = new Date().getFullYear();
|
|
1307
|
-
currentRoute
|
|
1308
|
-
footerText
|
|
1312
|
+
currentRoute;
|
|
1313
|
+
footerText;
|
|
1314
|
+
isFixed = true;
|
|
1309
1315
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: Footer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1310
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1316
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: Footer, isStandalone: true, selector: "cao-footer", inputs: { currentRoute: "currentRoute", footerText: "footerText", isFixed: "isFixed" }, ngImport: i0, template: "<footer class=\"footer-element\" [class.fixed]=\"isFixed\">\n <div class=\"flex col\">\n <ng-content />\n @if(footerText){\n <ul class=\"footer-end\">\n <li>{{ footerText }} \u00A9 {{ currentYear }}</li>\n </ul>\n }\n </div>\n</footer>\n", styles: ["*{list-style:none;text-decoration:none}.footer-component{display:flex;align-items:end;justify-content:end;height:35px;padding:0 50px 10px 0;position:fixed;bottom:0;right:0;width:100%;z-index:100}.footer-component .flex{display:flex}.footer-component.isFixed{position:fixed}.footer-component.col{flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
1311
1317
|
}
|
|
1312
1318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: Footer, decorators: [{
|
|
1313
1319
|
type: Component,
|
|
1314
|
-
args: [{
|
|
1320
|
+
args: [{ selector: "cao-footer", imports: [CommonModule], template: "<footer class=\"footer-element\" [class.fixed]=\"isFixed\">\n <div class=\"flex col\">\n <ng-content />\n @if(footerText){\n <ul class=\"footer-end\">\n <li>{{ footerText }} \u00A9 {{ currentYear }}</li>\n </ul>\n }\n </div>\n</footer>\n", styles: ["*{list-style:none;text-decoration:none}.footer-component{display:flex;align-items:end;justify-content:end;height:35px;padding:0 50px 10px 0;position:fixed;bottom:0;right:0;width:100%;z-index:100}.footer-component .flex{display:flex}.footer-component.isFixed{position:fixed}.footer-component.col{flex-direction:column}\n"] }]
|
|
1315
1321
|
}], propDecorators: { currentRoute: [{
|
|
1316
1322
|
type: Input
|
|
1317
1323
|
}], footerText: [{
|
|
1318
1324
|
type: Input
|
|
1325
|
+
}], isFixed: [{
|
|
1326
|
+
type: Input
|
|
1319
1327
|
}] } });
|
|
1320
1328
|
|
|
1321
1329
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-opalbytes-components.mjs","sources":["../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-alert/base-alert.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-alert/base-alert.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-dialog/base-dialog.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-dialog/base-dialog.html","../../../projects/ngx-opalbytes-components/src/lib/material.module.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-table/base-table.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-table/base-table.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.html","../../../projects/ngx-opalbytes-components/src/public-api.ts","../../../projects/ngx-opalbytes-components/src/ngx-opalbytes-components.ts"],"sourcesContent":["import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { LucideAngularModule } from 'lucide-angular';\n\n@Component({\n selector: 'cao-base-button',\n imports: [CommonModule, MatTooltipModule, NgOptimizedImage, LucideAngularModule],\n templateUrl: './base-button.html',\n styleUrl: './base-button.css',\n})\nexport class BaseButton implements OnInit {\n @Output() readonly buttonClick = new EventEmitter<void>();\n\n @Input() buttonText = \"Clique!\";\n @Input() isDarkMode = false;\n @Input() isDisabled = false;\n @Input() isLoading = false;\n @Input() btnClass = \"\";\n\n @Input() tooltip?:string;\n @Input() trailingIcon?: string;\n @Input() leadingIcon?: string;\n @Input() isLucideIcon = true;\n @Input() dataCy?: string;\n\n ngOnInit(): void {\n if (!this.dataCy) {\n this.dataCy = `btn-${this.buttonText.replace(/\\s+/g, '-').toLowerCase()}`;\n }\n\n if(!this.tooltip && this.buttonText.length >= 20){\n this.tooltip = this.buttonText\n }\n }\n\n onClick(): void {\n if (!this.isDisabled && !this.isLoading) {\n this.buttonClick.emit();\n }\n }\n}\n","<button\n type=\"button\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n [matTooltip]=\"tooltip\"\n [matTooltipDisabled]=\"!tooltip\"\n [disabled]=\"isDisabled || isLoading\"\n [class.darkMode]=\"isDarkMode\"\n [class.disabled]=\"isDisabled\"\n [class.loading]=\"isLoading\"\n [ngClass]=\"btnClass\"\n [attr.data-cy]=\"dataCy\"\n (click)=\"onClick()\"\n (keydown)=\"onClick()\"\n >\n @if (leadingIcon) {\n <span [class]=\"isLucideIcon ? 'lucide-icons leading-icon' : 'leading-icon'\">\n @if(isLucideIcon) { \n <lucide-angular class=\"my-icon\" [name]=\"leadingIcon\" />\n } @else {\n <img alt=\"icon\" [ngSrc]=\"leadingIcon\" />\n }\n </span>\n } {{ buttonText }} @if (trailingIcon) {\n <span [class]=\"isLucideIcon ? 'lucide-icons trailing-icon' : 'trailing-icon'\">\n @if(isLucideIcon){ \n <lucide-angular class=\"my-icon\" [name]=\"trailingIcon\" />\n } @else {\n <img alt=\"icon\" [ngSrc]=\"trailingIcon\" />\n }\n </span>\n } @if (isLoading) {\n <span class=\"loader\"></span>\n }\n</button>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\nexport type AlertType = \"success\" | \"error\" | \"info\" | \"warning\";\n\nexport interface IAlertConfig {\n type: AlertType;\n title: string;\n message: string;\n alertIcon?: string; \n}\n\n\n@Component({\n selector: 'cao-base-alert',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-alert.html',\n styleUrl: './base-alert.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseAlert implements OnInit {\n data!: {\n type: AlertType;\n title: string;\n message: string;\n alertIcon?: string\n };\n \n iconPath!: string;\n titleClass!: string;\n\n private iconPaths: Record<AlertType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n ngOnInit(): void {\n this.iconPath = this.iconPaths[this.data.type];\n this.titleClass = `title-${this.data.type}`;\n }\n}\n","<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"R-Clinicas Logo\" class=\"logo\" [ngSrc]=\"data.alertIcon ?? ''\" [fill]=\"true\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\">\n @if (data.title) {\n <div class=\"title\" [ngClass]=\"titleClass\">{{ data.title }}</div>\n } @if (data.title && data.message) {\n <div class=\"message-spacer\"></div>\n } @if (data.message) {\n <div class=\"message\">{{ data.message }}</div>\n }\n </div>\n <div class=\"icon-container\">\n <img alt=\"Alert Icon\" class=\"alert-icon\" [ngSrc]=\"iconPath\" [fill]=\"true\" />\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nexport type DialogType = \"success\" | \"error\" | \"info\" | \"warning\";\n\nexport interface IDialogConfig {\n type: DialogType;\n title: string;\n logoIcon?: string;\n message: string;\n confirmButtonText: string;\n cancelButtonText: string;\n onConfirm: () => void;\n onCancel: () => void;\n}\n\n@Component({\n selector: 'cao-base-dialog',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-dialog.html',\n styleUrl: './base-dialog.css',\n})\nexport class BaseDialog {\n @Input() config!: IDialogConfig;\n\n closeDialog: () => void = this.noop;\n\n protected iconPaths: Record<DialogType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n private noop(): void {\n return\n }\n\n getIconPath(): string {\n return this.iconPaths[this.config.type];\n }\n\n handleConfirm(): void {\n this.config.onConfirm?.();\n this.closeDialog();\n }\n\n handleCancel(): void {\n this.config.onCancel?.();\n this.closeDialog();\n }\n}","\n<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [fill]=\"true\" [ngSrc]=\"config.logoIcon ?? ''\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\" [ngClass]=\"config.type\">\n <div class=\"title\">{{ config.title }}</div>\n <div class=\"message\">{{ config.message }}</div>\n <div class=\"button-container\">\n @if (config.cancelButtonText) {\n <button\n type=\"button\"\n class=\"cancel-button\"\n [attr.data-cy]=\"config.cancelButtonText\"\n (keydown)=\"handleCancel()\"\n (click)=\"handleCancel()\">\n {{ config.cancelButtonText }}\n </button>\n } @if (config.confirmButtonText) {\n <button\n type=\"button\"\n class=\"confirm-button\"\n [ngClass]=\"config.type\"\n [attr.data-cy]=\"config.confirmButtonText\"\n (click)=\"handleConfirm()\"\n (keydown)=\"handleConfirm()\"\n >\n {{ config.confirmButtonText }}\n </button>\n }\n </div>\n </div>\n <div class=\"icon-container\">\n <img alt=\"Dialog Icon\" class=\"alert-icon\" [fill]=\"true\" [ngSrc]=\"getIconPath()\" />\n </div>\n </div>\n </div>\n</div>\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { NgModule } from \"@angular/core\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatChipsModule } from \"@angular/material/chips\";\nimport { MatNativeDateModule , MAT_DATE_LOCALE } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatRadioModule } from \"@angular/material/radio\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MatSidenavModule } from \"@angular/material/sidenav\";\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\nimport { MatSliderModule } from \"@angular/material/slider\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatTreeModule } from \"@angular/material/tree\";\n\n\nconst modules = [\n OverlayModule,\n MatSnackBarModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatNativeDateModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSortModule,\n MatSelectModule,\n MatTableModule,\n MatTabsModule,\n MatTooltipModule,\n MatSidenavModule,\n MatListModule,\n MatToolbarModule,\n MatTreeModule,\n];\n@NgModule({\n imports: [modules],\n exports: [modules],\n providers: [{ provide: MAT_DATE_LOCALE, useValue: \"pt-BR\" }],\n})\nexport class MaterialModule {}\n","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule, NgOptimizedImage } from \"@angular/common\";\nimport {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n ViewChild,\n Output,\n EventEmitter,\n Injectable } from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription , BehaviorSubject, Observable , Subject } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\nimport { MaterialModule } from \"../../../material.module\";\n\n\n\nexport interface IColumnButton {\n icon: string;\n label: string;\n onClick: (data: any) => void;\n tooltip?: string;\n}\n\nexport interface IColumnConfig {\n type:\n | \"STRING\"\n | \"BOOLEAN\"\n | \"SINGLE_BUTTON\"\n | \"DATE\"\n | \"NUMBER\"\n | \"text\"\n | \"number\"\n | \"boolean\"\n | \"date\"\n | \"actions\";\n element?: string;\n key?: string;\n header: string;\n visible: boolean;\n sortable?: boolean;\n isDefaultSort?: boolean;\n defaultSortDirection?: \"asc\" | \"desc\";\n pipe?: any;\n buttons?: IColumnButton[];\n}\n\nexport interface ITableConfig {\n columns: string[];\n subTitle?: string | null;\n result?: {\n noData: string;\n defaultMessage: string;\n };\n data: any[];\n columnData: Record<string, IColumnConfig>;\n paginated?: boolean;\n}\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class FilterTableService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class TableService {\n private tableConfigSubject = new BehaviorSubject<ITableConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnConfig[]>([]);\n\n tableConfig$: Observable<ITableConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnConfig[], customConfig?: Partial<ITableConfig>): void {\n const tableConfig: ITableConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnConfig[\"type\"] {\n if (value === null || value === undefined) {return \"STRING\";}\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}\n\nexport function getPtBrPaginatorIntl(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n\n@Component({\n selector: \"cao-base-table\",\n templateUrl: \"./base-table.html\",\n styleUrls: [\"./base-table.css\"],\n imports: [CommonModule, MaterialModule, NgOptimizedImage],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntl() }],\n})\nexport class TableComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n @Input() isPaginatedByServer = false;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITableConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n getAllColumns(): string[] {\n return [\"select\", ...this.displayedColumns];\n }\n\n constructor(\n protected tableService: TableService,\n protected liveAnnouncer: LiveAnnouncer,\n protected filterTableService: FilterTableService\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n\n // Connect paginator if available\n setTimeout(() => {\n if (this.paginator) {\n this.dataSource.paginator = this.paginator;\n this.paginator.pageIndex = this.currentPage - 1;\n this.paginator.pageSize = this.pageSize;\n this.paginator.showFirstLastButtons = this.showFirstLastButtons;\n }\n });\n this.selection.changed.subscribe(() => {\n this.selectionChanged.emit(this.selection.selected);\n });\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n toggleColumnVisibility(columnKey: string): void {\n this.tableService.toggleColumnVisibility(columnKey);\n }\n\n isColumnVisible(column: string): boolean {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return true;\n }\n return this.tableConfig.columnData[column].visible !== false;\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnType(column: string): IColumnConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n\n isAllSelected(): boolean {\n if (\n !this.paginator ||\n !this.dataSource.filteredData ||\n this.dataSource.filteredData.length === 0\n ) {\n return false;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n if (currentPageData.length === 0) {\n return false;\n }\n\n return currentPageData.every((row) => this.selection.isSelected(row));\n }\n\n toggleAllRows(): void {\n if (!this.paginator || !this.dataSource.filteredData) {\n return;\n }\n\n if (this.isAllSelected()) {\n this.selection.clear();\n } else {\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n currentPageData.forEach((row) => this.selection.select(row));\n }\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n trackByFn(index: number, item: any): any {\n return item;\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n /**\n * Handle pagination events from Mat Paginator\n */\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n /**\n * Navigate to first page programmatically\n */\n goToFirstPage(): void {\n if (this.currentPage !== 1) {\n this.onPageChanged(1);\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n }\n }\n\n /**\n * Navigate to last page programmatically\n */\n goToLastPage(): void {\n const lastPage = Math.max(1, Math.ceil(this.totalItems / this.pageSize));\n if (this.currentPage !== lastPage) {\n this.onPageChanged(lastPage);\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n /**\n * Update total items when data changes\n */\n updateTotalItems(): void {\n if (this.isPaginatedByServer) {\n return;\n }\n\n this.totalItems = this.dataSource.data.length;\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <div class=\"table-controls\">\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </div>\n\n <table\n mat-table\n matSort\n class=\"mat-elevation-z8\"\n [dataSource]=\"dataSource\"\n (matSortChange)=\"announceSortChange($event)\">\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox\n data-cy=\"checkbox-select-all\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (change)=\"$event ? toggleAllRows() : null\" />\n </th>\n <td *matCellDef=\"let row\" mat-cell>\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-select-row-' + row.id\"\n [checked]=\"selection.isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\" />\n </td>\n </ng-container>\n\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell [mat-sort-header]=\"column\">\n <span>{{ getColumnHeader(column) }}</span>\n <img\n alt=\"icone\"\n [ngSrc]=\"'.src/assets/svg/arrow-left-double.svg'\"\n [fill]=\"true\"\n [matMenuTriggerFor]=\"menuColunas\" />\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </th>\n <td *matCellDef=\"let element\" mat-cell>\n @switch (getColumnType(column)) { @case ('STRING') {\n <span>{{ element[getColumnElement(column)] }}</span>\n } @case ('BOOLEAN') {\n <mat-checkbox\n disabled\n [attr.data-cy]=\"'checkbox-value-' + column + '-' + element.id\"\n [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button\n mat-icon-button\n [type]=\"'button'\" [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } @default {\n <span>{{ element[getColumnElement(column)] }}</span>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td *matFooterCellDef mat-footer-cell [attr.colspan]=\"displayedColumns.length + 1\">\n Total de Registros: {{ dataSource.data.length }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"getAllColumns()\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: getAllColumns();\"\n mat-row\n (click)=\"selection.toggle(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row></tr>\n </table>\n }\n</div>\n\n<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n\n@if (!tableConfig || tableConfig.data.length === 0) {\n<div class=\"no-data-container\">\n <h2 class=\"no-data-title\">{{ tableConfig?.result?.noData || 'Não há dados disponíveis' }}</h2>\n <p class=\"no-data-message\"\n >{{ tableConfig?.result?.defaultMessage || 'Adicione alguns dados' }}</p\n >\n</div>\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, Input, OnInit, forwardRef } from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\nimport {\n MatAutocompleteModule,\n MatAutocompleteSelectedEvent,\n} from \"@angular/material/autocomplete\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInputModule } from \"@angular/material/input\";\n\nimport { Observable, startWith, map } from \"rxjs\";\n\ninterface IAutoCompleteOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n}\n\n@Component({\n selector: \"cao-autocomplete\",\n templateUrl: \"./autocomplete.html\",\n styleUrls: [\"./autocomplete.css\"],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatAutocompleteModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RnvAutocompleteComponent),\n multi: true,\n },\n ],\n})\nexport class RnvAutocompleteComponent implements OnInit, ControlValueAccessor {\n @Input() label = \"\";\n @Input() placeholder = \"\";\n @Input() options: IAutoCompleteOption[] = [];\n @Input() control: AbstractControl = new FormControl();\n @Input() dataCy = \"\";\n @Input() controlName = \"\";\n\n internalControl = new FormControl(\"\");\n filteredOptions$!: Observable<IAutoCompleteOption[]>;\n isFocused = false;\n\n private onChange: (value: IAutoCompleteOption | string) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngOnInit(): void {\n this.filteredOptions$ = this.internalControl.valueChanges.pipe(\n startWith(\"\"),\n map((value) => this.filter(value || \"\"))\n );\n\n this.control.valueChanges.subscribe((value) => {\n const displayValue = value && typeof value === \"object\" ? this.displayFn(value) : value;\n this.internalControl.setValue(displayValue, { emitEvent: false });\n });\n }\n\n onFocus() {\n this.isFocused = true;\n this.onTouched();\n }\n\n onBlur(): void {\n this.isFocused = false;\n this.onTouched();\n }\n\n private filter(value: string | IAutoCompleteOption): IAutoCompleteOption[] {\n const filterValue = (typeof value === \"string\" ? value : value?.nome)?.toLowerCase() || \"\";\n if (!this.options) {\n return [];\n }\n return this.options.filter((option) => {\n const nomeMatch = option.nome.toLowerCase().includes(filterValue);\n const idMatch = option.id?.toString().toLowerCase().includes(filterValue);\n return nomeMatch || idMatch;\n });\n }\n\n displayFn(option: IAutoCompleteOption): string {\n return option && option.nome ? option.nome : \"\";\n }\n\n onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n this.onChange(event.option.value);\n this.onTouched();\n }\n\n get errorText(): string | null {\n if (!this.control) {return null;}\n\n const isEmpty = this.control.value === null || this.control.value === \"\";\n\n if (this.control.hasError(\"required\") && isEmpty) {\n return \"*Campo obrigatório\";\n }\n\n if (this.control.touched && this.control.invalid) {\n if (this.control.hasError(\"cpfInvalid\")) {return \"CPF inválido\";}\n if (this.control.hasError(\"cellPhoneInvalid\")) {return \"Número inválido\";}\n if (this.control.hasError(\"emailInvalid\")) {return \"Email inválido\";}\n if (this.control.hasError(\"cnpjInvalid\")) {return \"CNPJ inválido\";}\n if (this.control.hasError(\"rgInvalid\")) {return \"RG inválido\";}\n if (this.control.hasError(\"dateInvalid\")) {return \"Data inválida\";}\n if (this.control.hasError(\"dateStartInvalid\")) {return \"Data Inicial inválida\";}\n if (this.control.hasError(\"dateEndInvalid\")) {return \"Data Final inválida\";}\n return \"Formato inválido\";\n }\n\n return null;\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n writeValue(value: IAutoCompleteOption | string): void {\n const displayValue = value && typeof value === \"object\" ? this.displayFn(value) : value;\n this.internalControl.setValue(displayValue, { emitEvent: false });\n }\n\n registerOnChange(fn: (value: IAutoCompleteOption | string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n isDisabled ? this.internalControl.disable() : this.internalControl.enable();\n }\n}\n","<div class=\"form-field\">\n @if (label) {\n <label [for]=\"internalControl\">{{ label }}</label>\n }\n\n <mat-form-field appearance=\"outline\" class=\"rnv-autocomplete-mat-form-field\">\n <div class=\"input-wrapper\" [class.focused]=\"isFocused\">\n <input\n type=\"text\"\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"internalControl\"\n [matAutocomplete]=\"auto\"\n [attr.data-cy]=\"dataCy\"\n [ngClass]=\"[\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\" />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayFn\"\n (optionSelected)=\"onOptionSelected($event)\">\n @for (option of filteredOptions$ | async; track option.id) {\n <mat-option [value]=\"option\">{{ option.nome }}</mat-option>\n }\n </mat-autocomplete>\n </div>\n </mat-form-field>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDatepickerModule, MatDateRangeInput } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n selector: 'cao-base-time-range',\n imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule],\n templateUrl: './base-time-range.html',\n styleUrl: './base-time-range.css',\n})\nexport class BaseTimeRange implements OnInit{\n @Input() label = \"\";\n @Input() max: Date | undefined;\n @Input() minDate: Date | undefined;\n @Input() maxDate: Date | undefined;\n @Input() startDate: Date | undefined;\n @Input() finalDate: Date | undefined;\n @Input() dataCy?: string\n @Input() controlName = \"\";\n\n @Output() readonly rangeSelected = new EventEmitter<Date[]>();\n\n @ViewChild(MatDateRangeInput) dateRangeInput!: MatDateRangeInput<Date>;\n\n ngOnInit(): void {\n if(!this.dataCy){\n this.dataCy = `time-range-${this.label}`\n }\n }\n\n onSelectStartDate(event: any) {\n const date = event.target.value as Date;\n this.startDate = date;\n this.finalDate = undefined;\n\n const maxDate = new Date(date);\n maxDate.setDate(maxDate.getDate() + 30);\n\n this.maxDate = maxDate;\n }\n\n onInputMaxDate(event: any) {\n const finalDate = event.target.value as Date;\n if (this.startDate && finalDate) {\n const data = [this.startDate, finalDate];\n this.rangeSelected.emit(data);\n }\n }\n\n clearInputs() {\n this.max = undefined;\n this.minDate = undefined;\n this.maxDate = undefined;\n this.startDate = undefined;\n this.finalDate = undefined;\n\n this.dateRangeInput._startInput.value = \"\";\n this.dateRangeInput._endInput.value = \"\";\n }\n}\n","<label class=\"label-dropw-down\" [for]=\"controlName\">{{ label }}</label>\n<mat-form-field class=\"input-data-field\" subscriptSizing=\"dynamic\" appearance=\"outline\">\n <mat-date-range-input [rangePicker]=\"picker\" [max]=\"maxDate\"\n [attr.dataCy]=\"this.dataCy\"\n >\n <input\n #startDateInput\n matStartDate\n placeholder=\"DATA INÍCIO\"\n [tabIndex]=\"1\"\n [value]=\"startDate\"\n (dateInput)=\"onSelectStartDate($event)\" />\n <input\n #endDateInput\n matEndDate\n placeholder=\"DATA FIM\"\n [tabIndex]=\"2\"\n [value]=\"finalDate\"\n (dateInput)=\"onInputMaxDate($event)\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" />\n <mat-date-range-picker #picker />\n</mat-form-field>\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n FormControl,\n} from \"@angular/forms\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\ninterface IDropDownOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n dataCy?: string;\n}\n\n@Component({\n selector: \"cao-drop-down\",\n templateUrl: \"./drop-down.html\",\n styleUrl: \"./drop-down.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatIconModule,\n CommonModule,\n MatTooltipModule,\n ReactiveFormsModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropDownComponent),\n multi: true,\n },\n ],\n})\nexport class DropDownComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @Input() textHeader = \"SELECIONE UM ITEM\";\n @Input() options: IDropDownOption[] = [];\n @Input() dropDownClass = \"\";\n @Input() styleDropDown: { [klass: string]: unknown } = {};\n @Input() control?: AbstractControl | null;\n @Input() controlName = \"\";\n @Input() isDisabled = false;\n @Output() readonly itemSelected = new EventEmitter<IDropDownOption>();\n @Input() tooltip = \"\";\n @Input() dropDirectionInput: \"up\" | \"down\" = \"down\";\n @Input() dataCy?: string = \"\";\n\n @Input() trackByFn?: (index: number, item: IDropDownOption) => unknown;\n @Input() compareWith?: (option: unknown, value: unknown) => boolean;\n\n\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input() listAriaLabel?: string;\n\n\n isOpen = false;\n selectedItem?: IDropDownOption;\n filteredOptions: IDropDownOption[] = [];\n searchControl = new FormControl(\"\");\n isTouched = false;\n isFocused = false;\n dropDirection: string | undefined;\n removeValidBorder = false;\n\n\n focusedIndex = -1;\n\n private _handleClickOutside = this.onClickOutside.bind(this);\n\n constructor(\n private _eref: ElementRef,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngOnInit(): void {\n document.addEventListener(\"click\", this._handleClickOutside, true);\n this.filteredOptions = [...this.options];\n\n this.searchControl.valueChanges.subscribe((value) => {\n this.filterOptions(value || \"\");\n this.focusedIndex = -1\n });\n }\n\n ngOnDestroy(): void {\n document.removeEventListener(\"click\", this._handleClickOutside, true);\n }\n\n get activeDescendant(): string | null {\n if (this.isOpen && this.focusedIndex >= 0 && this.filteredOptions[this.focusedIndex]) {\n return `option-${this.dataCy}-${this.focusedIndex}`;\n }\n return null;\n }\n\n toggleDropdown(): void {\n if (this.isDisabled) { return };\n\n this.checkAvailableSpace();\n this.isOpen = !this.isOpen;\n this.isFocused = this.isOpen;\n this.markAsTouched();\n\n if (this.isOpen) {\n this.searchControl.setValue(\"\");\n this.filteredOptions = [...this.options];\n this.removeValidBorder = false;\n this.focusedIndex = -1;\n\n\n setTimeout(() => {\n if (this.isOpen) {\n const searchInput = this._eref.nativeElement.querySelector('.dropdown-search input');\n if (searchInput) {\n searchInput.focus();\n }\n }\n });\n } else {\n this.focusedIndex = -1;\n }\n\n this.cdr.detectChanges();\n }\n\n selectItem(option: IDropDownOption): void {\n if (this.isDisabled) { return };\n\n this.selectedItem = option;\n this.isOpen = false;\n this.focusedIndex = -1;\n this.itemSelected.emit(option);\n this.onChange(option);\n this.markAsTouched();\n this.cdr.detectChanges();\n }\n\n clear(): void {\n this.selectedItem = undefined;\n this.onChange(null);\n this.cdr.detectChanges();\n }\n\n filterOptions(searchTerm: string) {\n if (!searchTerm) {\n this.filteredOptions = [...this.options];\n return;\n }\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n this.filteredOptions = this.options.filter(\n (option) =>\n option.nome.toLowerCase().includes(lowerCaseSearchTerm) ||\n option.id?.toString().toLowerCase().includes(lowerCaseSearchTerm)\n );\n }\n\n trackBy(index: number, item: IDropDownOption): unknown {\n return this.trackByFn ? this.trackByFn(index, item) : item.id;\n }\n\n private onClickOutside(event: MouseEvent): void {\n if (!this._eref.nativeElement.contains(event.target)) {\n if (this.isOpen) {\n this.isOpen = false;\n }\n if (this.isFocused) {\n this.isFocused = false;\n }\n this.focusedIndex = -1;\n this.markAsTouched();\n this.removeValidBorder = true;\n this.cdr.detectChanges();\n }\n }\n\n onArrowDown(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = 0;\n } else {\n\n this.focusedIndex = (this.focusedIndex + 1) % this.filteredOptions.length;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onArrowUp(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = this.filteredOptions.length - 1;\n } else {\n\n this.focusedIndex = this.focusedIndex <= 0\n ? this.filteredOptions.length - 1\n : this.focusedIndex - 1;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onSearchEnter(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n this.selectItem(this.filteredOptions[this.focusedIndex]);\n } else if (this.filteredOptions.length > 0) {\n\n this.selectItem(this.filteredOptions[0]);\n }\n }\n\n closeDropdown(): void {\n if (this.isDisabled) { return };\n\n this.isOpen = false;\n this.focusedIndex = -1;\n this.isFocused = false;\n this.cdr.detectChanges();\n }\n\n private scrollIntoView(): void {\n if (!this.isOpen || this.focusedIndex === -1) { return };\n\n setTimeout(() => {\n const element = document.getElementById(`option-${this.dataCy}-${this.focusedIndex}`);\n if (element) {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth'\n });\n }\n }, 0);\n }\n\n checkAvailableSpace(): void {\n if (this.dropDirectionInput === \"up\") {\n this.dropDirection = \"up\";\n return;\n }\n\n const rect = this._eref.nativeElement.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const dropdownHeight = 200\n\n const spaceBelow = windowHeight - rect.bottom;\n this.dropDirection = spaceBelow < dropdownHeight ? \"up\" : \"down\";\n }\n\n\n writeValue(value: unknown): void {\n if (value !== null && value !== undefined) {\n const match = this.options.find((opt) =>\n this.compareWith\n ? this.compareWith(opt, value)\n : opt.id === (typeof value === \"object\" && value ? (value as any).id : value)\n );\n\n if (match) {\n this.selectedItem = match;\n } else {\n const matchByName = this.options.find((opt) => opt.nome === value);\n if (matchByName) {\n this.selectedItem = matchByName;\n }\n }\n } else {\n this.selectedItem = undefined;\n }\n this.cdr.detectChanges();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onChange: (value: unknown) => void = () => { };\n onTouched = () => { };\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n if (this.control.hasError(\"required\")) {\n return \"*Campo obrigatório\";\n }\n return null;\n }\n\n private markAsTouched() {\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n this.control?.markAsTouched();\n }\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n}","<div\n class=\"dropdown-container\"\n role=\"combobox\"\n [ngClass]=\"[\n dropDownClass,\n isDisabled ? 'disabled' : '',\n control?.touched && control?.invalid ? 'invalid' : '',\n (control?.touched && control?.valid && selectedItem && isFocused && !removeValidBorder) ? 'valid' : ''\n ]\"\n [ngStyle]=\"styleDropDown\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-controls]=\"isOpen ? ('dropdown-list-' + dataCy) : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"isDisabled\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.data-cy]=\"dataCy\">\n \n <div\n class=\"dropdown-header\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n tabindex=\"0\"\n role=\"button\"\n [matTooltip]=\"tooltip\"\n [attr.aria-disabled]=\"isDisabled\"\n (click)=\"!isDisabled && toggleDropdown()\"\n (keydown.enter)=\"!isDisabled && toggleDropdown()\"\n (keydown.space)=\"!isDisabled && toggleDropdown(); $event.preventDefault()\"\n (keydown.arrowdown)=\"!isDisabled && onArrowDown($event)\"\n (keydown.arrowup)=\"!isDisabled && onArrowUp($event)\"\n (keydown.escape)=\"!isDisabled && closeDropdown()\">\n <span id=\"dropdown-label-{{dataCy}}\">{{ selectedItem?.nome ?? textHeader }}</span>\n <mat-icon aria-hidden=\"true\">{{ isOpen ? 'expand_less' : 'expand_more' }}</mat-icon>\n </div>\n\n @if (isOpen) {\n <ul \n class=\"dropdown-list\" \n role=\"listbox\"\n [id]=\"'dropdown-list-' + dataCy\"\n [ngClass]=\"{ 'drop-up': dropDirection === 'up', 'dropdown-secundary': dropDownClass === 'dropdown-secundary' }\"\n [attr.aria-label]=\"listAriaLabel || 'Opções'\"\n [attr.aria-labelledby]=\"'dropdown-label-' + dataCy\">\n \n\n <li class=\"dropdown-search\" role=\"none\">\n <input \n type=\"text\" \n placeholder=\"Buscar por código ou nome...\" \n role=\"searchbox\"\n aria-label=\"Buscar opções\"\n [formControl]=\"searchControl\"\n (keydown.arrowdown)=\"onArrowDown($event)\"\n (keydown.arrowup)=\"onArrowUp($event)\"\n (keydown.enter)=\"onSearchEnter($event)\"\n (keydown.escape)=\"closeDropdown()\" />\n </li>\n \n\n @for (item of filteredOptions; track $index) { \n @if(item && item.nome) {\n <li\n class=\"dropdown-item\"\n role=\"option\"\n [ngClass]=\"{\n 'icon-right': item.iconPosition === 'right',\n 'selected': item === selectedItem,\n 'focused': $index === focusedIndex\n }\"\n [attr.id]=\"'option-' + dataCy + '-' + $index\"\n [attr.aria-selected]=\"item === selectedItem\"\n [attr.tabindex]=\"$index === focusedIndex ? 0 : -1\"\n [attr.data-cy]=\"item.dataCy\"\n (click)=\"selectItem(item)\"\n (keydown.enter)=\"selectItem(item)\"\n (keydown.space)=\"selectItem(item); $event.preventDefault()\"\n (mouseenter)=\"focusedIndex = $index\">\n @if (item.icon && item.iconPosition !== 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n } \n <span>{{ item.nome }}</span>\n @if (item.icon && item.iconPosition === 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n }\n </li>\n } \n }\n </ul>\n }\n \n @if (control?.touched && control?.invalid && errorText) {\n <div class=\"message-error\">{{ errorText }}</div>\n }\n</div>","import { Component, inject, Input, Signal } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\nexport interface INavContent {\n title: string;\n links: INavLink[];\n permissions?: string[];\n directRoute?: boolean;\n}\nexport interface INavLink {\n text: string;\n url: string;\n disabled?: boolean;\n isValidationRequired?: boolean;\n dataCy?: string;\n directRoute?: boolean;\n}\n\n@Component({\n standalone: true,\n selector: \"cao-links-button\",\n templateUrl: \"./links-button.html\",\n styleUrl: \"./links-button.css\",\n})\nexport class LinksButton {\n @Input({ required: true }) navContent!: Signal<INavContent>;\n router = inject(Router);\n route = inject(ActivatedRoute);\n\n isValidationRequired(link: INavLink) {\n if (link.disabled) {\n return;\n }\n link.directRoute ? this.directRoute(link.url) : this.navigateTo(link.url);\n }\n\n private navigateTo(url: string) {\n this.router.navigate([url], { relativeTo: this.route });\n }\n\n private directRoute(url: string) {\n this.router.navigate([url]);\n }\n\n}\n","<div class=\"links-info\">\n @if (navContent()) {\n <h2>{{ navContent().title }}</h2>\n <div class=\"links\">\n @for (link of navContent().links; track $index) {\n <div\n class=\"link\"\n role=\"button\"\n tabindex=\"0\"\n [tabIndex]=\"link.disabled ? -1 : 0\"\n [class.disabled]=\"link.disabled\"\n [attr.data-cy]=\"link.dataCy\"\n [attr.aria-disabled]=\"link.disabled\"\n (click)=\"isValidationRequired(link)\"\n (keydown.enter)=\"isValidationRequired(link)\"\n (keydown.space)=\"isValidationRequired(link); $event.preventDefault()\"\n >\n {{ link.text }}\n </div>\n }\n </div>\n }\n</div>","import { Component, Input } from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"cao-footer\",\n templateUrl: \"./footer.html\",\n styleUrl: \"./footer.css\",\n})\nexport class Footer {\n currentYear: number = new Date().getFullYear();\n @Input() currentRoute = \"\";\n @Input() footerText = \"\";\n}\n","<footer>\n <ul>\n <li>{{ footerText }} © {{ currentYear }}</li>\n </ul>\n</footer>\n","/*\n * Public API Surface of ngx-opalbytes-components\n */\n\nexport * from './lib/shared/components/base-button/base-button'\nexport * from './lib/shared/components/base-alert/base-alert'\nexport * from './lib/shared/components/base-dialog/base-dialog'\nexport * from './lib/shared/components/base-table/base-table'\nexport * from './lib/shared/components/autocomplete/autocomplete'\nexport * from './lib/shared/components/base-time-range/base-time-range'\nexport * from './lib/shared/components/drop-down/drop-down'\nexport * from './lib/shared/components/links-button/links-button'\nexport * from './lib/shared/components/footer/footer'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i10","map","i4","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-opalbytes-components.mjs","sources":["../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-alert/base-alert.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-alert/base-alert.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-dialog/base-dialog.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-dialog/base-dialog.html","../../../projects/ngx-opalbytes-components/src/lib/material.module.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-table/base-table.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-table/base-table.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.html","../../../projects/ngx-opalbytes-components/src/public-api.ts","../../../projects/ngx-opalbytes-components/src/ngx-opalbytes-components.ts"],"sourcesContent":["import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { LucideAngularModule } from 'lucide-angular';\n\n@Component({\n selector: 'cao-base-button',\n imports: [CommonModule, MatTooltipModule, NgOptimizedImage, LucideAngularModule],\n templateUrl: './base-button.html',\n styleUrl: './base-button.css',\n})\nexport class BaseButton implements OnInit {\n @Output() readonly buttonClick = new EventEmitter<void>();\n\n @Input() buttonText = \"Clique!\";\n @Input() isDarkMode = false;\n @Input() isDisabled = false;\n @Input() isLoading = false;\n @Input() btnClass = \"\";\n\n @Input() tooltip?:string;\n @Input() trailingIcon?: string;\n @Input() leadingIcon?: string;\n @Input() isLucideIcon = true;\n @Input() dataCy?: string;\n\n ngOnInit(): void {\n if (!this.dataCy) {\n this.dataCy = `btn-${this.buttonText.replace(/\\s+/g, '-').toLowerCase()}`;\n }\n\n if(!this.tooltip && this.buttonText.length >= 20){\n this.tooltip = this.buttonText\n }\n }\n\n onClick(): void {\n if (!this.isDisabled && !this.isLoading) {\n this.buttonClick.emit();\n }\n }\n}\n","<button\n type=\"button\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n [matTooltip]=\"tooltip\"\n [matTooltipDisabled]=\"!tooltip\"\n [disabled]=\"isDisabled || isLoading\"\n [class.darkMode]=\"isDarkMode\"\n [class.disabled]=\"isDisabled\"\n [class.loading]=\"isLoading\"\n [ngClass]=\"btnClass\"\n [attr.data-cy]=\"dataCy\"\n (click)=\"onClick()\"\n (keydown)=\"onClick()\"\n >\n @if (leadingIcon) {\n <span [class]=\"isLucideIcon ? 'lucide-icons leading-icon' : 'leading-icon'\">\n @if(isLucideIcon) { \n <lucide-angular class=\"my-icon\" [name]=\"leadingIcon\" />\n } @else {\n <img alt=\"icon\" [ngSrc]=\"leadingIcon\" />\n }\n </span>\n } {{ buttonText }} @if (trailingIcon) {\n <span [class]=\"isLucideIcon ? 'lucide-icons trailing-icon' : 'trailing-icon'\">\n @if(isLucideIcon){ \n <lucide-angular class=\"my-icon\" [name]=\"trailingIcon\" />\n } @else {\n <img alt=\"icon\" [ngSrc]=\"trailingIcon\" />\n }\n </span>\n } @if (isLoading) {\n <span class=\"loader\"></span>\n }\n</button>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\nexport type AlertType = \"success\" | \"error\" | \"info\" | \"warning\";\n\nexport interface IAlertConfig {\n type: AlertType;\n title: string;\n message: string;\n alertIcon?: string; \n}\n\n\n@Component({\n selector: 'cao-base-alert',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-alert.html',\n styleUrl: './base-alert.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseAlert implements OnInit {\n data!: {\n type: AlertType;\n title: string;\n message: string;\n alertIcon?: string\n };\n \n iconPath!: string;\n titleClass!: string;\n\n private iconPaths: Record<AlertType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n ngOnInit(): void {\n this.iconPath = this.iconPaths[this.data.type];\n this.titleClass = `title-${this.data.type}`;\n }\n}\n","<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"R-Clinicas Logo\" class=\"logo\" [ngSrc]=\"data.alertIcon ?? ''\" [fill]=\"true\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\">\n @if (data.title) {\n <div class=\"title\" [ngClass]=\"titleClass\">{{ data.title }}</div>\n } @if (data.title && data.message) {\n <div class=\"message-spacer\"></div>\n } @if (data.message) {\n <div class=\"message\">{{ data.message }}</div>\n }\n </div>\n <div class=\"icon-container\">\n <img alt=\"Alert Icon\" class=\"alert-icon\" [ngSrc]=\"iconPath\" [fill]=\"true\" />\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nexport type DialogType = \"success\" | \"error\" | \"info\" | \"warning\";\n\nexport interface IDialogConfig {\n type: DialogType;\n title: string;\n logoIcon?: string;\n message: string;\n confirmButtonText: string;\n cancelButtonText: string;\n onConfirm: () => void;\n onCancel: () => void;\n}\n\n@Component({\n selector: 'cao-base-dialog',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-dialog.html',\n styleUrl: './base-dialog.css',\n})\nexport class BaseDialog {\n @Input() config!: IDialogConfig;\n\n closeDialog: () => void = this.noop;\n\n protected iconPaths: Record<DialogType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n private noop(): void {\n return\n }\n\n getIconPath(): string {\n return this.iconPaths[this.config.type];\n }\n\n handleConfirm(): void {\n this.config.onConfirm?.();\n this.closeDialog();\n }\n\n handleCancel(): void {\n this.config.onCancel?.();\n this.closeDialog();\n }\n}","\n<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [fill]=\"true\" [ngSrc]=\"config.logoIcon ?? ''\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\" [ngClass]=\"config.type\">\n <div class=\"title\">{{ config.title }}</div>\n <div class=\"message\">{{ config.message }}</div>\n <div class=\"button-container\">\n @if (config.cancelButtonText) {\n <button\n type=\"button\"\n class=\"cancel-button\"\n [attr.data-cy]=\"config.cancelButtonText\"\n (keydown)=\"handleCancel()\"\n (click)=\"handleCancel()\">\n {{ config.cancelButtonText }}\n </button>\n } @if (config.confirmButtonText) {\n <button\n type=\"button\"\n class=\"confirm-button\"\n [ngClass]=\"config.type\"\n [attr.data-cy]=\"config.confirmButtonText\"\n (click)=\"handleConfirm()\"\n (keydown)=\"handleConfirm()\"\n >\n {{ config.confirmButtonText }}\n </button>\n }\n </div>\n </div>\n <div class=\"icon-container\">\n <img alt=\"Dialog Icon\" class=\"alert-icon\" [fill]=\"true\" [ngSrc]=\"getIconPath()\" />\n </div>\n </div>\n </div>\n</div>\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { NgModule } from \"@angular/core\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatChipsModule } from \"@angular/material/chips\";\nimport { MatNativeDateModule , MAT_DATE_LOCALE } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatRadioModule } from \"@angular/material/radio\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MatSidenavModule } from \"@angular/material/sidenav\";\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\nimport { MatSliderModule } from \"@angular/material/slider\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { MatTimepickerModule } from \"@angular/material/timepicker\";\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatTreeModule } from \"@angular/material/tree\";\n\n\nconst modules = [\n OverlayModule,\n MatSnackBarModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatNativeDateModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSortModule,\n MatSelectModule,\n MatTableModule,\n MatTabsModule,\n MatTooltipModule,\n MatSidenavModule,\n MatListModule,\n MatToolbarModule,\n MatTreeModule,\n MatTimepickerModule\n];\n@NgModule({\n imports: [modules],\n exports: [modules],\n providers: [{ provide: MAT_DATE_LOCALE, useValue: \"pt-BR\" }],\n})\nexport class MaterialModule {}\n","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule, NgOptimizedImage } from \"@angular/common\";\nimport {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n ViewChild,\n Output,\n EventEmitter,\n Injectable } from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription , BehaviorSubject, Observable , Subject } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\nimport { MaterialModule } from \"../../../material.module\";\n\n\n\nexport interface IColumnButton {\n icon: string;\n label: string;\n onClick: (data: any) => void;\n tooltip?: string;\n}\n\nexport interface IColumnConfig {\n type:\n | \"STRING\"\n | \"BOOLEAN\"\n | \"SINGLE_BUTTON\"\n | \"DATE\"\n | \"NUMBER\"\n | \"text\"\n | \"number\"\n | \"boolean\"\n | \"date\"\n | \"actions\";\n element?: string;\n key?: string;\n header: string;\n visible: boolean;\n sortable?: boolean;\n isDefaultSort?: boolean;\n defaultSortDirection?: \"asc\" | \"desc\";\n pipe?: any;\n buttons?: IColumnButton[];\n}\n\nexport interface ITableConfig {\n columns: string[];\n subTitle?: string | null;\n result?: {\n noData: string;\n defaultMessage: string;\n };\n data: any[];\n columnData: Record<string, IColumnConfig>;\n paginated?: boolean;\n}\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class FilterTableService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class TableService {\n private tableConfigSubject = new BehaviorSubject<ITableConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnConfig[]>([]);\n\n tableConfig$: Observable<ITableConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnConfig[], customConfig?: Partial<ITableConfig>): void {\n const tableConfig: ITableConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnConfig[\"type\"] {\n if (value === null || value === undefined) {return \"STRING\";}\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}\n\nexport function getPtBrPaginatorIntl(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n\n@Component({\n selector: \"cao-base-table\",\n templateUrl: \"./base-table.html\",\n styleUrls: [\"./base-table.css\"],\n imports: [CommonModule, MaterialModule, NgOptimizedImage],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntl() }],\n})\nexport class TableComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n @Input() isPaginatedByServer = false;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITableConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n getAllColumns(): string[] {\n return [\"select\", ...this.displayedColumns];\n }\n\n constructor(\n protected tableService: TableService,\n protected liveAnnouncer: LiveAnnouncer,\n protected filterTableService: FilterTableService\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n\n // Connect paginator if available\n setTimeout(() => {\n if (this.paginator) {\n this.dataSource.paginator = this.paginator;\n this.paginator.pageIndex = this.currentPage - 1;\n this.paginator.pageSize = this.pageSize;\n this.paginator.showFirstLastButtons = this.showFirstLastButtons;\n }\n });\n this.selection.changed.subscribe(() => {\n this.selectionChanged.emit(this.selection.selected);\n });\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n toggleColumnVisibility(columnKey: string): void {\n this.tableService.toggleColumnVisibility(columnKey);\n }\n\n isColumnVisible(column: string): boolean {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return true;\n }\n return this.tableConfig.columnData[column].visible !== false;\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnType(column: string): IColumnConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n\n isAllSelected(): boolean {\n if (\n !this.paginator ||\n !this.dataSource.filteredData ||\n this.dataSource.filteredData.length === 0\n ) {\n return false;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n if (currentPageData.length === 0) {\n return false;\n }\n\n return currentPageData.every((row) => this.selection.isSelected(row));\n }\n\n toggleAllRows(): void {\n if (!this.paginator || !this.dataSource.filteredData) {\n return;\n }\n\n if (this.isAllSelected()) {\n this.selection.clear();\n } else {\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n currentPageData.forEach((row) => this.selection.select(row));\n }\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n trackByFn(index: number, item: any): any {\n return item;\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n /**\n * Handle pagination events from Mat Paginator\n */\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n /**\n * Navigate to first page programmatically\n */\n goToFirstPage(): void {\n if (this.currentPage !== 1) {\n this.onPageChanged(1);\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n }\n }\n\n /**\n * Navigate to last page programmatically\n */\n goToLastPage(): void {\n const lastPage = Math.max(1, Math.ceil(this.totalItems / this.pageSize));\n if (this.currentPage !== lastPage) {\n this.onPageChanged(lastPage);\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n /**\n * Update total items when data changes\n */\n updateTotalItems(): void {\n if (this.isPaginatedByServer) {\n return;\n }\n\n this.totalItems = this.dataSource.data.length;\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <div class=\"table-controls\">\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </div>\n\n <table\n mat-table\n matSort\n class=\"mat-elevation-z8\"\n [dataSource]=\"dataSource\"\n (matSortChange)=\"announceSortChange($event)\">\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox\n data-cy=\"checkbox-select-all\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (change)=\"$event ? toggleAllRows() : null\" />\n </th>\n <td *matCellDef=\"let row\" mat-cell>\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-select-row-' + row.id\"\n [checked]=\"selection.isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\" />\n </td>\n </ng-container>\n\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell [mat-sort-header]=\"column\">\n <span>{{ getColumnHeader(column) }}</span>\n <img\n alt=\"icone\"\n [ngSrc]=\"'.src/assets/svg/arrow-left-double.svg'\"\n [fill]=\"true\"\n [matMenuTriggerFor]=\"menuColunas\" />\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </th>\n <td *matCellDef=\"let element\" mat-cell>\n @switch (getColumnType(column)) { @case ('STRING') {\n <span>{{ element[getColumnElement(column)] }}</span>\n } @case ('BOOLEAN') {\n <mat-checkbox\n disabled\n [attr.data-cy]=\"'checkbox-value-' + column + '-' + element.id\"\n [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button\n mat-icon-button\n [type]=\"'button'\" [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } @default {\n <span>{{ element[getColumnElement(column)] }}</span>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td *matFooterCellDef mat-footer-cell [attr.colspan]=\"displayedColumns.length + 1\">\n Total de Registros: {{ dataSource.data.length }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"getAllColumns()\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: getAllColumns();\"\n mat-row\n (click)=\"selection.toggle(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row></tr>\n </table>\n }\n</div>\n\n<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n\n@if (!tableConfig || tableConfig.data.length === 0) {\n<div class=\"no-data-container\">\n <h2 class=\"no-data-title\">{{ tableConfig?.result?.noData || 'Não há dados disponíveis' }}</h2>\n <p class=\"no-data-message\"\n >{{ tableConfig?.result?.defaultMessage || 'Adicione alguns dados' }}</p\n >\n</div>\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, Input, OnInit, forwardRef } from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\nimport {\n MatAutocompleteModule,\n MatAutocompleteSelectedEvent,\n} from \"@angular/material/autocomplete\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInputModule } from \"@angular/material/input\";\n\nimport { Observable, startWith, map } from \"rxjs\";\n\ninterface IAutoCompleteOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n}\n\n@Component({\n selector: \"cao-autocomplete\",\n templateUrl: \"./autocomplete.html\",\n styleUrls: [\"./autocomplete.css\"],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatAutocompleteModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RnvAutocompleteComponent),\n multi: true,\n },\n ],\n})\nexport class RnvAutocompleteComponent implements OnInit, ControlValueAccessor {\n @Input() label = \"\";\n @Input() placeholder = \"\";\n @Input() options: IAutoCompleteOption[] = [];\n @Input() control: AbstractControl = new FormControl();\n @Input() dataCy = \"\";\n @Input() controlName = \"\";\n\n internalControl = new FormControl(\"\");\n filteredOptions$!: Observable<IAutoCompleteOption[]>;\n isFocused = false;\n\n private onChange: (value: IAutoCompleteOption | string) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngOnInit(): void {\n this.filteredOptions$ = this.internalControl.valueChanges.pipe(\n startWith(\"\"),\n map((value) => this.filter(value || \"\"))\n );\n\n this.control.valueChanges.subscribe((value) => {\n const displayValue = value && typeof value === \"object\" ? this.displayFn(value) : value;\n this.internalControl.setValue(displayValue, { emitEvent: false });\n });\n }\n\n onFocus() {\n this.isFocused = true;\n this.onTouched();\n }\n\n onBlur(): void {\n this.isFocused = false;\n this.onTouched();\n }\n\n private filter(value: string | IAutoCompleteOption): IAutoCompleteOption[] {\n const filterValue = (typeof value === \"string\" ? value : value?.nome)?.toLowerCase() || \"\";\n if (!this.options) {\n return [];\n }\n return this.options.filter((option) => {\n const nomeMatch = option.nome.toLowerCase().includes(filterValue);\n const idMatch = option.id?.toString().toLowerCase().includes(filterValue);\n return nomeMatch || idMatch;\n });\n }\n\n displayFn(option: IAutoCompleteOption): string {\n return option && option.nome ? option.nome : \"\";\n }\n\n onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n this.onChange(event.option.value);\n this.onTouched();\n }\n\n get errorText(): string | null {\n if (!this.control) {return null;}\n\n const isEmpty = this.control.value === null || this.control.value === \"\";\n\n if (this.control.hasError(\"required\") && isEmpty) {\n return \"*Campo obrigatório\";\n }\n\n if (this.control.touched && this.control.invalid) {\n if (this.control.hasError(\"cpfInvalid\")) {return \"CPF inválido\";}\n if (this.control.hasError(\"cellPhoneInvalid\")) {return \"Número inválido\";}\n if (this.control.hasError(\"emailInvalid\")) {return \"Email inválido\";}\n if (this.control.hasError(\"cnpjInvalid\")) {return \"CNPJ inválido\";}\n if (this.control.hasError(\"rgInvalid\")) {return \"RG inválido\";}\n if (this.control.hasError(\"dateInvalid\")) {return \"Data inválida\";}\n if (this.control.hasError(\"dateStartInvalid\")) {return \"Data Inicial inválida\";}\n if (this.control.hasError(\"dateEndInvalid\")) {return \"Data Final inválida\";}\n return \"Formato inválido\";\n }\n\n return null;\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n writeValue(value: IAutoCompleteOption | string): void {\n const displayValue = value && typeof value === \"object\" ? this.displayFn(value) : value;\n this.internalControl.setValue(displayValue, { emitEvent: false });\n }\n\n registerOnChange(fn: (value: IAutoCompleteOption | string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n isDisabled ? this.internalControl.disable() : this.internalControl.enable();\n }\n}\n","<div class=\"form-field\">\n @if (label) {\n <label [for]=\"internalControl\">{{ label }}</label>\n }\n\n <mat-form-field appearance=\"outline\" class=\"rnv-autocomplete-mat-form-field\">\n <div class=\"input-wrapper\" [class.focused]=\"isFocused\">\n <input\n type=\"text\"\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"internalControl\"\n [matAutocomplete]=\"auto\"\n [attr.data-cy]=\"dataCy\"\n [ngClass]=\"[\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\" />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayFn\"\n (optionSelected)=\"onOptionSelected($event)\">\n @for (option of filteredOptions$ | async; track option.id) {\n <mat-option [value]=\"option\">{{ option.nome }}</mat-option>\n }\n </mat-autocomplete>\n </div>\n </mat-form-field>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDatepickerModule, MatDateRangeInput } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n selector: 'cao-base-time-range',\n imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule],\n templateUrl: './base-time-range.html',\n styleUrl: './base-time-range.css',\n})\nexport class BaseTimeRange implements OnInit{\n @Input() label = \"\";\n @Input() max: Date | undefined;\n @Input() minDate: Date | undefined;\n @Input() maxDate: Date | undefined;\n @Input() startDate: Date | undefined;\n @Input() finalDate: Date | undefined;\n @Input() dataCy?: string\n @Input() controlName = \"\";\n\n @Output() readonly rangeSelected = new EventEmitter<Date[]>();\n\n @ViewChild(MatDateRangeInput) dateRangeInput!: MatDateRangeInput<Date>;\n\n ngOnInit(): void {\n if(!this.dataCy){\n this.dataCy = `time-range-${this.label}`\n }\n }\n\n onSelectStartDate(event: any) {\n const date = event.target.value as Date;\n this.startDate = date;\n this.finalDate = undefined;\n\n const maxDate = new Date(date);\n maxDate.setDate(maxDate.getDate() + 30);\n\n this.maxDate = maxDate;\n }\n\n onInputMaxDate(event: any) {\n const finalDate = event.target.value as Date;\n if (this.startDate && finalDate) {\n const data = [this.startDate, finalDate];\n this.rangeSelected.emit(data);\n }\n }\n\n clearInputs() {\n this.max = undefined;\n this.minDate = undefined;\n this.maxDate = undefined;\n this.startDate = undefined;\n this.finalDate = undefined;\n\n this.dateRangeInput._startInput.value = \"\";\n this.dateRangeInput._endInput.value = \"\";\n }\n}\n","<label class=\"label-dropw-down\" [for]=\"controlName\">{{ label }}</label>\n<mat-form-field class=\"input-data-field\" subscriptSizing=\"dynamic\" appearance=\"outline\">\n <mat-date-range-input [rangePicker]=\"picker\" [max]=\"maxDate\"\n [attr.dataCy]=\"this.dataCy\"\n >\n <input\n #startDateInput\n matStartDate\n placeholder=\"DATA INÍCIO\"\n [tabIndex]=\"1\"\n [value]=\"startDate\"\n (dateInput)=\"onSelectStartDate($event)\" />\n <input\n #endDateInput\n matEndDate\n placeholder=\"DATA FIM\"\n [tabIndex]=\"2\"\n [value]=\"finalDate\"\n (dateInput)=\"onInputMaxDate($event)\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" />\n <mat-date-range-picker #picker />\n</mat-form-field>\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n FormControl,\n} from \"@angular/forms\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\ninterface IDropDownOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n dataCy?: string;\n}\n\n@Component({\n selector: \"cao-drop-down\",\n templateUrl: \"./drop-down.html\",\n styleUrl: \"./drop-down.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatIconModule,\n CommonModule,\n MatTooltipModule,\n ReactiveFormsModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropDownComponent),\n multi: true,\n },\n ],\n})\nexport class DropDownComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @Input() textHeader = \"SELECIONE UM ITEM\";\n @Input() options: IDropDownOption[] = [];\n @Input() dropDownClass = \"\";\n @Input() styleDropDown: { [klass: string]: unknown } = {};\n @Input() control?: AbstractControl | null;\n @Input() controlName = \"\";\n @Input() isDisabled = false;\n @Output() readonly itemSelected = new EventEmitter<IDropDownOption>();\n @Input() tooltip = \"\";\n @Input() dropDirectionInput: \"up\" | \"down\" = \"down\";\n @Input() dataCy?: string = \"\";\n\n @Input() trackByFn?: (index: number, item: IDropDownOption) => unknown;\n @Input() compareWith?: (option: unknown, value: unknown) => boolean;\n\n\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input() listAriaLabel?: string;\n\n\n isOpen = false;\n selectedItem?: IDropDownOption;\n filteredOptions: IDropDownOption[] = [];\n searchControl = new FormControl(\"\");\n isTouched = false;\n isFocused = false;\n dropDirection: string | undefined;\n removeValidBorder = false;\n\n\n focusedIndex = -1;\n\n private _handleClickOutside = this.onClickOutside.bind(this);\n\n constructor(\n private _eref: ElementRef,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngOnInit(): void {\n document.addEventListener(\"click\", this._handleClickOutside, true);\n this.filteredOptions = [...this.options];\n\n this.searchControl.valueChanges.subscribe((value) => {\n this.filterOptions(value || \"\");\n this.focusedIndex = -1\n });\n }\n\n ngOnDestroy(): void {\n document.removeEventListener(\"click\", this._handleClickOutside, true);\n }\n\n get activeDescendant(): string | null {\n if (this.isOpen && this.focusedIndex >= 0 && this.filteredOptions[this.focusedIndex]) {\n return `option-${this.dataCy}-${this.focusedIndex}`;\n }\n return null;\n }\n\n toggleDropdown(): void {\n if (this.isDisabled) { return };\n\n this.checkAvailableSpace();\n this.isOpen = !this.isOpen;\n this.isFocused = this.isOpen;\n this.markAsTouched();\n\n if (this.isOpen) {\n this.searchControl.setValue(\"\");\n this.filteredOptions = [...this.options];\n this.removeValidBorder = false;\n this.focusedIndex = -1;\n\n\n setTimeout(() => {\n if (this.isOpen) {\n const searchInput = this._eref.nativeElement.querySelector('.dropdown-search input');\n if (searchInput) {\n searchInput.focus();\n }\n }\n });\n } else {\n this.focusedIndex = -1;\n }\n\n this.cdr.detectChanges();\n }\n\n selectItem(option: IDropDownOption): void {\n if (this.isDisabled) { return };\n\n this.selectedItem = option;\n this.isOpen = false;\n this.focusedIndex = -1;\n this.itemSelected.emit(option);\n this.onChange(option);\n this.markAsTouched();\n this.cdr.detectChanges();\n }\n\n clear(): void {\n this.selectedItem = undefined;\n this.onChange(null);\n this.cdr.detectChanges();\n }\n\n filterOptions(searchTerm: string) {\n if (!searchTerm) {\n this.filteredOptions = [...this.options];\n return;\n }\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n this.filteredOptions = this.options.filter(\n (option) =>\n option.nome.toLowerCase().includes(lowerCaseSearchTerm) ||\n option.id?.toString().toLowerCase().includes(lowerCaseSearchTerm)\n );\n }\n\n trackBy(index: number, item: IDropDownOption): unknown {\n return this.trackByFn ? this.trackByFn(index, item) : item.id;\n }\n\n private onClickOutside(event: MouseEvent): void {\n if (!this._eref.nativeElement.contains(event.target)) {\n if (this.isOpen) {\n this.isOpen = false;\n }\n if (this.isFocused) {\n this.isFocused = false;\n }\n this.focusedIndex = -1;\n this.markAsTouched();\n this.removeValidBorder = true;\n this.cdr.detectChanges();\n }\n }\n\n onArrowDown(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = 0;\n } else {\n\n this.focusedIndex = (this.focusedIndex + 1) % this.filteredOptions.length;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onArrowUp(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = this.filteredOptions.length - 1;\n } else {\n\n this.focusedIndex = this.focusedIndex <= 0\n ? this.filteredOptions.length - 1\n : this.focusedIndex - 1;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onSearchEnter(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n this.selectItem(this.filteredOptions[this.focusedIndex]);\n } else if (this.filteredOptions.length > 0) {\n\n this.selectItem(this.filteredOptions[0]);\n }\n }\n\n closeDropdown(): void {\n if (this.isDisabled) { return };\n\n this.isOpen = false;\n this.focusedIndex = -1;\n this.isFocused = false;\n this.cdr.detectChanges();\n }\n\n private scrollIntoView(): void {\n if (!this.isOpen || this.focusedIndex === -1) { return };\n\n setTimeout(() => {\n const element = document.getElementById(`option-${this.dataCy}-${this.focusedIndex}`);\n if (element) {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth'\n });\n }\n }, 0);\n }\n\n checkAvailableSpace(): void {\n if (this.dropDirectionInput === \"up\") {\n this.dropDirection = \"up\";\n return;\n }\n\n const rect = this._eref.nativeElement.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const dropdownHeight = 200\n\n const spaceBelow = windowHeight - rect.bottom;\n this.dropDirection = spaceBelow < dropdownHeight ? \"up\" : \"down\";\n }\n\n\n writeValue(value: unknown): void {\n if (value !== null && value !== undefined) {\n const match = this.options.find((opt) =>\n this.compareWith\n ? this.compareWith(opt, value)\n : opt.id === (typeof value === \"object\" && value ? (value as any).id : value)\n );\n\n if (match) {\n this.selectedItem = match;\n } else {\n const matchByName = this.options.find((opt) => opt.nome === value);\n if (matchByName) {\n this.selectedItem = matchByName;\n }\n }\n } else {\n this.selectedItem = undefined;\n }\n this.cdr.detectChanges();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onChange: (value: unknown) => void = () => { };\n onTouched = () => { };\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n if (this.control.hasError(\"required\")) {\n return \"*Campo obrigatório\";\n }\n return null;\n }\n\n private markAsTouched() {\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n this.control?.markAsTouched();\n }\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n}","<div\n class=\"dropdown-container\"\n role=\"combobox\"\n [ngClass]=\"[\n dropDownClass,\n isDisabled ? 'disabled' : '',\n control?.touched && control?.invalid ? 'invalid' : '',\n (control?.touched && control?.valid && selectedItem && isFocused && !removeValidBorder) ? 'valid' : ''\n ]\"\n [ngStyle]=\"styleDropDown\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-controls]=\"isOpen ? ('dropdown-list-' + dataCy) : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"isDisabled\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.data-cy]=\"dataCy\">\n \n <div\n class=\"dropdown-header\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n tabindex=\"0\"\n role=\"button\"\n [matTooltip]=\"tooltip\"\n [attr.aria-disabled]=\"isDisabled\"\n (click)=\"!isDisabled && toggleDropdown()\"\n (keydown.enter)=\"!isDisabled && toggleDropdown()\"\n (keydown.space)=\"!isDisabled && toggleDropdown(); $event.preventDefault()\"\n (keydown.arrowdown)=\"!isDisabled && onArrowDown($event)\"\n (keydown.arrowup)=\"!isDisabled && onArrowUp($event)\"\n (keydown.escape)=\"!isDisabled && closeDropdown()\">\n <span id=\"dropdown-label-{{dataCy}}\">{{ selectedItem?.nome ?? textHeader }}</span>\n <mat-icon aria-hidden=\"true\">{{ isOpen ? 'expand_less' : 'expand_more' }}</mat-icon>\n </div>\n\n @if (isOpen) {\n <ul \n class=\"dropdown-list\" \n role=\"listbox\"\n [id]=\"'dropdown-list-' + dataCy\"\n [ngClass]=\"{ 'drop-up': dropDirection === 'up', 'dropdown-secundary': dropDownClass === 'dropdown-secundary' }\"\n [attr.aria-label]=\"listAriaLabel || 'Opções'\"\n [attr.aria-labelledby]=\"'dropdown-label-' + dataCy\">\n \n\n <li class=\"dropdown-search\" role=\"none\">\n <input \n type=\"text\" \n placeholder=\"Buscar por código ou nome...\" \n role=\"searchbox\"\n aria-label=\"Buscar opções\"\n [formControl]=\"searchControl\"\n (keydown.arrowdown)=\"onArrowDown($event)\"\n (keydown.arrowup)=\"onArrowUp($event)\"\n (keydown.enter)=\"onSearchEnter($event)\"\n (keydown.escape)=\"closeDropdown()\" />\n </li>\n \n\n @for (item of filteredOptions; track $index) { \n @if(item && item.nome) {\n <li\n class=\"dropdown-item\"\n role=\"option\"\n [ngClass]=\"{\n 'icon-right': item.iconPosition === 'right',\n 'selected': item === selectedItem,\n 'focused': $index === focusedIndex\n }\"\n [attr.id]=\"'option-' + dataCy + '-' + $index\"\n [attr.aria-selected]=\"item === selectedItem\"\n [attr.tabindex]=\"$index === focusedIndex ? 0 : -1\"\n [attr.data-cy]=\"item.dataCy\"\n (click)=\"selectItem(item)\"\n (keydown.enter)=\"selectItem(item)\"\n (keydown.space)=\"selectItem(item); $event.preventDefault()\"\n (mouseenter)=\"focusedIndex = $index\">\n @if (item.icon && item.iconPosition !== 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n } \n <span>{{ item.nome }}</span>\n @if (item.icon && item.iconPosition === 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n }\n </li>\n } \n }\n </ul>\n }\n \n @if (control?.touched && control?.invalid && errorText) {\n <div class=\"message-error\">{{ errorText }}</div>\n }\n</div>","import { Component, inject, Input, Signal } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\nexport interface INavContent {\n title: string;\n links: INavLink[];\n permissions?: string[];\n directRoute?: boolean;\n}\nexport interface INavLink {\n text: string;\n url: string;\n disabled?: boolean;\n isValidationRequired?: boolean;\n dataCy?: string;\n directRoute?: boolean;\n}\n\n@Component({\n standalone: true,\n selector: \"cao-links-button\",\n templateUrl: \"./links-button.html\",\n styleUrl: \"./links-button.css\",\n})\nexport class LinksButton {\n @Input({ required: true }) navContent!: Signal<INavContent>;\n router = inject(Router);\n route = inject(ActivatedRoute);\n\n isValidationRequired(link: INavLink) {\n if (link.disabled) {\n return;\n }\n link.directRoute ? this.directRoute(link.url) : this.navigateTo(link.url);\n }\n\n private navigateTo(url: string) {\n this.router.navigate([url], { relativeTo: this.route });\n }\n\n private directRoute(url: string) {\n this.router.navigate([url]);\n }\n\n}\n","<div class=\"links-info\">\n @if (navContent()) {\n <h2>{{ navContent().title }}</h2>\n <div class=\"links\">\n @for (link of navContent().links; track $index) {\n <div\n class=\"link\"\n role=\"button\"\n tabindex=\"0\"\n [tabIndex]=\"link.disabled ? -1 : 0\"\n [class.disabled]=\"link.disabled\"\n [attr.data-cy]=\"link.dataCy\"\n [attr.aria-disabled]=\"link.disabled\"\n (click)=\"isValidationRequired(link)\"\n (keydown.enter)=\"isValidationRequired(link)\"\n (keydown.space)=\"isValidationRequired(link); $event.preventDefault()\"\n >\n {{ link.text }}\n </div>\n }\n </div>\n }\n</div>","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"cao-footer\",\n templateUrl: \"./footer.html\",\n styleUrl: \"./footer.css\",\n imports: [ CommonModule ]\n})\nexport class Footer {\n currentYear: number = new Date().getFullYear();\n @Input() currentRoute?:string;\n @Input() footerText?:string;\n @Input() isFixed = true;\n}\n","<footer class=\"footer-element\" [class.fixed]=\"isFixed\">\n <div class=\"flex col\">\n <ng-content />\n @if(footerText){\n <ul class=\"footer-end\">\n <li>{{ footerText }} © {{ currentYear }}</li>\n </ul>\n }\n </div>\n</footer>\n","/*\n * Public API Surface of ngx-opalbytes-components\n */\n\nexport * from './lib/shared/components/base-button/base-button'\nexport * from './lib/shared/components/base-alert/base-alert'\nexport * from './lib/shared/components/base-dialog/base-dialog'\nexport * from './lib/shared/components/base-table/base-table'\nexport * from './lib/shared/components/autocomplete/autocomplete'\nexport * from './lib/shared/components/base-time-range/base-time-range'\nexport * from './lib/shared/components/drop-down/drop-down'\nexport * from './lib/shared/components/links-button/links-button'\nexport * from './lib/shared/components/footer/footer'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i10","map","i4","i5"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -346,10 +346,11 @@ declare class LinksButton {
|
|
|
346
346
|
|
|
347
347
|
declare class Footer {
|
|
348
348
|
currentYear: number;
|
|
349
|
-
currentRoute
|
|
350
|
-
footerText
|
|
349
|
+
currentRoute?: string;
|
|
350
|
+
footerText?: string;
|
|
351
|
+
isFixed: boolean;
|
|
351
352
|
static ɵfac: i0.ɵɵFactoryDeclaration<Footer, never>;
|
|
352
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Footer, "cao-footer", never, { "currentRoute": { "alias": "currentRoute"; "required": false; }; "footerText": { "alias": "footerText"; "required": false; }; }, {}, never,
|
|
353
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Footer, "cao-footer", never, { "currentRoute": { "alias": "currentRoute"; "required": false; }; "footerText": { "alias": "footerText"; "required": false; }; "isFixed": { "alias": "isFixed"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
353
354
|
}
|
|
354
355
|
|
|
355
356
|
export { BaseAlert, BaseButton, BaseDialog, BaseTimeRange, DropDownComponent, FilterTableService, Footer, LinksButton, RnvAutocompleteComponent, TableComponent, TableService, getPtBrPaginatorIntl };
|