@dev-tcloud/tcloud-ui 7.2.0 → 7.2.2

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.
@@ -0,0 +1,227 @@
1
+ # Navbar
2
+
3
+ ## Caracteristicas
4
+
5
+ O `TCloudUiNavbarComponent` e o menu vertical principal do tcloud. E um componente
6
+ **data-driven**: recebe um array de itens (`TCloudUiNavbarItem[]`) e renderiza a
7
+ navegacao, incluindo submenus **recursivos** de qualquer profundidade.
8
+
9
+ Funcionalidades principais:
10
+ - Menu vertical alimentado por `[menuItems]` ou por `[groups]` (secoes separadas por divisor).
11
+ - Submenus recursivos (N niveis), expansiveis/colapsaveis pelo proprio item.
12
+ - Modo expandido (labels + icones) e minimizado (somente icones) via `isMenuExpanded`.
13
+ - Botao interno de minimizar/expandir (controlavel por `showToggle`).
14
+ - Navegacao interna por `routerLink` (`link`) e externa em nova aba (`href`).
15
+ - Selo curto por item via `badge` (ex.: `'Novo'`).
16
+ - Itens desabilitados (`enable: false`) sao ocultados.
17
+ - Logo no header via `[logoSrc]` (com variante `[logoSrcDark]` para `body.tc-dark`);
18
+ no modo minimizado o logo e recortado, sobrando so o simbolo.
19
+ - Rodape de perfil pronto com o componente `tcloud-ui-navbar-footer` (avatar, nome,
20
+ papel e botao de sair), ou conteudo livre via slots `[navbar-header]`/`[navbar-footer]`.
21
+ - Emite `onItemClick` ao clicar num item folha e `onExpandChange` ao alternar o menu.
22
+
23
+ ## Instalacao
24
+
25
+ Importe o componente (e o item, para a recursao; o footer, se for usar o rodape de
26
+ perfil) no consumidor standalone:
27
+
28
+ ```typescript
29
+ import {
30
+ TCloudUiNavbarComponent,
31
+ TCloudUiNavbarItemComponent,
32
+ TCloudUiNavbarFooterComponent
33
+ } from 'tcloud-ui';
34
+
35
+ @Component({
36
+ selector: 'app-exemplo',
37
+ standalone: true,
38
+ imports: [TCloudUiNavbarComponent, TCloudUiNavbarItemComponent, TCloudUiNavbarFooterComponent],
39
+ templateUrl: './app-exemplo.component.html'
40
+ })
41
+ export class ExemploComponent {}
42
+ ```
43
+
44
+ Em aplicacoes NgModule, o `TCloudUiModule` ja exporta esses componentes.
45
+
46
+ ## Propriedades (API)
47
+
48
+ ### Inputs
49
+
50
+ | Nome | Tipo | Descricao | Valor Default |
51
+ |------|------|-----------|---------------|
52
+ | menuItems | `TCloudUiNavbarItem[]` | Itens do menu (grupo unico). Submenus sao renderizados recursivamente. | `[]` |
53
+ | groups | `TCloudUiNavbarGroup[]` | Grupos de itens separados por divisor. Tem precedencia sobre `menuItems`. | `[]` |
54
+ | isMenuExpanded | `boolean` | Menu expandido (labels visiveis) ou minimizado (so icones). | `true` |
55
+ | showToggle | `boolean` | Exibe o botao interno de minimizar/expandir. | `true` |
56
+ | logoSrc | `string?` | Caminho da imagem do logo exibido no header (tema claro). | logo TOTVS preto |
57
+ | logoSrcDark | `string?` | Caminho do logo para o tema escuro (`body.tc-dark`). Quando informado, o header alterna automaticamente. | logo TOTVS branco |
58
+ | logoAlt | `string` | Texto alternativo do logo. | `'Logo'` |
59
+
60
+ > **Logo no modo minimizado:** o header usa `overflow: hidden` com o logo em largura
61
+ > fixa — ao minimizar, o wordmark e **recortado** (nao reduzido), sobrando so o
62
+ > simbolo. Prefira um logo **horizontal com o simbolo a esquerda**.
63
+
64
+ ### Slots de conteudo (content projection)
65
+
66
+ | Seletor | Descricao |
67
+ |---------|-----------|
68
+ | `[navbar-header]` | Conteudo customizado do topo (alternativa ao `logoSrc`). |
69
+ | `[navbar-footer]` | Conteudo do rodape fixo — tipicamente o `tcloud-ui-navbar-footer`. |
70
+
71
+ ### Componente `tcloud-ui-navbar-footer`
72
+
73
+ Rodape de perfil (avatar, nome, papel e botao de sair) para projetar no slot
74
+ `[navbar-footer]`. Respeita o modo minimizado (mostra so o avatar).
75
+
76
+ Inputs:
77
+
78
+ | Nome | Tipo | Descricao | Valor Default |
79
+ |------|------|-----------|---------------|
80
+ | avatarSrc | `string?` | Caminho da imagem do avatar. Quando ausente, usa `avatarIcon`. | `undefined` |
81
+ | avatarAlt | `string` | Texto alternativo do avatar. | `''` |
82
+ | avatarIcon | `string` | Icone exibido no avatar (circulo cinza) quando nao ha `avatarSrc`. | `'fas fa-user'` |
83
+ | name | `string` | Nome do usuario. | `''` |
84
+ | role | `string` | Papel/subtitulo do usuario. | `''` |
85
+ | isMenuExpanded | `boolean` | Mostra nome/papel e o botao de sair. | `true` |
86
+ | showLogout | `boolean` | Exibe o botao de sair. | `true` |
87
+ | logoutTitle | `string` | Titulo/tooltip do botao de sair. | `'Sair'` |
88
+
89
+ Outputs:
90
+
91
+ | Nome | Tipo | Descricao |
92
+ |------|------|-----------|
93
+ | onLogout | `void` | Emitido ao clicar no botao de sair. |
94
+
95
+ ### Outputs
96
+
97
+ | Nome | Tipo | Descricao |
98
+ |------|------|-----------|
99
+ | onItemClick | `TCloudUiNavbarItem` | Emitido ao clicar num item folha (sem submenu). |
100
+ | onExpandChange | `boolean` | Emitido ao alternar entre expandido/minimizado. |
101
+
102
+ ### Modelo `TCloudUiNavbarItem`
103
+
104
+ | Campo | Tipo | Descricao |
105
+ |-------|------|-----------|
106
+ | label | `string` | Texto exibido (ja traduzido pelo consumidor). |
107
+ | icon | `string?` | Classe(s) do icone, ex.: `'fas fa-laptop'`. |
108
+ | link | `string?` | Rota interna (usada como `routerLink`). |
109
+ | queryParams | `Params \| null` | Query params aplicados junto do `routerLink`. |
110
+ | href | `string?` | URL externa — abre em nova aba. |
111
+ | submenu | `TCloudUiNavbarItem[]?` | Sub-itens (recursivos). |
112
+ | active | `boolean?` | Forca o realce full-width. O ativo tambem e detectado pela rota atual via `routerLinkActive` — nao fixe este campo so para reproduzir um mockup. |
113
+ | open | `boolean?` | Estado inicial do submenu (aberto/fechado). |
114
+ | enable | `boolean?` | Quando `false`, o item e ocultado. Default `true`. |
115
+ | badge | `string?` | Selo curto exibido ao lado do label, ex.: `'Novo'`. |
116
+
117
+ ### Modelo `TCloudUiNavbarGroup`
118
+
119
+ | Campo | Tipo | Descricao |
120
+ |-------|------|-----------|
121
+ | label | `string?` | Rotulo opcional exibido como cabecalho da secao (so no modo expandido). |
122
+ | items | `TCloudUiNavbarItem[]` | Itens do grupo. |
123
+
124
+ ## Exemplos de Uso
125
+
126
+ ### Uso Basico
127
+
128
+ ```html
129
+ <tcloud-ui-navbar [menuItems]="menuItems" (onItemClick)="go($event)"></tcloud-ui-navbar>
130
+ ```
131
+
132
+ ```typescript
133
+ import { Component } from '@angular/core';
134
+ import { TCloudUiNavbarComponent, TCloudUiNavbarItemComponent, TCloudUiNavbarItem } from 'tcloud-ui';
135
+
136
+ @Component({
137
+ selector: 'app-exemplo',
138
+ standalone: true,
139
+ imports: [TCloudUiNavbarComponent, TCloudUiNavbarItemComponent],
140
+ templateUrl: './app-exemplo.component.html'
141
+ })
142
+ export class AppExemploComponent {
143
+ menuItems: TCloudUiNavbarItem[] = [
144
+ { label: 'Home', icon: 'fas fa-laptop', link: '/dashboard' },
145
+ { label: 'Documentacao', icon: 'fas fa-book', href: 'https://exemplo.com' }
146
+ ];
147
+
148
+ go(item: TCloudUiNavbarItem) {
149
+ console.log('clicou', item);
150
+ }
151
+ }
152
+ ```
153
+
154
+ ### Uso Avancado (submenu recursivo)
155
+
156
+ ```typescript
157
+ menuItems: TCloudUiNavbarItem[] = [
158
+ { label: 'Home', icon: 'fas fa-laptop', link: '/dashboard', active: true },
159
+ {
160
+ label: 'IaaS',
161
+ icon: 'fas fa-cloud',
162
+ open: true,
163
+ submenu: [
164
+ { label: 'Boas vindas', link: '/iaas/welcome' },
165
+ { label: 'Meus ambientes', link: '/iaas/virtual-machines' }
166
+ ]
167
+ },
168
+ {
169
+ label: 'Administracao',
170
+ icon: 'fas fa-cogs',
171
+ submenu: [
172
+ {
173
+ label: 'IAM',
174
+ submenu: [
175
+ { label: 'Papeis de usuario', link: '/admin/iam/roles' }
176
+ ]
177
+ },
178
+ { label: 'Item oculto', link: '/admin/hidden', enable: false }
179
+ ]
180
+ }
181
+ ];
182
+ ```
183
+
184
+ O menu monta os niveis recursivamente; itens com `submenu` alternam a exibicao dos
185
+ filhos ao serem clicados, e itens com `enable: false` nao aparecem.
186
+
187
+ ### Grupos, badge e slots (logo + perfil)
188
+
189
+ Use `[groups]` para separar secoes por divisor, `badge` para selos e os slots
190
+ `[navbar-header]` / `[navbar-footer]` para projetar logo e perfil do usuario:
191
+
192
+ ```html
193
+ <tcloud-ui-navbar [groups]="groups" [logoSrc]="'logo.svg'" logoAlt="Logo" (onItemClick)="go($event)">
194
+ <tcloud-ui-navbar-footer
195
+ navbar-footer
196
+ avatarSrc="avatar.png"
197
+ name="Simone Garcia"
198
+ role="Operadora"
199
+ (onLogout)="logout()">
200
+ </tcloud-ui-navbar-footer>
201
+ </tcloud-ui-navbar>
202
+ ```
203
+
204
+ ```typescript
205
+ import { TCloudUiNavbarGroup } from 'tcloud-ui';
206
+
207
+ groups: TCloudUiNavbarGroup[] = [
208
+ {
209
+ items: [
210
+ { label: 'Pagina inicial', icon: 'fas fa-house', link: '/dashboard', active: true },
211
+ { label: 'Marketplace', icon: 'fas fa-cart-shopping', badge: 'Novo', submenu: [
212
+ { label: 'Agentes de IA', link: '/marketplace/ai-agents' }
213
+ ] }
214
+ ]
215
+ },
216
+ {
217
+ items: [
218
+ { label: 'Configuracoes', icon: 'fas fa-gear', link: '/settings' },
219
+ { label: 'Minha conta', icon: 'fas fa-user', link: '/account' }
220
+ ]
221
+ }
222
+ ];
223
+ ```
224
+
225
+ Quando `[groups]` nao e informado, `[menuItems]` continua funcionando como um
226
+ grupo unico (backward-compat). Os slots `[navbar-header]`/`[navbar-footer]` sao
227
+ opcionais: ficam ocultos quando nada e projetado.
@@ -9811,11 +9811,11 @@ class TCloudUiNavbarItemComponent {
9811
9811
  this.onItemClick.emit(item);
9812
9812
  }
9813
9813
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TCloudUiNavbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9814
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: TCloudUiNavbarItemComponent, isStandalone: true, selector: "tcloud-ui-navbar-item", inputs: { item: "item", isMenuExpanded: "isMenuExpanded", level: "level" }, outputs: { onItemClick: "onItemClick" }, ngImport: i0, template: "<li\n class=\"tcloud-ui-navbar-item\"\n [class.tcloud-ui-navbar-expanded]=\"isMenuExpanded\"\n [class.has-submenu]=\"hasSubmenu\"\n [class.open]=\"item.open\">\n\n <a\n class=\"tcloud-ui-navbar-item-link\"\n [class.selected]=\"item.active\"\n [routerLink]=\"hasSubmenu ? null : (item.link ?? null)\"\n routerLinkActive=\"active\"\n [queryParams]=\"item.queryParams ?? null\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [title]=\"item.label\"\n (click)=\"handleClick($event)\">\n\n <div class=\"navbar-item-icon-container\">\n @if (item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n </div>\n\n @if (isMenuExpanded) {\n <div class=\"navbar-item-label\">\n <span class=\"navbar-item-text\">{{ item.label }}</span>\n @if (hasSubmenu) {\n <i class=\"navbar-item-chevron fas\"\n [class.fa-chevron-down]=\"item.open\"\n [class.fa-chevron-right]=\"!item.open\"></i>\n }\n </div>\n }\n </a>\n\n @if (hasSubmenu && isMenuExpanded) {\n <ul class=\"tcloud-ui-navbar-submenu\" [class.open]=\"item.open\">\n @for (child of item.submenu; track $index) {\n @if (child.enable !== false) {\n <tcloud-ui-navbar-item\n [item]=\"child\"\n [isMenuExpanded]=\"isMenuExpanded\"\n [level]=\"level + 1\"\n (onItemClick)=\"bubbleClick($event)\">\n </tcloud-ui-navbar-item>\n }\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.tcloud-ui-navbar-item{list-style:none;margin:0;padding:0}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link{align-items:center;border-radius:var(--bor-radius-4);color:var(--c-neutral-700);cursor:pointer;font-family:var(--f-family);display:flex;transition:all .2s ease;text-decoration:none}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-icon-container{text-align:center;align-content:center;background-color:var(--c-neutral-50);border-radius:var(--bor-radius-4);font-size:var(--f-size-20);height:var(--size-36);width:var(--size-36);transition:all .2s ease;min-height:var(--size-36);min-width:var(--size-36);max-height:var(--size-36);max-width:var(--size-36)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label{align-items:center;display:flex;justify-content:space-between;width:100%;color:var(--c-neutral-700);font-size:var(--f-size-14);height:var(--size-36);padding-left:var(--size-8);transition:all .2s ease;min-height:var(--size-36);max-height:var(--size-36)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label .navbar-item-chevron{font-size:var(--f-size-12);padding-right:var(--size-8);transition:transform .2s ease}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:hover,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:focus{color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:hover .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:focus .navbar-item-icon-container{background-color:var(--c-neutral-200);color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:active .navbar-item-icon-container{background-color:var(--c-primary-300);color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active .navbar-item-label,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected .navbar-item-label,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:active .navbar-item-label{color:var(--c-primary-500);font-weight:var(--f-weight-700)}.tcloud-ui-navbar-item .tcloud-ui-navbar-submenu{display:none;flex-direction:column;gap:var(--size-4);list-style:none;margin:var(--size-4) 0 0 0;padding:0 0 0 var(--size-8)}.tcloud-ui-navbar-item .tcloud-ui-navbar-submenu.open{display:flex}\n"], dependencies: [{ kind: "component", type: TCloudUiNavbarItemComponent, selector: "tcloud-ui-navbar-item", inputs: ["item", "isMenuExpanded", "level"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] }); }
9814
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: TCloudUiNavbarItemComponent, isStandalone: true, selector: "tcloud-ui-navbar-item", inputs: { item: "item", isMenuExpanded: "isMenuExpanded", level: "level" }, outputs: { onItemClick: "onItemClick" }, ngImport: i0, template: "<li\n class=\"tcloud-ui-navbar-item\"\n [class.tcloud-ui-navbar-expanded]=\"isMenuExpanded\"\n [class.tcloud-ui-navbar-subitem]=\"level > 0\"\n [class.has-submenu]=\"hasSubmenu\"\n [class.open]=\"item.open\">\n\n <a\n class=\"tcloud-ui-navbar-item-link\"\n [class.selected]=\"item.active\"\n [routerLink]=\"hasSubmenu ? null : (item.link ?? null)\"\n routerLinkActive=\"active\"\n [queryParams]=\"item.queryParams ?? null\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [title]=\"item.label\"\n (click)=\"handleClick($event)\">\n\n <div class=\"navbar-item-icon-container\">\n @if (item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n </div>\n\n @if (isMenuExpanded) {\n <div class=\"navbar-item-label\">\n <span class=\"navbar-item-text\">{{ item.label }}</span>\n @if (item.badge) {\n <span class=\"navbar-item-badge\">{{ item.badge }}</span>\n }\n @if (hasSubmenu) {\n <i class=\"navbar-item-chevron fas\"\n [class.fa-chevron-down]=\"item.open\"\n [class.fa-chevron-right]=\"!item.open\"></i>\n }\n </div>\n }\n </a>\n\n @if (hasSubmenu && isMenuExpanded) {\n <ul class=\"tcloud-ui-navbar-submenu\" [class.open]=\"item.open\">\n @for (child of item.submenu; track $index) {\n @if (child.enable !== false) {\n <tcloud-ui-navbar-item\n [item]=\"child\"\n [isMenuExpanded]=\"isMenuExpanded\"\n [level]=\"level + 1\"\n (onItemClick)=\"bubbleClick($event)\">\n </tcloud-ui-navbar-item>\n }\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.tcloud-ui-navbar-item{list-style:none;margin:0;padding:0}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link{align-items:center;border-radius:var(--bor-radius-4);color:var(--c-neutral-700);cursor:pointer;font-family:var(--f-family);display:flex;transition:all .2s ease;text-decoration:none}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-icon-container{text-align:center;align-content:center;background-color:var(--c-neutral-100);border-radius:var(--bor-radius-4);font-size:var(--f-size-20);height:var(--size-36);width:var(--size-36);transition:all .2s ease;min-height:var(--size-36);min-width:var(--size-36);max-height:var(--size-36);max-width:var(--size-36)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label{align-items:center;display:flex;gap:var(--size-4);justify-content:space-between;width:100%;min-width:0;color:var(--c-neutral-700);font-size:var(--f-size-14);height:var(--size-36);padding-left:var(--size-8);transition:all .2s ease;min-height:var(--size-36);max-height:var(--size-36)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label .navbar-item-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label .navbar-item-badge{flex:0 0 auto;background-color:var(--c-primary-500);border-radius:var(--bor-radius-4);color:var(--c-neutral-50);font-size:var(--f-size-12);font-weight:var(--f-weight-700);line-height:1;padding:var(--size-4) var(--size-8)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label .navbar-item-chevron{flex:0 0 auto;font-size:var(--f-size-12);padding-right:var(--size-8);transition:transform .2s ease}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:hover,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:focus{color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:hover .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:focus .navbar-item-icon-container{background-color:var(--c-neutral-200);color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected{background-color:var(--c-primary-300)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected .navbar-item-icon-container{background-color:transparent;color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active .navbar-item-label,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected .navbar-item-label{color:var(--c-primary-500);font-weight:var(--f-weight-700)}.tcloud-ui-navbar-item .tcloud-ui-navbar-submenu{display:none;flex-direction:column;gap:var(--size-4);list-style:none;margin:var(--size-4) 0 0 0;padding:0 0 0 var(--size-8)}.tcloud-ui-navbar-item .tcloud-ui-navbar-submenu.open{display:flex}.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link{border-left:2px solid var(--c-neutral-200);border-radius:0 var(--bor-radius-4) var(--bor-radius-4) 0}.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link .navbar-item-icon-container{display:none}.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link .navbar-item-label{padding-left:var(--size-12)}.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link.active,.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link.selected{border-left-color:var(--c-primary-500)}\n"], dependencies: [{ kind: "component", type: TCloudUiNavbarItemComponent, selector: "tcloud-ui-navbar-item", inputs: ["item", "isMenuExpanded", "level"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] }); }
9815
9815
  }
9816
9816
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TCloudUiNavbarItemComponent, decorators: [{
9817
9817
  type: Component,
9818
- args: [{ selector: 'tcloud-ui-navbar-item', standalone: true, imports: [CommonModule, RouterModule], template: "<li\n class=\"tcloud-ui-navbar-item\"\n [class.tcloud-ui-navbar-expanded]=\"isMenuExpanded\"\n [class.has-submenu]=\"hasSubmenu\"\n [class.open]=\"item.open\">\n\n <a\n class=\"tcloud-ui-navbar-item-link\"\n [class.selected]=\"item.active\"\n [routerLink]=\"hasSubmenu ? null : (item.link ?? null)\"\n routerLinkActive=\"active\"\n [queryParams]=\"item.queryParams ?? null\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [title]=\"item.label\"\n (click)=\"handleClick($event)\">\n\n <div class=\"navbar-item-icon-container\">\n @if (item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n </div>\n\n @if (isMenuExpanded) {\n <div class=\"navbar-item-label\">\n <span class=\"navbar-item-text\">{{ item.label }}</span>\n @if (hasSubmenu) {\n <i class=\"navbar-item-chevron fas\"\n [class.fa-chevron-down]=\"item.open\"\n [class.fa-chevron-right]=\"!item.open\"></i>\n }\n </div>\n }\n </a>\n\n @if (hasSubmenu && isMenuExpanded) {\n <ul class=\"tcloud-ui-navbar-submenu\" [class.open]=\"item.open\">\n @for (child of item.submenu; track $index) {\n @if (child.enable !== false) {\n <tcloud-ui-navbar-item\n [item]=\"child\"\n [isMenuExpanded]=\"isMenuExpanded\"\n [level]=\"level + 1\"\n (onItemClick)=\"bubbleClick($event)\">\n </tcloud-ui-navbar-item>\n }\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.tcloud-ui-navbar-item{list-style:none;margin:0;padding:0}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link{align-items:center;border-radius:var(--bor-radius-4);color:var(--c-neutral-700);cursor:pointer;font-family:var(--f-family);display:flex;transition:all .2s ease;text-decoration:none}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-icon-container{text-align:center;align-content:center;background-color:var(--c-neutral-50);border-radius:var(--bor-radius-4);font-size:var(--f-size-20);height:var(--size-36);width:var(--size-36);transition:all .2s ease;min-height:var(--size-36);min-width:var(--size-36);max-height:var(--size-36);max-width:var(--size-36)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label{align-items:center;display:flex;justify-content:space-between;width:100%;color:var(--c-neutral-700);font-size:var(--f-size-14);height:var(--size-36);padding-left:var(--size-8);transition:all .2s ease;min-height:var(--size-36);max-height:var(--size-36)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label .navbar-item-chevron{font-size:var(--f-size-12);padding-right:var(--size-8);transition:transform .2s ease}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:hover,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:focus{color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:hover .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:focus .navbar-item-icon-container{background-color:var(--c-neutral-200);color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:active .navbar-item-icon-container{background-color:var(--c-primary-300);color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active .navbar-item-label,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected .navbar-item-label,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:active .navbar-item-label{color:var(--c-primary-500);font-weight:var(--f-weight-700)}.tcloud-ui-navbar-item .tcloud-ui-navbar-submenu{display:none;flex-direction:column;gap:var(--size-4);list-style:none;margin:var(--size-4) 0 0 0;padding:0 0 0 var(--size-8)}.tcloud-ui-navbar-item .tcloud-ui-navbar-submenu.open{display:flex}\n"] }]
9818
+ args: [{ selector: 'tcloud-ui-navbar-item', standalone: true, imports: [CommonModule, RouterModule], template: "<li\n class=\"tcloud-ui-navbar-item\"\n [class.tcloud-ui-navbar-expanded]=\"isMenuExpanded\"\n [class.tcloud-ui-navbar-subitem]=\"level > 0\"\n [class.has-submenu]=\"hasSubmenu\"\n [class.open]=\"item.open\">\n\n <a\n class=\"tcloud-ui-navbar-item-link\"\n [class.selected]=\"item.active\"\n [routerLink]=\"hasSubmenu ? null : (item.link ?? null)\"\n routerLinkActive=\"active\"\n [queryParams]=\"item.queryParams ?? null\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [title]=\"item.label\"\n (click)=\"handleClick($event)\">\n\n <div class=\"navbar-item-icon-container\">\n @if (item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n </div>\n\n @if (isMenuExpanded) {\n <div class=\"navbar-item-label\">\n <span class=\"navbar-item-text\">{{ item.label }}</span>\n @if (item.badge) {\n <span class=\"navbar-item-badge\">{{ item.badge }}</span>\n }\n @if (hasSubmenu) {\n <i class=\"navbar-item-chevron fas\"\n [class.fa-chevron-down]=\"item.open\"\n [class.fa-chevron-right]=\"!item.open\"></i>\n }\n </div>\n }\n </a>\n\n @if (hasSubmenu && isMenuExpanded) {\n <ul class=\"tcloud-ui-navbar-submenu\" [class.open]=\"item.open\">\n @for (child of item.submenu; track $index) {\n @if (child.enable !== false) {\n <tcloud-ui-navbar-item\n [item]=\"child\"\n [isMenuExpanded]=\"isMenuExpanded\"\n [level]=\"level + 1\"\n (onItemClick)=\"bubbleClick($event)\">\n </tcloud-ui-navbar-item>\n }\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.tcloud-ui-navbar-item{list-style:none;margin:0;padding:0}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link{align-items:center;border-radius:var(--bor-radius-4);color:var(--c-neutral-700);cursor:pointer;font-family:var(--f-family);display:flex;transition:all .2s ease;text-decoration:none}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-icon-container{text-align:center;align-content:center;background-color:var(--c-neutral-100);border-radius:var(--bor-radius-4);font-size:var(--f-size-20);height:var(--size-36);width:var(--size-36);transition:all .2s ease;min-height:var(--size-36);min-width:var(--size-36);max-height:var(--size-36);max-width:var(--size-36)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label{align-items:center;display:flex;gap:var(--size-4);justify-content:space-between;width:100%;min-width:0;color:var(--c-neutral-700);font-size:var(--f-size-14);height:var(--size-36);padding-left:var(--size-8);transition:all .2s ease;min-height:var(--size-36);max-height:var(--size-36)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label .navbar-item-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label .navbar-item-badge{flex:0 0 auto;background-color:var(--c-primary-500);border-radius:var(--bor-radius-4);color:var(--c-neutral-50);font-size:var(--f-size-12);font-weight:var(--f-weight-700);line-height:1;padding:var(--size-4) var(--size-8)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link .navbar-item-label .navbar-item-chevron{flex:0 0 auto;font-size:var(--f-size-12);padding-right:var(--size-8);transition:transform .2s ease}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:hover,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:focus{color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:hover .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link:focus .navbar-item-icon-container{background-color:var(--c-neutral-200);color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected{background-color:var(--c-primary-300)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active .navbar-item-icon-container,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected .navbar-item-icon-container{background-color:transparent;color:var(--c-primary-500)}.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.active .navbar-item-label,.tcloud-ui-navbar-item .tcloud-ui-navbar-item-link.selected .navbar-item-label{color:var(--c-primary-500);font-weight:var(--f-weight-700)}.tcloud-ui-navbar-item .tcloud-ui-navbar-submenu{display:none;flex-direction:column;gap:var(--size-4);list-style:none;margin:var(--size-4) 0 0 0;padding:0 0 0 var(--size-8)}.tcloud-ui-navbar-item .tcloud-ui-navbar-submenu.open{display:flex}.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link{border-left:2px solid var(--c-neutral-200);border-radius:0 var(--bor-radius-4) var(--bor-radius-4) 0}.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link .navbar-item-icon-container{display:none}.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link .navbar-item-label{padding-left:var(--size-12)}.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link.active,.tcloud-ui-navbar-item.tcloud-ui-navbar-subitem .tcloud-ui-navbar-item-link.selected{border-left-color:var(--c-primary-500)}\n"] }]
9819
9819
  }], propDecorators: { item: [{
9820
9820
  type: Input
9821
9821
  }], isMenuExpanded: [{
@@ -9828,33 +9828,116 @@ class TCloudUiNavbarComponent {
9828
9828
  constructor() {
9829
9829
  /** Itens do menu (data-driven). Submenu é renderizado recursivamente. */
9830
9830
  this.menuItems = [];
9831
+ /**
9832
+ * Grupos de itens separados por divisor. Quando informado, tem precedência
9833
+ * sobre `menuItems`. Use para reproduzir as seções do layout (primária,
9834
+ * secundária, etc.).
9835
+ */
9836
+ this.groups = [];
9831
9837
  /** Menu expandido (labels visíveis) x minimizado (só ícones). */
9832
9838
  this.isMenuExpanded = true;
9833
9839
  /** Exibe o botão interno de minimizar/expandir. */
9834
9840
  this.showToggle = true;
9841
+ /** Caminho da imagem do logo exibido no header (tema claro). */
9842
+ this.logoSrc = 'https://tcloud.totvs.com.br/plataforma/assets/img/totvs-logo-black.svg';
9843
+ /**
9844
+ * Caminho da imagem do logo para o tema escuro (`body.tc-dark`). Quando
9845
+ * informado, o header alterna automaticamente entre `logoSrc` (claro) e
9846
+ * `logoSrcDark` (escuro).
9847
+ */
9848
+ this.logoSrcDark = 'https://tcloud.totvs.com.br/plataforma/assets/img/totvs-logo-white.svg';
9849
+ /** Texto alternativo do logo. */
9850
+ this.logoAlt = 'Logo';
9835
9851
  /** Emitido quando o menu é expandido/minimizado. */
9836
9852
  this.onExpandChange = output();
9837
9853
  /** Emitido ao clicar num item folha (sem submenu). */
9838
9854
  this.onItemClick = output();
9839
9855
  }
9856
+ /**
9857
+ * Grupos efetivamente renderizados: usa `groups` quando informado; caso
9858
+ * contrário embrulha `menuItems` num único grupo (backward-compat).
9859
+ */
9860
+ get resolvedGroups() {
9861
+ if (this.groups.length > 0) {
9862
+ return this.groups;
9863
+ }
9864
+ return this.menuItems.length > 0 ? [{ items: this.menuItems }] : [];
9865
+ }
9840
9866
  handleExpand() {
9841
9867
  this.isMenuExpanded = !this.isMenuExpanded;
9842
9868
  this.onExpandChange.emit(this.isMenuExpanded);
9843
9869
  }
9844
9870
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TCloudUiNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9845
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: TCloudUiNavbarComponent, isStandalone: true, selector: "tcloud-ui-navbar", inputs: { menuItems: "menuItems", isMenuExpanded: "isMenuExpanded", showToggle: "showToggle" }, outputs: { onExpandChange: "onExpandChange", onItemClick: "onItemClick" }, ngImport: i0, template: "<nav class=\"tcloud-ui-navbar\">\n <ul class=\"tcloud-ui-navbar-list\" [class.tcloud-ui-navbar-expanded]=\"isMenuExpanded\">\n\n @if (showToggle) {\n <li class=\"tcloud-ui-navbar-item tcloud-ui-navbar-toggle\">\n <a class=\"tcloud-ui-navbar-item-link\"\n (click)=\"handleExpand()\"\n [title]=\"isMenuExpanded ? 'Minimizar' : 'Expandir'\">\n <div class=\"navbar-item-icon-container\">\n <i class=\"fa-light\"\n [class.fa-arrow-left-to-line]=\"isMenuExpanded\"\n [class.fa-arrow-right-to-line]=\"!isMenuExpanded\"></i>\n </div>\n @if (isMenuExpanded) {\n <div class=\"navbar-item-label\">Minimizar</div>\n }\n </a>\n </li>\n }\n\n @for (item of menuItems; track $index) {\n @if (item.enable !== false) {\n <tcloud-ui-navbar-item\n [item]=\"item\"\n [isMenuExpanded]=\"isMenuExpanded\"\n (onItemClick)=\"onItemClick.emit($event)\">\n </tcloud-ui-navbar-item>\n }\n }\n </ul>\n</nav>\n", styles: [":host{display:block;height:100%}.tcloud-ui-navbar{display:block;height:100%;margin:var(--size-0);padding:var(--size-0)}.tcloud-ui-navbar .tcloud-ui-navbar-list{color:var(--c-neutral-700);display:flex;flex-direction:column;gap:var(--size-8);height:100%;list-style:none;margin:var(--size-0);overflow:hidden auto;padding:var(--size-8);width:var(--size-52)}.tcloud-ui-navbar .tcloud-ui-navbar-list::-webkit-scrollbar{display:none}.tcloud-ui-navbar .tcloud-ui-navbar-list.tcloud-ui-navbar-expanded{width:14.5rem}.tcloud-ui-navbar .tcloud-ui-navbar-toggle{list-style:none;margin:0;padding:0 0 var(--size-8) 0;border-bottom:1px solid var(--c-neutral-200)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link{align-items:center;border-radius:var(--bor-radius-4);color:var(--c-neutral-700);cursor:pointer;display:flex;font-family:var(--f-family);text-decoration:none;transition:all .2s ease}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link .navbar-item-icon-container{align-content:center;background-color:var(--c-neutral-50);border-radius:var(--bor-radius-4);font-size:var(--f-size-20);height:var(--size-36);width:var(--size-36);text-align:center;transition:all .2s ease;min-height:var(--size-36);min-width:var(--size-36);max-height:var(--size-36);max-width:var(--size-36)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link .navbar-item-label{align-items:center;display:flex;color:var(--c-neutral-700);font-size:var(--f-size-14);height:var(--size-36);padding-left:var(--size-8);min-height:var(--size-36);max-height:var(--size-36)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:hover,.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:focus{color:var(--c-primary-500)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:hover .navbar-item-icon-container,.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:focus .navbar-item-icon-container{background-color:var(--c-neutral-200);color:var(--c-primary-500)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TCloudUiNavbarItemComponent, selector: "tcloud-ui-navbar-item", inputs: ["item", "isMenuExpanded", "level"], outputs: ["onItemClick"] }] }); }
9871
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: TCloudUiNavbarComponent, isStandalone: true, selector: "tcloud-ui-navbar", inputs: { menuItems: "menuItems", groups: "groups", isMenuExpanded: "isMenuExpanded", showToggle: "showToggle", logoSrc: "logoSrc", logoSrcDark: "logoSrcDark", logoAlt: "logoAlt" }, outputs: { onExpandChange: "onExpandChange", onItemClick: "onItemClick" }, ngImport: i0, template: "<nav class=\"tcloud-ui-navbar\" [class.tcloud-ui-navbar-expanded]=\"isMenuExpanded\">\n\n <!-- Header (logo): via [logoSrc]/[logoSrcDark] ou conte\u00FAdo em [navbar-header]. -->\n <div class=\"tcloud-ui-navbar-header\">\n @if (logoSrc) {\n <img class=\"tcloud-ui-navbar-logo\"\n [class.tcloud-ui-navbar-logo--light]=\"!!logoSrcDark\"\n [src]=\"logoSrc\" [alt]=\"logoAlt\" />\n }\n @if (logoSrcDark) {\n <img class=\"tcloud-ui-navbar-logo tcloud-ui-navbar-logo--dark\"\n [src]=\"logoSrcDark\" [alt]=\"logoAlt\" />\n }\n <ng-content select=\"[navbar-header]\"></ng-content>\n </div>\n\n <!-- Conte\u00FAdo rol\u00E1vel: grupos separados por divisor + toggle de minimizar. -->\n <div class=\"tcloud-ui-navbar-content\">\n\n\n @if (showToggle) {\n <ul class=\"tcloud-ui-navbar-list tcloud-ui-navbar-toggle-list\">\n <li class=\"tcloud-ui-navbar-item tcloud-ui-navbar-toggle\">\n <a class=\"tcloud-ui-navbar-item-link\"\n (click)=\"handleExpand()\"\n [title]=\"isMenuExpanded ? 'Minimizar' : 'Expandir'\">\n <div class=\"navbar-item-icon-container\">\n <i class=\"fa-light\"\n [class.fa-arrow-left-to-line]=\"isMenuExpanded\"\n [class.fa-arrow-right-to-line]=\"!isMenuExpanded\"></i>\n </div>\n @if (isMenuExpanded) {\n <div class=\"navbar-item-label\">Minimizar</div>\n }\n </a>\n </li>\n </ul>\n }\n\n\n @for (group of resolvedGroups; track $index; let last = $last) {\n <ul class=\"tcloud-ui-navbar-list\">\n @if (group.label && isMenuExpanded) {\n <li class=\"tcloud-ui-navbar-group-label\">{{ group.label }}</li>\n }\n @for (item of group.items; track $index) {\n @if (item.enable !== false) {\n <tcloud-ui-navbar-item\n [item]=\"item\"\n [isMenuExpanded]=\"isMenuExpanded\"\n (onItemClick)=\"onItemClick.emit($event)\">\n </tcloud-ui-navbar-item>\n }\n }\n </ul>\n\n @if (!last || showToggle) {\n <hr class=\"tcloud-ui-navbar-divider\" />\n }\n }\n\n \n </div>\n\n <!-- Footer (perfil/logout) \u2014 projetado pelo consumidor via [navbar-footer]. -->\n <div class=\"tcloud-ui-navbar-footer\">\n <ng-content select=\"[navbar-footer]\"></ng-content>\n </div>\n</nav>\n", styles: [":host{display:block;height:100%}.tcloud-ui-navbar{box-sizing:border-box;color:var(--c-neutral-700);display:flex;flex-direction:column;height:100%;margin:var(--size-0);padding:var(--size-0);transition:width .2s ease;width:var(--size-48)}.tcloud-ui-navbar.tcloud-ui-navbar-expanded{width:15.625rem}.tcloud-ui-navbar .tcloud-ui-navbar-header{flex:0 0 auto;align-items:center;display:flex;min-height:var(--size-56, 56px);overflow:hidden;padding:var(--size-8)}.tcloud-ui-navbar .tcloud-ui-navbar-header:empty{display:none}.tcloud-ui-navbar .tcloud-ui-navbar-header .tcloud-ui-navbar-logo{display:block;flex:0 0 auto;width:8.5rem;height:auto;transition:width .2s ease}.tcloud-ui-navbar .tcloud-ui-navbar-header .tcloud-ui-navbar-logo--dark{display:none}:host-context(.tc-dark) .tcloud-ui-navbar .tcloud-ui-navbar-logo--light{display:none}:host-context(.tc-dark) .tcloud-ui-navbar .tcloud-ui-navbar-logo--dark{display:block}.tcloud-ui-navbar .tcloud-ui-navbar-content{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--size-8);overflow:hidden auto;padding:var(--size-8)}.tcloud-ui-navbar .tcloud-ui-navbar-content::-webkit-scrollbar{display:none}.tcloud-ui-navbar .tcloud-ui-navbar-list{display:flex;flex-direction:column;gap:var(--size-8);list-style:none;margin:var(--size-0);padding:var(--size-0)}.tcloud-ui-navbar .tcloud-ui-navbar-group-label{color:var(--c-neutral-500);font-family:var(--f-family);font-size:var(--f-size-12);font-weight:var(--f-weight-700);padding:0 var(--size-8);text-transform:uppercase}.tcloud-ui-navbar .tcloud-ui-navbar-divider{border:0;border-top:1px solid var(--c-neutral-200);margin:var(--size-0);width:100%}.tcloud-ui-navbar .tcloud-ui-navbar-toggle{list-style:none;margin:0;padding:0}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link{align-items:center;border-radius:var(--bor-radius-4);color:var(--c-neutral-700);cursor:pointer;display:flex;font-family:var(--f-family);text-decoration:none;transition:all .2s ease}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link .navbar-item-icon-container{align-content:center;background-color:var(--c-neutral-100);border-radius:var(--bor-radius-4);font-size:var(--f-size-20);height:var(--size-36);width:var(--size-36);text-align:center;transition:all .2s ease;min-height:var(--size-36);min-width:var(--size-36);max-height:var(--size-36);max-width:var(--size-36)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link .navbar-item-label{align-items:center;display:flex;color:var(--c-neutral-700);font-size:var(--f-size-14);height:var(--size-36);padding-left:var(--size-8);min-height:var(--size-36);max-height:var(--size-36)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:hover,.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:focus{color:var(--c-primary-500)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:hover .navbar-item-icon-container,.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:focus .navbar-item-icon-container{background-color:var(--c-neutral-200);color:var(--c-primary-500)}.tcloud-ui-navbar .tcloud-ui-navbar-footer{flex:0 0 auto;border-top:1px solid var(--c-neutral-200);padding:var(--size-8)}.tcloud-ui-navbar .tcloud-ui-navbar-footer:empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TCloudUiNavbarItemComponent, selector: "tcloud-ui-navbar-item", inputs: ["item", "isMenuExpanded", "level"], outputs: ["onItemClick"] }] }); }
9846
9872
  }
9847
9873
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TCloudUiNavbarComponent, decorators: [{
9848
9874
  type: Component,
9849
- args: [{ selector: 'tcloud-ui-navbar', standalone: true, imports: [CommonModule, TCloudUiNavbarItemComponent], template: "<nav class=\"tcloud-ui-navbar\">\n <ul class=\"tcloud-ui-navbar-list\" [class.tcloud-ui-navbar-expanded]=\"isMenuExpanded\">\n\n @if (showToggle) {\n <li class=\"tcloud-ui-navbar-item tcloud-ui-navbar-toggle\">\n <a class=\"tcloud-ui-navbar-item-link\"\n (click)=\"handleExpand()\"\n [title]=\"isMenuExpanded ? 'Minimizar' : 'Expandir'\">\n <div class=\"navbar-item-icon-container\">\n <i class=\"fa-light\"\n [class.fa-arrow-left-to-line]=\"isMenuExpanded\"\n [class.fa-arrow-right-to-line]=\"!isMenuExpanded\"></i>\n </div>\n @if (isMenuExpanded) {\n <div class=\"navbar-item-label\">Minimizar</div>\n }\n </a>\n </li>\n }\n\n @for (item of menuItems; track $index) {\n @if (item.enable !== false) {\n <tcloud-ui-navbar-item\n [item]=\"item\"\n [isMenuExpanded]=\"isMenuExpanded\"\n (onItemClick)=\"onItemClick.emit($event)\">\n </tcloud-ui-navbar-item>\n }\n }\n </ul>\n</nav>\n", styles: [":host{display:block;height:100%}.tcloud-ui-navbar{display:block;height:100%;margin:var(--size-0);padding:var(--size-0)}.tcloud-ui-navbar .tcloud-ui-navbar-list{color:var(--c-neutral-700);display:flex;flex-direction:column;gap:var(--size-8);height:100%;list-style:none;margin:var(--size-0);overflow:hidden auto;padding:var(--size-8);width:var(--size-52)}.tcloud-ui-navbar .tcloud-ui-navbar-list::-webkit-scrollbar{display:none}.tcloud-ui-navbar .tcloud-ui-navbar-list.tcloud-ui-navbar-expanded{width:14.5rem}.tcloud-ui-navbar .tcloud-ui-navbar-toggle{list-style:none;margin:0;padding:0 0 var(--size-8) 0;border-bottom:1px solid var(--c-neutral-200)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link{align-items:center;border-radius:var(--bor-radius-4);color:var(--c-neutral-700);cursor:pointer;display:flex;font-family:var(--f-family);text-decoration:none;transition:all .2s ease}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link .navbar-item-icon-container{align-content:center;background-color:var(--c-neutral-50);border-radius:var(--bor-radius-4);font-size:var(--f-size-20);height:var(--size-36);width:var(--size-36);text-align:center;transition:all .2s ease;min-height:var(--size-36);min-width:var(--size-36);max-height:var(--size-36);max-width:var(--size-36)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link .navbar-item-label{align-items:center;display:flex;color:var(--c-neutral-700);font-size:var(--f-size-14);height:var(--size-36);padding-left:var(--size-8);min-height:var(--size-36);max-height:var(--size-36)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:hover,.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:focus{color:var(--c-primary-500)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:hover .navbar-item-icon-container,.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:focus .navbar-item-icon-container{background-color:var(--c-neutral-200);color:var(--c-primary-500)}\n"] }]
9875
+ args: [{ selector: 'tcloud-ui-navbar', standalone: true, imports: [CommonModule, TCloudUiNavbarItemComponent], template: "<nav class=\"tcloud-ui-navbar\" [class.tcloud-ui-navbar-expanded]=\"isMenuExpanded\">\n\n <!-- Header (logo): via [logoSrc]/[logoSrcDark] ou conte\u00FAdo em [navbar-header]. -->\n <div class=\"tcloud-ui-navbar-header\">\n @if (logoSrc) {\n <img class=\"tcloud-ui-navbar-logo\"\n [class.tcloud-ui-navbar-logo--light]=\"!!logoSrcDark\"\n [src]=\"logoSrc\" [alt]=\"logoAlt\" />\n }\n @if (logoSrcDark) {\n <img class=\"tcloud-ui-navbar-logo tcloud-ui-navbar-logo--dark\"\n [src]=\"logoSrcDark\" [alt]=\"logoAlt\" />\n }\n <ng-content select=\"[navbar-header]\"></ng-content>\n </div>\n\n <!-- Conte\u00FAdo rol\u00E1vel: grupos separados por divisor + toggle de minimizar. -->\n <div class=\"tcloud-ui-navbar-content\">\n\n\n @if (showToggle) {\n <ul class=\"tcloud-ui-navbar-list tcloud-ui-navbar-toggle-list\">\n <li class=\"tcloud-ui-navbar-item tcloud-ui-navbar-toggle\">\n <a class=\"tcloud-ui-navbar-item-link\"\n (click)=\"handleExpand()\"\n [title]=\"isMenuExpanded ? 'Minimizar' : 'Expandir'\">\n <div class=\"navbar-item-icon-container\">\n <i class=\"fa-light\"\n [class.fa-arrow-left-to-line]=\"isMenuExpanded\"\n [class.fa-arrow-right-to-line]=\"!isMenuExpanded\"></i>\n </div>\n @if (isMenuExpanded) {\n <div class=\"navbar-item-label\">Minimizar</div>\n }\n </a>\n </li>\n </ul>\n }\n\n\n @for (group of resolvedGroups; track $index; let last = $last) {\n <ul class=\"tcloud-ui-navbar-list\">\n @if (group.label && isMenuExpanded) {\n <li class=\"tcloud-ui-navbar-group-label\">{{ group.label }}</li>\n }\n @for (item of group.items; track $index) {\n @if (item.enable !== false) {\n <tcloud-ui-navbar-item\n [item]=\"item\"\n [isMenuExpanded]=\"isMenuExpanded\"\n (onItemClick)=\"onItemClick.emit($event)\">\n </tcloud-ui-navbar-item>\n }\n }\n </ul>\n\n @if (!last || showToggle) {\n <hr class=\"tcloud-ui-navbar-divider\" />\n }\n }\n\n \n </div>\n\n <!-- Footer (perfil/logout) \u2014 projetado pelo consumidor via [navbar-footer]. -->\n <div class=\"tcloud-ui-navbar-footer\">\n <ng-content select=\"[navbar-footer]\"></ng-content>\n </div>\n</nav>\n", styles: [":host{display:block;height:100%}.tcloud-ui-navbar{box-sizing:border-box;color:var(--c-neutral-700);display:flex;flex-direction:column;height:100%;margin:var(--size-0);padding:var(--size-0);transition:width .2s ease;width:var(--size-48)}.tcloud-ui-navbar.tcloud-ui-navbar-expanded{width:15.625rem}.tcloud-ui-navbar .tcloud-ui-navbar-header{flex:0 0 auto;align-items:center;display:flex;min-height:var(--size-56, 56px);overflow:hidden;padding:var(--size-8)}.tcloud-ui-navbar .tcloud-ui-navbar-header:empty{display:none}.tcloud-ui-navbar .tcloud-ui-navbar-header .tcloud-ui-navbar-logo{display:block;flex:0 0 auto;width:8.5rem;height:auto;transition:width .2s ease}.tcloud-ui-navbar .tcloud-ui-navbar-header .tcloud-ui-navbar-logo--dark{display:none}:host-context(.tc-dark) .tcloud-ui-navbar .tcloud-ui-navbar-logo--light{display:none}:host-context(.tc-dark) .tcloud-ui-navbar .tcloud-ui-navbar-logo--dark{display:block}.tcloud-ui-navbar .tcloud-ui-navbar-content{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--size-8);overflow:hidden auto;padding:var(--size-8)}.tcloud-ui-navbar .tcloud-ui-navbar-content::-webkit-scrollbar{display:none}.tcloud-ui-navbar .tcloud-ui-navbar-list{display:flex;flex-direction:column;gap:var(--size-8);list-style:none;margin:var(--size-0);padding:var(--size-0)}.tcloud-ui-navbar .tcloud-ui-navbar-group-label{color:var(--c-neutral-500);font-family:var(--f-family);font-size:var(--f-size-12);font-weight:var(--f-weight-700);padding:0 var(--size-8);text-transform:uppercase}.tcloud-ui-navbar .tcloud-ui-navbar-divider{border:0;border-top:1px solid var(--c-neutral-200);margin:var(--size-0);width:100%}.tcloud-ui-navbar .tcloud-ui-navbar-toggle{list-style:none;margin:0;padding:0}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link{align-items:center;border-radius:var(--bor-radius-4);color:var(--c-neutral-700);cursor:pointer;display:flex;font-family:var(--f-family);text-decoration:none;transition:all .2s ease}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link .navbar-item-icon-container{align-content:center;background-color:var(--c-neutral-100);border-radius:var(--bor-radius-4);font-size:var(--f-size-20);height:var(--size-36);width:var(--size-36);text-align:center;transition:all .2s ease;min-height:var(--size-36);min-width:var(--size-36);max-height:var(--size-36);max-width:var(--size-36)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link .navbar-item-label{align-items:center;display:flex;color:var(--c-neutral-700);font-size:var(--f-size-14);height:var(--size-36);padding-left:var(--size-8);min-height:var(--size-36);max-height:var(--size-36)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:hover,.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:focus{color:var(--c-primary-500)}.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:hover .navbar-item-icon-container,.tcloud-ui-navbar .tcloud-ui-navbar-toggle .tcloud-ui-navbar-item-link:focus .navbar-item-icon-container{background-color:var(--c-neutral-200);color:var(--c-primary-500)}.tcloud-ui-navbar .tcloud-ui-navbar-footer{flex:0 0 auto;border-top:1px solid var(--c-neutral-200);padding:var(--size-8)}.tcloud-ui-navbar .tcloud-ui-navbar-footer:empty{display:none}\n"] }]
9850
9876
  }], propDecorators: { menuItems: [{
9851
9877
  type: Input
9878
+ }], groups: [{
9879
+ type: Input
9852
9880
  }], isMenuExpanded: [{
9853
9881
  type: Input
9854
9882
  }], showToggle: [{
9855
9883
  type: Input
9884
+ }], logoSrc: [{
9885
+ type: Input
9886
+ }], logoSrcDark: [{
9887
+ type: Input
9888
+ }], logoAlt: [{
9889
+ type: Input
9856
9890
  }], onExpandChange: [{ type: i0.Output, args: ["onExpandChange"] }], onItemClick: [{ type: i0.Output, args: ["onItemClick"] }] } });
9857
9891
 
9892
+ /**
9893
+ * Rodapé de perfil do `tcloud-ui-navbar`: avatar, nome, papel e botão de sair.
9894
+ *
9895
+ * Projetado no slot `[navbar-footer]` do navbar. Respeita o modo minimizado
9896
+ * (`isMenuExpanded = false`), quando só o avatar é exibido.
9897
+ */
9898
+ class TCloudUiNavbarFooterComponent {
9899
+ constructor() {
9900
+ /** Texto alternativo do avatar. */
9901
+ this.avatarAlt = '';
9902
+ /** Ícone exibido no avatar quando não há `avatarSrc`. */
9903
+ this.avatarIcon = 'fas fa-user';
9904
+ /** Nome do usuário. */
9905
+ this.name = '';
9906
+ /** Papel/subtítulo do usuário (ex.: 'Operadora'). */
9907
+ this.role = '';
9908
+ /** Menu expandido: mostra nome/papel e o botão de sair. */
9909
+ this.isMenuExpanded = true;
9910
+ /** Exibe o botão de sair. */
9911
+ this.showLogout = true;
9912
+ /** Título/tooltip do botão de sair. */
9913
+ this.logoutTitle = 'Sair';
9914
+ /** Emitido ao clicar no botão de sair. */
9915
+ this.onLogout = output();
9916
+ }
9917
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TCloudUiNavbarFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9918
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: TCloudUiNavbarFooterComponent, isStandalone: true, selector: "tcloud-ui-navbar-footer", inputs: { avatarSrc: "avatarSrc", avatarAlt: "avatarAlt", avatarIcon: "avatarIcon", name: "name", role: "role", isMenuExpanded: "isMenuExpanded", showLogout: "showLogout", logoutTitle: "logoutTitle" }, outputs: { onLogout: "onLogout" }, ngImport: i0, template: "<div class=\"tcloud-ui-navbar-footer-avatar\">\n @if (avatarSrc) {\n <img [src]=\"avatarSrc\" [alt]=\"avatarAlt\" />\n } @else {\n <i [class]=\"avatarIcon\"></i>\n }\n</div>\n\n@if (isMenuExpanded) {\n <div class=\"tcloud-ui-navbar-footer-info\">\n <strong>{{ name }}</strong>\n <span>{{ role }}</span>\n </div>\n\n @if (showLogout) {\n <button type=\"button\"\n class=\"tcloud-ui-navbar-footer-logout\"\n [title]=\"logoutTitle\"\n (click)=\"onLogout.emit()\">\n <i class=\"fas fa-arrow-right-from-bracket\"></i>\n </button>\n }\n}\n", styles: [":host{align-items:center;display:flex;font-family:var(--f-family);gap:var(--size-8);width:100%}.tcloud-ui-navbar-footer-avatar{align-items:center;background-color:var(--c-neutral-100);border-radius:50%;color:var(--c-neutral-700);display:flex;flex:0 0 auto;font-size:var(--f-size-20);height:var(--size-36);justify-content:center;overflow:hidden;width:var(--size-36)}.tcloud-ui-navbar-footer-avatar img{height:100%;object-fit:cover;width:100%}.tcloud-ui-navbar-footer-info{display:flex;flex:1 1 auto;flex-direction:column;min-width:0}.tcloud-ui-navbar-footer-info strong{color:var(--c-neutral-700);font-size:var(--f-size-14);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcloud-ui-navbar-footer-info span{color:var(--c-neutral-500);font-size:var(--f-size-12);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcloud-ui-navbar-footer-logout{background:transparent;border:0;color:var(--c-danger-500);cursor:pointer;flex:0 0 auto;font-size:var(--f-size-20);padding:var(--size-4);transition:color .2s ease}.tcloud-ui-navbar-footer-logout:hover,.tcloud-ui-navbar-footer-logout:focus{color:var(--c-danger-400)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
9919
+ }
9920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TCloudUiNavbarFooterComponent, decorators: [{
9921
+ type: Component,
9922
+ args: [{ selector: 'tcloud-ui-navbar-footer', standalone: true, imports: [CommonModule], template: "<div class=\"tcloud-ui-navbar-footer-avatar\">\n @if (avatarSrc) {\n <img [src]=\"avatarSrc\" [alt]=\"avatarAlt\" />\n } @else {\n <i [class]=\"avatarIcon\"></i>\n }\n</div>\n\n@if (isMenuExpanded) {\n <div class=\"tcloud-ui-navbar-footer-info\">\n <strong>{{ name }}</strong>\n <span>{{ role }}</span>\n </div>\n\n @if (showLogout) {\n <button type=\"button\"\n class=\"tcloud-ui-navbar-footer-logout\"\n [title]=\"logoutTitle\"\n (click)=\"onLogout.emit()\">\n <i class=\"fas fa-arrow-right-from-bracket\"></i>\n </button>\n }\n}\n", styles: [":host{align-items:center;display:flex;font-family:var(--f-family);gap:var(--size-8);width:100%}.tcloud-ui-navbar-footer-avatar{align-items:center;background-color:var(--c-neutral-100);border-radius:50%;color:var(--c-neutral-700);display:flex;flex:0 0 auto;font-size:var(--f-size-20);height:var(--size-36);justify-content:center;overflow:hidden;width:var(--size-36)}.tcloud-ui-navbar-footer-avatar img{height:100%;object-fit:cover;width:100%}.tcloud-ui-navbar-footer-info{display:flex;flex:1 1 auto;flex-direction:column;min-width:0}.tcloud-ui-navbar-footer-info strong{color:var(--c-neutral-700);font-size:var(--f-size-14);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcloud-ui-navbar-footer-info span{color:var(--c-neutral-500);font-size:var(--f-size-12);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcloud-ui-navbar-footer-logout{background:transparent;border:0;color:var(--c-danger-500);cursor:pointer;flex:0 0 auto;font-size:var(--f-size-20);padding:var(--size-4);transition:color .2s ease}.tcloud-ui-navbar-footer-logout:hover,.tcloud-ui-navbar-footer-logout:focus{color:var(--c-danger-400)}\n"] }]
9923
+ }], propDecorators: { avatarSrc: [{
9924
+ type: Input
9925
+ }], avatarAlt: [{
9926
+ type: Input
9927
+ }], avatarIcon: [{
9928
+ type: Input
9929
+ }], name: [{
9930
+ type: Input
9931
+ }], role: [{
9932
+ type: Input
9933
+ }], isMenuExpanded: [{
9934
+ type: Input
9935
+ }], showLogout: [{
9936
+ type: Input
9937
+ }], logoutTitle: [{
9938
+ type: Input
9939
+ }], onLogout: [{ type: i0.Output, args: ["onLogout"] }] } });
9940
+
9858
9941
  class TCloudUiTabGroupComponent {
9859
9942
  constructor() {
9860
9943
  this.isCarouselOverflowed = false;
@@ -10492,6 +10575,7 @@ const COMPONENTS = [
10492
10575
  TCloudUiSubNavbarItemComponent,
10493
10576
  TCloudUiNavbarComponent,
10494
10577
  TCloudUiNavbarItemComponent,
10578
+ TCloudUiNavbarFooterComponent,
10495
10579
  TCloudUiTabGroupComponent,
10496
10580
  TCloudUiTabItemComponent,
10497
10581
  TCloudUiWizardStepsComponent,
@@ -10631,6 +10715,7 @@ class TCloudUiModule {
10631
10715
  TCloudUiSubNavbarItemComponent,
10632
10716
  TCloudUiNavbarComponent,
10633
10717
  TCloudUiNavbarItemComponent,
10718
+ TCloudUiNavbarFooterComponent,
10634
10719
  TCloudUiTabGroupComponent,
10635
10720
  TCloudUiTabItemComponent,
10636
10721
  TCloudUiWizardStepsComponent,
@@ -10732,6 +10817,7 @@ class TCloudUiModule {
10732
10817
  TCloudUiSubNavbarItemComponent,
10733
10818
  TCloudUiNavbarComponent,
10734
10819
  TCloudUiNavbarItemComponent,
10820
+ TCloudUiNavbarFooterComponent,
10735
10821
  TCloudUiTabGroupComponent,
10736
10822
  TCloudUiTabItemComponent,
10737
10823
  TCloudUiWizardStepsComponent,
@@ -10807,6 +10893,7 @@ class TCloudUiModule {
10807
10893
  TCloudUiSubNavbarItemComponent,
10808
10894
  TCloudUiNavbarComponent,
10809
10895
  TCloudUiNavbarItemComponent,
10896
+ TCloudUiNavbarFooterComponent,
10810
10897
  TCloudUiTabItemComponent,
10811
10898
  TCloudUiBreadcrumbComponent,
10812
10899
  TCloudUiSearchInputComponent,
@@ -12822,5 +12909,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
12822
12909
  * Generated bundle index. Do not edit.
12823
12910
  */
12824
12911
 
12825
- export { AcceptedFileType, BytesPipe, CNPJPipe, CPFPipe, CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR$2 as CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, DateBRPipe, DropdownGroupedSize, DropdownMultiSize$1 as DropdownMultiSize, DropdownSize$1 as DropdownSize, MonthNamePipe, MultiLevelDropdownSize$1 as MultiLevelDropdownSize, ProductActionPipe, ProgressStatusBarGradientStatus$1 as ProgressStatusBarGradientStatus, RespectivePipe, StatusInfoPipe, TCCondition, TCFiltersType, TCLOUD_UI_CONFIG, TCLOUD_UI_LAYOUT_SERVICE, TCLOUD_UI_LOCALE_SERVICE, TCLOUD_UI_USER_SERVICE, TCLOUD_UI_VIEWPORT_SERVICE, TCloudUiAccordionBodyComponent, TCloudUiAccordionComponent, TCloudUiAccordionTitleComponent, TCloudUiAlertBannerComponent, TCloudUiAlignDirective, TCloudUiBreadcrumbComponent, TCloudUiBreadcrumbService, TCloudUiButtonDirective, TCloudUiCalendarComponent, TCloudUiCardAccordionComponent, TCloudUiCardComponent, TCloudUiCardTitleComponent, TCloudUiCarouselComponent, TCloudUiCheckAccessDirective, TCloudUiCheckAccessService, TCloudUiCheckboxDirective, TCloudUiChoiceIssuesComponent, TCloudUiContainerColComponent, TCloudUiContainerComponent, TCloudUiContainerContentComponent, TCloudUiCubesComponent, TCloudUiCurrencyDirective, TCloudUiDataListComponent, TCloudUiDataListOptionComponent, TCloudUiDatepickerComponent, TCloudUiDatepickerTimeComponent, TCloudUiDialogComponent, TCloudUiDialogEventsEnum, TCloudUiDialogHostComponent, TCloudUiDialogModel, TCloudUiDialogService, TCloudUiDialogStatusEnum, TCloudUiDialogTextConfirmationEnum, TCloudUiDigitOnlyDirective, TCloudUiDropdownComponent, TCloudUiDropdownMultiComponent, TCloudUiDropdownMultiLevelComponent, TCloudUiEditorComponent, TCloudUiEditorDiffComponent, TCloudUiElCopyDirective, TCloudUiEmptyContentComponent, TCloudUiFaqComponent, TCloudUiFilterBarComponent, TCloudUiFiltersComponent, TCloudUiFormDirective, TCloudUiHighLightDirective, TCloudUiHoverParentDirective, TCloudUiIconButtonDirective, TCloudUiInputContainerComponent, TCloudUiInputDirective, TCloudUiInputPasswordComponent, TCloudUiInputSearchComponent, TCloudUiIpMaskDirective, TCloudUiLabelTokenComponent, TCloudUiLegendComponent, TCloudUiLineStepCircleComponent, TCloudUiLineStepTitleComponent, TCloudUiLinhaLogoComponent, TCloudUiLoadingComponent, TCloudUiLoadingTransitionsService, TCloudUiMarkReadmeComponent, TCloudUiMessageComponent, TCloudUiModalBodyComponent, TCloudUiModalComponent, TCloudUiModalFooterComponent, TCloudUiModalHeaderComponent, TCloudUiModule, TCloudUiMultiInputComponent, TCloudUiMultiSelectComponent, TCloudUiMultiplesValuesComponent, TCloudUiNavbarComponent, TCloudUiNavbarItemComponent, TCloudUiNgCheckAccessDirective, TCloudUiNgFeatureFlagsDirective, TCloudUiNotFoundComponent, TCloudUiNumberStepComponent, TCloudUiPaginationComponent, TCloudUiPaginationPipe, TCloudUiPopoverComponent, TCloudUiProgressBarComponent, TCloudUiProgressStatusBarComponent, TCloudUiRadioDirective, TCloudUiRangeDateComponent, TCloudUiReorderItemsComponent, TCloudUiScrollBoxComponent, TCloudUiSearchBarComponent, TCloudUiSearchInObjectService, TCloudUiSearchInputComponent, TCloudUiSkeletonLoadingComponent, TCloudUiSkeletonLoadingComponentStyle, TCloudUiSlideToggleDirective, TCloudUiSubNavbarComponent, TCloudUiSubNavbarGroupComponent, TCloudUiSubNavbarItemComponent, TCloudUiTabContentComponent, TCloudUiTabGroupComponent, TCloudUiTabHeadComponent, TCloudUiTabItemComponent, TCloudUiTabMenuComponent, TCloudUiTabSubtitleComponent, TCloudUiTabTitleComponent, TCloudUiTableComponent, TCloudUiTagComponent, TCloudUiToastComponent, TCloudUiTooltipDirective, TCloudUiUploadAreaComponent, TCloudUiWelcomeComponent, TCloudUiWizardStepsComponent, TagColorsEnum, TcRevButtonDirective, TcRevCalendarComponent, TcRevCardAccordionComponent, TcRevCardComponent, TcRevCardTitleComponent, TcRevCheckboxDirective, TcRevComponentsLibModule, TcRevDropdownComponent, TcRevDropdownGroupedComponent, TcRevDropdownMultiComponent, TcRevDropdownMultiLevelComponent, TcRevEmptyContentComponent, TcRevFaqComponent, TcRevIconButtonDirective, TcRevInputContainerComponent, TcRevInputDirective, TcRevLoadingComponent, TcRevMessageComponent, TcRevMultiInputComponent, TcRevPaginationComponent, TcRevProgressStatusBarComponent, TcRevRadioDirective, TcRevSearchInputComponent, TcRevSideDrawerComponent, TcRevSkeletonLoadingComponent, TcRevSkeletonLoadingComponentStyle, TcRevSlideToggleDirective, TcRevSmallLoadingComponent, TcRevSmallLoadingComponentStyle, TcRevSubNavbarComponent, TcRevSubNavbarItemComponent, TcRevTabGroupComponent, TcRevTabItemComponent, TcRevTagComponent, TcRevToastComponent, TcRevTooltipDirective, TcRevWizardStepsComponent, ToTextPipe, TopologyEnvironmentPipe, TopologyProductPipe, TopologyRegionPipe, TopologyStatusPipe, echartBarConfig, isTextEllipsed, provideTCloudUi };
12912
+ export { AcceptedFileType, BytesPipe, CNPJPipe, CPFPipe, CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR$2 as CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, DateBRPipe, DropdownGroupedSize, DropdownMultiSize$1 as DropdownMultiSize, DropdownSize$1 as DropdownSize, MonthNamePipe, MultiLevelDropdownSize$1 as MultiLevelDropdownSize, ProductActionPipe, ProgressStatusBarGradientStatus$1 as ProgressStatusBarGradientStatus, RespectivePipe, StatusInfoPipe, TCCondition, TCFiltersType, TCLOUD_UI_CONFIG, TCLOUD_UI_LAYOUT_SERVICE, TCLOUD_UI_LOCALE_SERVICE, TCLOUD_UI_USER_SERVICE, TCLOUD_UI_VIEWPORT_SERVICE, TCloudUiAccordionBodyComponent, TCloudUiAccordionComponent, TCloudUiAccordionTitleComponent, TCloudUiAlertBannerComponent, TCloudUiAlignDirective, TCloudUiBreadcrumbComponent, TCloudUiBreadcrumbService, TCloudUiButtonDirective, TCloudUiCalendarComponent, TCloudUiCardAccordionComponent, TCloudUiCardComponent, TCloudUiCardTitleComponent, TCloudUiCarouselComponent, TCloudUiCheckAccessDirective, TCloudUiCheckAccessService, TCloudUiCheckboxDirective, TCloudUiChoiceIssuesComponent, TCloudUiContainerColComponent, TCloudUiContainerComponent, TCloudUiContainerContentComponent, TCloudUiCubesComponent, TCloudUiCurrencyDirective, TCloudUiDataListComponent, TCloudUiDataListOptionComponent, TCloudUiDatepickerComponent, TCloudUiDatepickerTimeComponent, TCloudUiDialogComponent, TCloudUiDialogEventsEnum, TCloudUiDialogHostComponent, TCloudUiDialogModel, TCloudUiDialogService, TCloudUiDialogStatusEnum, TCloudUiDialogTextConfirmationEnum, TCloudUiDigitOnlyDirective, TCloudUiDropdownComponent, TCloudUiDropdownMultiComponent, TCloudUiDropdownMultiLevelComponent, TCloudUiEditorComponent, TCloudUiEditorDiffComponent, TCloudUiElCopyDirective, TCloudUiEmptyContentComponent, TCloudUiFaqComponent, TCloudUiFilterBarComponent, TCloudUiFiltersComponent, TCloudUiFormDirective, TCloudUiHighLightDirective, TCloudUiHoverParentDirective, TCloudUiIconButtonDirective, TCloudUiInputContainerComponent, TCloudUiInputDirective, TCloudUiInputPasswordComponent, TCloudUiInputSearchComponent, TCloudUiIpMaskDirective, TCloudUiLabelTokenComponent, TCloudUiLegendComponent, TCloudUiLineStepCircleComponent, TCloudUiLineStepTitleComponent, TCloudUiLinhaLogoComponent, TCloudUiLoadingComponent, TCloudUiLoadingTransitionsService, TCloudUiMarkReadmeComponent, TCloudUiMessageComponent, TCloudUiModalBodyComponent, TCloudUiModalComponent, TCloudUiModalFooterComponent, TCloudUiModalHeaderComponent, TCloudUiModule, TCloudUiMultiInputComponent, TCloudUiMultiSelectComponent, TCloudUiMultiplesValuesComponent, TCloudUiNavbarComponent, TCloudUiNavbarFooterComponent, TCloudUiNavbarItemComponent, TCloudUiNgCheckAccessDirective, TCloudUiNgFeatureFlagsDirective, TCloudUiNotFoundComponent, TCloudUiNumberStepComponent, TCloudUiPaginationComponent, TCloudUiPaginationPipe, TCloudUiPopoverComponent, TCloudUiProgressBarComponent, TCloudUiProgressStatusBarComponent, TCloudUiRadioDirective, TCloudUiRangeDateComponent, TCloudUiReorderItemsComponent, TCloudUiScrollBoxComponent, TCloudUiSearchBarComponent, TCloudUiSearchInObjectService, TCloudUiSearchInputComponent, TCloudUiSkeletonLoadingComponent, TCloudUiSkeletonLoadingComponentStyle, TCloudUiSlideToggleDirective, TCloudUiSubNavbarComponent, TCloudUiSubNavbarGroupComponent, TCloudUiSubNavbarItemComponent, TCloudUiTabContentComponent, TCloudUiTabGroupComponent, TCloudUiTabHeadComponent, TCloudUiTabItemComponent, TCloudUiTabMenuComponent, TCloudUiTabSubtitleComponent, TCloudUiTabTitleComponent, TCloudUiTableComponent, TCloudUiTagComponent, TCloudUiToastComponent, TCloudUiTooltipDirective, TCloudUiUploadAreaComponent, TCloudUiWelcomeComponent, TCloudUiWizardStepsComponent, TagColorsEnum, TcRevButtonDirective, TcRevCalendarComponent, TcRevCardAccordionComponent, TcRevCardComponent, TcRevCardTitleComponent, TcRevCheckboxDirective, TcRevComponentsLibModule, TcRevDropdownComponent, TcRevDropdownGroupedComponent, TcRevDropdownMultiComponent, TcRevDropdownMultiLevelComponent, TcRevEmptyContentComponent, TcRevFaqComponent, TcRevIconButtonDirective, TcRevInputContainerComponent, TcRevInputDirective, TcRevLoadingComponent, TcRevMessageComponent, TcRevMultiInputComponent, TcRevPaginationComponent, TcRevProgressStatusBarComponent, TcRevRadioDirective, TcRevSearchInputComponent, TcRevSideDrawerComponent, TcRevSkeletonLoadingComponent, TcRevSkeletonLoadingComponentStyle, TcRevSlideToggleDirective, TcRevSmallLoadingComponent, TcRevSmallLoadingComponentStyle, TcRevSubNavbarComponent, TcRevSubNavbarItemComponent, TcRevTabGroupComponent, TcRevTabItemComponent, TcRevTagComponent, TcRevToastComponent, TcRevTooltipDirective, TcRevWizardStepsComponent, ToTextPipe, TopologyEnvironmentPipe, TopologyProductPipe, TopologyRegionPipe, TopologyStatusPipe, echartBarConfig, isTextEllipsed, provideTCloudUi };
12826
12913
  //# sourceMappingURL=dev-tcloud-tcloud-ui.mjs.map