structra-ui 0.2.63 → 0.2.78
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 +26 -26
- package/fesm2022/structra-ui.mjs +4536 -873
- package/fesm2022/structra-ui.mjs.map +1 -1
- package/package.json +68 -68
- package/structra-ui.css +1 -1
- package/types/structra-ui.d.ts +1106 -33
package/types/structra-ui.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { AfterViewInit, OnChanges, ElementRef, SimpleChanges, ChangeDetectorRef, Injector, DestroyRef, EventEmitter, OnInit, DoCheck, TemplateRef, OnDestroy, InjectionToken, AfterContentInit, QueryList, AfterViewChecked, Renderer2, Signal, ViewContainerRef, WritableSignal, Type, EnvironmentProviders, EffectRef, isDevMode } from '@angular/core';
|
|
2
|
+
import { AfterViewInit, OnChanges, ElementRef, SimpleChanges, ChangeDetectorRef, Injector, DestroyRef, EventEmitter, OnInit, DoCheck, TemplateRef, OnDestroy, InjectionToken, AfterContentInit, QueryList, AfterViewChecked, Renderer2, Signal, ViewContainerRef, Provider, WritableSignal, Type, EnvironmentProviders, EffectRef, isDevMode } from '@angular/core';
|
|
3
3
|
import * as _angular_forms from '@angular/forms';
|
|
4
|
-
import { ControlValueAccessor, AbstractControl, NgControl, ValidatorFn, NgForm, FormGroup, FormBuilder, FormArray
|
|
4
|
+
import { ControlValueAccessor, AbstractControl, NgControl, ValidatorFn, NgForm, FormGroup, FormControl, FormBuilder, FormArray } from '@angular/forms';
|
|
5
5
|
import { MatDatepicker } from '@angular/material/datepicker';
|
|
6
6
|
import * as _angular_cdk_overlay from '@angular/cdk/overlay';
|
|
7
7
|
import { ConnectedPosition, ScrollStrategy, OverlayRef, Overlay } from '@angular/cdk/overlay';
|
|
8
8
|
import { SafeResourceUrl } from '@angular/platform-browser';
|
|
9
|
-
import { ICellRendererParams, ColDef, GetRowIdParams, GridReadyEvent, RowClickedEvent } from 'ag-grid-community';
|
|
9
|
+
import { ICellRendererParams, ColDef, GetRowIdParams, GridReadyEvent, ColumnMovedEvent, ColumnResizedEvent, ColumnVisibleEvent, ColumnPinnedEvent, RowClickedEvent } from 'ag-grid-community';
|
|
10
10
|
import { ICellRendererAngularComp } from 'ag-grid-angular';
|
|
11
11
|
import * as structra_ui from 'structra-ui';
|
|
12
12
|
import { DialogRef } from '@angular/cdk/dialog';
|
|
@@ -56,23 +56,42 @@ declare function resolveStructraShellScrollContainer(host: HTMLElement, pageHost
|
|
|
56
56
|
declare const STRUCTRA_DEDICATED_BACK_TO_TOP_SELECTOR = ".structra-consulta-page-host, .structra-cadastro-page-host, .cadastro-metadata-shell-page";
|
|
57
57
|
|
|
58
58
|
type AlertType = 'error' | 'success' | 'warning' | 'info';
|
|
59
|
+
/** Botão opcional alinhado à direita dentro do banner. */
|
|
60
|
+
interface AlertAction {
|
|
61
|
+
label: string;
|
|
62
|
+
icon?: string;
|
|
63
|
+
}
|
|
59
64
|
/**
|
|
60
65
|
* Feedback visual inline (erro, sucesso, aviso, informação). Reutiliza tokens semânticos da lib.
|
|
61
66
|
*/
|
|
62
67
|
declare class AlertComponent {
|
|
68
|
+
protected readonly ButtonVariant: {
|
|
69
|
+
readonly Primary: "primary";
|
|
70
|
+
readonly Secondary: "secondary";
|
|
71
|
+
readonly Ghost: "ghost";
|
|
72
|
+
readonly Link: "link";
|
|
73
|
+
readonly Danger: "danger";
|
|
74
|
+
readonly Warning: "warning";
|
|
75
|
+
readonly Success: "success";
|
|
76
|
+
};
|
|
63
77
|
/** Remove o host do fluxo ao fechar (evita faixa em branco com `display: block` vazio). */
|
|
64
78
|
protected get hostHidden(): boolean;
|
|
65
79
|
type: AlertType;
|
|
66
80
|
message: string;
|
|
67
81
|
closable: boolean;
|
|
82
|
+
/** Ação opcional (rótulo + ícone) renderizada à direita do texto. */
|
|
83
|
+
action: AlertAction | null;
|
|
84
|
+
readonly actionClick: _angular_core.OutputEmitterRef<void>;
|
|
68
85
|
/** Quando `closable`, o alerta deixa de renderizar após fechar. */
|
|
69
86
|
protected readonly visible: _angular_core.WritableSignal<boolean>;
|
|
70
87
|
protected get hasMessage(): boolean;
|
|
88
|
+
protected get hasAction(): boolean;
|
|
71
89
|
private readonly modifierByType;
|
|
72
90
|
protected get alertHostClass(): string;
|
|
73
91
|
protected onClose(): void;
|
|
92
|
+
protected onActionClick(): void;
|
|
74
93
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertComponent, never>;
|
|
75
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertComponent, "app-alert", never, { "type": { "alias": "type"; "required": false; }; "message": { "alias": "message"; "required": false; }; "closable": { "alias": "closable"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
94
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertComponent, "app-alert", never, { "type": { "alias": "type"; "required": false; }; "message": { "alias": "message"; "required": false; }; "closable": { "alias": "closable"; "required": false; }; "action": { "alias": "action"; "required": false; }; }, { "actionClick": "actionClick"; }, never, ["*"], true, never>;
|
|
76
95
|
static ngAcceptInputType_closable: unknown;
|
|
77
96
|
}
|
|
78
97
|
|
|
@@ -259,6 +278,13 @@ type MenuLeafItem<T = string> = MenuItemAction<T> | MenuItemDivider;
|
|
|
259
278
|
/** Nó de primeiro nível ou dentro de grupos (inclui submenus). */
|
|
260
279
|
type MenuNodeItem<T = string> = MenuLeafItem<T> | MenuItemGroup<T> | MenuItemSubmenu<T>;
|
|
261
280
|
|
|
281
|
+
interface NativeInputAutofillSyncOptions {
|
|
282
|
+
getBoundText: () => string;
|
|
283
|
+
refreshFilledUi: () => void;
|
|
284
|
+
/** Autofill / `change` sem `input`: DOM tem valor diferente do estado Angular. */
|
|
285
|
+
onDomValueChanged?: (domValue: string) => void;
|
|
286
|
+
}
|
|
287
|
+
|
|
262
288
|
/**
|
|
263
289
|
* Escala do campo (design system).
|
|
264
290
|
* - **`sm`** — compacto (barras laterais, filtros).
|
|
@@ -373,7 +399,7 @@ declare abstract class BaseFieldDirective<T> implements ControlValueAccessor, On
|
|
|
373
399
|
get hostDataControlId(): string;
|
|
374
400
|
protected get autoIdPrefix(): string;
|
|
375
401
|
/** Valor do atributo HTML `autocomplete` derivado de {@link autocomplete}. */
|
|
376
|
-
get autocompleteAttr():
|
|
402
|
+
get autocompleteAttr(): string;
|
|
377
403
|
/**
|
|
378
404
|
* Mensagem exibida quando inválido: `errorMessage` se preenchido;
|
|
379
405
|
* senão, se obrigatório, o padrão "Campo obrigatório".
|
|
@@ -426,6 +452,13 @@ declare abstract class BaseFieldDirective<T> implements ControlValueAccessor, On
|
|
|
426
452
|
* após pintura / timeout curto para o teclado virtual aparecer com mais fiabilidade após o layout do painel.
|
|
427
453
|
*/
|
|
428
454
|
protected applyAutofocusIfNeeded(resolve: () => HTMLElement | null | undefined): void;
|
|
455
|
+
/** Sincroniza autofill do browser com `filledUi` e modelo (autofill não dispara `input`). */
|
|
456
|
+
protected attachNativeInputAutofillSync(input: HTMLInputElement | HTMLTextAreaElement | null | undefined, options: NativeInputAutofillSyncOptions): void;
|
|
457
|
+
/**
|
|
458
|
+
* Search-select / combobox: regista tipografia inline sem o fluxo completo de autofill.
|
|
459
|
+
* Inputs de texto já entram via {@link attachNativeInputAutofillSync}.
|
|
460
|
+
*/
|
|
461
|
+
protected bindNativeInputTypographyViewport(input: HTMLInputElement | HTMLTextAreaElement | null | undefined): void;
|
|
429
462
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseFieldDirective<any>, never>;
|
|
430
463
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseFieldDirective<any>, never, never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; "tamanhoCampoMobile": { "alias": "tamanhoCampoMobile"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "showErrorMessage": { "alias": "showErrorMessage"; "required": false; }; "invalidThemed": { "alias": "invalidThemed"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showRequiredMark": { "alias": "showRequiredMark"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "showPrefixIcon": { "alias": "showPrefixIcon"; "required": false; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; }; "iconLeft": { "alias": "iconLeft"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "mostrarMenuContexto": { "alias": "mostrarMenuContexto"; "required": false; }; "contextMenuItems": { "alias": "contextMenuItems"; "required": false; }; "contextMenuId": { "alias": "contextMenuId"; "required": false; }; }, { "contextMenuSelect": "contextMenuSelect"; }, never, never, true, never>;
|
|
431
464
|
static ngAcceptInputType_tamanhoCampoMobile: unknown;
|
|
@@ -496,6 +529,17 @@ declare class SkeletonCardComponent {
|
|
|
496
529
|
static ngAcceptInputType_animate: unknown;
|
|
497
530
|
}
|
|
498
531
|
|
|
532
|
+
/** Placeholder de cartão totalizador (`app-stat-card`) — painéis de consulta e dashboard. */
|
|
533
|
+
declare class SkeletonStatCardComponent {
|
|
534
|
+
animate: boolean;
|
|
535
|
+
/** Espelha `app-stat-card` com linha de descrição (ex.: dashboard Oficina). */
|
|
536
|
+
withDescription: boolean;
|
|
537
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonStatCardComponent, never>;
|
|
538
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonStatCardComponent, "app-skeleton-stat-card", never, { "animate": { "alias": "animate"; "required": false; }; "withDescription": { "alias": "withDescription"; "required": false; }; }, {}, never, never, true, never>;
|
|
539
|
+
static ngAcceptInputType_animate: unknown;
|
|
540
|
+
static ngAcceptInputType_withDescription: unknown;
|
|
541
|
+
}
|
|
542
|
+
|
|
499
543
|
/** Placeholder tabular (cabeçalho + linhas + faixa de paginação). */
|
|
500
544
|
declare class SkeletonTableComponent {
|
|
501
545
|
columnCount: number;
|
|
@@ -671,10 +715,13 @@ declare class TextFieldComponent extends NgControlFieldDirective<string | null>
|
|
|
671
715
|
nativeInputType: 'text' | 'email';
|
|
672
716
|
inputText: string;
|
|
673
717
|
filledUi: boolean;
|
|
718
|
+
/** Login/cadastro: `username` ou `email` em vez de `on` genérico. */
|
|
719
|
+
get autocompleteAttr(): string;
|
|
674
720
|
/** FormControl por vezes escreve número/object (metadata dinâmica); normalizar antes de slice/trim. */
|
|
675
721
|
private static valueAsTrimmedString;
|
|
676
722
|
private refreshFilledUi;
|
|
677
723
|
ngAfterViewInit(): void;
|
|
724
|
+
private syncAutofillFromDom;
|
|
678
725
|
protected afterWriteValue(value: string | null): void;
|
|
679
726
|
onNativeInput(event: Event): void;
|
|
680
727
|
onBlur(): void;
|
|
@@ -734,6 +781,7 @@ declare class PasswordFieldComponent extends NgControlFieldDirective<string | nu
|
|
|
734
781
|
toggleIconClassUi: string;
|
|
735
782
|
ngOnInit(): void;
|
|
736
783
|
ngAfterViewInit(): void;
|
|
784
|
+
private syncAutofillFromDom;
|
|
737
785
|
private refreshFilledUi;
|
|
738
786
|
private refreshPasswordToggleUi;
|
|
739
787
|
protected afterWriteValue(value: string | null): void;
|
|
@@ -765,6 +813,7 @@ declare class TextareaFieldComponent extends NgControlFieldDirective<string | nu
|
|
|
765
813
|
textareaMaxHeightCss: string;
|
|
766
814
|
ngOnInit(): void;
|
|
767
815
|
ngAfterViewInit(): void;
|
|
816
|
+
private syncAutofillFromDom;
|
|
768
817
|
ngOnChanges(changes: SimpleChanges): void;
|
|
769
818
|
private updateTextareaHeight;
|
|
770
819
|
private refreshFilledUi;
|
|
@@ -820,6 +869,7 @@ declare class IntegerFieldComponent extends NgControlFieldDirective<number | nul
|
|
|
820
869
|
inputText: string;
|
|
821
870
|
filledUi: boolean;
|
|
822
871
|
ngAfterViewInit(): void;
|
|
872
|
+
private syncAutofillFromDom;
|
|
823
873
|
private refreshFilledUi;
|
|
824
874
|
protected afterWriteValue(value: number | null): void;
|
|
825
875
|
onBeforeInput(event: Event): void;
|
|
@@ -850,6 +900,7 @@ declare class DecimalFieldComponent extends NgControlFieldDirective<number | nul
|
|
|
850
900
|
/** Valor mostrado no `<input>`: `prefixo + número` ou só o número. */
|
|
851
901
|
get displayValue(): string;
|
|
852
902
|
ngAfterViewInit(): void;
|
|
903
|
+
private syncAutofillFromDom;
|
|
853
904
|
private composeFullDisplay;
|
|
854
905
|
/** Comprimento do segmento `«prefixo» ` em caracteres (0 se não há prefixo). */
|
|
855
906
|
private prefixSegmentLen;
|
|
@@ -923,6 +974,7 @@ declare abstract class MaskedTextFieldBase extends NgControlFieldDirective<strin
|
|
|
923
974
|
/** Padrão efetivo (permite CEP/telefone fixarem máscaras em subclasses). */
|
|
924
975
|
protected get pattern(): string;
|
|
925
976
|
ngAfterViewInit(): void;
|
|
977
|
+
private syncAutofillFromDom;
|
|
926
978
|
/**
|
|
927
979
|
* Padrão de formatação para o valor digitado (só dígitos).
|
|
928
980
|
* Sobrescrever para máscara dinâmica (ex.: CPF até 11 dígitos, CNPJ depois).
|
|
@@ -1347,7 +1399,7 @@ declare class DropdownBaseComponent {
|
|
|
1347
1399
|
* As classes de tema no painel interno seguem o tema activo sempre.
|
|
1348
1400
|
*/
|
|
1349
1401
|
readonly panelThemeNgClass: _angular_core.Signal<{
|
|
1350
|
-
[
|
|
1402
|
+
[k: string]: boolean;
|
|
1351
1403
|
}>;
|
|
1352
1404
|
open: boolean;
|
|
1353
1405
|
readonly openChange: EventEmitter<boolean>;
|
|
@@ -1591,6 +1643,8 @@ declare class SelectFieldComponent extends DropdownOptionFieldBase implements Af
|
|
|
1591
1643
|
declare class MultiselectFieldComponent extends DropdownMultiOptionFieldBase implements AfterViewInit, OnDestroy, OnChanges {
|
|
1592
1644
|
private readonly hostRef;
|
|
1593
1645
|
get hostInvalidClass(): boolean;
|
|
1646
|
+
/** Campo de pesquisa no painel para filtrar opções (consulta / filtros com listas longas). */
|
|
1647
|
+
searchable: boolean;
|
|
1594
1648
|
/** Por omissão `true`: mesmo padrão do select com lista longa (`pageRequested` + scroll). */
|
|
1595
1649
|
pagination: boolean;
|
|
1596
1650
|
/**
|
|
@@ -1652,6 +1706,7 @@ declare class MultiselectFieldComponent extends DropdownMultiOptionFieldBase imp
|
|
|
1652
1706
|
private readonly dropdownBase?;
|
|
1653
1707
|
panelOpen: boolean;
|
|
1654
1708
|
panelOverlayWidth: number;
|
|
1709
|
+
panelSearchQuery: string;
|
|
1655
1710
|
private scrollLoadTimer;
|
|
1656
1711
|
private keyboardLoadMoreTimer;
|
|
1657
1712
|
private loadMoreInFlight;
|
|
@@ -1666,6 +1721,11 @@ declare class MultiselectFieldComponent extends DropdownMultiOptionFieldBase imp
|
|
|
1666
1721
|
/** Texto numa linha: rótulos separados por vírgula + ellipsis no CSS. */
|
|
1667
1722
|
get displaySummary(): string;
|
|
1668
1723
|
get optionsListId(): string;
|
|
1724
|
+
get panelSearchInputId(): string;
|
|
1725
|
+
/** Filtra {@link DropdownMultiOptionFieldBase.listOptions} quando {@link searchable} está activo. */
|
|
1726
|
+
get listOptions(): ReadonlyArray<UiSelectOption<unknown>>;
|
|
1727
|
+
onPanelSearchInput(ev: Event): void;
|
|
1728
|
+
onPanelSearchKeydown(ev: KeyboardEvent): void;
|
|
1669
1729
|
private getOptionsListElement;
|
|
1670
1730
|
private scrollActiveOptionIntoView;
|
|
1671
1731
|
private scheduleMaybeLoadMoreFromKeyboard;
|
|
@@ -1696,7 +1756,8 @@ declare class MultiselectFieldComponent extends DropdownMultiOptionFieldBase imp
|
|
|
1696
1756
|
/** Escape com foco no limpar/prefixo do `base-field` (não passa pelo div da origem do overlay). */
|
|
1697
1757
|
onDropdownHostEscape(ev: KeyboardEvent): void;
|
|
1698
1758
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MultiselectFieldComponent, never>;
|
|
1699
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MultiselectFieldComponent, "app-multiselect-field", never, { "pagination": { "alias": "pagination"; "required": false; }; "useCache": { "alias": "useCache"; "required": false; }; "pageableInput": { "alias": "pageable"; "required": false; }; "showSuffixSlot": { "alias": "showSuffixSlot"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "defaultValueLabel": { "alias": "defaultValueLabel"; "required": false; }; "maxSelected": { "alias": "maxSelected"; "required": false; }; }, { "pageRequested": "pageRequested"; }, never, ["[appFieldPrefix]", "[appMultiselectTriggerSuffix]", "[appFieldSuffix]"], true, never>;
|
|
1759
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MultiselectFieldComponent, "app-multiselect-field", never, { "searchable": { "alias": "searchable"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "useCache": { "alias": "useCache"; "required": false; }; "pageableInput": { "alias": "pageable"; "required": false; }; "showSuffixSlot": { "alias": "showSuffixSlot"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "defaultValueLabel": { "alias": "defaultValueLabel"; "required": false; }; "maxSelected": { "alias": "maxSelected"; "required": false; }; }, { "pageRequested": "pageRequested"; }, never, ["[appFieldPrefix]", "[appMultiselectTriggerSuffix]", "[appFieldSuffix]"], true, never>;
|
|
1760
|
+
static ngAcceptInputType_searchable: unknown;
|
|
1700
1761
|
static ngAcceptInputType_pagination: unknown;
|
|
1701
1762
|
static ngAcceptInputType_useCache: unknown;
|
|
1702
1763
|
static ngAcceptInputType_pageableInput: unknown;
|
|
@@ -2934,6 +2995,105 @@ declare class FormTabsComponent implements AfterContentInit, OnChanges {
|
|
|
2934
2995
|
static ngAcceptInputType_validationLinkActive: unknown;
|
|
2935
2996
|
}
|
|
2936
2997
|
|
|
2998
|
+
declare class PermissionGroupTabComponent implements OnChanges {
|
|
2999
|
+
private readonly tabs;
|
|
3000
|
+
private readonly cdr;
|
|
3001
|
+
readonly panelTpl: TemplateRef<unknown>;
|
|
3002
|
+
key: string;
|
|
3003
|
+
tabTitle: string;
|
|
3004
|
+
/** Chave estável do grupo vertical (ex.: `cadastros`, `sistema`). */
|
|
3005
|
+
groupKey: string;
|
|
3006
|
+
/** Rótulo exibido no cabeçalho do grupo. */
|
|
3007
|
+
groupLabel: string;
|
|
3008
|
+
/** Ordem do grupo na coluna vertical. */
|
|
3009
|
+
groupOrder: number | null;
|
|
3010
|
+
disabled: boolean;
|
|
3011
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
3012
|
+
get isActive(): boolean;
|
|
3013
|
+
get detachInactivePanel(): boolean;
|
|
3014
|
+
refreshActiveState(): void;
|
|
3015
|
+
get hostClass(): string;
|
|
3016
|
+
panelId(): string;
|
|
3017
|
+
labelledById(): string;
|
|
3018
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PermissionGroupTabComponent, never>;
|
|
3019
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PermissionGroupTabComponent, "app-permission-group-tab", never, { "key": { "alias": "key"; "required": true; }; "tabTitle": { "alias": "tabTitle"; "required": true; }; "groupKey": { "alias": "groupKey"; "required": false; }; "groupLabel": { "alias": "groupLabel"; "required": false; }; "groupOrder": { "alias": "groupOrder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
3020
|
+
static ngAcceptInputType_disabled: unknown;
|
|
3021
|
+
}
|
|
3022
|
+
|
|
3023
|
+
/** Grupo vertical de telas de permissão (alinhado ao menu lateral). */
|
|
3024
|
+
interface PermissionGroupTabGroup {
|
|
3025
|
+
readonly key: string;
|
|
3026
|
+
readonly label: string;
|
|
3027
|
+
readonly order: number;
|
|
3028
|
+
}
|
|
3029
|
+
/** Metadados mínimos de uma tela dentro de um grupo (útil fora do ContentChildren). */
|
|
3030
|
+
interface PermissionGroupTabDescriptor {
|
|
3031
|
+
readonly key: string;
|
|
3032
|
+
readonly tabTitle: string;
|
|
3033
|
+
readonly groupKey?: string | null;
|
|
3034
|
+
readonly groupLabel?: string | null;
|
|
3035
|
+
readonly groupOrder?: number | null;
|
|
3036
|
+
}
|
|
3037
|
+
declare const PERMISSION_GROUP_OUTROS_KEY = "outros";
|
|
3038
|
+
declare const PERMISSION_GROUP_OUTROS_LABEL = "Outros";
|
|
3039
|
+
declare const PERMISSION_GROUP_OUTROS_ORDER = 999;
|
|
3040
|
+
|
|
3041
|
+
interface PermissionGroupTabBucket<T extends PermissionGroupTabDescriptor = PermissionGroupTabDescriptor> {
|
|
3042
|
+
readonly group: PermissionGroupTabGroup;
|
|
3043
|
+
readonly tabs: readonly T[];
|
|
3044
|
+
}
|
|
3045
|
+
/** Agrupa telas por `groupKey`; telas sem grupo caem em OUTROS quando existir metadata em alguma tela. */
|
|
3046
|
+
declare function agruparPermissionTabs<T extends PermissionGroupTabDescriptor>(tabs: readonly T[]): PermissionGroupTabBucket<T>[];
|
|
3047
|
+
/** `true` quando nenhuma tela declara grupo — layout plano (retrocompatível com tabs horizontais). */
|
|
3048
|
+
declare function permissionTabsUsamGruposVerticais(tabs: readonly PermissionGroupTabDescriptor[]): boolean;
|
|
3049
|
+
|
|
3050
|
+
declare class PermissionGroupTabsComponent implements AfterContentInit, OnChanges {
|
|
3051
|
+
private static nextUid;
|
|
3052
|
+
private readonly cdr;
|
|
3053
|
+
readonly uid: string;
|
|
3054
|
+
tabQuery: QueryList<PermissionGroupTabComponent>;
|
|
3055
|
+
private _activeKey;
|
|
3056
|
+
set activeKey(v: string | undefined | null);
|
|
3057
|
+
get activeKey(): string;
|
|
3058
|
+
readonly activeKeyChange: EventEmitter<string>;
|
|
3059
|
+
keepAlive: boolean;
|
|
3060
|
+
/** Rótulo acessível da lista de chips de telas. */
|
|
3061
|
+
tablistAriaLabel: string;
|
|
3062
|
+
/** Grupos recolhidos (`true` = fechado). Omissão = expandido. */
|
|
3063
|
+
readonly gruposRecolhidos: _angular_core.WritableSignal<Readonly<Record<string, boolean>>>;
|
|
3064
|
+
/** Tela selecionada por grupo vertical (permite múltiplos conteúdos abertos). */
|
|
3065
|
+
readonly selectedTabByGroup: _angular_core.WritableSignal<Readonly<Record<string, string>>>;
|
|
3066
|
+
private gruposCollapsePadraoAplicado;
|
|
3067
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
3068
|
+
ngAfterContentInit(): void;
|
|
3069
|
+
get tabs(): PermissionGroupTabComponent[];
|
|
3070
|
+
get usaGruposVerticais(): boolean;
|
|
3071
|
+
get grupos(): PermissionGroupTabBucket<PermissionGroupTabComponent>[];
|
|
3072
|
+
baseId(): string;
|
|
3073
|
+
chipIdFor(key: string): string;
|
|
3074
|
+
panelIdFor(key: string): string;
|
|
3075
|
+
sectionHeaderIdFor(groupKey: string): string;
|
|
3076
|
+
isSelected(key: string): boolean;
|
|
3077
|
+
isGroupCollapsed(groupKey: string): boolean;
|
|
3078
|
+
toggleGroup(groupKey: string): void;
|
|
3079
|
+
selectTab(key: string): void;
|
|
3080
|
+
isTabPanelVisible(tab: PermissionGroupTabComponent): boolean;
|
|
3081
|
+
shouldMountTabPanel(tab: PermissionGroupTabComponent): boolean;
|
|
3082
|
+
getSelectedTabKeyForGroup(groupKey: string, tabsInGroup: readonly PermissionGroupTabComponent[]): string;
|
|
3083
|
+
onTabHeaderStateChanged(): void;
|
|
3084
|
+
private refreshTabPanels;
|
|
3085
|
+
private syncSelectedTabForGroup;
|
|
3086
|
+
private resolveGroupKey;
|
|
3087
|
+
private syncInitialActiveKey;
|
|
3088
|
+
private syncActiveKeyFromInput;
|
|
3089
|
+
private expandGroupForActiveKey;
|
|
3090
|
+
/** Recolhe todos os grupos verticais exceto o padrão (`visao-geral`). */
|
|
3091
|
+
private applyDefaultGroupCollapseState;
|
|
3092
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PermissionGroupTabsComponent, never>;
|
|
3093
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PermissionGroupTabsComponent, "app-permission-group-tabs", never, { "activeKey": { "alias": "activeKey"; "required": false; }; "keepAlive": { "alias": "keepAlive"; "required": false; }; "tablistAriaLabel": { "alias": "tablistAriaLabel"; "required": false; }; }, { "activeKeyChange": "activeKeyChange"; }, ["tabQuery"], never, true, never>;
|
|
3094
|
+
static ngAcceptInputType_keepAlive: unknown;
|
|
3095
|
+
}
|
|
3096
|
+
|
|
2937
3097
|
/**
|
|
2938
3098
|
* Configuração por aba: ordem no array define prioridade em
|
|
2939
3099
|
* {@link pickTabKeyLinkedToSummaryItems} (primeira aba com intersecção vence).
|
|
@@ -3027,6 +3187,11 @@ interface DataGridColumn<T = unknown> {
|
|
|
3027
3187
|
* Ordenação/filtro continuam a usar o campo bruto da linha.
|
|
3028
3188
|
*/
|
|
3029
3189
|
enumOptions?: readonly DataGridEnumOption[];
|
|
3190
|
+
/**
|
|
3191
|
+
* Campo da linha com nome de classe CSS a aplicar na célula (ex.: cor por status).
|
|
3192
|
+
* Combinado com classes de alinhamento (`align`).
|
|
3193
|
+
*/
|
|
3194
|
+
cellClassField?: keyof T | string;
|
|
3030
3195
|
}
|
|
3031
3196
|
|
|
3032
3197
|
/** Contexto injetado pelo {@link DataGridComponent} (não exportado para consumidores). */
|
|
@@ -3034,14 +3199,24 @@ interface DataGridActionsContext<T = unknown> {
|
|
|
3034
3199
|
onEditRow: (row: T) => void;
|
|
3035
3200
|
onRemoveRow: (row: T) => void;
|
|
3036
3201
|
onDuplicateRow?: (row: T) => void;
|
|
3202
|
+
onPrintRow?: (row: T) => void;
|
|
3037
3203
|
/** Quando `false`, o botão «Alterar» não é mostrado. */
|
|
3038
3204
|
showEditAction?: boolean;
|
|
3039
3205
|
/** Quando `false`, o botão «Remover» não é mostrado. */
|
|
3040
3206
|
showRemoveAction?: boolean;
|
|
3041
3207
|
/** Quando `true`, mostra «Duplicar» (requer `onDuplicateRow`). */
|
|
3042
3208
|
showDuplicateAction?: boolean;
|
|
3209
|
+
/** Quando `true`, mostra «Imprimir» (requer `onPrintRow`). */
|
|
3210
|
+
showPrintAction?: boolean;
|
|
3043
3211
|
/** Tooltip/aria do botão de abrir registo; omisso ⇒ «Alterar». */
|
|
3044
3212
|
editActionLabel?: string;
|
|
3213
|
+
/**
|
|
3214
|
+
* Classe Font Awesome do ícone do botão editar/transmitir (ex.: `fa-paper-plane`).
|
|
3215
|
+
* Omisso ⇒ `fa-pen-to-square`.
|
|
3216
|
+
*/
|
|
3217
|
+
editActionIconClass?: string;
|
|
3218
|
+
/** Tooltip/aria do botão imprimir; omisso ⇒ «Imprimir». */
|
|
3219
|
+
printActionLabel?: string;
|
|
3045
3220
|
}
|
|
3046
3221
|
declare class DataGridActionsCellRendererComponent implements ICellRendererAngularComp {
|
|
3047
3222
|
params: ICellRendererParams & {
|
|
@@ -3050,11 +3225,19 @@ declare class DataGridActionsCellRendererComponent implements ICellRendererAngul
|
|
|
3050
3225
|
agInit(params: ICellRendererParams): void;
|
|
3051
3226
|
refresh(): boolean;
|
|
3052
3227
|
protected get isPlaceholderRow(): boolean;
|
|
3228
|
+
/** Linha pode ocultar ações via `__hideEditAction` / `__hidePrintAction` (ex.: NF já autorizada). */
|
|
3229
|
+
protected get rowData(): Record<string, unknown> | undefined;
|
|
3230
|
+
protected get showEditButton(): boolean;
|
|
3231
|
+
protected get showPrintButton(): boolean;
|
|
3232
|
+
/** Botão textual (ex.: «Transmitir NFS-e») em vez do ícone «Alterar». */
|
|
3233
|
+
protected get editAsTextButton(): boolean;
|
|
3234
|
+
protected get editActionIcon(): string;
|
|
3053
3235
|
/** `params.context` nem sempre vem preenchido; o grid guarda o mesmo objeto em `gridOptions.context`. */
|
|
3054
3236
|
protected get actionsContext(): DataGridActionsContext | undefined;
|
|
3055
3237
|
edit(): void;
|
|
3056
3238
|
remove(): void;
|
|
3057
3239
|
duplicate(): void;
|
|
3240
|
+
print(): void;
|
|
3058
3241
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataGridActionsCellRendererComponent, never>;
|
|
3059
3242
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGridActionsCellRendererComponent, "app-data-grid-actions-cell-renderer", never, {}, {}, never, never, true, never>;
|
|
3060
3243
|
}
|
|
@@ -3112,6 +3295,9 @@ interface DataGridPaginationChangeEvent {
|
|
|
3112
3295
|
declare class DataGridComponent<T = unknown> implements OnInit, OnChanges, OnDestroy {
|
|
3113
3296
|
private readonly ngZone;
|
|
3114
3297
|
private readonly cdr;
|
|
3298
|
+
private readonly destroyRef;
|
|
3299
|
+
private readonly hostRef;
|
|
3300
|
+
private readonly gridLayoutService;
|
|
3115
3301
|
private gridApi;
|
|
3116
3302
|
/**
|
|
3117
3303
|
* Alinhar com `data-grid.host-theme.scss`: `--ag-grid-size: 7px`, cabeçalho e linha = ×8.
|
|
@@ -3168,10 +3354,16 @@ declare class DataGridComponent<T = unknown> implements OnInit, OnChanges, OnDes
|
|
|
3168
3354
|
showEditAction: boolean;
|
|
3169
3355
|
/** Tooltip e aria-label do botão de edição na coluna Ações. Omisso ⇒ «Alterar». */
|
|
3170
3356
|
editActionLabel: string;
|
|
3357
|
+
/** Ícone Font Awesome do botão editar (ex.: `fa-paper-plane`). Omisso ⇒ `fa-pen-to-square`. */
|
|
3358
|
+
editActionIconClass: string;
|
|
3171
3359
|
/** Se `false`, a coluna de ações não mostra «Remover». Por omissão `true`. */
|
|
3172
3360
|
showRemoveAction: boolean;
|
|
3173
3361
|
/** Se `true`, mostra «Duplicar» na coluna de ações (requer handler no contexto). */
|
|
3174
3362
|
showDuplicateAction: boolean;
|
|
3363
|
+
/** Se `true`, mostra «Imprimir» na coluna de ações (requer handler no contexto). */
|
|
3364
|
+
showPrintAction: boolean;
|
|
3365
|
+
/** Tooltip e aria-label do botão imprimir na coluna Ações. Omisso ⇒ «Imprimir». */
|
|
3366
|
+
printActionLabel: string;
|
|
3175
3367
|
/**
|
|
3176
3368
|
* Se `true`, não emite {@link rowClick} (ex.: coleção com edição só pelos botões da coluna de acções, como na consulta).
|
|
3177
3369
|
*/
|
|
@@ -3188,8 +3380,36 @@ declare class DataGridComponent<T = unknown> implements OnInit, OnChanges, OnDes
|
|
|
3188
3380
|
highlightedRowMatch: number | null;
|
|
3189
3381
|
/** Campo em {@link rows} a comparar com {@link highlightedRowMatch}. Omisso: `__rowArrayIndex`. */
|
|
3190
3382
|
highlightMatchField: string;
|
|
3383
|
+
/**
|
|
3384
|
+
* Chave da tela para persistência de layout (tenant + tela + grid).
|
|
3385
|
+
* Omisso: não persiste nem restaura colunas.
|
|
3386
|
+
*/
|
|
3387
|
+
layoutTelaKey: string | null;
|
|
3388
|
+
/** Chave do grid na mesma tela. Omisso: `consulta-principal`. */
|
|
3389
|
+
layoutGridKey: string;
|
|
3390
|
+
private isApplyingSavedLayout;
|
|
3391
|
+
private savedLayoutApplied;
|
|
3392
|
+
private layoutUserChangeSaveEnabled;
|
|
3393
|
+
/** Impressão digital do columnState já aplicado nesta instância (evita re-apply idêntico). */
|
|
3394
|
+
private appliedLayoutFingerprint;
|
|
3395
|
+
/** Estado em cache lido de forma síncrona antes do gridReady. */
|
|
3396
|
+
private pendingSavedColumnState;
|
|
3397
|
+
private layoutApplyRetryTimer;
|
|
3398
|
+
private layoutApplyRetryAttempts;
|
|
3399
|
+
private layoutCacheUpdatedUnsub;
|
|
3400
|
+
/** Detecta transição bootstrap (só «Ações») → colunas de dados do metadata (F5). */
|
|
3401
|
+
private lastKnownDataColumnCount;
|
|
3402
|
+
/**
|
|
3403
|
+
* Oculta a faixa horizontal do AG Grid durante reflow/remount (cache de rota / revisit de consulta).
|
|
3404
|
+
* O skeleton na 1.ª carga já tapa o viewport; aqui evita flash quando há linhas visíveis.
|
|
3405
|
+
*/
|
|
3406
|
+
suppressHorizontalScrollFlicker: boolean;
|
|
3407
|
+
private layoutStabilizeTimer;
|
|
3408
|
+
private layoutStabilizeRaf;
|
|
3409
|
+
constructor();
|
|
3191
3410
|
readonly edit: EventEmitter<T>;
|
|
3192
3411
|
readonly duplicate: EventEmitter<T>;
|
|
3412
|
+
readonly print: EventEmitter<T>;
|
|
3193
3413
|
readonly remove: EventEmitter<T>;
|
|
3194
3414
|
/** Clique na linha de dados (útil para selecção fora da coluna de acções). */
|
|
3195
3415
|
readonly rowClick: EventEmitter<T>;
|
|
@@ -3224,6 +3444,12 @@ declare class DataGridComponent<T = unknown> implements OnInit, OnChanges, OnDes
|
|
|
3224
3444
|
get effectivePaginationPageSizeSelector(): number[];
|
|
3225
3445
|
/** Repasse ao `ag-grid-angular`: `false` omite o selector (documentação AG Grid). */
|
|
3226
3446
|
get paginationPageSizeSelectorInput(): number[] | boolean;
|
|
3447
|
+
/**
|
|
3448
|
+
* Skeleton só na carga inicial (lista vazia). Refresh com linhas visíveis mantém a grelha — evita flash com cache.
|
|
3449
|
+
*/
|
|
3450
|
+
get showViewportSkeleton(): boolean;
|
|
3451
|
+
/** Só esvazia `rowData` durante loading quando ainda não há linhas a mostrar. */
|
|
3452
|
+
private get clearRowDataWhileLoading();
|
|
3227
3453
|
/**
|
|
3228
3454
|
* Empty state **fora** do AG Grid: o overlay nativo falha na 1.ª carga (skeleton + `suppressNoRowsOverlay` / v35).
|
|
3229
3455
|
*/
|
|
@@ -3236,6 +3462,8 @@ declare class DataGridComponent<T = unknown> implements OnInit, OnChanges, OnDes
|
|
|
3236
3462
|
get skeletonRowCount(): number;
|
|
3237
3463
|
/** Área entre cabeçalho da grelha e barra de paginação (overlay do skeleton), em px quando {@link hostHeight} é valor `NNpx`. */
|
|
3238
3464
|
private estimateSkeletonViewportBodyPx;
|
|
3465
|
+
/** Desactiva animação de reordenação enquanto o layout persistido não foi aplicado. */
|
|
3466
|
+
get suppressColumnMoveAnimation(): boolean;
|
|
3239
3467
|
readonly defaultColDef: ColDef<T>;
|
|
3240
3468
|
/**
|
|
3241
3469
|
* O AG Grid corre muitos callbacks fora da `NgZone`; sem `run()`, o pai com `OnPush`
|
|
@@ -3259,12 +3487,46 @@ declare class DataGridComponent<T = unknown> implements OnInit, OnChanges, OnDes
|
|
|
3259
3487
|
ngOnDestroy(): void;
|
|
3260
3488
|
get hostHeight(): string;
|
|
3261
3489
|
onGridReady(ev: GridReadyEvent<T>): void;
|
|
3490
|
+
private onGridReadyApplyLayoutThenData;
|
|
3491
|
+
onLayoutColumnMoved(ev: ColumnMovedEvent<T>): void;
|
|
3492
|
+
onLayoutColumnResized(ev: ColumnResizedEvent<T>): void;
|
|
3493
|
+
onLayoutColumnVisible(_ev: ColumnVisibleEvent<T>): void;
|
|
3494
|
+
onLayoutColumnPinned(_ev: ColumnPinnedEvent<T>): void;
|
|
3495
|
+
private hydrateLayoutFromCacheSync;
|
|
3496
|
+
/** Dispara GET em background na 1.ª visita para aquecer cache antes do gridReady. */
|
|
3497
|
+
private prefetchLayoutIfNeeded;
|
|
3498
|
+
private onExternalLayoutCacheUpdated;
|
|
3499
|
+
private tryApplySavedLayout;
|
|
3500
|
+
private countDataColumns;
|
|
3501
|
+
private shouldKeepTryingLayoutApply;
|
|
3502
|
+
/** Só activa gravação automática quando colunas de dados existem (evita sobrescrever layout no F5). */
|
|
3503
|
+
private canEnableLayoutSaveGrace;
|
|
3504
|
+
private cancelLayoutApplyRetry;
|
|
3505
|
+
private scheduleLayoutApplyRetry;
|
|
3506
|
+
private applySavedLayoutBeforeFirstPaint;
|
|
3507
|
+
/** Dois frames após `agColumnDefs` mudar — AG Grid precisa materializar colunas antes de `applyColumnState`. */
|
|
3508
|
+
private yieldForGridColumnDefsSync;
|
|
3509
|
+
/** Colunas de dados existem no input e já estão materializadas na API do AG Grid. */
|
|
3510
|
+
private gridReadyForLayoutApply;
|
|
3511
|
+
private verifyLayoutStateApplied;
|
|
3512
|
+
private applyColumnStateToGrid;
|
|
3513
|
+
private enableLayoutSaveAfterGrace;
|
|
3514
|
+
private persistColumnLayoutIfAllowed;
|
|
3262
3515
|
onRowClicked(ev: RowClickedEvent<T>): void;
|
|
3263
3516
|
private rowClassForHighlight;
|
|
3264
3517
|
private applyRowHighlightClass;
|
|
3265
3518
|
private applyInitialPaginationPage;
|
|
3266
3519
|
/** Evita `removeEventListener` na API depois do grid destruído. */
|
|
3267
3520
|
private detachPaginationListenerIfLive;
|
|
3521
|
+
private setupHorizontalScrollStabilizingObservers;
|
|
3522
|
+
private beginHorizontalScrollStabilizing;
|
|
3523
|
+
private scheduleEndHorizontalScrollStabilizing;
|
|
3524
|
+
private tryFinishHorizontalScrollStabilizing;
|
|
3525
|
+
/**
|
|
3526
|
+
* `true` se o viewport central transborda; `false` se não; `null` se ainda não mensurável (largura 0).
|
|
3527
|
+
*/
|
|
3528
|
+
private centerViewportNeedsHorizontalScroll;
|
|
3529
|
+
private clearLayoutStabilizingTimers;
|
|
3268
3530
|
private columnsForGrid;
|
|
3269
3531
|
/** Classes BEM em `data-grid.host-theme.scss` para alinhamento declarativo nas colunas. */
|
|
3270
3532
|
private static alignmentCellHeaderClasses;
|
|
@@ -3280,7 +3542,7 @@ declare class DataGridComponent<T = unknown> implements OnInit, OnChanges, OnDes
|
|
|
3280
3542
|
get suppressCellFocusBinding(): boolean;
|
|
3281
3543
|
private mapColumnsToColDef;
|
|
3282
3544
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataGridComponent<any>, never>;
|
|
3283
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGridComponent<any>, "app-data-grid", never, { "rows": { "alias": "rows"; "required": true; }; "columns": { "alias": "columns"; "required": true; }; "pageSize": { "alias": "pageSize"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "initialPaginationPage": { "alias": "initialPaginationPage"; "required": false; }; "height": { "alias": "height"; "required": false; }; "fitPaginationHeight": { "alias": "fitPaginationHeight"; "required": false; }; "fitPaginationMinEmptyRows": { "alias": "fitPaginationMinEmptyRows"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "paginationPanelPlacement": { "alias": "paginationPanelPlacement"; "required": false; }; "paginationStripOnly": { "alias": "paginationStripOnly"; "required": false; }; "suppressPaginationPageSizeSelector": { "alias": "suppressPaginationPageSizeSelector"; "required": false; }; "showActionsColumn": { "alias": "showActionsColumn"; "required": false; }; "showEditAction": { "alias": "showEditAction"; "required": false; }; "editActionLabel": { "alias": "editActionLabel"; "required": false; }; "showRemoveAction": { "alias": "showRemoveAction"; "required": false; }; "showDuplicateAction": { "alias": "showDuplicateAction"; "required": false; }; "suppressRowClick": { "alias": "suppressRowClick"; "required": false; }; "inlineCellEditing": { "alias": "inlineCellEditing"; "required": false; }; "highlightedRowMatch": { "alias": "highlightedRowMatch"; "required": false; }; "highlightMatchField": { "alias": "highlightMatchField"; "required": false; }; }, { "edit": "edit"; "duplicate": "duplicate"; "remove": "remove"; "rowClick": "rowClick"; "selectionChange": "selectionChange"; "paginationChanged": "paginationChanged"; }, never, never, true, never>;
|
|
3545
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGridComponent<any>, "app-data-grid", never, { "rows": { "alias": "rows"; "required": true; }; "columns": { "alias": "columns"; "required": true; }; "pageSize": { "alias": "pageSize"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "initialPaginationPage": { "alias": "initialPaginationPage"; "required": false; }; "height": { "alias": "height"; "required": false; }; "fitPaginationHeight": { "alias": "fitPaginationHeight"; "required": false; }; "fitPaginationMinEmptyRows": { "alias": "fitPaginationMinEmptyRows"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "paginationPanelPlacement": { "alias": "paginationPanelPlacement"; "required": false; }; "paginationStripOnly": { "alias": "paginationStripOnly"; "required": false; }; "suppressPaginationPageSizeSelector": { "alias": "suppressPaginationPageSizeSelector"; "required": false; }; "showActionsColumn": { "alias": "showActionsColumn"; "required": false; }; "showEditAction": { "alias": "showEditAction"; "required": false; }; "editActionLabel": { "alias": "editActionLabel"; "required": false; }; "editActionIconClass": { "alias": "editActionIconClass"; "required": false; }; "showRemoveAction": { "alias": "showRemoveAction"; "required": false; }; "showDuplicateAction": { "alias": "showDuplicateAction"; "required": false; }; "showPrintAction": { "alias": "showPrintAction"; "required": false; }; "printActionLabel": { "alias": "printActionLabel"; "required": false; }; "suppressRowClick": { "alias": "suppressRowClick"; "required": false; }; "inlineCellEditing": { "alias": "inlineCellEditing"; "required": false; }; "highlightedRowMatch": { "alias": "highlightedRowMatch"; "required": false; }; "highlightMatchField": { "alias": "highlightMatchField"; "required": false; }; "layoutTelaKey": { "alias": "layoutTelaKey"; "required": false; }; "layoutGridKey": { "alias": "layoutGridKey"; "required": false; }; }, { "edit": "edit"; "duplicate": "duplicate"; "print": "print"; "remove": "remove"; "rowClick": "rowClick"; "selectionChange": "selectionChange"; "paginationChanged": "paginationChanged"; }, never, never, true, never>;
|
|
3284
3546
|
static ngAcceptInputType_initialPaginationPage: unknown;
|
|
3285
3547
|
static ngAcceptInputType_fitPaginationHeight: unknown;
|
|
3286
3548
|
static ngAcceptInputType_fitPaginationMinEmptyRows: unknown;
|
|
@@ -3289,6 +3551,7 @@ declare class DataGridComponent<T = unknown> implements OnInit, OnChanges, OnDes
|
|
|
3289
3551
|
static ngAcceptInputType_showEditAction: unknown;
|
|
3290
3552
|
static ngAcceptInputType_showRemoveAction: unknown;
|
|
3291
3553
|
static ngAcceptInputType_showDuplicateAction: unknown;
|
|
3554
|
+
static ngAcceptInputType_showPrintAction: unknown;
|
|
3292
3555
|
static ngAcceptInputType_suppressRowClick: unknown;
|
|
3293
3556
|
static ngAcceptInputType_inlineCellEditing: unknown;
|
|
3294
3557
|
}
|
|
@@ -3349,6 +3612,7 @@ declare class CardListComponent<T = unknown> implements OnChanges {
|
|
|
3349
3612
|
/** Repasse ao `app-data-card`: botão «Alterar» quando {@link showItemActions} é `true`. */
|
|
3350
3613
|
showEditAction: boolean;
|
|
3351
3614
|
editActionLabel: string;
|
|
3615
|
+
editActionIconClass: string;
|
|
3352
3616
|
/** Repasse ao `app-data-card`: botão «Remover» quando {@link showItemActions} é `true`. */
|
|
3353
3617
|
showRemoveAction: boolean;
|
|
3354
3618
|
/** Repasse ao `app-data-card`: clique no cartão emite `edit` (exceto nos botões). */
|
|
@@ -3416,13 +3680,14 @@ declare class CardListComponent<T = unknown> implements OnChanges {
|
|
|
3416
3680
|
skeletonCardIndices(): number[];
|
|
3417
3681
|
/** Um único cartão skeleton no fundo durante `loadingMore` (mantém o scroll estável). */
|
|
3418
3682
|
skeletonTailIndices(): number[];
|
|
3683
|
+
hideEditActionForItem(item: T): boolean;
|
|
3419
3684
|
trackFn: (index: number, item: T) => unknown;
|
|
3420
3685
|
onScroll(ev: Event): void;
|
|
3421
3686
|
private requestRemotePage;
|
|
3422
3687
|
private loadMoreMemoryChunk;
|
|
3423
3688
|
private resetVisibleWindow;
|
|
3424
3689
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardListComponent<any>, never>;
|
|
3425
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardListComponent<any>, "app-card-list", never, { "items": { "alias": "items"; "required": true; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "mapItem": { "alias": "mapItem"; "required": true; }; "showItemActions": { "alias": "showItemActions"; "required": false; }; "showEditAction": { "alias": "showEditAction"; "required": false; }; "editActionLabel": { "alias": "editActionLabel"; "required": false; }; "showRemoveAction": { "alias": "showRemoveAction"; "required": false; }; "cardOpenOnClick": { "alias": "cardOpenOnClick"; "required": false; }; "trackByProp": { "alias": "trackByProp"; "required": false; }; "dataMode": { "alias": "dataMode"; "required": false; }; "scrollBatchSize": { "alias": "scrollBatchSize"; "required": false; }; "scrollLoadThresholdPx": { "alias": "scrollLoadThresholdPx"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "headerPosition": { "alias": "headerPosition"; "required": false; }; "scrollMaxHeight": { "alias": "scrollMaxHeight"; "required": false; }; "cardsPerRow": { "alias": "cardsPerRow"; "required": false; }; "totalCountRemote": { "alias": "totalCountRemote"; "required": false; }; "hasNextPage": { "alias": "hasNextPage"; "required": false; }; }, { "loadMore": "loadMore"; "edit": "edit"; "remove": "remove"; "booleanFieldChange": "booleanFieldChange"; }, never, never, true, never>;
|
|
3690
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardListComponent<any>, "app-card-list", never, { "items": { "alias": "items"; "required": true; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "mapItem": { "alias": "mapItem"; "required": true; }; "showItemActions": { "alias": "showItemActions"; "required": false; }; "showEditAction": { "alias": "showEditAction"; "required": false; }; "editActionLabel": { "alias": "editActionLabel"; "required": false; }; "editActionIconClass": { "alias": "editActionIconClass"; "required": false; }; "showRemoveAction": { "alias": "showRemoveAction"; "required": false; }; "cardOpenOnClick": { "alias": "cardOpenOnClick"; "required": false; }; "trackByProp": { "alias": "trackByProp"; "required": false; }; "dataMode": { "alias": "dataMode"; "required": false; }; "scrollBatchSize": { "alias": "scrollBatchSize"; "required": false; }; "scrollLoadThresholdPx": { "alias": "scrollLoadThresholdPx"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "headerPosition": { "alias": "headerPosition"; "required": false; }; "scrollMaxHeight": { "alias": "scrollMaxHeight"; "required": false; }; "cardsPerRow": { "alias": "cardsPerRow"; "required": false; }; "totalCountRemote": { "alias": "totalCountRemote"; "required": false; }; "hasNextPage": { "alias": "hasNextPage"; "required": false; }; }, { "loadMore": "loadMore"; "edit": "edit"; "remove": "remove"; "booleanFieldChange": "booleanFieldChange"; }, never, never, true, never>;
|
|
3426
3691
|
static ngAcceptInputType_loadingMore: unknown;
|
|
3427
3692
|
static ngAcceptInputType_showEditAction: unknown;
|
|
3428
3693
|
static ngAcceptInputType_showRemoveAction: unknown;
|
|
@@ -3466,6 +3731,8 @@ declare class AdaptiveDataViewComponent<T = unknown> implements OnInit, OnChange
|
|
|
3466
3731
|
showCardItemActions: boolean;
|
|
3467
3732
|
/** Tooltip/aria do botão de abrir registo na coluna Ações ou no cartão. Omisso ⇒ «Alterar». */
|
|
3468
3733
|
editActionLabel: string;
|
|
3734
|
+
/** Ícone Font Awesome do botão editar (ex.: `fa-paper-plane`). Omisso ⇒ `fa-pen-to-square`. */
|
|
3735
|
+
editActionIconClass: string;
|
|
3469
3736
|
/** Lista em cartões: clique no cartão dispara `edit` (como «Alterar»); botões mantêm-se independentes. */
|
|
3470
3737
|
cardOpenOnClick: boolean;
|
|
3471
3738
|
scrollBatchSize: number;
|
|
@@ -3498,16 +3765,25 @@ declare class AdaptiveDataViewComponent<T = unknown> implements OnInit, OnChange
|
|
|
3498
3765
|
/** Vista quando a tela é maior. Por padrão `grid`. */
|
|
3499
3766
|
desktopView: AdaptiveDataViewMode;
|
|
3500
3767
|
showDuplicateAction: boolean;
|
|
3768
|
+
showPrintAction: boolean;
|
|
3769
|
+
printActionLabel: string;
|
|
3501
3770
|
showEditAction: boolean;
|
|
3502
3771
|
showRemoveAction: boolean;
|
|
3772
|
+
/** Chave da tela para persistência de layout AG Grid (repasse ao `app-data-grid`). */
|
|
3773
|
+
layoutTelaKey: string | null;
|
|
3774
|
+
/** Chave do grid na mesma tela. Omisso: `consulta-principal`. */
|
|
3775
|
+
layoutGridKey: string;
|
|
3503
3776
|
readonly edit: EventEmitter<T>;
|
|
3504
3777
|
readonly duplicate: EventEmitter<T>;
|
|
3778
|
+
readonly print: EventEmitter<T>;
|
|
3505
3779
|
readonly remove: EventEmitter<T>;
|
|
3506
3780
|
readonly loadMore: EventEmitter<void>;
|
|
3507
3781
|
/** Corresponde ao breakpoint mobile. */
|
|
3508
3782
|
isMobileLayout: boolean;
|
|
3509
3783
|
/** Valor efectivo reposto ao grid / lista (respeita {@link loadingSkeletonMinMs}). */
|
|
3510
3784
|
displayLoading: boolean;
|
|
3785
|
+
/** Skeleton só quando `loading` e a lista ainda está vazia (cache / refresh mantém dados visíveis). */
|
|
3786
|
+
private shouldShowLoadingSkeleton;
|
|
3511
3787
|
ngOnInit(): void;
|
|
3512
3788
|
ngOnChanges(changes: SimpleChanges): void;
|
|
3513
3789
|
ngOnDestroy(): void;
|
|
@@ -3522,13 +3798,14 @@ declare class AdaptiveDataViewComponent<T = unknown> implements OnInit, OnChange
|
|
|
3522
3798
|
get effectiveCardScrollMaxHeight(): string | null;
|
|
3523
3799
|
get resultCountDisplay(): string;
|
|
3524
3800
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdaptiveDataViewComponent<any>, never>;
|
|
3525
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AdaptiveDataViewComponent<any>, "app-adaptive-data-view", never, { "items": { "alias": "items"; "required": true; }; "gridColumns": { "alias": "gridColumns"; "required": true; }; "mapItem": { "alias": "mapItem"; "required": true; }; "pageSize": { "alias": "pageSize"; "required": false; }; "gridHeight": { "alias": "gridHeight"; "required": false; }; "cardScrollMaxHeight": { "alias": "cardScrollMaxHeight"; "required": false; }; "gridFitPaginationHeight": { "alias": "gridFitPaginationHeight"; "required": false; }; "gridFitPaginationMinEmptyRows": { "alias": "gridFitPaginationMinEmptyRows"; "required": false; }; "emptyMessageGrid": { "alias": "emptyMessageGrid"; "required": false; }; "emptyMessageCard": { "alias": "emptyMessageCard"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "showActionsColumn": { "alias": "showActionsColumn"; "required": false; }; "showCardItemActions": { "alias": "showCardItemActions"; "required": false; }; "editActionLabel": { "alias": "editActionLabel"; "required": false; }; "cardOpenOnClick": { "alias": "cardOpenOnClick"; "required": false; }; "scrollBatchSize": { "alias": "scrollBatchSize"; "required": false; }; "showCardFooter": { "alias": "showCardFooter"; "required": false; }; "headerPosition": { "alias": "headerPosition"; "required": false; }; "cardsPerRow": { "alias": "cardsPerRow"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "loadingSkeletonMinMs": { "alias": "loadingSkeletonMinMs"; "required": false; }; "showResultCount": { "alias": "showResultCount"; "required": false; }; "resultCountTemplate": { "alias": "resultCountTemplate"; "required": false; }; "mobileView": { "alias": "mobileView"; "required": false; }; "desktopView": { "alias": "desktopView"; "required": false; }; "showDuplicateAction": { "alias": "showDuplicateAction"; "required": false; }; "showEditAction": { "alias": "showEditAction"; "required": false; }; "showRemoveAction": { "alias": "showRemoveAction"; "required": false; }; }, { "edit": "edit"; "duplicate": "duplicate"; "remove": "remove"; "loadMore": "loadMore"; }, never, never, true, never>;
|
|
3801
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AdaptiveDataViewComponent<any>, "app-adaptive-data-view", never, { "items": { "alias": "items"; "required": true; }; "gridColumns": { "alias": "gridColumns"; "required": true; }; "mapItem": { "alias": "mapItem"; "required": true; }; "pageSize": { "alias": "pageSize"; "required": false; }; "gridHeight": { "alias": "gridHeight"; "required": false; }; "cardScrollMaxHeight": { "alias": "cardScrollMaxHeight"; "required": false; }; "gridFitPaginationHeight": { "alias": "gridFitPaginationHeight"; "required": false; }; "gridFitPaginationMinEmptyRows": { "alias": "gridFitPaginationMinEmptyRows"; "required": false; }; "emptyMessageGrid": { "alias": "emptyMessageGrid"; "required": false; }; "emptyMessageCard": { "alias": "emptyMessageCard"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "showActionsColumn": { "alias": "showActionsColumn"; "required": false; }; "showCardItemActions": { "alias": "showCardItemActions"; "required": false; }; "editActionLabel": { "alias": "editActionLabel"; "required": false; }; "editActionIconClass": { "alias": "editActionIconClass"; "required": false; }; "cardOpenOnClick": { "alias": "cardOpenOnClick"; "required": false; }; "scrollBatchSize": { "alias": "scrollBatchSize"; "required": false; }; "showCardFooter": { "alias": "showCardFooter"; "required": false; }; "headerPosition": { "alias": "headerPosition"; "required": false; }; "cardsPerRow": { "alias": "cardsPerRow"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "loadingSkeletonMinMs": { "alias": "loadingSkeletonMinMs"; "required": false; }; "showResultCount": { "alias": "showResultCount"; "required": false; }; "resultCountTemplate": { "alias": "resultCountTemplate"; "required": false; }; "mobileView": { "alias": "mobileView"; "required": false; }; "desktopView": { "alias": "desktopView"; "required": false; }; "showDuplicateAction": { "alias": "showDuplicateAction"; "required": false; }; "showPrintAction": { "alias": "showPrintAction"; "required": false; }; "printActionLabel": { "alias": "printActionLabel"; "required": false; }; "showEditAction": { "alias": "showEditAction"; "required": false; }; "showRemoveAction": { "alias": "showRemoveAction"; "required": false; }; "layoutTelaKey": { "alias": "layoutTelaKey"; "required": false; }; "layoutGridKey": { "alias": "layoutGridKey"; "required": false; }; }, { "edit": "edit"; "duplicate": "duplicate"; "print": "print"; "remove": "remove"; "loadMore": "loadMore"; }, never, never, true, never>;
|
|
3526
3802
|
static ngAcceptInputType_gridFitPaginationHeight: unknown;
|
|
3527
3803
|
static ngAcceptInputType_gridFitPaginationMinEmptyRows: unknown;
|
|
3528
3804
|
static ngAcceptInputType_cardOpenOnClick: unknown;
|
|
3529
3805
|
static ngAcceptInputType_cardsPerRow: unknown;
|
|
3530
3806
|
static ngAcceptInputType_loadingSkeletonMinMs: unknown;
|
|
3531
3807
|
static ngAcceptInputType_showDuplicateAction: unknown;
|
|
3808
|
+
static ngAcceptInputType_showPrintAction: unknown;
|
|
3532
3809
|
static ngAcceptInputType_showEditAction: unknown;
|
|
3533
3810
|
static ngAcceptInputType_showRemoveAction: unknown;
|
|
3534
3811
|
}
|
|
@@ -3552,8 +3829,11 @@ declare class DataCardComponent implements OnChanges {
|
|
|
3552
3829
|
/** Omisso / `true`: mostra o botão «Alterar» quando {@link showActions} é `true`. */
|
|
3553
3830
|
showEditAction: boolean;
|
|
3554
3831
|
editActionLabel: string;
|
|
3832
|
+
editActionIconClass: string;
|
|
3555
3833
|
/** Omisso / `true`: mostra o botão «Remover» quando {@link showActions} é `true`. */
|
|
3556
3834
|
showRemoveAction: boolean;
|
|
3835
|
+
/** Quando `true`, omite o botão «Alterar» neste cartão (ex.: ação por linha na consulta). */
|
|
3836
|
+
hideEditAction: boolean;
|
|
3557
3837
|
/**
|
|
3558
3838
|
* Clique na superfície do cartão (fora dos botões de ação) emite {@link edit}, como o botão «Alterar».
|
|
3559
3839
|
*/
|
|
@@ -3564,15 +3844,17 @@ declare class DataCardComponent implements OnChanges {
|
|
|
3564
3844
|
fieldKey: string;
|
|
3565
3845
|
checked: boolean;
|
|
3566
3846
|
}>;
|
|
3847
|
+
protected get editActionIcon(): string;
|
|
3567
3848
|
onCardShellClick(ev: MouseEvent): void;
|
|
3568
3849
|
onEditClick(ev: Event): void;
|
|
3569
3850
|
onRemoveClick(ev: Event): void;
|
|
3570
3851
|
onBooleanFieldChange(field: CardItemBooleanField, ev: Event): void;
|
|
3571
3852
|
onThumbError(ev: Event): void;
|
|
3572
3853
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataCardComponent, never>;
|
|
3573
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataCardComponent, "app-data-card", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "avatarText": { "alias": "avatarText"; "required": false; }; "imageUrl": { "alias": "imageUrl"; "required": false; }; "metaFields": { "alias": "metaFields"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "showActions": { "alias": "showActions"; "required": false; }; "showEditAction": { "alias": "showEditAction"; "required": false; }; "editActionLabel": { "alias": "editActionLabel"; "required": false; }; "showRemoveAction": { "alias": "showRemoveAction"; "required": false; }; "openOnClick": { "alias": "openOnClick"; "required": false; }; }, { "edit": "edit"; "remove": "remove"; "booleanFieldChange": "booleanFieldChange"; }, never, never, true, never>;
|
|
3854
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataCardComponent, "app-data-card", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "avatarText": { "alias": "avatarText"; "required": false; }; "imageUrl": { "alias": "imageUrl"; "required": false; }; "metaFields": { "alias": "metaFields"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "showActions": { "alias": "showActions"; "required": false; }; "showEditAction": { "alias": "showEditAction"; "required": false; }; "editActionLabel": { "alias": "editActionLabel"; "required": false; }; "editActionIconClass": { "alias": "editActionIconClass"; "required": false; }; "showRemoveAction": { "alias": "showRemoveAction"; "required": false; }; "hideEditAction": { "alias": "hideEditAction"; "required": false; }; "openOnClick": { "alias": "openOnClick"; "required": false; }; }, { "edit": "edit"; "remove": "remove"; "booleanFieldChange": "booleanFieldChange"; }, never, never, true, never>;
|
|
3574
3855
|
static ngAcceptInputType_showEditAction: unknown;
|
|
3575
3856
|
static ngAcceptInputType_showRemoveAction: unknown;
|
|
3857
|
+
static ngAcceptInputType_hideEditAction: unknown;
|
|
3576
3858
|
static ngAcceptInputType_openOnClick: unknown;
|
|
3577
3859
|
}
|
|
3578
3860
|
|
|
@@ -3715,12 +3997,15 @@ declare class StatCardComponent {
|
|
|
3715
3997
|
delta: string;
|
|
3716
3998
|
deltaTone: StatCardDeltaTone;
|
|
3717
3999
|
clickable: boolean;
|
|
4000
|
+
/** Destaque visual quando o cartão representa o filtro activo (ex.: totalizadores de consulta). */
|
|
4001
|
+
selected: boolean;
|
|
3718
4002
|
readonly cardActivate: EventEmitter<void>;
|
|
3719
4003
|
onActivate(ev: Event): void;
|
|
3720
4004
|
onKeydown(ev: KeyboardEvent): void;
|
|
3721
4005
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatCardComponent, never>;
|
|
3722
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatCardComponent, "app-stat-card", never, { "title": { "alias": "title"; "required": true; }; "value": { "alias": "value"; "required": true; }; "description": { "alias": "description"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "delta": { "alias": "delta"; "required": false; }; "deltaTone": { "alias": "deltaTone"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; }, { "cardActivate": "cardActivate"; }, never, never, true, never>;
|
|
4006
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatCardComponent, "app-stat-card", never, { "title": { "alias": "title"; "required": true; }; "value": { "alias": "value"; "required": true; }; "description": { "alias": "description"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "delta": { "alias": "delta"; "required": false; }; "deltaTone": { "alias": "deltaTone"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, { "cardActivate": "cardActivate"; }, never, never, true, never>;
|
|
3723
4007
|
static ngAcceptInputType_clickable: unknown;
|
|
4008
|
+
static ngAcceptInputType_selected: unknown;
|
|
3724
4009
|
}
|
|
3725
4010
|
|
|
3726
4011
|
/**
|
|
@@ -3766,12 +4051,29 @@ declare class DataListComponent {
|
|
|
3766
4051
|
* Bloco de dashboard: título, ações opcionais e conteúdo (stat-cards, listas, grades).
|
|
3767
4052
|
* Superfície alinhada aos cartões da lib.
|
|
3768
4053
|
*/
|
|
3769
|
-
declare class DashboardSectionComponent {
|
|
4054
|
+
declare class DashboardSectionComponent implements OnChanges {
|
|
3770
4055
|
title: string;
|
|
3771
4056
|
subtitle: string;
|
|
4057
|
+
/** Quando `true`, o cabeçalho exibe chevron e alterna aberto/fechado. */
|
|
4058
|
+
collapsible: boolean;
|
|
4059
|
+
/** Com `collapsible`: `true` = seção fechada (só cabeçalho), `false` = aberta. */
|
|
4060
|
+
collapsed: boolean;
|
|
4061
|
+
readonly collapsedChange: EventEmitter<boolean>;
|
|
3772
4062
|
readonly titleId: string;
|
|
4063
|
+
private collapsedInternal;
|
|
4064
|
+
get hostCollapsible(): boolean;
|
|
4065
|
+
get hostCollapsed(): boolean;
|
|
4066
|
+
get hostExpanded(): boolean;
|
|
4067
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
4068
|
+
get isCollapsed(): boolean;
|
|
4069
|
+
get headerInteractive(): boolean;
|
|
4070
|
+
onHeaderClick(event: MouseEvent): void;
|
|
4071
|
+
onHeaderKeydown(event: KeyboardEvent): void;
|
|
4072
|
+
private toggleCollapsed;
|
|
3773
4073
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DashboardSectionComponent, never>;
|
|
3774
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DashboardSectionComponent, "app-dashboard-section", never, { "title": { "alias": "title"; "required": true; }; "subtitle": { "alias": "subtitle"; "required": false; }; }, {}, never, ["[dashboard-section-actions]", "*"], true, never>;
|
|
4074
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DashboardSectionComponent, "app-dashboard-section", never, { "title": { "alias": "title"; "required": true; }; "subtitle": { "alias": "subtitle"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; }, { "collapsedChange": "collapsedChange"; }, never, ["[dashboard-section-actions]", "*"], true, never>;
|
|
4075
|
+
static ngAcceptInputType_collapsible: unknown;
|
|
4076
|
+
static ngAcceptInputType_collapsed: unknown;
|
|
3775
4077
|
}
|
|
3776
4078
|
|
|
3777
4079
|
/**
|
|
@@ -3862,6 +4164,12 @@ declare class TreeViewComponent implements OnChanges, OnInit, OnDestroy {
|
|
|
3862
4164
|
filterSearchable: boolean;
|
|
3863
4165
|
/** Placeholder do campo de filtro. */
|
|
3864
4166
|
filterPlaceholder: string;
|
|
4167
|
+
/** Título do empty state quando a pesquisa não encontra itens. */
|
|
4168
|
+
filterEmptyMessage: string;
|
|
4169
|
+
/** Subtítulo do empty state de pesquisa vazia. */
|
|
4170
|
+
filterEmptyDescription: string;
|
|
4171
|
+
/** Ícone Font Awesome do empty state de pesquisa vazia. */
|
|
4172
|
+
filterEmptyIconClass: string;
|
|
3865
4173
|
/**
|
|
3866
4174
|
* Mostra ícone à esquerda do rótulo em ramos (pastas).
|
|
3867
4175
|
* Omisso / `true`: ícone de pasta (ou `node.iconClass`); `false`: só caret + rótulo (mantém espaço com spacer).
|
|
@@ -3872,6 +4180,11 @@ declare class TreeViewComponent implements OnChanges, OnInit, OnDestroy {
|
|
|
3872
4180
|
* Omisso / `true`: ícone por omissão (ou `node.iconClass`); `false`: spacer alinhado às linhas com ícone.
|
|
3873
4181
|
*/
|
|
3874
4182
|
showLeafIcons: boolean;
|
|
4183
|
+
/**
|
|
4184
|
+
* Chave externa para repor `expandedIds` a partir de `node.expanded`, mesmo quando `nodes` não muda.
|
|
4185
|
+
* Útil ao reentrar numa rota com reuse ou ao remontar a árvore sem substituir os nós.
|
|
4186
|
+
*/
|
|
4187
|
+
expansionStateKey: unknown;
|
|
3875
4188
|
readonly selectedIdChange: EventEmitter<string | null>;
|
|
3876
4189
|
readonly nodeSelect: EventEmitter<TreeViewSelectEvent>;
|
|
3877
4190
|
/** IDs de ramos expandidos. */
|
|
@@ -3903,7 +4216,7 @@ declare class TreeViewComponent implements OnChanges, OnInit, OnDestroy {
|
|
|
3903
4216
|
private refreshExpandedForSearch;
|
|
3904
4217
|
private expandAllBranchesRecursive;
|
|
3905
4218
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeViewComponent, never>;
|
|
3906
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreeViewComponent, "app-tree-view", never, { "nodes": { "alias": "nodes"; "required": true; }; "title": { "alias": "title"; "required": false; }; "titleIconClass": { "alias": "titleIconClass"; "required": false; }; "folderIconClass": { "alias": "folderIconClass"; "required": false; }; "leafIconClass": { "alias": "leafIconClass"; "required": false; }; "selectedId": { "alias": "selectedId"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "mobileScrollCollapse": { "alias": "mobileScrollCollapse"; "required": false; }; "filterSearchable": { "alias": "filterSearchable"; "required": false; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; }; "showBranchIcons": { "alias": "showBranchIcons"; "required": false; }; "showLeafIcons": { "alias": "showLeafIcons"; "required": false; }; }, { "selectedIdChange": "selectedIdChange"; "nodeSelect": "nodeSelect"; }, never, never, true, never>;
|
|
4219
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreeViewComponent, "app-tree-view", never, { "nodes": { "alias": "nodes"; "required": true; }; "title": { "alias": "title"; "required": false; }; "titleIconClass": { "alias": "titleIconClass"; "required": false; }; "folderIconClass": { "alias": "folderIconClass"; "required": false; }; "leafIconClass": { "alias": "leafIconClass"; "required": false; }; "selectedId": { "alias": "selectedId"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "mobileScrollCollapse": { "alias": "mobileScrollCollapse"; "required": false; }; "filterSearchable": { "alias": "filterSearchable"; "required": false; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; }; "filterEmptyMessage": { "alias": "filterEmptyMessage"; "required": false; }; "filterEmptyDescription": { "alias": "filterEmptyDescription"; "required": false; }; "filterEmptyIconClass": { "alias": "filterEmptyIconClass"; "required": false; }; "showBranchIcons": { "alias": "showBranchIcons"; "required": false; }; "showLeafIcons": { "alias": "showLeafIcons"; "required": false; }; "expansionStateKey": { "alias": "expansionStateKey"; "required": false; }; }, { "selectedIdChange": "selectedIdChange"; "nodeSelect": "nodeSelect"; }, never, never, true, never>;
|
|
3907
4220
|
static ngAcceptInputType_filterSearchable: unknown;
|
|
3908
4221
|
static ngAcceptInputType_showBranchIcons: unknown;
|
|
3909
4222
|
static ngAcceptInputType_showLeafIcons: unknown;
|
|
@@ -4082,6 +4395,8 @@ declare class ConfirmDialogService {
|
|
|
4082
4395
|
}
|
|
4083
4396
|
|
|
4084
4397
|
declare const STRUCTRA_THEME_IDS: readonly ["blue", "green", "purple", "orange", "white", "gray", "sepia", "black"];
|
|
4398
|
+
/** Classe CSS do modo escuro (combinada com paleta `theme-*`). */
|
|
4399
|
+
declare const STRUCTRA_THEME_DARK_CLASS = "theme-dark";
|
|
4085
4400
|
type StructraTheme = (typeof STRUCTRA_THEME_IDS)[number];
|
|
4086
4401
|
|
|
4087
4402
|
/** Identificadores de paleta suportados pela library (uso em `AppThemeService.setTheme`). */
|
|
@@ -4108,12 +4423,15 @@ interface AppThemeOption {
|
|
|
4108
4423
|
*/
|
|
4109
4424
|
declare class AppThemeService {
|
|
4110
4425
|
private readonly activeId;
|
|
4426
|
+
private readonly darkMode;
|
|
4111
4427
|
/** Identificador do tema activo (`blue`, `green`, …). */
|
|
4112
4428
|
readonly activeThemeId: _angular_core.Signal<"blue" | "green" | "purple" | "orange" | "white" | "gray" | "sepia" | "black">;
|
|
4429
|
+
/** Modo escuro (superfícies/texto); a primária vem da paleta activa. */
|
|
4430
|
+
readonly isDarkMode: _angular_core.Signal<boolean>;
|
|
4113
4431
|
/**
|
|
4114
4432
|
* Classes separadas (ex.: CDK `panelClass` — uma string com espaço quebra `classList.add`).
|
|
4115
4433
|
*/
|
|
4116
|
-
readonly themeClassList: _angular_core.Signal<readonly [
|
|
4434
|
+
readonly themeClassList: _angular_core.Signal<readonly string[]>;
|
|
4117
4435
|
/**
|
|
4118
4436
|
* As duas classes numa string — útil para `[class]`, `[ngClass]` com string, ou hosts HTML.
|
|
4119
4437
|
* Ex.: `<div [ngClass]="libTheme.getTheme()">` aplica paleta completa no consumidor.
|
|
@@ -4121,7 +4439,7 @@ declare class AppThemeService {
|
|
|
4121
4439
|
readonly getTheme: _angular_core.Signal<string>;
|
|
4122
4440
|
/** Mapa para `[ngClass]` com chaves dinâmicas (painéis overlay). */
|
|
4123
4441
|
readonly themeClassMap: _angular_core.Signal<{
|
|
4124
|
-
[
|
|
4442
|
+
[k: string]: boolean;
|
|
4125
4443
|
}>;
|
|
4126
4444
|
/** Lista fixa de temas suportados pela library. */
|
|
4127
4445
|
readonly themeOptions: readonly AppThemeOption[];
|
|
@@ -4131,6 +4449,7 @@ declare class AppThemeService {
|
|
|
4131
4449
|
*/
|
|
4132
4450
|
readonly themePrimaryColorLabelPtBr: _angular_core.Signal<string>;
|
|
4133
4451
|
setTheme(id: AppThemeId): void;
|
|
4452
|
+
setDarkMode(enabled: boolean): void;
|
|
4134
4453
|
isActive(id: AppThemeId): boolean;
|
|
4135
4454
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppThemeService, never>;
|
|
4136
4455
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AppThemeService>;
|
|
@@ -4148,21 +4467,25 @@ declare class ThemeDirective implements OnChanges {
|
|
|
4148
4467
|
private readonly renderer;
|
|
4149
4468
|
private readonly themeService;
|
|
4150
4469
|
private _theme;
|
|
4470
|
+
private _darkMode;
|
|
4151
4471
|
set appTheme(value: StructraTheme | AppTheme | string | null | undefined);
|
|
4152
4472
|
get appTheme(): StructraTheme | AppTheme;
|
|
4473
|
+
/** Modo escuro combinado com a paleta de `appTheme`. */
|
|
4474
|
+
set appThemeDark(value: boolean | string | null | undefined);
|
|
4153
4475
|
private readonly themeTokenClasses;
|
|
4154
4476
|
constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2, themeService: AppThemeService);
|
|
4155
4477
|
ngOnChanges(changes: SimpleChanges): void;
|
|
4156
4478
|
private applyTheme;
|
|
4157
4479
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeDirective, never>;
|
|
4158
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThemeDirective, "[appTheme]", never, { "appTheme": { "alias": "appTheme"; "required": false; }; }, {}, never, never, true, never>;
|
|
4480
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThemeDirective, "[appTheme]", never, { "appTheme": { "alias": "appTheme"; "required": false; }; "appThemeDark": { "alias": "appThemeDark"; "required": false; }; }, {}, never, never, true, never>;
|
|
4159
4481
|
}
|
|
4160
4482
|
|
|
4161
4483
|
declare const APP_THEME_BASE_CLASS = "app-library-theme";
|
|
4484
|
+
declare function isLegacyDarkThemeId(theme: string | null | undefined): boolean;
|
|
4162
4485
|
declare function normalizeStructraTheme(theme: StructraTheme | string): StructraTheme;
|
|
4163
4486
|
declare function getThemeTokenClass(theme: StructraTheme | string): string;
|
|
4164
|
-
declare function getThemeClassList(theme: StructraTheme | string): readonly [
|
|
4165
|
-
declare function getThemeClass(theme: StructraTheme | string): string;
|
|
4487
|
+
declare function getThemeClassList(theme: StructraTheme | string, darkMode?: boolean): readonly string[];
|
|
4488
|
+
declare function getThemeClass(theme: StructraTheme | string, darkMode?: boolean): string;
|
|
4166
4489
|
|
|
4167
4490
|
/**
|
|
4168
4491
|
* Tema efectivo para hosts/overlays: valor de `[appTheme]` quando definido; caso contrário
|
|
@@ -4172,9 +4495,9 @@ declare function injectEffectiveThemeId(appTheme: Signal<StructraTheme | AppThem
|
|
|
4172
4495
|
|
|
4173
4496
|
/**
|
|
4174
4497
|
* Remove classes de tema do host e, se `explicitTheme` estiver definido, aplica `.app-library-theme`
|
|
4175
|
-
* + `theme
|
|
4498
|
+
* + `theme-*` (+ `theme-dark` opcional). Caso contrário deixa o host sem paleta própria.
|
|
4176
4499
|
*/
|
|
4177
|
-
declare function applyOptionalThemeHostClasses(renderer: Renderer2, element: HTMLElement, explicitTheme: StructraTheme | AppTheme | string | undefined | null): void;
|
|
4500
|
+
declare function applyOptionalThemeHostClasses(renderer: Renderer2, element: HTMLElement, explicitTheme: StructraTheme | AppTheme | string | undefined | null, darkMode?: boolean): void;
|
|
4178
4501
|
|
|
4179
4502
|
/** Classes aplicadas ao painel CDK Dialog + tema da app. */
|
|
4180
4503
|
declare function libDialogPanelClasses(theme: AppThemeService, extra?: string | string[]): string[];
|
|
@@ -4283,6 +4606,61 @@ declare class LoadingDialogService {
|
|
|
4283
4606
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<LoadingDialogService>;
|
|
4284
4607
|
}
|
|
4285
4608
|
|
|
4609
|
+
interface OnboardingChecklistStep {
|
|
4610
|
+
id: string;
|
|
4611
|
+
title: string;
|
|
4612
|
+
description: string;
|
|
4613
|
+
route?: string;
|
|
4614
|
+
completed: boolean;
|
|
4615
|
+
actionLabel?: string;
|
|
4616
|
+
}
|
|
4617
|
+
interface OnboardingChecklistProgress {
|
|
4618
|
+
completedCount: number;
|
|
4619
|
+
totalSteps: number;
|
|
4620
|
+
progressPercent: number;
|
|
4621
|
+
currentStepId: string | null;
|
|
4622
|
+
}
|
|
4623
|
+
|
|
4624
|
+
declare class OnboardingChecklistComponent {
|
|
4625
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
4626
|
+
readonly subtitle: _angular_core.InputSignal<string>;
|
|
4627
|
+
readonly badgeLabel: _angular_core.InputSignal<string>;
|
|
4628
|
+
readonly badgeIcon: _angular_core.InputSignal<string>;
|
|
4629
|
+
readonly steps: _angular_core.InputSignal<OnboardingChecklistStep[]>;
|
|
4630
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
4631
|
+
/** Sobrescreve a etapa corrente; se omitido, usa a primeira incompleta. */
|
|
4632
|
+
readonly currentStepId: _angular_core.InputSignal<string | null | undefined>;
|
|
4633
|
+
/** Quando omitido, exibe o rodapé enquanto houver etapas incompletas. */
|
|
4634
|
+
readonly showFooter: _angular_core.InputSignal<boolean | undefined>;
|
|
4635
|
+
readonly skipLabel: _angular_core.InputSignal<string>;
|
|
4636
|
+
readonly continueLabel: _angular_core.InputSignal<string | undefined>;
|
|
4637
|
+
readonly startLabel: _angular_core.InputSignal<string>;
|
|
4638
|
+
/**
|
|
4639
|
+
* Quando `false`, Escape e clique no backdrop não disparam `close`.
|
|
4640
|
+
* Omisso: `true`.
|
|
4641
|
+
*/
|
|
4642
|
+
readonly allowOverlayDismiss: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4643
|
+
/** Exibe o botão ✕ no canto superior direito. Omisso: `false`. */
|
|
4644
|
+
readonly showCloseButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4645
|
+
readonly stepClick: _angular_core.OutputEmitterRef<OnboardingChecklistStep>;
|
|
4646
|
+
readonly close: _angular_core.OutputEmitterRef<void>;
|
|
4647
|
+
readonly skip: _angular_core.OutputEmitterRef<void>;
|
|
4648
|
+
readonly continue: _angular_core.OutputEmitterRef<void>;
|
|
4649
|
+
readonly progress: _angular_core.Signal<OnboardingChecklistProgress>;
|
|
4650
|
+
readonly footerVisible: _angular_core.Signal<boolean>;
|
|
4651
|
+
readonly resolvedContinueLabel: _angular_core.Signal<string>;
|
|
4652
|
+
readonly loadingSkeletonRows: number[];
|
|
4653
|
+
actionLabel(step: OnboardingChecklistStep): string;
|
|
4654
|
+
onStepAction(step: OnboardingChecklistStep): void;
|
|
4655
|
+
onClose(): void;
|
|
4656
|
+
onDocumentKeydown(ev: KeyboardEvent): void;
|
|
4657
|
+
onBackdropClick(): void;
|
|
4658
|
+
onSkip(): void;
|
|
4659
|
+
onContinue(): void;
|
|
4660
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OnboardingChecklistComponent, never>;
|
|
4661
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OnboardingChecklistComponent, "app-onboarding-checklist", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "badgeLabel": { "alias": "badgeLabel"; "required": false; "isSignal": true; }; "badgeIcon": { "alias": "badgeIcon"; "required": false; "isSignal": true; }; "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "currentStepId": { "alias": "currentStepId"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "skipLabel": { "alias": "skipLabel"; "required": false; "isSignal": true; }; "continueLabel": { "alias": "continueLabel"; "required": false; "isSignal": true; }; "startLabel": { "alias": "startLabel"; "required": false; "isSignal": true; }; "allowOverlayDismiss": { "alias": "allowOverlayDismiss"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; }, { "stepClick": "stepClick"; "close": "close"; "skip": "skip"; "continue": "continue"; }, never, never, true, never>;
|
|
4662
|
+
}
|
|
4663
|
+
|
|
4286
4664
|
/**
|
|
4287
4665
|
* Posicionamento vertical preferido do dropdown em relação ao trigger.
|
|
4288
4666
|
* O CDK faz flip automático se não couber no viewport quando configurado com posições múltiplas.
|
|
@@ -4304,6 +4682,8 @@ declare class DropdownMenuComponent<T = string> {
|
|
|
4304
4682
|
minWidthPx: number;
|
|
4305
4683
|
/** Se `true`, a largura do painel segue a do trigger. */
|
|
4306
4684
|
matchTriggerWidth: boolean;
|
|
4685
|
+
/** Se `false`, o menu permanece aberto após selecionar um item (ex.: exportação assíncrona). */
|
|
4686
|
+
closeOnSelect: boolean;
|
|
4307
4687
|
menuId: string;
|
|
4308
4688
|
readonly itemSelect: EventEmitter<T>;
|
|
4309
4689
|
readonly openChange: EventEmitter<boolean>;
|
|
@@ -4323,8 +4703,9 @@ declare class DropdownMenuComponent<T = string> {
|
|
|
4323
4703
|
onItemSelect(id: T): void;
|
|
4324
4704
|
onCloseRequest(): void;
|
|
4325
4705
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownMenuComponent<any>, never>;
|
|
4326
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownMenuComponent<any>, "app-dropdown-menu", never, { "items": { "alias": "items"; "required": true; }; "placement": { "alias": "placement"; "required": false; }; "minWidthPx": { "alias": "minWidthPx"; "required": false; }; "matchTriggerWidth": { "alias": "matchTriggerWidth"; "required": false; }; "menuId": { "alias": "menuId"; "required": false; }; }, { "itemSelect": "itemSelect"; "openChange": "openChange"; }, never, ["*"], true, never>;
|
|
4706
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownMenuComponent<any>, "app-dropdown-menu", never, { "items": { "alias": "items"; "required": true; }; "placement": { "alias": "placement"; "required": false; }; "minWidthPx": { "alias": "minWidthPx"; "required": false; }; "matchTriggerWidth": { "alias": "matchTriggerWidth"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "menuId": { "alias": "menuId"; "required": false; }; }, { "itemSelect": "itemSelect"; "openChange": "openChange"; }, never, ["*"], true, never>;
|
|
4327
4707
|
static ngAcceptInputType_matchTriggerWidth: unknown;
|
|
4708
|
+
static ngAcceptInputType_closeOnSelect: unknown;
|
|
4328
4709
|
}
|
|
4329
4710
|
|
|
4330
4711
|
declare class ContextMenuComponent<T = string> implements OnDestroy {
|
|
@@ -4560,7 +4941,7 @@ declare class AnchoredOverlayComponent {
|
|
|
4560
4941
|
scrollStrategy: ScrollStrategy | null;
|
|
4561
4942
|
readonly overlayPanelClasses: _angular_core.Signal<string[]>;
|
|
4562
4943
|
readonly panelThemeNgClass: _angular_core.Signal<{
|
|
4563
|
-
[
|
|
4944
|
+
[k: string]: boolean;
|
|
4564
4945
|
}>;
|
|
4565
4946
|
readonly defaultScrollStrategy: _angular_cdk_overlay.RepositionScrollStrategy;
|
|
4566
4947
|
get effectiveScrollStrategy(): ScrollStrategy;
|
|
@@ -5034,6 +5415,65 @@ declare class AppShellSidebarToggleComponent {
|
|
|
5034
5415
|
static ngAcceptInputType_collapsed: unknown;
|
|
5035
5416
|
}
|
|
5036
5417
|
|
|
5418
|
+
/** Utilizador exibido no painel da sidebar administrativa. */
|
|
5419
|
+
interface StructraSidebarUserView {
|
|
5420
|
+
id?: string;
|
|
5421
|
+
nome?: string;
|
|
5422
|
+
email?: string;
|
|
5423
|
+
login?: string;
|
|
5424
|
+
profileName?: string;
|
|
5425
|
+
}
|
|
5426
|
+
/** Contexto mínimo de empresa/plano para badge na sidebar (consumidor pode enviar mais campos). */
|
|
5427
|
+
interface StructraSidebarEmpresaContext {
|
|
5428
|
+
planoNome?: string | null;
|
|
5429
|
+
}
|
|
5430
|
+
|
|
5431
|
+
declare class StructraSidebarUserPanelComponent {
|
|
5432
|
+
readonly panelTooltip: _angular_core.InputSignal<string>;
|
|
5433
|
+
readonly user: _angular_core.InputSignal<StructraSidebarUserView | null>;
|
|
5434
|
+
readonly empresa: _angular_core.InputSignal<StructraSidebarEmpresaContext | null>;
|
|
5435
|
+
readonly collapsed: _angular_core.InputSignal<boolean>;
|
|
5436
|
+
readonly panelClick: _angular_core.OutputEmitterRef<void>;
|
|
5437
|
+
readonly displayName: _angular_core.Signal<string>;
|
|
5438
|
+
readonly initials: _angular_core.Signal<string>;
|
|
5439
|
+
readonly planName: _angular_core.Signal<string | null>;
|
|
5440
|
+
onPanelClick(): void;
|
|
5441
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraSidebarUserPanelComponent, never>;
|
|
5442
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraSidebarUserPanelComponent, "structra-sidebar-user-panel, app-admin-sidebar-user-panel", never, { "panelTooltip": { "alias": "panelTooltip"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "empresa": { "alias": "empresa"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "panelClick": "panelClick"; }, never, never, true, never>;
|
|
5443
|
+
}
|
|
5444
|
+
|
|
5445
|
+
/** Rodapé institucional (login e área autenticada): textos via DI ou input `parts`. */
|
|
5446
|
+
declare class StructraPageFooterComponent {
|
|
5447
|
+
private readonly configuredParts;
|
|
5448
|
+
/** Sobrescreve partes do rodapé (omisso: {@link STRUCTRA_PAGE_FOOTER_PARTS} ou fallback genérico). */
|
|
5449
|
+
readonly partsInput: _angular_core.InputSignal<readonly string[] | null>;
|
|
5450
|
+
readonly parts: _angular_core.Signal<readonly string[]>;
|
|
5451
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraPageFooterComponent, never>;
|
|
5452
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraPageFooterComponent, "structra-page-footer, app-page-footer", never, { "partsInput": { "alias": "parts"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5453
|
+
}
|
|
5454
|
+
|
|
5455
|
+
/** Configuração declarativa do rodapé institucional (login e área autenticada). */
|
|
5456
|
+
interface StructraPageFooterConfig {
|
|
5457
|
+
/** Nome do produto exibido no copyright (ex.: ErpTemplate). */
|
|
5458
|
+
productName: string;
|
|
5459
|
+
/** Versão exibida (ex.: 1.0.0). Omisso: omite a linha «Versão …». */
|
|
5460
|
+
version?: string;
|
|
5461
|
+
/** Ano do copyright. Omisso: ano corrente no cliente. */
|
|
5462
|
+
copyrightYear?: number;
|
|
5463
|
+
/** Partes extras após copyright e versão. */
|
|
5464
|
+
extraParts?: readonly string[];
|
|
5465
|
+
}
|
|
5466
|
+
/** Partes literais do rodapé — alternativa à {@link StructraPageFooterConfig}. */
|
|
5467
|
+
declare const STRUCTRA_PAGE_FOOTER_PARTS: InjectionToken<readonly string[]>;
|
|
5468
|
+
/**
|
|
5469
|
+
* Monta partes padrão: `© {ano} {produto}` e, se informado, `Versão {versão}`.
|
|
5470
|
+
*/
|
|
5471
|
+
declare function buildStructraPageFooterParts(config: StructraPageFooterConfig): readonly string[];
|
|
5472
|
+
/** Provider único no `app.config` — substitui `footer-meta.ts` por consumidor. */
|
|
5473
|
+
declare function provideStructraPageFooter(config: StructraPageFooterConfig): Provider;
|
|
5474
|
+
/** @deprecated Alias legado — preferir {@link provideStructraPageFooter}. */
|
|
5475
|
+
declare const provideAppPageFooter: typeof provideStructraPageFooter;
|
|
5476
|
+
|
|
5037
5477
|
/**
|
|
5038
5478
|
* Barra superior com zonas de projeção: início, título, **subtítulo (opcional)** e fim.
|
|
5039
5479
|
* Sem `[appTopbarSubtitle]` o bloco do subtítulo não ocupa espaço.
|
|
@@ -5117,6 +5557,78 @@ declare class AppBreadcrumbComponent {
|
|
|
5117
5557
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppBreadcrumbComponent, "app-breadcrumb", never, { "items": { "alias": "items"; "required": true; }; }, {}, never, never, true, never>;
|
|
5118
5558
|
}
|
|
5119
5559
|
|
|
5560
|
+
/** Textos e mídia exibidos no shell de login administrativo (white-label). */
|
|
5561
|
+
interface AdminLoginShellConfig {
|
|
5562
|
+
loginTitulo: string;
|
|
5563
|
+
loginTextoDestaque: string;
|
|
5564
|
+
loginSubtitulo: string;
|
|
5565
|
+
loginTituloFormulario: string;
|
|
5566
|
+
loginTextoBotaoEntrar: string;
|
|
5567
|
+
loginMostrarEsqueciSenha: boolean;
|
|
5568
|
+
loginMostrarCriarConta: boolean;
|
|
5569
|
+
textoEsqueciSenha: string;
|
|
5570
|
+
textoCriarConta: string;
|
|
5571
|
+
heroImageSrc: string | null;
|
|
5572
|
+
brandLogoSrc: string | null;
|
|
5573
|
+
}
|
|
5574
|
+
|
|
5575
|
+
declare class AdminLoginShellComponent {
|
|
5576
|
+
formGroup: FormGroup;
|
|
5577
|
+
config: AdminLoginShellConfig;
|
|
5578
|
+
loading: boolean;
|
|
5579
|
+
error: string | null;
|
|
5580
|
+
tenantInexistente: boolean;
|
|
5581
|
+
tenantInexistenteMessage: string;
|
|
5582
|
+
showFooter: boolean;
|
|
5583
|
+
readonly submitted: EventEmitter<void>;
|
|
5584
|
+
readonly brandLogoError: EventEmitter<void>;
|
|
5585
|
+
readonly forgotPasswordClicked: EventEmitter<void>;
|
|
5586
|
+
readonly createAccountClicked: EventEmitter<void>;
|
|
5587
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdminLoginShellComponent, never>;
|
|
5588
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AdminLoginShellComponent, "structra-admin-login-shell", never, { "formGroup": { "alias": "formGroup"; "required": true; }; "config": { "alias": "config"; "required": true; }; "loading": { "alias": "loading"; "required": false; }; "error": { "alias": "error"; "required": false; }; "tenantInexistente": { "alias": "tenantInexistente"; "required": false; }; "tenantInexistenteMessage": { "alias": "tenantInexistenteMessage"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; }, { "submitted": "submitted"; "brandLogoError": "brandLogoError"; "forgotPasswordClicked": "forgotPasswordClicked"; "createAccountClicked": "createAccountClicked"; }, never, ["[loginFields]", "[loginFooter]"], true, never>;
|
|
5589
|
+
}
|
|
5590
|
+
|
|
5591
|
+
/** Payload emitido ao submeter o formulário de login administrativo. */
|
|
5592
|
+
interface AdminLoginSubmitPayload {
|
|
5593
|
+
loginOuEmail: string;
|
|
5594
|
+
senha: string;
|
|
5595
|
+
}
|
|
5596
|
+
|
|
5597
|
+
declare class AdminLoginPageComponent implements OnChanges {
|
|
5598
|
+
private readonly formBuilder;
|
|
5599
|
+
private readonly cdr;
|
|
5600
|
+
config: AdminLoginShellConfig;
|
|
5601
|
+
loading: boolean;
|
|
5602
|
+
error: string | null;
|
|
5603
|
+
tenantInexistente: boolean;
|
|
5604
|
+
tenantInexistenteMessage: string;
|
|
5605
|
+
emailLabel: string;
|
|
5606
|
+
emailErrorMessage: string;
|
|
5607
|
+
passwordLabel: string;
|
|
5608
|
+
passwordErrorMessage: string;
|
|
5609
|
+
submitDisabled: boolean;
|
|
5610
|
+
autocomplete: boolean;
|
|
5611
|
+
/** Incremente para resetar campos do formulário (ex.: ao voltar para a rota de login). */
|
|
5612
|
+
surfaceResetTrigger: number;
|
|
5613
|
+
readonly loginSubmit: EventEmitter<AdminLoginSubmitPayload>;
|
|
5614
|
+
readonly brandLogoError: EventEmitter<void>;
|
|
5615
|
+
readonly forgotPasswordClicked: EventEmitter<void>;
|
|
5616
|
+
readonly createAccountClicked: EventEmitter<void>;
|
|
5617
|
+
private readonly brandLogoFailed;
|
|
5618
|
+
readonly loginForm: _angular_forms.FormGroup<{
|
|
5619
|
+
email: FormControl<string | null>;
|
|
5620
|
+
password: FormControl<string | null>;
|
|
5621
|
+
}>;
|
|
5622
|
+
get effectiveShellConfig(): AdminLoginShellConfig;
|
|
5623
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
5624
|
+
onBrandLogoError(): void;
|
|
5625
|
+
onSubmit(): void;
|
|
5626
|
+
/** Reseta campos do formulário (loading/erro permanecem sob controle do consumidor). */
|
|
5627
|
+
resetSurface(): void;
|
|
5628
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdminLoginPageComponent, never>;
|
|
5629
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AdminLoginPageComponent, "structra-admin-login-page", never, { "config": { "alias": "config"; "required": true; }; "loading": { "alias": "loading"; "required": false; }; "error": { "alias": "error"; "required": false; }; "tenantInexistente": { "alias": "tenantInexistente"; "required": false; }; "tenantInexistenteMessage": { "alias": "tenantInexistenteMessage"; "required": false; }; "emailLabel": { "alias": "emailLabel"; "required": false; }; "emailErrorMessage": { "alias": "emailErrorMessage"; "required": false; }; "passwordLabel": { "alias": "passwordLabel"; "required": false; }; "passwordErrorMessage": { "alias": "passwordErrorMessage"; "required": false; }; "submitDisabled": { "alias": "submitDisabled"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "surfaceResetTrigger": { "alias": "surfaceResetTrigger"; "required": false; }; }, { "loginSubmit": "loginSubmit"; "brandLogoError": "brandLogoError"; "forgotPasswordClicked": "forgotPasswordClicked"; "createAccountClicked": "createAccountClicked"; }, never, ["[loginExtraContent]", "[loginFooter]"], true, never>;
|
|
5630
|
+
}
|
|
5631
|
+
|
|
5120
5632
|
/** Alinhado ao backend (`DynamicConsultaWhereBuilder`): operadores em minúsculas. */
|
|
5121
5633
|
type ConsultaValorTipo = 'string' | 'bool' | 'datetime' | 'number';
|
|
5122
5634
|
interface ConsultaCampoDef {
|
|
@@ -5162,7 +5674,7 @@ interface ConsultaFiltroPreset<TColuna extends string = string> {
|
|
|
5162
5674
|
declare const OPS_TEXTO: readonly ConsultaOperadorOption[];
|
|
5163
5675
|
declare const OPS_BOOL: readonly ConsultaOperadorOption[];
|
|
5164
5676
|
declare const OPS_DATA: readonly ConsultaOperadorOption[];
|
|
5165
|
-
/** Campos com multi-seleção no metadata (
|
|
5677
|
+
/** Campos com multi-seleção no metadata (operador fixo `inlist` no servidor). */
|
|
5166
5678
|
declare const OPS_TEXTO_MULTISELECT: readonly ConsultaOperadorOption[];
|
|
5167
5679
|
/**
|
|
5168
5680
|
* Colunas `datetime`: usar `app-date-field` para qualquer operador excepto `between`
|
|
@@ -6272,6 +6784,17 @@ interface ConsultaPageRuntime {
|
|
|
6272
6784
|
* Omissão: não normaliza operadores (retrocompat).
|
|
6273
6785
|
*/
|
|
6274
6786
|
valorTipoPorColuna?: (coluna: string) => ConsultaValorTipo;
|
|
6787
|
+
/**
|
|
6788
|
+
* Montagem de filtros avulsos em tempo de execução (ex.: override de {@link montarFiltrosListaConsulta} na página).
|
|
6789
|
+
* Omissão: usa o montador interno do runtime builder.
|
|
6790
|
+
*/
|
|
6791
|
+
montarFiltrosListaConsulta?: (preset: ConsultaFiltroPreset<string> | undefined, valores: Record<string, string>, boolColumnIds: readonly string[], valorTipoPorColuna?: (coluna: string) => ConsultaValorTipo) => Array<{
|
|
6792
|
+
campo: string;
|
|
6793
|
+
operador: string;
|
|
6794
|
+
valor: string;
|
|
6795
|
+
valorAte: string;
|
|
6796
|
+
juncao: string;
|
|
6797
|
+
}>;
|
|
6275
6798
|
}) => Promise<{
|
|
6276
6799
|
itens: unknown[];
|
|
6277
6800
|
total: number;
|
|
@@ -6291,6 +6814,13 @@ interface ConsultaPageRuntime {
|
|
|
6291
6814
|
* Omissão na página base: 15.
|
|
6292
6815
|
*/
|
|
6293
6816
|
consultaListaCacheMaxPaginas?: number;
|
|
6817
|
+
/**
|
|
6818
|
+
* Chave da tela para persistência de layout AG Grid (tenant + tela + grid).
|
|
6819
|
+
* Omisso: usa {@link consultaListaCacheNamespace} quando definido.
|
|
6820
|
+
*/
|
|
6821
|
+
layoutTelaKey?: string;
|
|
6822
|
+
/** Chave do grid na consulta. Omisso: `consulta-principal`. */
|
|
6823
|
+
layoutGridKey?: string;
|
|
6294
6824
|
/**
|
|
6295
6825
|
* Monta os mesmos `filtrosAvulsos` que o fluxo servidor usa em {@link carregarListaComConsulta}.
|
|
6296
6826
|
* Obrigatório para activar cache quando {@link consultaListaCacheNamespace} está definido.
|
|
@@ -6312,9 +6842,14 @@ interface ConsultaPageRuntime {
|
|
|
6312
6842
|
itemPassaConsulta: (item: unknown, itens: ConsultaFiltroItem<string>[], valoresPorItemId: Record<string, string>) => boolean;
|
|
6313
6843
|
editar?: (row: Record<string, unknown>) => void;
|
|
6314
6844
|
duplicar?: (row: Record<string, unknown>) => void;
|
|
6845
|
+
imprimir?: (row: Record<string, unknown>) => void;
|
|
6315
6846
|
remover?: (row: Record<string, unknown>) => Promise<void> | void;
|
|
6316
6847
|
/** `true` quando `[DuplicateConfig(Enabled = true)]` no layout da página. */
|
|
6317
6848
|
showDuplicateAction?: boolean;
|
|
6849
|
+
/** `true` quando a página define ação «Imprimir» por linha. */
|
|
6850
|
+
showPrintAction?: boolean;
|
|
6851
|
+
/** Tooltip/aria do botão imprimir na coluna Ações. Omisso ⇒ «Imprimir». */
|
|
6852
|
+
printActionLabel?: string;
|
|
6318
6853
|
/**
|
|
6319
6854
|
* Após {@link remover} com sucesso, em vez de retirar a linha da lista, actualiza-a com `ativo: false`
|
|
6320
6855
|
* (inativação local alinhada ao soft-delete no servidor). Omissão: remove a linha pelo `id`.
|
|
@@ -6339,6 +6874,8 @@ interface ConsultaPageRuntime {
|
|
|
6339
6874
|
novoRouterLink?: string | unknown[];
|
|
6340
6875
|
/** Coluna Ações: tooltip/aria do botão de abrir registo. */
|
|
6341
6876
|
editActionLabel: string;
|
|
6877
|
+
/** Coluna Ações: ícone Font Awesome do botão editar (ex.: `fa-paper-plane`). */
|
|
6878
|
+
editActionIconClass?: string;
|
|
6342
6879
|
novoAriaLabel?: string;
|
|
6343
6880
|
toastTitleLista: string;
|
|
6344
6881
|
/** Avisos na consulta (ex. validação de filtros) — omissão: {@link toastTitleLista}. */
|
|
@@ -6371,6 +6908,105 @@ interface ConsultaPageRuntime {
|
|
|
6371
6908
|
};
|
|
6372
6909
|
}
|
|
6373
6910
|
|
|
6911
|
+
/** Separador interno entre scope e chave lógica. */
|
|
6912
|
+
declare const STRUCTRA_PAGE_CACHE_SCOPE_SEP = "\u001F";
|
|
6913
|
+
interface StructraPageCacheGetOrLoadOptions {
|
|
6914
|
+
ttlMs?: number;
|
|
6915
|
+
force?: boolean;
|
|
6916
|
+
scope?: string;
|
|
6917
|
+
}
|
|
6918
|
+
interface StructraPageCacheSetOptions {
|
|
6919
|
+
ttlMs?: number;
|
|
6920
|
+
scope?: string;
|
|
6921
|
+
}
|
|
6922
|
+
/**
|
|
6923
|
+
* Cache genérico em memória para páginas/rotas administrativas.
|
|
6924
|
+
* Suporta TTL opcional, isolamento por scope (rota/tenant) e deduplicação de loaders simultâneos.
|
|
6925
|
+
* Perdido ao recarregar a aplicação (F5).
|
|
6926
|
+
*/
|
|
6927
|
+
declare class StructraPageCacheService {
|
|
6928
|
+
private readonly entries;
|
|
6929
|
+
private readonly inFlight;
|
|
6930
|
+
getOrLoad<T>(key: string, loader: () => Observable<T>, options?: StructraPageCacheGetOrLoadOptions): Observable<T>;
|
|
6931
|
+
get<T>(key: string, scope?: string): T | null;
|
|
6932
|
+
set<T>(key: string, value: T, options?: StructraPageCacheSetOptions): void;
|
|
6933
|
+
invalidate(key: string, scope?: string): void;
|
|
6934
|
+
invalidateScope(scope: string): void;
|
|
6935
|
+
clear(): void;
|
|
6936
|
+
/** Presença bruta (ignora TTL) — útil para testes. */
|
|
6937
|
+
hasEntry(key: string, scope?: string): boolean;
|
|
6938
|
+
private buildScopedKey;
|
|
6939
|
+
private readEntry;
|
|
6940
|
+
private writeEntry;
|
|
6941
|
+
private deleteEntry;
|
|
6942
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraPageCacheService, never>;
|
|
6943
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<StructraPageCacheService>;
|
|
6944
|
+
}
|
|
6945
|
+
/**
|
|
6946
|
+
* Monta scope estável para cache por rota administrativa (ex.: `/home/personalizacao`).
|
|
6947
|
+
* Quando informado, inclui tenant/empresa para isolar sessões multi-tenant.
|
|
6948
|
+
*/
|
|
6949
|
+
declare function buildStructraPageCacheRouteScope(routePath: string, tenantId?: string | null): string;
|
|
6950
|
+
/** Chave lógica para cache de `initCadastro` por entidade e id de rota. */
|
|
6951
|
+
declare function buildStructraPageCacheCadastroInitKey(entityKey: string, routeId: string): string;
|
|
6952
|
+
/** Scope efectivo combinando scope extra (tenant) com a rota do cadastro. */
|
|
6953
|
+
declare function resolveStructraPageCacheCadastroScope(routePath: string, pageCacheScope?: string, tenantId?: string | null): string;
|
|
6954
|
+
|
|
6955
|
+
/** Prefixo lógico para chaves de redirect administrativo em {@link StructraPageCacheService}. */
|
|
6956
|
+
declare const STRUCTRA_ADMIN_ROUTE_REDIRECT_CACHE_PREFIX = "admin-route-redirect";
|
|
6957
|
+
/** Chave típica para redirect de personalização/login (`login-id`). */
|
|
6958
|
+
declare const STRUCTRA_ADMIN_ROUTE_REDIRECT_LOGIN_ID_CACHE_KEY: string;
|
|
6959
|
+
declare function buildStructraAdminRouteRedirectCacheKey(logicalKey: string): string;
|
|
6960
|
+
declare function normalizeStructraAdminPath(url: string): string;
|
|
6961
|
+
/**
|
|
6962
|
+
* Evita navegação redundante quando o utilizador clica de novo no mesmo item de menu
|
|
6963
|
+
* (ex.: já está em `/home/personalizacao/:id` e o menu aponta para `/home/personalizacao`).
|
|
6964
|
+
*/
|
|
6965
|
+
declare function shouldSkipStructraAdminMenuNavigation(menuUrl: string, currentPath: string): boolean;
|
|
6966
|
+
interface ResolveStructraAdminMenuUrlOptions {
|
|
6967
|
+
/** Quando o menu aponta para rota “vazia” que redireciona (ex.: personalização), usa destino já resolvido. */
|
|
6968
|
+
resolveCachedChildPath?: () => string | null | undefined;
|
|
6969
|
+
}
|
|
6970
|
+
/** Resolve URL final do menu, preferindo destino filho em cache quando disponível. */
|
|
6971
|
+
declare function resolveStructraAdminMenuUrl(menuUrl: string, options?: ResolveStructraAdminMenuUrlOptions): string;
|
|
6972
|
+
interface StructraAdminRouteRedirectCacheOptions {
|
|
6973
|
+
cacheKey: string;
|
|
6974
|
+
routePath: string;
|
|
6975
|
+
tenantId?: string | null;
|
|
6976
|
+
}
|
|
6977
|
+
/** Lê destino de redirect já resolvido (sem ir à rede). */
|
|
6978
|
+
declare function readStructraAdminRouteRedirectTarget(pageCache: StructraPageCacheService, options: StructraAdminRouteRedirectCacheOptions): string | null;
|
|
6979
|
+
/** Monta URL filha padrão (`/base/:id`) a partir do id em cache. */
|
|
6980
|
+
declare function buildStructraAdminRouteRedirectChildUrl(routePath: string, targetId: string | null | undefined): string | null;
|
|
6981
|
+
interface StructraAdminRouteRedirectLoadOptions extends StructraAdminRouteRedirectCacheOptions {
|
|
6982
|
+
loader: () => Observable<string | null>;
|
|
6983
|
+
force?: boolean;
|
|
6984
|
+
}
|
|
6985
|
+
/** Carrega destino de redirect com cache em memória (dedupe + TTL opcional). */
|
|
6986
|
+
declare function loadStructraAdminRouteRedirectTarget(pageCache: StructraPageCacheService, options: StructraAdminRouteRedirectLoadOptions): Observable<string | null>;
|
|
6987
|
+
|
|
6988
|
+
/**
|
|
6989
|
+
* Base para páginas vazias que resolvem um id via backend e redirecionam para rota filha.
|
|
6990
|
+
* O resultado fica em {@link StructraPageCacheService} — reabrir o menu não refaz a RPC.
|
|
6991
|
+
*/
|
|
6992
|
+
declare abstract class StructraAdminRouteRedirectPageBase implements OnInit {
|
|
6993
|
+
protected readonly router: Router;
|
|
6994
|
+
protected readonly pageCache: StructraPageCacheService;
|
|
6995
|
+
/** Rota base do redirect (ex.: `/home/personalizacao`). */
|
|
6996
|
+
protected abstract readonly redirectRoutePath: string;
|
|
6997
|
+
/** Chave lógica em cache (ex.: {@link STRUCTRA_ADMIN_ROUTE_REDIRECT_LOGIN_ID_CACHE_KEY}). */
|
|
6998
|
+
protected abstract readonly redirectCacheKey: string;
|
|
6999
|
+
protected abstract readonly fallbackNavigateUrl: string;
|
|
7000
|
+
/** Loader que devolve o id de destino (ou null quando inválido). */
|
|
7001
|
+
protected abstract loadRedirectTarget(): Observable<string | null>;
|
|
7002
|
+
/** Scope multi-tenant opcional para isolar cache por empresa. */
|
|
7003
|
+
protected resolveRedirectTenantId(): string | null | undefined;
|
|
7004
|
+
ngOnInit(): void;
|
|
7005
|
+
protected runRedirect(): Promise<void>;
|
|
7006
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraAdminRouteRedirectPageBase, never>;
|
|
7007
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StructraAdminRouteRedirectPageBase, never, never, {}, {}, never, never, true, never>;
|
|
7008
|
+
}
|
|
7009
|
+
|
|
6374
7010
|
/** Separador entre namespace da consulta e corpo JSON estável da chave composta. */
|
|
6375
7011
|
declare const CONSULTA_LISTA_CACHE_NS_SEP = "\u001F";
|
|
6376
7012
|
interface ConsultaPageCacheEntry<TValue> {
|
|
@@ -6473,6 +7109,115 @@ declare class ConsultaListaMemoriaCacheService {
|
|
|
6473
7109
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ConsultaListaMemoriaCacheService>;
|
|
6474
7110
|
}
|
|
6475
7111
|
|
|
7112
|
+
/** Payload persistido em `str_layout_json` (versão + estado de colunas AG Grid). */
|
|
7113
|
+
interface GridLayoutConsultaPersistedPayload {
|
|
7114
|
+
version: number;
|
|
7115
|
+
columnState: unknown[];
|
|
7116
|
+
savedAt: string;
|
|
7117
|
+
}
|
|
7118
|
+
interface GridLayoutConsultaApiDto {
|
|
7119
|
+
tela: string;
|
|
7120
|
+
grid: string;
|
|
7121
|
+
layoutJson: string;
|
|
7122
|
+
}
|
|
7123
|
+
type StructraGridLayoutTenantResolverFn = () => string | null | undefined;
|
|
7124
|
+
type StructraGridLayoutApiBaseResolverFn = () => string;
|
|
7125
|
+
type StructraGridLayoutAuthHeadersResolverFn = () => Record<string, string>;
|
|
7126
|
+
/**
|
|
7127
|
+
* Tenant atual para chave de cache em memória (`tenant:tela:grid`).
|
|
7128
|
+
* A app deve fornecer (ex.: `SessionContextService.tenantAtualId`).
|
|
7129
|
+
*/
|
|
7130
|
+
declare const STRUCTRA_GRID_LAYOUT_TENANT_RESOLVER: InjectionToken<StructraGridLayoutTenantResolverFn>;
|
|
7131
|
+
/** Base URL da API REST (sem barra final). Omisso: `window.location.origin`. */
|
|
7132
|
+
declare const STRUCTRA_GRID_LAYOUT_API_BASE_RESOLVER: InjectionToken<StructraGridLayoutApiBaseResolverFn>;
|
|
7133
|
+
/** Headers de autenticação para GET/PUT do layout (ex.: JWT). */
|
|
7134
|
+
declare const STRUCTRA_GRID_LAYOUT_AUTH_HEADERS_RESOLVER: InjectionToken<StructraGridLayoutAuthHeadersResolverFn>;
|
|
7135
|
+
|
|
7136
|
+
declare class GridLayoutConsultaService {
|
|
7137
|
+
private readonly http;
|
|
7138
|
+
private readonly tenantResolver;
|
|
7139
|
+
private readonly apiBaseResolver;
|
|
7140
|
+
private readonly authHeadersResolver;
|
|
7141
|
+
private readonly memoryCache;
|
|
7142
|
+
/** Incrementado a cada gravação local — impede GET async de apagar layout mais recente. */
|
|
7143
|
+
private readonly layoutRevisionByKey;
|
|
7144
|
+
/** Chaves já consultadas no backend nesta sessão (evita GET repetido ao navegar). */
|
|
7145
|
+
private readonly backendFetchedKeys;
|
|
7146
|
+
private readonly inFlightByKey;
|
|
7147
|
+
private saveTimer;
|
|
7148
|
+
private tenantRetryTimer;
|
|
7149
|
+
/** Re-tenta GET quando o tenant ainda não hidratou (F5) e sessionStorage não tinha layout. */
|
|
7150
|
+
private tenantRetryGetLayoutTimer;
|
|
7151
|
+
private pendingGetLayout;
|
|
7152
|
+
private pendingSave;
|
|
7153
|
+
/** Detecta transição `_` → tenant real para migrar cache e retomar PUT pendente. */
|
|
7154
|
+
private resolvedTenantForCache;
|
|
7155
|
+
/** Ouve quando layout entra em cache (GET backend / migração tenant) — grelha reaplica no F5. */
|
|
7156
|
+
private readonly layoutCacheUpdatedListeners;
|
|
7157
|
+
/** Subscrição para reaplicar layout quando o GET async concluir (ex.: F5 com tenant a hidratar). */
|
|
7158
|
+
onLayoutCacheUpdated(listener: (cacheKey: string) => void): () => void;
|
|
7159
|
+
/**
|
|
7160
|
+
* Leitura síncrona: memória → sessionStorage. Não dispara HTTP.
|
|
7161
|
+
* Usar antes do primeiro paint da grelha para aplicar colunas sem flicker.
|
|
7162
|
+
*/
|
|
7163
|
+
getCachedLayout(tela: string, grid?: string): GridLayoutConsultaPersistedPayload | null;
|
|
7164
|
+
/** Indica se o backend já foi consultado nesta sessão para `tenant:tela:grid`. */
|
|
7165
|
+
hasFetchedFromBackend(tela: string, grid?: string): boolean;
|
|
7166
|
+
/** Compara chave interna `tenant:tela:grid` com tela/grid visíveis ao consumidor (ex.: listener do data-grid). */
|
|
7167
|
+
cacheKeyMatchesTelaGrid(cacheKey: string, tela: string, grid?: string): boolean;
|
|
7168
|
+
getLayout(tela: string, grid?: string): Promise<GridLayoutConsultaPersistedPayload | null>;
|
|
7169
|
+
saveLayout(tela: string, grid: string, layoutJson: string): void;
|
|
7170
|
+
saveLayoutFromColumnState(tela: string, grid: string, columnState: unknown[]): void;
|
|
7171
|
+
private fetchLayoutFromBackend;
|
|
7172
|
+
/**
|
|
7173
|
+
* Após GET async: preserva layout local/gravação pendente se o utilizador alterou colunas entretanto.
|
|
7174
|
+
* `undefined` = aplicar resposta remota normalmente.
|
|
7175
|
+
*/
|
|
7176
|
+
private resolveLocalLayoutAfterFetch;
|
|
7177
|
+
private isRemoteLayoutNewer;
|
|
7178
|
+
private bumpLayoutRevision;
|
|
7179
|
+
private getLayoutRevision;
|
|
7180
|
+
private markBackendFetched;
|
|
7181
|
+
private storeLayout;
|
|
7182
|
+
private notifyLayoutCacheUpdated;
|
|
7183
|
+
private scheduleDebouncedSave;
|
|
7184
|
+
private flushSave;
|
|
7185
|
+
/** Re-tenta GET quando sessionStorage estava vazio e o tenant ainda não hidratou (F5). */
|
|
7186
|
+
private scheduleTenantRetryGetLayout;
|
|
7187
|
+
/** Re-tenta PUT quando o tenant ainda não hidratou (F5) ou após falha transitória. */
|
|
7188
|
+
private scheduleTenantRetryFlush;
|
|
7189
|
+
private normalizeKeys;
|
|
7190
|
+
private buildCacheKey;
|
|
7191
|
+
private resolveTenantIdForCache;
|
|
7192
|
+
private tenantReadyForBackend;
|
|
7193
|
+
private noteTenantResolution;
|
|
7194
|
+
/**
|
|
7195
|
+
* Migra entradas gravadas com tenant `_` para o tenant real quando a sessão hidrata (F5).
|
|
7196
|
+
* Preserva layout em memória/sessionStorage e retoma PUT pendente.
|
|
7197
|
+
*/
|
|
7198
|
+
private migratePlaceholderCacheToRealTenant;
|
|
7199
|
+
private persistLastTenantId;
|
|
7200
|
+
private readLastTenantId;
|
|
7201
|
+
private sessionStorageKey;
|
|
7202
|
+
/**
|
|
7203
|
+
* Lê layout em sessionStorage pela chave exacta ou, em F5, por sufixo `:tela:grid`
|
|
7204
|
+
* quando o tenant ainda não estava disponível na 1.ª leitura.
|
|
7205
|
+
*/
|
|
7206
|
+
private readSessionStorageForLayout;
|
|
7207
|
+
private scanSessionStorageByTelaGrid;
|
|
7208
|
+
/**
|
|
7209
|
+
* `undefined` = ausente em sessionStorage; `null` = layout vazio persistido.
|
|
7210
|
+
*/
|
|
7211
|
+
private readSessionStorage;
|
|
7212
|
+
private writeSessionStorage;
|
|
7213
|
+
private removeSessionStorage;
|
|
7214
|
+
private apiUrl;
|
|
7215
|
+
private authHeaders;
|
|
7216
|
+
private parseLayoutJson;
|
|
7217
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridLayoutConsultaService, never>;
|
|
7218
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<GridLayoutConsultaService>;
|
|
7219
|
+
}
|
|
7220
|
+
|
|
6476
7221
|
/**
|
|
6477
7222
|
* Vista unificada da metadata da página (consulta + títulos/layout + snapshot opcional do cadastro declarativo).
|
|
6478
7223
|
* Piloto: Pessoa — outras entidades podem omitir {@link ConsultaPageMetadataUnified.cadastro}.
|
|
@@ -6640,8 +7385,11 @@ interface ConsultaCrudAdapterConfig<TItem, TRow extends Record<string, unknown>,
|
|
|
6640
7385
|
itemPassaConsulta?: ConsultaPageRuntime['itemPassaConsulta'];
|
|
6641
7386
|
editar?: (row: Record<string, unknown>) => void;
|
|
6642
7387
|
duplicar?: (row: Record<string, unknown>) => void;
|
|
7388
|
+
imprimir?: (row: Record<string, unknown>) => void;
|
|
6643
7389
|
remover?: (row: Record<string, unknown>) => Promise<void> | void;
|
|
6644
7390
|
showDuplicateAction?: boolean;
|
|
7391
|
+
showPrintAction?: boolean;
|
|
7392
|
+
printActionLabel?: string;
|
|
6645
7393
|
confirmDuplicarLinha?: ConsultaPageRuntime['confirmDuplicarLinha'];
|
|
6646
7394
|
duplicateSuccessMessage?: string;
|
|
6647
7395
|
/**
|
|
@@ -6655,6 +7403,8 @@ interface ConsultaCrudAdapterConfig<TItem, TRow extends Record<string, unknown>,
|
|
|
6655
7403
|
showNovoButton?: boolean;
|
|
6656
7404
|
/** Omissão: `'Alterar'` (ou `grid_config.edit_action_label` na factory padrão). */
|
|
6657
7405
|
editActionLabel?: string;
|
|
7406
|
+
/** Omissão: `fa-pen-to-square`. */
|
|
7407
|
+
editActionIconClass?: string;
|
|
6658
7408
|
/** Omissão: `'Novo registro'`. */
|
|
6659
7409
|
novoAriaLabel?: string;
|
|
6660
7410
|
/** Omissão: `'Consulta'`. */
|
|
@@ -6902,7 +7652,7 @@ interface ConsultaCatalogBundleConfig<TMetadataReply, TFiltroPreset> {
|
|
|
6902
7652
|
chaveConsulta: string;
|
|
6903
7653
|
ensureAuth: () => Promise<void>;
|
|
6904
7654
|
getMetadata: () => Promise<TMetadataReply>;
|
|
6905
|
-
/** `SELECT COUNT(*)` em cabeçalhos `
|
|
7655
|
+
/** `SELECT COUNT(*)` em cabeçalhos `tbl_filtro` (sem `tbl_filtro_item`). */
|
|
6906
7656
|
contarFiltrosCabecalhos: () => Promise<number>;
|
|
6907
7657
|
listarFiltros: () => Promise<{
|
|
6908
7658
|
filtros?: FiltroSalvo[];
|
|
@@ -7070,6 +7820,8 @@ declare class ConsultaCadastroFiltroDialogComponent {
|
|
|
7070
7820
|
readonly itemDraftSearchSelectOpcoesMescladas: _angular_core.Signal<UiSelectOption<string>[]>;
|
|
7071
7821
|
/** `null`: usar {@link itemDraftSearchSelectOpcoesMescladas}; senão lista já filtrada pela pesquisa. */
|
|
7072
7822
|
readonly itemDraftSearchSelectOpcoesPainel: _angular_core.WritableSignal<UiSelectOption<string>[] | null>;
|
|
7823
|
+
/** Descarta respostas obsoletas quando abertura e pesquisa correm em paralelo no draft. */
|
|
7824
|
+
private draftSearchSelectPageReqGen;
|
|
7073
7825
|
readonly itemDraftSearchSelectOpcoesParaTemplate: _angular_core.Signal<UiSelectOption<string>[]>;
|
|
7074
7826
|
private itemDraftColunaLimpezaProgramatica;
|
|
7075
7827
|
readonly dialogCadastroValidationItems: _angular_core.WritableSignal<ValidationSummaryItem[]>;
|
|
@@ -7117,6 +7869,7 @@ declare class ConsultaCadastroFiltroDialogComponent {
|
|
|
7117
7869
|
isFilterSelectColuna(col: string | null | undefined): boolean;
|
|
7118
7870
|
isSearchSelectColuna(col: string | null | undefined): boolean;
|
|
7119
7871
|
onDraftSearchSelectPageRequested(ev: DropdownSearchPageRequested): Promise<void>;
|
|
7872
|
+
private opcoesRemotasCampoJaCarregadas;
|
|
7120
7873
|
onDraftMultiselectPageRequested(ev: SelectPageRequested): Promise<void>;
|
|
7121
7874
|
isNumeroColuna(col: string | null | undefined): boolean;
|
|
7122
7875
|
isDatetimeColuna(col: string | null | undefined): boolean;
|
|
@@ -7161,7 +7914,7 @@ declare class ConsultaBasePageComponent implements OnInit, AfterViewInit, OnDest
|
|
|
7161
7914
|
private readonly confirm;
|
|
7162
7915
|
private readonly toast;
|
|
7163
7916
|
private readonly topbarSlot;
|
|
7164
|
-
|
|
7917
|
+
protected readonly topbarTitleSkeleton: _angular_core.WritableSignal<boolean>;
|
|
7165
7918
|
private readonly listaMemoriaCache;
|
|
7166
7919
|
private readonly router;
|
|
7167
7920
|
private readonly routeReuse;
|
|
@@ -7189,6 +7942,10 @@ declare class ConsultaBasePageComponent implements OnInit, AfterViewInit, OnDest
|
|
|
7189
7942
|
* Opções mostradas no painel do `search_select` por id do critério do preset (filtradas localmente pela query).
|
|
7190
7943
|
*/
|
|
7191
7944
|
private readonly consultaSearchSelectOpcoesPainelPorItemId;
|
|
7945
|
+
/** Descarta respostas obsoletas quando abertura (query vazia) e pesquisa (query com texto) correm em paralelo. */
|
|
7946
|
+
private readonly searchSelectPageReqGenByItemId;
|
|
7947
|
+
private readonly multiselectRemotoLoadGenByCampo;
|
|
7948
|
+
private readonly multiselectRemotoLoadPromiseByCampo;
|
|
7192
7949
|
readonly consultaSearchSelectPageSize = 96;
|
|
7193
7950
|
/** Runtime com filtros/grelha alinhados ao metadata quando disponível. */
|
|
7194
7951
|
readonly runtimeConsulta: _angular_core.Signal<ConsultaPageRuntime>;
|
|
@@ -7289,12 +8046,17 @@ declare class ConsultaBasePageComponent implements OnInit, AfterViewInit, OnDest
|
|
|
7289
8046
|
isFilterSelectColuna(col: string | null | undefined): boolean;
|
|
7290
8047
|
isSearchSelectColuna(col: string | null | undefined): boolean;
|
|
7291
8048
|
private limparOpcoesPainelSearchSelectConsulta;
|
|
7292
|
-
/**
|
|
8049
|
+
/**
|
|
8050
|
+
* Opções do painel do `search_select`.
|
|
8051
|
+
* Sem overlay explícito, não devolve a lista remota completa (pré-carga) — evita flash de todas as marcas
|
|
8052
|
+
* antes da primeira `pageRequested`; com valor seleccionado mantém merge para o rótulo no input.
|
|
8053
|
+
*/
|
|
7293
8054
|
consultaSearchSelectOpcoesPainel(it: ConsultaFiltroItem<string>): UiSelectOption<string>[];
|
|
7294
8055
|
onConsultaSearchSelectPageRequested(it: ConsultaFiltroItem<string>, ev: DropdownSearchPageRequested): Promise<void>;
|
|
7295
8056
|
onConsultaMultiselectPageRequested(coluna: string, ev: SelectPageRequested): Promise<void>;
|
|
7296
8057
|
/** Repasse ao diálogo de filtro: mesmo carregamento remoto que no painel principal. */
|
|
7297
8058
|
readonly recarregarOpcoesMultiselectCampo: (campo: string) => Promise<void>;
|
|
8059
|
+
private opcoesRemotasCampoJaCarregadas;
|
|
7298
8060
|
private aplicarOpcoesMultiselectRemotasCampo;
|
|
7299
8061
|
private precarregarOpcoesMultiselectRemotasInicial;
|
|
7300
8062
|
/** Critérios numéricos no metadata (`decimal`, `integer`, …) — input decimal + operadores de comparação. */
|
|
@@ -7372,6 +8134,11 @@ declare class ConsultaBasePageComponent implements OnInit, AfterViewInit, OnDest
|
|
|
7372
8134
|
* para respostas muito rápidas não «saltarem» o estado de carregamento.
|
|
7373
8135
|
*/
|
|
7374
8136
|
private yieldForSkeletonPaint;
|
|
8137
|
+
/**
|
|
8138
|
+
* Activa loading explícito e esvazia a grelha para o skeleton (Structra: overlay só com lista vazia).
|
|
8139
|
+
* Painel de filtros e chrome permanecem visíveis.
|
|
8140
|
+
*/
|
|
8141
|
+
private iniciarLoadingGrelhaComSkeleton;
|
|
7375
8142
|
/** Respeita {@link CONSULTA_LISTA_SKELETON_MIN_MS} após mostrar skeleton dos critérios de filtro. */
|
|
7376
8143
|
private yieldUntilMinFiltroSkeletonMs;
|
|
7377
8144
|
/** Pesquisa válida: skeleton na grelha + nova leitura do servidor e só então aplica o preset consultado. */
|
|
@@ -7379,6 +8146,7 @@ declare class ConsultaBasePageComponent implements OnInit, AfterViewInit, OnDest
|
|
|
7379
8146
|
carregarTodos(): Promise<void>;
|
|
7380
8147
|
editar(row: Record<string, unknown>): void;
|
|
7381
8148
|
duplicar(row: Record<string, unknown>): Promise<void>;
|
|
8149
|
+
imprimir(row: Record<string, unknown>): void;
|
|
7382
8150
|
excluirUsuario(row: Record<string, unknown>): Promise<void>;
|
|
7383
8151
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConsultaBasePageComponent, never>;
|
|
7384
8152
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConsultaBasePageComponent, "app-consulta-base-page", never, { "runtime": { "alias": "runtime"; "required": true; "isSignal": true; }; "topbarEndExtraTemplate": { "alias": "topbarEndExtraTemplate"; "required": false; "isSignal": true; }; "tooltipBotaoPesquisar": { "alias": "tooltipBotaoPesquisar"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -7448,8 +8216,11 @@ interface CreateConsultaPadraoRuntimeOptions<TItem, TRow extends Record<string,
|
|
|
7448
8216
|
mapGridRow?: (item: TItem) => TRow;
|
|
7449
8217
|
mapCard?: CardListMapFn<TRow>;
|
|
7450
8218
|
editar?: ConsultaCrudAdapterConfig<TItem, TRow, TPreset>['editar'];
|
|
8219
|
+
imprimir?: ConsultaCrudAdapterConfig<TItem, TRow, TPreset>['imprimir'];
|
|
7451
8220
|
remover?: ConsultaCrudAdapterConfig<TItem, TRow, TPreset>['remover'];
|
|
7452
8221
|
removerActualizaAtivoEmVezDeRetirar?: boolean;
|
|
8222
|
+
showPrintAction?: boolean;
|
|
8223
|
+
printActionLabel?: string;
|
|
7453
8224
|
novoRouterLink?: string | unknown[];
|
|
7454
8225
|
toastTitleLista?: string;
|
|
7455
8226
|
confirmRemoverLinha?: ConsultaPageRuntime['confirmRemoverLinha'];
|
|
@@ -7650,6 +8421,12 @@ interface CadastroValidationUi {
|
|
|
7650
8421
|
*/
|
|
7651
8422
|
readonly beforeSummaryItemActivate?: ((item: ValidationSummaryItem) => void) | null;
|
|
7652
8423
|
}
|
|
8424
|
+
/** Acção opcional à esquerda de Salvar/Novo na topbar ou toolbar interna do cadastro. */
|
|
8425
|
+
interface CadastroHeaderSecondaryAction {
|
|
8426
|
+
label: string;
|
|
8427
|
+
icon?: string;
|
|
8428
|
+
disabled?: boolean;
|
|
8429
|
+
}
|
|
7653
8430
|
type CadastroModo = 'novo' | 'editar';
|
|
7654
8431
|
interface CadastroPageRuntime<TResponse = unknown> {
|
|
7655
8432
|
modo: Signal<CadastroModo>;
|
|
@@ -8023,6 +8800,8 @@ interface BuildCadastroPageRuntimeOptions {
|
|
|
8023
8800
|
* Omisso: `id` vem de `ActivatedRoute`. Em dialog de referência, passar o id explícito (`novo` ou guid).
|
|
8024
8801
|
*/
|
|
8025
8802
|
entityIdFromContext?: Signal<string | null | undefined>;
|
|
8803
|
+
/** Invalida cache de `initCadastro` após gravar/excluir (Structra page cache). */
|
|
8804
|
+
invalidateCadastroInitPageCache?: (routeId: string) => void;
|
|
8026
8805
|
}
|
|
8027
8806
|
/**
|
|
8028
8807
|
* Constrói o runtime de uma página de cadastro (novo/editar): carregamento, salvar, cancelar, excluir opcional,
|
|
@@ -8920,6 +9699,17 @@ interface CadastroMetadataPageStateConfig<TInit, TDto, TSalvar> {
|
|
|
8920
9699
|
* em vez do próprio `init`.
|
|
8921
9700
|
*/
|
|
8922
9701
|
sourceKey?: string;
|
|
9702
|
+
/**
|
|
9703
|
+
* Scope opcional para {@link StructraPageCacheService} (ex.: tenant/empresa).
|
|
9704
|
+
* Omisso: scope derivado da rota do cadastro.
|
|
9705
|
+
*/
|
|
9706
|
+
pageCacheScope?: string;
|
|
9707
|
+
/** Desliga cache de `initCadastro` entre navegações pelo menu (por defeito activo). */
|
|
9708
|
+
cadastroInitPageCacheDisabled?: boolean;
|
|
9709
|
+
/** TTL do cache de init (ms). Omisso: sem expiração até invalidação ou F5. */
|
|
9710
|
+
cadastroInitCacheTtlMs?: number;
|
|
9711
|
+
/** Identificador lógico da entidade na chave de cache de init. Omisso: rota ou `sourceKey`. */
|
|
9712
|
+
cadastroInitCacheEntityKey?: string;
|
|
8923
9713
|
/** Referências inline (dropdown + rascunho + resultado); a base orquestra ciclo de vida. */
|
|
8924
9714
|
referenciasInline?: readonly CadastroInlineReferencePart[];
|
|
8925
9715
|
/**
|
|
@@ -9230,6 +10020,10 @@ declare abstract class CadastroMetadataPageStateBase<TInit, TDto, TSalvar> {
|
|
|
9230
10020
|
protected resolveLeafActivatedRoute(): ActivatedRoute;
|
|
9231
10021
|
/** Path do cadastro anfitrião para rascunhos inline; modal sobrescreve com {@link CADASTRO_REFERENCIA_DIALOG_CONTEXT}. */
|
|
9232
10022
|
protected resolveHostPathCadastroForInlineDraft(): string;
|
|
10023
|
+
protected resolveCadastroInitPageCacheEntityKey(): string;
|
|
10024
|
+
protected resolveCadastroInitPageCacheScope(): string;
|
|
10025
|
+
protected invalidateCadastroInitPageCache(routeId: string): void;
|
|
10026
|
+
protected loadCadastroInitForRouteId(id: string): Observable<TInit>;
|
|
9233
10027
|
protected static isCadastroLeafSegment(leafPath: string | undefined): boolean;
|
|
9234
10028
|
/**
|
|
9235
10029
|
* Regresso de RotaReferência com instância ainda em memória (`RouteReuseStrategy` + `data.reuse`):
|
|
@@ -9342,6 +10136,9 @@ declare class CadastroMetadataPageComponent {
|
|
|
9342
10136
|
readonly embeddedInPageShell: _angular_core.InputSignal<boolean>;
|
|
9343
10137
|
readonly salvarSubmit: _angular_core.OutputEmitterRef<void>;
|
|
9344
10138
|
readonly toolbarButtonClick: _angular_core.OutputEmitterRef<CadastroToolbarButtonDto>;
|
|
10139
|
+
readonly headerSecondaryAction: _angular_core.InputSignal<CadastroHeaderSecondaryAction | null>;
|
|
10140
|
+
readonly headerSecondaryActionClick: _angular_core.OutputEmitterRef<void>;
|
|
10141
|
+
protected readonly headerSecondaryActionVisible: _angular_core.Signal<boolean>;
|
|
9345
10142
|
readonly tituloSection: _angular_core.InputSignal<string | null>;
|
|
9346
10143
|
readonly subtituloSection: _angular_core.InputSignal<string | null>;
|
|
9347
10144
|
/** Metadata efectiva: input da shell ou bundle vindo do {@link CadastroMetadataView}. */
|
|
@@ -9369,7 +10166,7 @@ declare class CadastroMetadataPageComponent {
|
|
|
9369
10166
|
sectionTitulo(c: CadastroMetadataPageCadastro): string;
|
|
9370
10167
|
sectionSubtitulo(c: CadastroMetadataPageCadastro): string;
|
|
9371
10168
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadastroMetadataPageComponent, never>;
|
|
9372
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadastroMetadataPageComponent, "app-cadastro-metadata-page", never, { "entityName": { "alias": "entityName"; "required": true; "isSignal": true; }; "entityLabel": { "alias": "entityLabel"; "required": true; "isSignal": true; }; "cadastro": { "alias": "cadastro"; "required": false; "isSignal": true; }; "initError": { "alias": "initError"; "required": false; "isSignal": true; }; "initLoading": { "alias": "initLoading"; "required": false; "isSignal": true; }; "validationUi": { "alias": "validationUi"; "required": false; "isSignal": true; }; "searchSelectBindings": { "alias": "searchSelectBindings"; "required": false; "isSignal": true; }; "listSelectBindings": { "alias": "listSelectBindings"; "required": false; "isSignal": true; }; "multiselectBindings": { "alias": "multiselectBindings"; "required": false; "isSignal": true; }; "metadataCamposReply": { "alias": "metadataCamposReply"; "required": false; "isSignal": true; }; "redirectReturnUrl": { "alias": "redirectReturnUrl"; "required": false; "isSignal": true; }; "painelMaxWidthHint": { "alias": "painelMaxWidthHint"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "corpoCentralizado": { "alias": "corpoCentralizado"; "required": false; "isSignal": true; }; "cabecalhoPaginaVisivel": { "alias": "cabecalhoPaginaVisivel"; "required": false; "isSignal": true; }; "toolbarInterno": { "alias": "toolbarInterno"; "required": false; "isSignal": true; }; "embeddedInReferenciaDialog": { "alias": "embeddedInReferenciaDialog"; "required": false; "isSignal": true; }; "suppressInternalPageTabs": { "alias": "suppressInternalPageTabs"; "required": false; "isSignal": true; }; "externalShellTabKey": { "alias": "externalShellTabKey"; "required": false; "isSignal": true; }; "embeddedInPageShell": { "alias": "embeddedInPageShell"; "required": false; "isSignal": true; }; "tituloSection": { "alias": "tituloSection"; "required": false; "isSignal": true; }; "subtituloSection": { "alias": "subtituloSection"; "required": false; "isSignal": true; }; }, { "salvarSubmit": "salvarSubmit"; "toolbarButtonClick": "toolbarButtonClick"; }, never, never, true, never>;
|
|
10169
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadastroMetadataPageComponent, "app-cadastro-metadata-page", never, { "entityName": { "alias": "entityName"; "required": true; "isSignal": true; }; "entityLabel": { "alias": "entityLabel"; "required": true; "isSignal": true; }; "cadastro": { "alias": "cadastro"; "required": false; "isSignal": true; }; "initError": { "alias": "initError"; "required": false; "isSignal": true; }; "initLoading": { "alias": "initLoading"; "required": false; "isSignal": true; }; "validationUi": { "alias": "validationUi"; "required": false; "isSignal": true; }; "searchSelectBindings": { "alias": "searchSelectBindings"; "required": false; "isSignal": true; }; "listSelectBindings": { "alias": "listSelectBindings"; "required": false; "isSignal": true; }; "multiselectBindings": { "alias": "multiselectBindings"; "required": false; "isSignal": true; }; "metadataCamposReply": { "alias": "metadataCamposReply"; "required": false; "isSignal": true; }; "redirectReturnUrl": { "alias": "redirectReturnUrl"; "required": false; "isSignal": true; }; "painelMaxWidthHint": { "alias": "painelMaxWidthHint"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "corpoCentralizado": { "alias": "corpoCentralizado"; "required": false; "isSignal": true; }; "cabecalhoPaginaVisivel": { "alias": "cabecalhoPaginaVisivel"; "required": false; "isSignal": true; }; "toolbarInterno": { "alias": "toolbarInterno"; "required": false; "isSignal": true; }; "embeddedInReferenciaDialog": { "alias": "embeddedInReferenciaDialog"; "required": false; "isSignal": true; }; "suppressInternalPageTabs": { "alias": "suppressInternalPageTabs"; "required": false; "isSignal": true; }; "externalShellTabKey": { "alias": "externalShellTabKey"; "required": false; "isSignal": true; }; "embeddedInPageShell": { "alias": "embeddedInPageShell"; "required": false; "isSignal": true; }; "headerSecondaryAction": { "alias": "headerSecondaryAction"; "required": false; "isSignal": true; }; "tituloSection": { "alias": "tituloSection"; "required": false; "isSignal": true; }; "subtituloSection": { "alias": "subtituloSection"; "required": false; "isSignal": true; }; }, { "salvarSubmit": "salvarSubmit"; "toolbarButtonClick": "toolbarButtonClick"; "headerSecondaryActionClick": "headerSecondaryActionClick"; }, never, never, true, never>;
|
|
9373
10170
|
}
|
|
9374
10171
|
|
|
9375
10172
|
interface CadastroMetadataPageShellCallbacks {
|
|
@@ -9396,6 +10193,8 @@ interface CadastroMetadataShellRuntime {
|
|
|
9396
10193
|
readonly painelMaxWidthHint: string | null;
|
|
9397
10194
|
readonly onSalvarSubmit: () => void;
|
|
9398
10195
|
readonly onToolbarButtonClick?: (btn: CadastroToolbarButtonDto) => void;
|
|
10196
|
+
readonly headerSecondaryAction?: CadastroHeaderSecondaryAction | null;
|
|
10197
|
+
readonly onHeaderSecondaryActionClick?: () => void;
|
|
9399
10198
|
readonly metadataCamposReply?: CadastroMetadataCamposReplyLike | null;
|
|
9400
10199
|
/**
|
|
9401
10200
|
* Quando `vm.entityName` vem vazio, replica o padrão `[entityName]="metadataPageVm().entityName || '…'"`.
|
|
@@ -9421,6 +10220,8 @@ interface BuildCadastroMetadataShellRuntimeOptions {
|
|
|
9421
10220
|
readonly painelMaxWidthHint: string | null;
|
|
9422
10221
|
readonly onSalvarSubmit: () => void;
|
|
9423
10222
|
readonly onToolbarButtonClick?: (btn: CadastroToolbarButtonDto) => void;
|
|
10223
|
+
readonly headerSecondaryAction?: CadastroHeaderSecondaryAction | null;
|
|
10224
|
+
readonly onHeaderSecondaryActionClick?: () => void;
|
|
9424
10225
|
readonly metadataCamposReply?: CadastroMetadataCamposReplyLike | null;
|
|
9425
10226
|
readonly entityNameFallback?: string;
|
|
9426
10227
|
readonly entityLabelFallback?: string;
|
|
@@ -9447,6 +10248,12 @@ declare abstract class CadastroMetadataPageBase<TInit, TDto, TSalvar> extends Ca
|
|
|
9447
10248
|
protected readonly autoPageShellCallbacks: CadastroMetadataPageShellCallbacks;
|
|
9448
10249
|
constructor();
|
|
9449
10250
|
protected cadastroMetadataShellExtras(): Partial<BuildCadastroMetadataShellRuntimeOptions>;
|
|
10251
|
+
/**
|
|
10252
|
+
* Botão opcional à esquerda de Salvar/Novo na topbar. Omisso / `null` ⇒ nada é renderizado.
|
|
10253
|
+
*/
|
|
10254
|
+
protected cadastroHeaderSecondaryAction(): CadastroHeaderSecondaryAction | null;
|
|
10255
|
+
/** Clique no botão de {@link cadastroHeaderSecondaryAction}. */
|
|
10256
|
+
protected onCadastroHeaderSecondaryActionClick(): void;
|
|
9450
10257
|
/** `public` explícito: templates com `strictTemplates` / consumidores da lib veem o membro herdado. */
|
|
9451
10258
|
readonly cadastroRuntime: _angular_core.Signal<structra_ui.CadastroMetadataShellRuntime>;
|
|
9452
10259
|
protected resolveFormLayoutForShell(): CadastroFormPageLayout | null;
|
|
@@ -9957,7 +10764,11 @@ declare function cadastroCampoScriptEditorLanguage(campo: CadastroCampoMetadataD
|
|
|
9957
10764
|
* Em mobile a grelha colapsa para uma coluna — o campo já fica em largura total.
|
|
9958
10765
|
*/
|
|
9959
10766
|
declare function cadastroCampoBooleanOcupaLinhaInteira(campo: CadastroCampoMetadataDto, layoutMobile?: boolean): boolean;
|
|
9960
|
-
/** Largura
|
|
10767
|
+
/** Largura fixa declarada na metadata (px, rem, etc.) — não <c>100%</c> nem <c>max-content</c>. */
|
|
10768
|
+
declare function cadastroCampoMetadataLarguraFixaCss(campo: CadastroCampoMetadataDto): string | null;
|
|
10769
|
+
/**
|
|
10770
|
+
* Campo estreito na grelha multi-coluna: <c>max-content</c> ou largura fixa com <c>FullWidth = false</c>.
|
|
10771
|
+
*/
|
|
9961
10772
|
declare function cadastroCampoMetadataLarguraCompacta(campo: CadastroCampoMetadataDto): boolean;
|
|
9962
10773
|
/** Largura efectiva do wrapper do campo na grelha metadata (respeita `FullWidth` / `width` do servidor). */
|
|
9963
10774
|
declare function cadastroCampoWrapperWidthCss(campo: CadastroCampoMetadataDto, opts: {
|
|
@@ -10404,6 +11215,13 @@ declare class CadastroBasePageComponent implements AfterContentInit {
|
|
|
10404
11215
|
readonly validationUi: _angular_core.InputSignal<CadastroValidationUi | null>;
|
|
10405
11216
|
/** Resumo de validação fixo ao topo do ecrã ao revelar erros (Structra `pinned`). */
|
|
10406
11217
|
readonly validationSummaryPinned: _angular_core.InputSignal<boolean>;
|
|
11218
|
+
/**
|
|
11219
|
+
* Botão opcional à esquerda de Salvar/Novo (topbar da shell ou toolbar interna).
|
|
11220
|
+
* Omisso ou sem `label` ⇒ nada é renderizado.
|
|
11221
|
+
*/
|
|
11222
|
+
readonly headerSecondaryAction: _angular_core.InputSignal<CadastroHeaderSecondaryAction | null>;
|
|
11223
|
+
readonly headerSecondaryActionClick: _angular_core.OutputEmitterRef<void>;
|
|
11224
|
+
protected readonly headerSecondaryActionVisible: _angular_core.Signal<boolean>;
|
|
10407
11225
|
/**
|
|
10408
11226
|
* Prioridade: {@link CadastroValidationUi.validationSummaryPinned} quando definido (metadata com flags);
|
|
10409
11227
|
* senão {@link validationSummaryPinned}.
|
|
@@ -10426,6 +11244,9 @@ declare class CadastroBasePageComponent implements AfterContentInit {
|
|
|
10426
11244
|
protected readonly validationSummaryLive: _angular_core.WritableSignal<boolean>;
|
|
10427
11245
|
constructor();
|
|
10428
11246
|
ngAfterContentInit(): void;
|
|
11247
|
+
/** Instâncias em cache (`data.reuse`) continuam vivas — só sincronizar quando esta rota está activa na shell. */
|
|
11248
|
+
private isActiveShellTopbarRoute;
|
|
11249
|
+
private releaseShellTopbarSlot;
|
|
10429
11250
|
/** Alterna slot da shell entre botões invisíveis (init) e template da página (carregado). */
|
|
10430
11251
|
private syncShellTopbarEndSlot;
|
|
10431
11252
|
/**
|
|
@@ -10444,7 +11265,7 @@ declare class CadastroBasePageComponent implements AfterContentInit {
|
|
|
10444
11265
|
/** Remove painéis `pinned` do Structra órfãos no `body` (ids internos `structra-vsum-p-*`). */
|
|
10445
11266
|
private removeStructraPinnedValidationPanelsFromBody;
|
|
10446
11267
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadastroBasePageComponent, never>;
|
|
10447
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadastroBasePageComponent, "app-cadastro-base-page", never, { "runtime": { "alias": "runtime"; "required": false; "isSignal": true; }; "cadastroInitError": { "alias": "cadastroInitError"; "required": false; "isSignal": true; }; "cadastroInitLoading": { "alias": "cadastroInitLoading"; "required": false; "isSignal": true; }; "skeletonPanelMaxWidth": { "alias": "skeletonPanelMaxWidth"; "required": false; "isSignal": true; }; "toolbarInterno": { "alias": "toolbarInterno"; "required": false; "isSignal": true; }; "embeddedInReferenciaDialog": { "alias": "embeddedInReferenciaDialog"; "required": false; "isSignal": true; }; "corpoCentralizado": { "alias": "corpoCentralizado"; "required": false; "isSignal": true; }; "cabecalhoPaginaVisivel": { "alias": "cabecalhoPaginaVisivel"; "required": false; "isSignal": true; }; "validationUi": { "alias": "validationUi"; "required": false; "isSignal": true; }; "validationSummaryPinned": { "alias": "validationSummaryPinned"; "required": false; "isSignal": true; }; "validationSummaryTitle": { "alias": "validationSummaryTitle"; "required": false; "isSignal": true; }; "shellTopbarReserveDuplicar": { "alias": "shellTopbarReserveDuplicar"; "required": false; "isSignal": true; }; }, {}, ["projectedFormDir", "shellTopbarEndProjectedTpl"], ["*"], true, never>;
|
|
11268
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadastroBasePageComponent, "app-cadastro-base-page", never, { "runtime": { "alias": "runtime"; "required": false; "isSignal": true; }; "cadastroInitError": { "alias": "cadastroInitError"; "required": false; "isSignal": true; }; "cadastroInitLoading": { "alias": "cadastroInitLoading"; "required": false; "isSignal": true; }; "skeletonPanelMaxWidth": { "alias": "skeletonPanelMaxWidth"; "required": false; "isSignal": true; }; "toolbarInterno": { "alias": "toolbarInterno"; "required": false; "isSignal": true; }; "embeddedInReferenciaDialog": { "alias": "embeddedInReferenciaDialog"; "required": false; "isSignal": true; }; "corpoCentralizado": { "alias": "corpoCentralizado"; "required": false; "isSignal": true; }; "cabecalhoPaginaVisivel": { "alias": "cabecalhoPaginaVisivel"; "required": false; "isSignal": true; }; "validationUi": { "alias": "validationUi"; "required": false; "isSignal": true; }; "validationSummaryPinned": { "alias": "validationSummaryPinned"; "required": false; "isSignal": true; }; "headerSecondaryAction": { "alias": "headerSecondaryAction"; "required": false; "isSignal": true; }; "validationSummaryTitle": { "alias": "validationSummaryTitle"; "required": false; "isSignal": true; }; "shellTopbarReserveDuplicar": { "alias": "shellTopbarReserveDuplicar"; "required": false; "isSignal": true; }; }, { "headerSecondaryActionClick": "headerSecondaryActionClick"; }, ["projectedFormDir", "shellTopbarEndProjectedTpl"], ["*"], true, never>;
|
|
10448
11269
|
}
|
|
10449
11270
|
|
|
10450
11271
|
/**
|
|
@@ -10535,6 +11356,8 @@ declare class CadastroFieldRendererComponent {
|
|
|
10535
11356
|
larguraWrapperUi(c: CadastroCampoMetadataDto): string;
|
|
10536
11357
|
protected scriptEditorMinHeightUi(c: CadastroCampoMetadataDto): string;
|
|
10537
11358
|
protected scriptEditorLanguageUi(c: CadastroCampoMetadataDto): ScriptEditorLanguage;
|
|
11359
|
+
/** Botão «+» (cadastro inline) só em campos editáveis — metadata `readOnly` ou controlo desactivado. */
|
|
11360
|
+
mostrarRedirectSuffixUi(c: CadastroCampoMetadataDto): boolean;
|
|
10538
11361
|
requiredMarkUi(c: CadastroCampoMetadataDto): boolean;
|
|
10539
11362
|
campoShowErrorMessageUi(c: CadastroCampoMetadataDto): boolean;
|
|
10540
11363
|
/** Só `monetary === true` usa prefixo `R$`; omisso/false ⇒ decimal simples (ex. m²). */
|
|
@@ -10813,6 +11636,11 @@ declare class FormCollectionComponent {
|
|
|
10813
11636
|
gridTemplateColumnsParaItemEditorViewport(sec: CadastroMetadataSecao): string | null;
|
|
10814
11637
|
itemEditorGridColumnSpanParaCampo(sec: CadastroMetadataSecao, campo: CadastroCampoMetadataDto, index: number): string | null;
|
|
10815
11638
|
private computeCollectionEmbuteNoFormGroupPai;
|
|
11639
|
+
/**
|
|
11640
|
+
* Repõe o rascunho do editor a partir da linha seleccionada (botão «Alterar»).
|
|
11641
|
+
* `patchValue` marca `dirty`; limpa estado de validação até o utilizador editar ou «Adicionar»/«Alterar».
|
|
11642
|
+
*/
|
|
11643
|
+
private hydrateItemEditorFromSelectedRow;
|
|
10816
11644
|
/** Remove `dirty`/`touched` em todos os níveis (ex.: após `patchValue` no rascunho «Adicionar»). */
|
|
10817
11645
|
private repristineItemEditorDraft;
|
|
10818
11646
|
private resetItemEditorDefaults;
|
|
@@ -11002,6 +11830,17 @@ declare class CadastroMetadataShellPageComponent {
|
|
|
11002
11830
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadastroMetadataShellPageComponent, "app-cadastro-metadata-shell-page", never, { "runtime": { "alias": "runtime"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11003
11831
|
}
|
|
11004
11832
|
|
|
11833
|
+
/** Skeleton de arranque do cadastro — mesma aparência de {@link CadastroBasePageComponent}. */
|
|
11834
|
+
declare class CadastroFormLoadingSkeletonComponent {
|
|
11835
|
+
readonly corpoCentralizado: _angular_core.InputSignal<boolean>;
|
|
11836
|
+
readonly panelMaxWidth: _angular_core.InputSignal<string | null>;
|
|
11837
|
+
readonly fieldCount: _angular_core.InputSignal<number>;
|
|
11838
|
+
protected readonly skeletonPanelMaxWidthCss: _angular_core.Signal<string | undefined>;
|
|
11839
|
+
protected readonly fieldIndexes: _angular_core.Signal<number[]>;
|
|
11840
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadastroFormLoadingSkeletonComponent, never>;
|
|
11841
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadastroFormLoadingSkeletonComponent, "app-cadastro-form-loading-skeleton", never, { "corpoCentralizado": { "alias": "corpoCentralizado"; "required": false; "isSignal": true; }; "panelMaxWidth": { "alias": "panelMaxWidth"; "required": false; "isSignal": true; }; "fieldCount": { "alias": "fieldCount"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11842
|
+
}
|
|
11843
|
+
|
|
11005
11844
|
declare class StructraPageComponentRegistry {
|
|
11006
11845
|
private readonly components;
|
|
11007
11846
|
register(tag: string, component: Type<unknown>): void;
|
|
@@ -11217,5 +12056,239 @@ declare function mergeDocumentoFmtNaLinhaConsulta(item: Record<string, unknown>)
|
|
|
11217
12056
|
declare function mapListarItensParaMultiselectOpcoes(itens: readonly unknown[], optionsValueField: string, optionsLabelField: string, optionsOnlyActive: boolean): UiSelectOption<string>[];
|
|
11218
12057
|
declare function carregarOpcoesMultiselectViaSpec(injector: Injector, spec: ConsultaMultiselectOpcoesRemotasSpec): Promise<readonly UiSelectOption<string>[]>;
|
|
11219
12058
|
|
|
11220
|
-
export { ADAPTIVE_DATA_VIEW_MOBILE_QUERY, APP_SIDEBAR_LABEL_REVEAL_LAG_MS, APP_SIDEBAR_LAYOUT_DURATION_MS, APP_SIDEBAR_NAV_REVEAL_TOTAL_MS, APP_THEME_BASE_CLASS, APP_THEME_IDS, ActionMenuComponent, AdaptiveDataViewComponent, AlertComponent, AnchoredOverlayComponent, AppBreadcrumbComponent, AppDialogComponent, AppLibLightBlockScrollStrategy, AppShellComponent, AppShellSidebarTemplateDirective, AppShellSidebarToggleComponent, AppSidebarBottomActionsSlotDirective, AppSidebarBottomActionsTemplateDirective, AppSidebarBrandDirective, AppSidebarComponent, AppSidebarFooterSlotDirective, AppSidebarFooterTemplateDirective, AppSidebarHeaderSlotDirective, AppSidebarHeaderTemplateDirective, AppSidebarToolbarDirective, AppSidebarUserInfoSlotDirective, AppSidebarUserInfoTemplateDirective, AppTheme, AppThemeService, AppTopbarComponent, AppUserMenuComponent, BR_ESTADOS_NOME_SIGLA, ButtonType as BaseButtonType, ButtonVariant as BaseButtonVariant, BaseFieldComponent, BaseFieldDirective, BooleanFieldDirective, ButtonComponent, ButtonRadius, ButtonSize, ButtonType, ButtonVariant, CADASTRO_COLLAPSIBLE_REMOTE_LOAD_DELAY_MS, CADASTRO_DUPLICATE_FLAG_STATE, CADASTRO_DUPLICATE_SOURCE_ID_STATE, CADASTRO_FOCO_COLUNA_APOS_RESUMO_MS, CADASTRO_FORM_COLLECTION_REMOVE_ITEM_CONFIRM, CADASTRO_INVALIDATE_ROUTE_SNAPSHOT, CADASTRO_PAGE_SUBTITULO_PADRAO, CADASTRO_PAGE_TITULO_NOVO_PADRAO, CADASTRO_PESSOA_INLINE_DESTINO_URL_FRAGMENTS, CADASTRO_REFERENCIA_DIALOG_CONTEXT, CADASTRO_REFERENCIA_DIALOG_PAGE_CONFIG, CADASTRO_REFERENCIA_ROUTE_ACCESS, CADASTRO_REFERENCIA_ROUTE_ACCESS_PERMISSIVE, CADASTRO_RESUMO_FIELD_NAVIGATE_DEFER_MS, CADASTRO_TOAST_TITLE_PADRAO, CADASTRO_VALIDATION_SUMMARY_PINNED, CADASTRO_VALIDATION_SUMMARY_STATIC, CATEGORIAS_NAV_ID_EXCLUIDO, CATEGORIAS_NAV_LINHA_GRAVADA, CATEGORIAS_NAV_VOLTAR_SEM_RECARREGAR, CLIENTES_NAV_ID_EXCLUIDO, CLIENTES_NAV_LINHA_GRAVADA, CLIENTES_NAV_VOLTAR_SEM_RECARREGAR, CONSULTA_DATETIME_KEYS_ISO_PARA_FMT, CONSULTA_DOCUMENTO_GRID_KEYS_ISO_PARA_FMT, CONSULTA_FILTROS_SESSAO_USER, CONSULTA_GRID_OPTS_DATAS_PADRAO, CONSULTA_LISTA_CACHE_MAX_PAGINAS_DEFAULT, CONSULTA_LISTA_CACHE_NS_SEP, CONSULTA_LISTA_CACHE_TTL_MS_DEFAULT, CONSULTA_MOBILE_LAYOUT_MEDIA_QUERY, CONSULTA_MULTISELECT_LABEL_STUB, CONSULTA_OPTIONS_LISTAR_RESOLVER, CONSULTA_PEDIDOS_GRID_OPTS, CONSULTA_PHONE_GRID_KEYS_ISO_PARA_FMT, CONSULTA_PRESET_SELECT_EMPTY_OPTIONS_MESSAGE_DESKTOP, CONSULTA_PRESET_SELECT_EMPTY_OPTIONS_MESSAGE_MOBILE, CONSULTA_PRODUTOS_GRID_OPTS, CONSULTA_ROUTE_REUSE, CONSULTA_SERVIDOR_LISTA_QUERY_DEFAULTS, CONSULTA_TOPBAR_SLOT, CadastroBasePageComponent, CadastroCollectionGridColumnFormat, CadastroCollectionReferenciaHostService, CadastroCollectionRuntime, CadastroEnumOptionsRegistry, CadastroFieldRendererComponent, CadastroFieldRuntime, CadastroFieldsBaseComponent, CadastroFormDraftCacheService, CadastroMetadataPageBase, CadastroMetadataPageComponent, CadastroMetadataPageServiceBase, CadastroMetadataPageShellLayoutComponent, CadastroMetadataPageStateBase, CadastroMetadataShellPageComponent, CadastroPadraoPageBase, CadastroReferenceRegistry, CadastroReferenciaDialogBridgeRegistry, CadastroReferenciaDialogHostComponent, CadastroReferenciaDialogService, CadastroReferenciaOpenMode, CadastroRuntime, CadastroRuntimeRegistry, CadastroSectionPanelLayout, CardListComponent, CepFieldComponent, CheckboxFieldComponent, ColorPickerFieldComponent, ComponentType, ConfirmDialogComponent, ConfirmDialogService, ConsoleLogComponent, ConsultaBasePageComponent, ConsultaCadastroFiltroDialogComponent, ConsultaCardCampoPapel, ConsultaCardFieldFormat, ConsultaCatalogBundleHelper, ConsultaFiltroPresetToolbarComponent, ConsultaFiltrosSessaoService, ConsultaGridColumnFormat, ConsultaGridOrderDirection, ConsultaListaMemoriaCacheService, ConsultaPadraoPageBase, ConsultaPageCache, ContainerLayoutSize, ContextMenuComponent, CpfCnpjFieldComponent, DEFAULT_STRUCTRA_SHELL_SCROLL_RESTORATION_OPTIONS, DROPDOWN_SEARCH_LOCAL_PAGE_SIZE, DashboardSectionComponent, DataCardComponent, DataGridComponent, DataListComponent, DataToolbarComponent, DateFieldComponent, DecimalFieldComponent, DetailsFieldComponent, DetailsViewComponent, DialogFooterDirective, DividerComponent, DrawerComponent, DrawerSide, DrawerSize, DropdownBaseComponent, DropdownMenuComponent, DropdownMultiOptionFieldBase, DropdownOptionFieldBase, DropdownSearchFieldComponent, ENM_STATUS_OPCOES_SELECT, EmptyStateComponent, EnmStatus, FIELD_MOBILE_LAYOUT_QUERY, FILE_PREVIEW_UNAVAILABLE_MESSAGE, FORM_CONTAINER_STATE_STORAGE_PREFIX, FORNECEDORES_NAV_ID_EXCLUIDO, FORNECEDORES_NAV_LINHA_GRAVADA, FORNECEDORES_NAV_VOLTAR_SEM_RECARREGAR, FieldCadastroRedirectButtonComponent, FileUploadFieldComponent, FileUploadType, FormActionsAlign, FormActionsComponent, FormColComponent, FormCollectionComponent, FormCollectionLayout, FormGroupComponent, FormGroupVariant, FormLayoutGap, FormRowAlign, FormRowComponent, FormRowJustify, FormSectionAlign, FormSectionComponent, FormSectionRadius, FormSectionVariant, FormTabComponent, FormTabsComponent, ImagePreviewPanelComponent, InputMaskFieldComponent, IntegerFieldComponent, LAYOUT_STACK_SIDE_BY_SIDE, LAYOUT_STACK_STACKED, LayoutStackAlign, LayoutStackComponent, LayoutStackDirection, LayoutStackItemAlign, LibDialogSize, ListItemComponent, LoadingDialogComponent, LoadingDialogService, MaskedTextFieldBase, MenuDividerComponent, MenuDropdownPlacement, MenuGroupComponent, MenuListComponent, MultiselectFieldComponent, NO_OP_CONSULTA_ROUTE_REUSE, NO_OP_CONSULTA_TOPBAR_SLOT, NgControlFieldDirective, OPS_BOOL, OPS_DATA, OPS_TEXTO, OPS_TEXTO_MULTISELECT, ORIGEM_CADASTRO_INLINE_PESSOA, OverlayPlacement, PDF_IFRAME_VIEWER_HASH, PEDIDOS_NAV_ID_EXCLUIDO, PEDIDOS_NAV_LINHA_GRAVADA, PEDIDOS_NAV_VOLTAR_SEM_RECARREGAR, PESSOAS_NAV_LINHA_GRAVADA, PESSOAS_NAV_VOLTAR_SEM_RECARREGAR, PHONE_BR_LANDLINE_MASK, PHONE_BR_MOBILE_MASK, PRODUTOS_NAV_ID_EXCLUIDO, PRODUTOS_NAV_LINHA_GRAVADA, PRODUTOS_NAV_VOLTAR_SEM_RECARREGAR, PasswordFieldComponent, PhoneFieldComponent, PopoverBodyTemplateDirective, PopoverComponent, PopoverFooterTemplateDirective, PopoverTriggerDirective, ReferenceOptionPreset, STRUCTRA_CADASTRO_INLINE_RESULT_KEY, STRUCTRA_CADASTRO_INLINE_RETURN_KEY, STRUCTRA_CONSULTA_FORCE_REFRESH_KEY, STRUCTRA_DEDICATED_BACK_TO_TOP_SELECTOR, STRUCTRA_INLINE_FORM_DRAFT_PENDING_PREFIX, STRUCTRA_MIDIA_PUBLIC_BASE_RESOLVER, STRUCTRA_MIDIA_UPLOAD_TRANSPORT, STRUCTRA_PAGE_STATE_ACTIVE_TAB_PREFIX, STRUCTRA_SHELL_SCROLL_RESTORATION_OPTIONS, STRUCTRA_SHELL_TOPBAR_TITLE_SKELETON, STRUCTRA_SIMULATED_LOADING_DELAY_MS, STRUCTRA_THEME_IDS, STRUCTRA_UI, ScriptEditorFieldComponent, SelectFieldComponent, SkeletonBlockComponent, SkeletonCardComponent, SkeletonFieldShellComponent, SkeletonListComponent, SkeletonTableComponent, SkeletonTextComponent, StatCardComponent, StatusBadgeComponent, StructraBackToTopButtonComponent, StructraPageComponentOutletComponent, StructraPageComponentRegistry, StructraPageStateCacheService, StructraProgressOverlayComponent, ScriptEditorFieldComponent as StructraScriptEditorComponent, StructraShellScrollRestorationService, StructraShellTopbarSlotService, AppSidebarBottomActionsTemplateDirective as StructraSidebarBottomActionsDirective, AppSidebarFooterTemplateDirective as StructraSidebarFooterDirective, AppSidebarHeaderTemplateDirective as StructraSidebarHeaderDirective, AppSidebarUserInfoTemplateDirective as StructraSidebarUserInfoDirective, SwitchFieldComponent, THEME_PRIMARY_COLOR_LABEL_PT_BR, TOAST_REGISTRO_EXCLUIDO_SUCESSO, TableEmptyStateComponent, TableToolbarComponent, TextFieldComponent, TextareaFieldComponent, ThemeDirective, ToastHostComponent, ToastService, TooltipComponent, TooltipPanelTemplateDirective, TreeViewComponent, USUARIOS_CONSULTA_GRID_OPTS, USUARIOS_NAV_ID_EXCLUIDO, USUARIOS_NAV_LINHA_GRAVADA, USUARIOS_NAV_VOLTAR_SEM_RECARREGAR, VENDEDORES_NAV_ID_EXCLUIDO, VENDEDORES_NAV_LINHA_GRAVADA, VENDEDORES_NAV_VOLTAR_SEM_RECARREGAR, ValidationSummaryComponent, agruparCamposMetadataPorSecao, anchoredOverlayPositions, aplicarNormalizacaoMultiselectIdsNoPartial, aplicarProdutoDtoNoFormulario, appendCadastroPageActiveTabQuery, appendPdfIframeViewerParams, applyCadastroCollectionArrayValidators, applyCadastroModoSenhaNovos, applyCollectionValidationSummaryNavigation, applyCollectionValueToFormArray, applyEntityToCadastroFormByMetadata, applyOptionalThemeHostClasses, applyPickedCalendarDate, buildCadastroFiltroDialogItensGridRows, buildCadastroMetadataShellRuntime, buildCadastroPageActiveTabPageKey, buildCadastroPageActiveTabPageKeyFromLayout, buildCadastroPageRuntime, buildCadastroRedirectReturnUrl, buildCadastroReferenciaDialogContext, buildCatalogoStubConsultaRuntime, buildConsultaConfirmDuplicarLinhaFromLayout, buildConsultaConfirmRemoverLinhaFromLayout, buildConsultaDefaultIsItemGuard, buildConsultaListaCacheKey, buildConsultaPageMetadataUnified, buildConsultaPageRuntime, buildDecimalBrDisplay, buildDecimalBrParseString, buildDefaultConsultaMapCardFromColunasGrid, buildEmptyStateOverlayHtml, buildFormContainerStateStorageKey, buildFormGroupFromCadastroCampos, buildHistoryStateAfterReturningFromNestedInlineChild, buildInlineReturnStateForChildCadastro, buildNovoFormDefaultsFromCampos, buildRouteReuseKeyFromAppPathname, buildRouteReuseKeyFromNovoRouterLink, buildStructraSidebarTemplateContext, buildValidationMetaFromCadastroCampos, cadastroBuildImageUploadMetadata, cadastroCampoBlocoEditorOcupaLinhaInteira, cadastroCampoBooleanOcupaLinhaInteira, cadastroCampoMetadataDtoFromPartial, cadastroCampoMetadataEhBoolean, cadastroCampoMetadataLarguraCompacta, cadastroCampoReferenciaMetadataDtoFromPartial, cadastroCampoRuleMaxLength, cadastroCampoScriptEditorLanguage, cadastroCampoScriptEditorMinHeight, cadastroCampoValidacaoDtoFromPartial, cadastroCampoWrapperWidthCss, cadastroCollectionEditorGridColumns, cadastroCollectionMaxItemsValidator, cadastroCollectionMinItemsValidator, cadastroConfirmExcluirPartialFromLayout, cadastroContainerLayoutSizeDoRecord, cadastroContainerPathJoin, cadastroCrudMessagesDoFormLayout, cadastroDeclarativeSnapshotDtoFromPartial, cadastroEnsureSingleBooleanInCollection, cadastroFieldsPerRowDoRecord, cadastroFlattenContainerRaw, cadastroFormDraftEnabledDoLayout, cadastroFormGridColumns, cadastroFormLayoutComoRecord, cadastroFormLayoutDoBundle, cadastroFormLayoutDoRuntime, cadastroFormLayoutPreserveActiveTab, cadastroFormPageLayoutFromPartial, cadastroGcd, cadastroGetCollectionItemControl, cadastroGridColumnSpanForFieldIndex, cadastroGridDenominadorTracks, cadastroGridTemplateColumnsLinhaUnicaSeAplicavel, cadastroInferExtensaoArquivo, cadastroInferImageContentType, cadastroLcm, cadastroMetadataDtoParaValidacaoLike, cadastroNavKeysStructra, cadastroNomeArquivoDaUploadUrl, cadastroNormalizarUploadUrlPorPrefixo, cadastroPageActionDtoFromPartial, cadastroPageActionsPorRegiao, cadastroPageActiveTabToRestore, cadastroPageComponentDtoFromPartial, cadastroPageComponentsPorRegiao, cadastroPageIdentityDoFormLayout, cadastroPageOverlayDtoFromPartial, cadastroPageShellAtivo, cadastroPageShellTabsKeepAliveFromLayout, cadastroPageTabDtoFromPartial, cadastroPageTabsOrdenados, cadastroPainelMaxWidthCss, cadastroRawBooleanDeep, cadastroRawNumber, cadastroRawString, cadastroReferenceEntryFromListarService, cadastroReferenciaOpenModeFromWire, cadastroReindexarCollectionOrdem, cadastroResolveId, cadastroSecaoFormGroupDense, cadastroSecaoPersisteExpandedState, cadastroSecaoRenderizaInlineDentroDoPai, cadastroSecaoSegmentosIntercalados, cadastroSecaoSegmentosParaRender, cadastroSecaoUsaFormGroup, cadastroSecaoUsaFormGroupComoBlocoVisual, cadastroSecaoUsaSuperficieDeclarativa, cadastroSingleBooleanCollectionBinding, cadastroTitulosEfectivosDoFormLayout, cadastroToastTitleEfectivoDoFormLayout, cadastroToolbarButtonDtoFromPartial, cadastroToolbarVisibilityDoFormLayout, cadastroUseBackToTopButtonFromLayout, cadastroValidationSummaryFlagsDoRecord, cadastroValidationSummaryPinnedFromFlags, cadastroWireCollectionOrdemReindexOnAdd, cadastroWireCollectionOrdemReindexOnAddRemove, cadastroWireCollectionOrdemReindexOnRemove, campoMetadataVisivelNoModo, caretIndexFromIntegerDigitCount, caretIndexFromSemantic, carregarOpcoesMultiselectViaSpec, cepMaskCompleteValidator, clearRequiredValidatorsOnReadOnlyCadastroFields, clearStructraCadastroInlineReturnSessionCacheForTests, clearStructraCadastroSessionStorageOnLogout, coerceDecimalPtBr, collectValidationSummaryItems, colunasGridTemFormatacaoDeclarativa, computeReferenciaHasMore, consoleLogLevelClass, consultaCampoMetadataDtoFromPartial, consultaCardCampoDtoFromPartial, consultaFiltroValorDataSomenteDia, consultaGridColunaDtoFromPartial, consultaGridColunaKeyParaCampoLinha, consultaGridConfigDtoFromPartial, consultaPassaItem, consultaPassaTodosItens, consultaUsuariosMetadataReplyFromPartial, consumeCadastroInlineFormDraftPendingRestore, consumirResultadoCadastroInlineCampoPessoaId, consumirResultadoCadastroInlineCampoReferencia, cpfCnpjMaskCompleteValidator, createCadastroDialogActivatedRoute, createCadastroMetadataPageConfig, createCadastroPadraoConfig, createCadastroRuntime, createCollectionFormArray, createCollectionItemFormGroup, createConsultaListaItemGuardFromFiltroUi, createConsultaOptionsListarResolver, createConsultaPadraoRuntime, createConsultaPresetSelectEmptyOptionsMessageSignal, createConsultaPresetStorageApi, createGrpcSaveRequestMapper, createInlineHostNavigation, createMapCardFromConsultaColunasGrid, createMapGridRowFromConsultaColunasGrid, createSaveRequestFromPartialMapper, criarDraftInlinePessoa, decimalPtBrNaoNegativoValidator, decimalPtBrToNullableNumber, defaultIsConsultaListItemMinimo, defaultParseLinhaGravadaJson, deleteConfirmPageConfigFromPartial, deriveCadastroTituloEditar, deriveConsultaListaItemGuardPropsFromFiltroUi, duplicateConfigFromLayout, duplicatePageConfigFromPartial, enrichCadastroReferenciaDialogPageConfig, ensureCadastroCollectionMinItems, ensureCadastroFormControlsFromMetadata, escapeHtml, evaluateStructraPageVisibleExpression, executarConsultaServidorComPreset, extractConsultaListaCacheNamespace, extractDecimalBrParts, fileIsLikelyImage, fileMatchesAccept, filtrarSecoesMetadataPorModo, filtrarUiSelectOptionsPainelComValorPersistente, filtrarUiSelectOptionsPorQuery, findCadastroCampoByKey, fixedDigitsMaskCompleteValidator, flattenCadastroMetadataSecoes, fmtDataPt, fmtDocumentoCelulaConsultaGrid, formatAcceptForDisplay, formatDateTimePtBr, formatDecimalBr, formatDocumentoPessoaParaExibicao, formatFileSizeBytes, formatIntegerThousandsBr, formatMaskDigits, formatPhoneBr, formatUiFieldDateValue, getFilePreviewKind, getStructraActionsByGroup, getThemeClass, getThemeClassList, getThemePrimaryColorLabelPtBr, getThemeTokenClass, hexParaColorInput, inferCadastroItemFieldsFromPlainRows, inferCadastroListaUrlFallback, initialCadastroControlValue, injectEffectiveThemeId, isCadastroDuplicateNavigation, isCollectionField, isCollectionLikeField, isConsultaCardAutoSubtitleExcluded, isLegacyFormContainerStateStorageKey, isLegacyNomeDocumentoReferencePreset, isReadonlyCollectionField, isValidPhoneBr, libDialogPanelClasses, listaUrlFromRotaCadastro, listarItensCadastroReferencia, listarTodosPaginado, loadPresetsJson, mapCadastroFormRawToPayload, mapConsultaGridColunasParaDataGrid, mapConsultaMetadataParaFiltroUi, mapErroTransporteParaMensagem as mapErroListaDefault, mapErroTransporteParaMensagem, mapEstadosToOptions, mapFiltroSalvoParaConsultaPreset, mapListarItensParaMultiselectOpcoes, markCadastroInlineFormDraftPendingRestore, maskDigitCount, mergeCadastroConfirmExcluir, mergeConsultaGridRowFormattingFromColunasGrid, mergeConsultaMultiselectOpcoesComSeleccionados, mergeDocumentoFmtNaLinhaConsulta, mergeMapConsultaGridColunasOptsComColumnFormat, mergeNovoIdEmListaSelecionada, mergeStructraShellScrollRestorationOptions, metadataCampoParaChaveLinhaCliente, modoPermissaoReferenciaFromWire, montarFiltrosGrpcPreset, montarFiltrosServidorPreset, montarHierarquiaSecoesMetadata, multiselectIdListRequiredValidator, multiselectMaxItemsValidator, navegarVoltarLista, navegarVoltarListaComIdRemovido, navegarVoltarListaComLinha, navigateCadastroDuplicate, navigateCommandsFromRotaAlterar, navigateCommandsFromRotaNovo, nomeSalvarParaPayloadComPessoa, normalizarArvoreSecoesMetadata, normalizarHexCor, normalizarItensParaGravarServidorCadastro, normalizarListaIdsMultiselect, normalizarOperadorConsultaParaEnvioServidor, normalizarRotaReferencia, normalizarStructraAction, normalizarStructraActionGroup, normalizarStructraActionGroups, normalizeCadastroAppPath, normalizeCadastroCampoMetadataWire, normalizeCadastroInitRouteIdParam, normalizeCadastroItemEditorDecimalControls, normalizeCadastroReferenciaDialogRotaKey, normalizeCadastroRouteForContainerState, normalizeConsoleLogLevel, normalizeFormDateValue, normalizePhoneBr, normalizeStructraTheme, novoPathCommandsFromRota, onlyDigits, operadorConsultaComValorUnicoComparacao, operadorConsultaDatetimeUsaDatePicker, operadoresConsultaCampo, operadoresPorTipo, ordenarFiltroItens, ordenarStructraActions, parseDecimalBr, parseIntegerString, parseUiFieldDateValue, patchFormFromEntidadeRecord, permissoesReferenciaMetadata, phoneBrDynamicMaskCompleteValidator, phoneBrMaskCompleteValidator, phoneBrMaskFromDigits, pickCadastroPageActiveTabExplicit, pickTabKeyLinkedToSummaryItems, precisaValor, precisaValorFinal, provideStructraCadastroReferenciaDialogRoot, provideStructraShellScrollRestoration, qtdCriteriosPresetParaSkeleton, readCadastroDuplicateSourceId, readCadastroPageActiveTabFromNavigationState, readCadastroPageActiveTabFromUrl, readFormContainerCollapsedFromStorage, readStructraCadastroInlineReturn, referenciaAbreEmDialog, referenciaOpenModeRaw, referenciaUsesLegacyRegistryMapper, registerCadastroReferenceEntries, registerCadastroReferenceListSources, registerCadastroReferenciaDialogBridges, registerStructraBuiltinPageComponents, replaceProdutoCadastroFormControls, resetStructraCadastroReferenciaDialogRootForTests, resolveCadastroCollectionMinItems, resolveCadastroListaUrlParaNavegacao, resolveCadastroPageActiveTabKey, resolveCadastroReferenciaMapOptions, resolveConsultaEditActionLabelFromGridConfig, resolveConsultaListaQuerySliceFromGridConfig, resolveConsultaNavKeysFromPageLayout, resolveConsultaNovoRouterLinkFromLayout, resolveConsultaRouteEditBaseFromLayout, resolveConsultaToastTitleLista, resolveControlAtPath, resolveFormContainerCollapsed, resolveReferenciaOpcaoLabel, resolveStructraPageInputExpression, resolveStructraPageInputs, resolveStructraShellScrollContainer, resolverAcoesReferenciaPorRota, resolverValorOpcaoPorRotuloNormalizado, resumoValorMultiselectFiltro, rotaListaReferencia, rotuloEnmStatus, rotuloNomeDocumentoLista, rotuloOperadorConsulta, rotuloPessoaLista, runStructraSimulatedLoadingDelay, sanitizeDecimalBrInput, sanitizeIntegerDigits, sanitizeRecordForCadastroDuplicate, savePresetsJson, scheduleRemoteCollectionHydrationAfterSectionExpand, secaoMetadataEhContainerPlain, secaoTemConteudoVisivel, secaoTemCorpoParaRender, sectionHasVisibleInvalid, semanticCaretAt, semanticIntegerDigitCountLeft, serializeCollectionFormArray, shouldDeferInitialRemoteCollectionLoad, shouldSkipCadastroPageActiveTabCacheWrite, stripStructraCadastroInlineResultFromHistory, stripToDigits, structraActionButtonVariant, structraCadastroInlineResultTemIdSalvo, structraCadastroInlineResultTemReferenciaExcluida, structraElementScrolls, structraHasValue, structraIsFilledString, structraIsFormGroup, structraIsValidPort, structraParseNumberOrNull, structraReadFormValue, structraReadNestedValue, structraTrimString, subscribeMarkForCheckOnInvalidUiRefresh, subtreeHasVisibleInvalid, syncStructraCadastroInlineReturnSessionCache, tabWarningFromLinkedSummaryItems, tipoCampoMetadataParaUi, tipoValorApi, toCadastroReferenceListPageResult, toConsoleLogLineView, toConsoleLogLineViews, toUiSelectOptionsFromMetadata, uiSelectOpcaoIdNomeDocumento, uiSelectOpcoesDePessoas, validationLikeFromCampoMetadata, validatorsFromCampo, writeFormContainerCollapsedToStorage };
|
|
11221
|
-
|
|
12059
|
+
/** Itens por página na pré-visualização de relatórios (pesquisa paginada na tela). */
|
|
12060
|
+
declare const STRUCTRA_REPORT_DEFAULT_PAGE_SIZE = 15;
|
|
12061
|
+
interface ReportTreeNode {
|
|
12062
|
+
id: string;
|
|
12063
|
+
label: string;
|
|
12064
|
+
icon?: string | null;
|
|
12065
|
+
leaf?: boolean;
|
|
12066
|
+
expanded?: boolean;
|
|
12067
|
+
children?: ReportTreeNode[];
|
|
12068
|
+
}
|
|
12069
|
+
interface ReportFilterMeta {
|
|
12070
|
+
id: string;
|
|
12071
|
+
label: string;
|
|
12072
|
+
tipo: 'text' | 'bool' | 'date' | 'number' | string;
|
|
12073
|
+
operador?: string;
|
|
12074
|
+
global?: boolean;
|
|
12075
|
+
obrigatorio?: boolean;
|
|
12076
|
+
}
|
|
12077
|
+
interface ReportColumnMeta {
|
|
12078
|
+
id: string;
|
|
12079
|
+
label: string;
|
|
12080
|
+
formato?: string;
|
|
12081
|
+
width?: string | null;
|
|
12082
|
+
minWidth?: string | null;
|
|
12083
|
+
maxWidth?: string | null;
|
|
12084
|
+
}
|
|
12085
|
+
type ReportColumnWidthFields = Pick<ReportColumnMeta, 'width' | 'minWidth' | 'maxWidth'>;
|
|
12086
|
+
declare function reportColumnWidthStyle(col: ReportColumnWidthFields | null | undefined): Record<string, string | null>;
|
|
12087
|
+
declare function reportTableHasFixedWidths(colunas: readonly ReportColumnWidthFields[]): boolean;
|
|
12088
|
+
declare function isReportNowrapColumn(col: Pick<ReportColumnMeta, 'formato' | 'id'> | null | undefined): boolean;
|
|
12089
|
+
/** Coluna booleana declarada pelo metadata do relatório (`formato: boolean`). */
|
|
12090
|
+
declare function isReportBooleanColumn(col: Pick<ReportColumnMeta, 'formato'> | null | undefined): boolean;
|
|
12091
|
+
/** Converte valor de célula booleana (tipado ou legado Sim/Não) quando a coluna é boolean. */
|
|
12092
|
+
declare function coerceReportBoolean(value: unknown): boolean;
|
|
12093
|
+
interface ReportMetadata {
|
|
12094
|
+
key: string;
|
|
12095
|
+
titulo: string;
|
|
12096
|
+
filtros: ReportFilterMeta[];
|
|
12097
|
+
colunas: ReportColumnMeta[];
|
|
12098
|
+
}
|
|
12099
|
+
/** Critério avulso no mesmo formato da consulta base (gRPC `FiltroItemEntrada`). */
|
|
12100
|
+
interface ReportFiltroItemEntrada {
|
|
12101
|
+
campo: string;
|
|
12102
|
+
operador: string;
|
|
12103
|
+
valor: string;
|
|
12104
|
+
valorAte?: string;
|
|
12105
|
+
juncao?: string;
|
|
12106
|
+
}
|
|
12107
|
+
interface ReportPesquisarRequest {
|
|
12108
|
+
/** Formato legado (metadata fixa por campo do relatório). */
|
|
12109
|
+
filtros?: Record<string, string | null | undefined>;
|
|
12110
|
+
/** Preset + valores montados pela consulta base (`montarFiltrosServidorPreset`). */
|
|
12111
|
+
filtrosAvulsos?: ReportFiltroItemEntrada[];
|
|
12112
|
+
/** Página (1-based). Omisso ⇒ 1. */
|
|
12113
|
+
page?: number;
|
|
12114
|
+
/** Tamanho da página na tela. Omisso ⇒ default do servidor. */
|
|
12115
|
+
pageSize?: number;
|
|
12116
|
+
/** Exportação PDF: busca todos os registros filtrados. */
|
|
12117
|
+
exportAll?: boolean;
|
|
12118
|
+
}
|
|
12119
|
+
interface ReportHeader {
|
|
12120
|
+
titulo: string;
|
|
12121
|
+
subtitulo?: string | null;
|
|
12122
|
+
geradoEm?: string;
|
|
12123
|
+
}
|
|
12124
|
+
interface ReportTotal {
|
|
12125
|
+
label: string;
|
|
12126
|
+
valor: string;
|
|
12127
|
+
}
|
|
12128
|
+
interface ReportSectionColumn {
|
|
12129
|
+
id: string;
|
|
12130
|
+
label: string;
|
|
12131
|
+
formato?: string;
|
|
12132
|
+
width?: string | null;
|
|
12133
|
+
minWidth?: string | null;
|
|
12134
|
+
maxWidth?: string | null;
|
|
12135
|
+
}
|
|
12136
|
+
interface ReportSectionTable {
|
|
12137
|
+
title: string;
|
|
12138
|
+
colunas: ReportSectionColumn[];
|
|
12139
|
+
linhas: Array<Record<string, string | null | undefined>>;
|
|
12140
|
+
emptyMessage?: string | null;
|
|
12141
|
+
}
|
|
12142
|
+
interface ReportSection {
|
|
12143
|
+
title: string;
|
|
12144
|
+
subtitle?: string | null;
|
|
12145
|
+
tabelas: ReportSectionTable[];
|
|
12146
|
+
totais?: ReportTotal[];
|
|
12147
|
+
}
|
|
12148
|
+
interface ReportResult {
|
|
12149
|
+
header: ReportHeader;
|
|
12150
|
+
filtrosAplicados: Record<string, string | null | undefined>;
|
|
12151
|
+
colunas: ReportColumnMeta[];
|
|
12152
|
+
linhas: Array<Record<string, unknown>>;
|
|
12153
|
+
sections?: ReportSection[];
|
|
12154
|
+
totais?: ReportTotal[];
|
|
12155
|
+
footer?: string | null;
|
|
12156
|
+
totalRegistros: number;
|
|
12157
|
+
page?: number;
|
|
12158
|
+
pageSize?: number;
|
|
12159
|
+
totalPages?: number;
|
|
12160
|
+
}
|
|
12161
|
+
interface StructraReportTransport {
|
|
12162
|
+
obterArvore(): Promise<ReportTreeNode[]>;
|
|
12163
|
+
obterMetadata(key: string): Promise<ReportMetadata>;
|
|
12164
|
+
pesquisar(key: string, request: ReportPesquisarRequest): Promise<ReportResult>;
|
|
12165
|
+
}
|
|
12166
|
+
declare const STRUCTRA_REPORT_TRANSPORT: InjectionToken<StructraReportTransport>;
|
|
12167
|
+
declare function findFirstReportLeafId(nodes: ReportTreeNode[]): string | null;
|
|
12168
|
+
declare function findReportTreeLabel(id: string, nodes: ReportTreeNode[]): string | null;
|
|
12169
|
+
declare function mapReportTreeToTreeViewNodes(nodes: ReportTreeNode[]): TreeViewNode[];
|
|
12170
|
+
|
|
12171
|
+
declare class StructraReportTreeComponent {
|
|
12172
|
+
nodes: TreeViewNode[];
|
|
12173
|
+
selectedId: string | null;
|
|
12174
|
+
title: string;
|
|
12175
|
+
titleIconClass: string;
|
|
12176
|
+
expansionStateKey: unknown;
|
|
12177
|
+
selectedIdChange: EventEmitter<string | null>;
|
|
12178
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraReportTreeComponent, never>;
|
|
12179
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraReportTreeComponent, "structra-report-tree", never, { "nodes": { "alias": "nodes"; "required": true; }; "selectedId": { "alias": "selectedId"; "required": false; }; "title": { "alias": "title"; "required": false; }; "titleIconClass": { "alias": "titleIconClass"; "required": false; }; "expansionStateKey": { "alias": "expansionStateKey"; "required": false; }; }, { "selectedIdChange": "selectedIdChange"; }, never, never, true, never>;
|
|
12180
|
+
}
|
|
12181
|
+
|
|
12182
|
+
declare class StructraReportFilterPanelComponent {
|
|
12183
|
+
readonly ngModelStandalone: {
|
|
12184
|
+
standalone: boolean;
|
|
12185
|
+
};
|
|
12186
|
+
titulo: string;
|
|
12187
|
+
subtitulo: string;
|
|
12188
|
+
filtros: ReportFilterMeta[];
|
|
12189
|
+
valores: Record<string, string>;
|
|
12190
|
+
collapsed: boolean;
|
|
12191
|
+
pesquisando: boolean;
|
|
12192
|
+
collapsedChange: EventEmitter<boolean>;
|
|
12193
|
+
valorChange: EventEmitter<{
|
|
12194
|
+
id: string;
|
|
12195
|
+
value: string;
|
|
12196
|
+
}>;
|
|
12197
|
+
pesquisar: EventEmitter<void>;
|
|
12198
|
+
readonly boolOptions: UiSelectOption<string>[];
|
|
12199
|
+
compareStr: (a: unknown, b: unknown) => boolean;
|
|
12200
|
+
patchValor(id: string, value: string | null | undefined): void;
|
|
12201
|
+
valorAtual(id: string): string;
|
|
12202
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraReportFilterPanelComponent, never>;
|
|
12203
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraReportFilterPanelComponent, "structra-report-filter-panel", never, { "titulo": { "alias": "titulo"; "required": true; }; "subtitulo": { "alias": "subtitulo"; "required": false; }; "filtros": { "alias": "filtros"; "required": true; }; "valores": { "alias": "valores"; "required": true; }; "collapsed": { "alias": "collapsed"; "required": false; }; "pesquisando": { "alias": "pesquisando"; "required": false; }; }, { "collapsedChange": "collapsedChange"; "valorChange": "valorChange"; "pesquisar": "pesquisar"; }, never, never, true, never>;
|
|
12204
|
+
}
|
|
12205
|
+
|
|
12206
|
+
declare class StructraReportTableComponent {
|
|
12207
|
+
colunas: ReportColumnMeta[];
|
|
12208
|
+
linhas: Array<Record<string, unknown>>;
|
|
12209
|
+
totalRegistros: number;
|
|
12210
|
+
readonly isBooleanColumn: typeof isReportBooleanColumn;
|
|
12211
|
+
readonly isNowrapColumn: typeof isReportNowrapColumn;
|
|
12212
|
+
readonly columnWidthStyle: typeof reportColumnWidthStyle;
|
|
12213
|
+
hasFixedColumnWidths(): boolean;
|
|
12214
|
+
cellValue(linha: Record<string, unknown>, coluna: ReportColumnMeta): string;
|
|
12215
|
+
booleanChecked(linha: Record<string, unknown>, coluna: ReportColumnMeta): boolean;
|
|
12216
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraReportTableComponent, never>;
|
|
12217
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraReportTableComponent, "structra-report-table", never, { "colunas": { "alias": "colunas"; "required": true; }; "linhas": { "alias": "linhas"; "required": true; }; "totalRegistros": { "alias": "totalRegistros"; "required": false; }; }, {}, never, never, true, never>;
|
|
12218
|
+
}
|
|
12219
|
+
|
|
12220
|
+
declare class StructraReportPaginatorComponent {
|
|
12221
|
+
page: number;
|
|
12222
|
+
totalPages: number;
|
|
12223
|
+
totalRegistros: number;
|
|
12224
|
+
pageSize: number;
|
|
12225
|
+
disabled: boolean;
|
|
12226
|
+
pageChange: EventEmitter<number>;
|
|
12227
|
+
get podeAnterior(): boolean;
|
|
12228
|
+
get podeProxima(): boolean;
|
|
12229
|
+
irAnterior(): void;
|
|
12230
|
+
irProxima(): void;
|
|
12231
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraReportPaginatorComponent, never>;
|
|
12232
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraReportPaginatorComponent, "structra-report-paginator", never, { "page": { "alias": "page"; "required": true; }; "totalPages": { "alias": "totalPages"; "required": true; }; "totalRegistros": { "alias": "totalRegistros"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
|
|
12233
|
+
}
|
|
12234
|
+
|
|
12235
|
+
declare class StructraReportEmptyStateComponent {
|
|
12236
|
+
message: string;
|
|
12237
|
+
description: string;
|
|
12238
|
+
iconClass: string;
|
|
12239
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraReportEmptyStateComponent, never>;
|
|
12240
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraReportEmptyStateComponent, "structra-report-empty-state", never, { "message": { "alias": "message"; "required": false; }; "description": { "alias": "description"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; }, {}, never, never, true, never>;
|
|
12241
|
+
}
|
|
12242
|
+
|
|
12243
|
+
declare class StructraReportLoadingSkeletonComponent {
|
|
12244
|
+
rows: number;
|
|
12245
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraReportLoadingSkeletonComponent, never>;
|
|
12246
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraReportLoadingSkeletonComponent, "structra-report-loading-skeleton", never, { "rows": { "alias": "rows"; "required": false; }; }, {}, never, never, true, never>;
|
|
12247
|
+
}
|
|
12248
|
+
|
|
12249
|
+
declare class StructraReportViewerComponent {
|
|
12250
|
+
metadata: ReportMetadata | null;
|
|
12251
|
+
result: ReportResult | null;
|
|
12252
|
+
filtrosValores: Record<string, string>;
|
|
12253
|
+
loadingMetadata: boolean;
|
|
12254
|
+
loadingResult: boolean;
|
|
12255
|
+
collapsed: boolean;
|
|
12256
|
+
filtrosValoresChange: EventEmitter<Record<string, string>>;
|
|
12257
|
+
collapsedChange: EventEmitter<boolean>;
|
|
12258
|
+
pesquisar: EventEmitter<void>;
|
|
12259
|
+
onValorChange(event: {
|
|
12260
|
+
id: string;
|
|
12261
|
+
value: string;
|
|
12262
|
+
}): void;
|
|
12263
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraReportViewerComponent, never>;
|
|
12264
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraReportViewerComponent, "structra-report-viewer", never, { "metadata": { "alias": "metadata"; "required": false; }; "result": { "alias": "result"; "required": false; }; "filtrosValores": { "alias": "filtrosValores"; "required": true; }; "loadingMetadata": { "alias": "loadingMetadata"; "required": false; }; "loadingResult": { "alias": "loadingResult"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; }, { "filtrosValoresChange": "filtrosValoresChange"; "collapsedChange": "collapsedChange"; "pesquisar": "pesquisar"; }, never, never, true, never>;
|
|
12265
|
+
}
|
|
12266
|
+
|
|
12267
|
+
declare class StructraReportPageComponent {
|
|
12268
|
+
private readonly transport;
|
|
12269
|
+
autoSelectFirst: boolean;
|
|
12270
|
+
autoPesquisarOnSelect: boolean;
|
|
12271
|
+
reportSelected: EventEmitter<string | null>;
|
|
12272
|
+
reportLoaded: EventEmitter<ReportResult | null>;
|
|
12273
|
+
readonly treeNodes: _angular_core.WritableSignal<ReportTreeNode[]>;
|
|
12274
|
+
readonly selectedReportId: _angular_core.WritableSignal<string | null>;
|
|
12275
|
+
readonly metadata: _angular_core.WritableSignal<ReportMetadata | null>;
|
|
12276
|
+
readonly result: _angular_core.WritableSignal<ReportResult | null>;
|
|
12277
|
+
readonly filtrosValores: _angular_core.WritableSignal<Record<string, string>>;
|
|
12278
|
+
readonly loadingTree: _angular_core.WritableSignal<boolean>;
|
|
12279
|
+
readonly loadingMetadata: _angular_core.WritableSignal<boolean>;
|
|
12280
|
+
readonly loadingResult: _angular_core.WritableSignal<boolean>;
|
|
12281
|
+
readonly painelFiltroRecolhido: _angular_core.WritableSignal<boolean>;
|
|
12282
|
+
readonly treeViewNodes: _angular_core.Signal<structra_ui.TreeViewNode[]>;
|
|
12283
|
+
constructor();
|
|
12284
|
+
carregarArvore(): Promise<void>;
|
|
12285
|
+
onReportSelected(id: string | null): void;
|
|
12286
|
+
private carregarMetadata;
|
|
12287
|
+
pesquisar(): Promise<void>;
|
|
12288
|
+
patchFiltrosValores(next: Record<string, string>): void;
|
|
12289
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructraReportPageComponent, never>;
|
|
12290
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructraReportPageComponent, "structra-report-page", never, { "autoSelectFirst": { "alias": "autoSelectFirst"; "required": false; }; "autoPesquisarOnSelect": { "alias": "autoPesquisarOnSelect"; "required": false; }; }, { "reportSelected": "reportSelected"; "reportLoaded": "reportLoaded"; }, never, never, true, never>;
|
|
12291
|
+
}
|
|
12292
|
+
|
|
12293
|
+
export { ADAPTIVE_DATA_VIEW_MOBILE_QUERY, APP_SIDEBAR_LABEL_REVEAL_LAG_MS, APP_SIDEBAR_LAYOUT_DURATION_MS, APP_SIDEBAR_NAV_REVEAL_TOTAL_MS, APP_THEME_BASE_CLASS, APP_THEME_IDS, ActionMenuComponent, AdaptiveDataViewComponent, AdminLoginPageComponent, AdminLoginShellComponent, StructraSidebarUserPanelComponent as AdminSidebarUserPanelComponent, AlertComponent, AnchoredOverlayComponent, AppBreadcrumbComponent, AppDialogComponent, AppLibLightBlockScrollStrategy, AppShellComponent, AppShellSidebarTemplateDirective, AppShellSidebarToggleComponent, AppSidebarBottomActionsSlotDirective, AppSidebarBottomActionsTemplateDirective, AppSidebarBrandDirective, AppSidebarComponent, AppSidebarFooterSlotDirective, AppSidebarFooterTemplateDirective, AppSidebarHeaderSlotDirective, AppSidebarHeaderTemplateDirective, AppSidebarToolbarDirective, AppSidebarUserInfoSlotDirective, AppSidebarUserInfoTemplateDirective, AppTheme, AppThemeService, AppTopbarComponent, AppUserMenuComponent, BR_ESTADOS_NOME_SIGLA, ButtonType as BaseButtonType, ButtonVariant as BaseButtonVariant, BaseFieldComponent, BaseFieldDirective, BooleanFieldDirective, ButtonComponent, ButtonRadius, ButtonSize, ButtonType, ButtonVariant, CADASTRO_COLLAPSIBLE_REMOTE_LOAD_DELAY_MS, CADASTRO_DUPLICATE_FLAG_STATE, CADASTRO_DUPLICATE_SOURCE_ID_STATE, CADASTRO_FOCO_COLUNA_APOS_RESUMO_MS, CADASTRO_FORM_COLLECTION_REMOVE_ITEM_CONFIRM, CADASTRO_INVALIDATE_ROUTE_SNAPSHOT, CADASTRO_PAGE_SUBTITULO_PADRAO, CADASTRO_PAGE_TITULO_NOVO_PADRAO, CADASTRO_PESSOA_INLINE_DESTINO_URL_FRAGMENTS, CADASTRO_REFERENCIA_DIALOG_CONTEXT, CADASTRO_REFERENCIA_DIALOG_PAGE_CONFIG, CADASTRO_REFERENCIA_ROUTE_ACCESS, CADASTRO_REFERENCIA_ROUTE_ACCESS_PERMISSIVE, CADASTRO_RESUMO_FIELD_NAVIGATE_DEFER_MS, CADASTRO_TOAST_TITLE_PADRAO, CADASTRO_VALIDATION_SUMMARY_PINNED, CADASTRO_VALIDATION_SUMMARY_STATIC, CATEGORIAS_NAV_ID_EXCLUIDO, CATEGORIAS_NAV_LINHA_GRAVADA, CATEGORIAS_NAV_VOLTAR_SEM_RECARREGAR, CLIENTES_NAV_ID_EXCLUIDO, CLIENTES_NAV_LINHA_GRAVADA, CLIENTES_NAV_VOLTAR_SEM_RECARREGAR, CONSULTA_DATETIME_KEYS_ISO_PARA_FMT, CONSULTA_DOCUMENTO_GRID_KEYS_ISO_PARA_FMT, CONSULTA_FILTROS_SESSAO_USER, CONSULTA_GRID_OPTS_DATAS_PADRAO, CONSULTA_LISTA_CACHE_MAX_PAGINAS_DEFAULT, CONSULTA_LISTA_CACHE_NS_SEP, CONSULTA_LISTA_CACHE_TTL_MS_DEFAULT, CONSULTA_MOBILE_LAYOUT_MEDIA_QUERY, CONSULTA_MULTISELECT_LABEL_STUB, CONSULTA_OPTIONS_LISTAR_RESOLVER, CONSULTA_PEDIDOS_GRID_OPTS, CONSULTA_PHONE_GRID_KEYS_ISO_PARA_FMT, CONSULTA_PRESET_SELECT_EMPTY_OPTIONS_MESSAGE_DESKTOP, CONSULTA_PRESET_SELECT_EMPTY_OPTIONS_MESSAGE_MOBILE, CONSULTA_PRODUTOS_GRID_OPTS, CONSULTA_ROUTE_REUSE, CONSULTA_SERVIDOR_LISTA_QUERY_DEFAULTS, CONSULTA_TOPBAR_SLOT, CadastroBasePageComponent, CadastroCollectionGridColumnFormat, CadastroCollectionReferenciaHostService, CadastroCollectionRuntime, CadastroEnumOptionsRegistry, CadastroFieldRendererComponent, CadastroFieldRuntime, CadastroFieldsBaseComponent, CadastroFormDraftCacheService, CadastroFormLoadingSkeletonComponent, CadastroMetadataPageBase, CadastroMetadataPageComponent, CadastroMetadataPageServiceBase, CadastroMetadataPageShellLayoutComponent, CadastroMetadataPageStateBase, CadastroMetadataShellPageComponent, CadastroPadraoPageBase, CadastroReferenceRegistry, CadastroReferenciaDialogBridgeRegistry, CadastroReferenciaDialogHostComponent, CadastroReferenciaDialogService, CadastroReferenciaOpenMode, CadastroRuntime, CadastroRuntimeRegistry, CadastroSectionPanelLayout, CardListComponent, CepFieldComponent, CheckboxFieldComponent, ColorPickerFieldComponent, ComponentType, ConfirmDialogComponent, ConfirmDialogService, ConsoleLogComponent, ConsultaBasePageComponent, ConsultaCadastroFiltroDialogComponent, ConsultaCardCampoPapel, ConsultaCardFieldFormat, ConsultaCatalogBundleHelper, ConsultaFiltroPresetToolbarComponent, ConsultaFiltrosSessaoService, ConsultaGridColumnFormat, ConsultaGridOrderDirection, ConsultaListaMemoriaCacheService, ConsultaPadraoPageBase, ConsultaPageCache, ContainerLayoutSize, ContextMenuComponent, CpfCnpjFieldComponent, DEFAULT_STRUCTRA_SHELL_SCROLL_RESTORATION_OPTIONS, DROPDOWN_SEARCH_LOCAL_PAGE_SIZE, DashboardSectionComponent, DataCardComponent, DataGridComponent, DataListComponent, DataToolbarComponent, DateFieldComponent, DecimalFieldComponent, DetailsFieldComponent, DetailsViewComponent, DialogFooterDirective, DividerComponent, DrawerComponent, DrawerSide, DrawerSize, DropdownBaseComponent, DropdownMenuComponent, DropdownMultiOptionFieldBase, DropdownOptionFieldBase, DropdownSearchFieldComponent, ENM_STATUS_OPCOES_SELECT, EmptyStateComponent, EnmStatus, FIELD_MOBILE_LAYOUT_QUERY, FILE_PREVIEW_UNAVAILABLE_MESSAGE, FORM_CONTAINER_STATE_STORAGE_PREFIX, FORNECEDORES_NAV_ID_EXCLUIDO, FORNECEDORES_NAV_LINHA_GRAVADA, FORNECEDORES_NAV_VOLTAR_SEM_RECARREGAR, FieldCadastroRedirectButtonComponent, FileUploadFieldComponent, FileUploadType, FormActionsAlign, FormActionsComponent, FormColComponent, FormCollectionComponent, FormCollectionLayout, FormGroupComponent, FormGroupVariant, FormLayoutGap, FormRowAlign, FormRowComponent, FormRowJustify, FormSectionAlign, FormSectionComponent, FormSectionRadius, FormSectionVariant, FormTabComponent, FormTabsComponent, GridLayoutConsultaService, ImagePreviewPanelComponent, InputMaskFieldComponent, IntegerFieldComponent, LAYOUT_STACK_SIDE_BY_SIDE, LAYOUT_STACK_STACKED, LayoutStackAlign, LayoutStackComponent, LayoutStackDirection, LayoutStackItemAlign, LibDialogSize, ListItemComponent, LoadingDialogComponent, LoadingDialogService, MaskedTextFieldBase, MenuDividerComponent, MenuDropdownPlacement, MenuGroupComponent, MenuListComponent, MultiselectFieldComponent, NO_OP_CONSULTA_ROUTE_REUSE, NO_OP_CONSULTA_TOPBAR_SLOT, NgControlFieldDirective, OPS_BOOL, OPS_DATA, OPS_TEXTO, OPS_TEXTO_MULTISELECT, ORIGEM_CADASTRO_INLINE_PESSOA, OnboardingChecklistComponent, OverlayPlacement, PDF_IFRAME_VIEWER_HASH, PEDIDOS_NAV_ID_EXCLUIDO, PEDIDOS_NAV_LINHA_GRAVADA, PEDIDOS_NAV_VOLTAR_SEM_RECARREGAR, PERMISSION_GROUP_OUTROS_KEY, PERMISSION_GROUP_OUTROS_LABEL, PERMISSION_GROUP_OUTROS_ORDER, PESSOAS_NAV_LINHA_GRAVADA, PESSOAS_NAV_VOLTAR_SEM_RECARREGAR, PHONE_BR_LANDLINE_MASK, PHONE_BR_MOBILE_MASK, PRODUTOS_NAV_ID_EXCLUIDO, PRODUTOS_NAV_LINHA_GRAVADA, PRODUTOS_NAV_VOLTAR_SEM_RECARREGAR, StructraPageFooterComponent as PageFooterComponent, PasswordFieldComponent, PermissionGroupTabComponent, PermissionGroupTabsComponent, PhoneFieldComponent, PopoverBodyTemplateDirective, PopoverComponent, PopoverFooterTemplateDirective, PopoverTriggerDirective, ReferenceOptionPreset, STRUCTRA_ADMIN_ROUTE_REDIRECT_CACHE_PREFIX, STRUCTRA_ADMIN_ROUTE_REDIRECT_LOGIN_ID_CACHE_KEY, STRUCTRA_CADASTRO_INLINE_RESULT_KEY, STRUCTRA_CADASTRO_INLINE_RETURN_KEY, STRUCTRA_CONSULTA_FORCE_REFRESH_KEY, STRUCTRA_DEDICATED_BACK_TO_TOP_SELECTOR, STRUCTRA_GRID_LAYOUT_API_BASE_RESOLVER, STRUCTRA_GRID_LAYOUT_AUTH_HEADERS_RESOLVER, STRUCTRA_GRID_LAYOUT_TENANT_RESOLVER, STRUCTRA_INLINE_FORM_DRAFT_PENDING_PREFIX, STRUCTRA_MIDIA_PUBLIC_BASE_RESOLVER, STRUCTRA_MIDIA_UPLOAD_TRANSPORT, STRUCTRA_PAGE_CACHE_SCOPE_SEP, STRUCTRA_PAGE_FOOTER_PARTS, STRUCTRA_PAGE_STATE_ACTIVE_TAB_PREFIX, STRUCTRA_REPORT_DEFAULT_PAGE_SIZE, STRUCTRA_REPORT_TRANSPORT, STRUCTRA_SHELL_SCROLL_RESTORATION_OPTIONS, STRUCTRA_SHELL_TOPBAR_TITLE_SKELETON, STRUCTRA_SIMULATED_LOADING_DELAY_MS, STRUCTRA_THEME_DARK_CLASS, STRUCTRA_THEME_IDS, STRUCTRA_UI, ScriptEditorFieldComponent, SelectFieldComponent, SkeletonBlockComponent, SkeletonCardComponent, SkeletonFieldShellComponent, SkeletonListComponent, SkeletonStatCardComponent, SkeletonTableComponent, SkeletonTextComponent, StatCardComponent, StatusBadgeComponent, StructraAdminRouteRedirectPageBase, StructraBackToTopButtonComponent, StructraPageCacheService, StructraPageComponentOutletComponent, StructraPageComponentRegistry, StructraPageFooterComponent, StructraPageStateCacheService, StructraProgressOverlayComponent, StructraReportEmptyStateComponent, StructraReportFilterPanelComponent, StructraReportLoadingSkeletonComponent, StructraReportPageComponent, StructraReportPaginatorComponent, StructraReportTableComponent, StructraReportTreeComponent, StructraReportViewerComponent, ScriptEditorFieldComponent as StructraScriptEditorComponent, StructraShellScrollRestorationService, StructraShellTopbarSlotService, AppSidebarBottomActionsTemplateDirective as StructraSidebarBottomActionsDirective, AppSidebarFooterTemplateDirective as StructraSidebarFooterDirective, AppSidebarHeaderTemplateDirective as StructraSidebarHeaderDirective, AppSidebarUserInfoTemplateDirective as StructraSidebarUserInfoDirective, StructraSidebarUserPanelComponent, SwitchFieldComponent, THEME_PRIMARY_COLOR_LABEL_PT_BR, TOAST_REGISTRO_EXCLUIDO_SUCESSO, TableEmptyStateComponent, TableToolbarComponent, TextFieldComponent, TextareaFieldComponent, ThemeDirective, ToastHostComponent, ToastService, TooltipComponent, TooltipPanelTemplateDirective, TreeViewComponent, USUARIOS_CONSULTA_GRID_OPTS, USUARIOS_NAV_ID_EXCLUIDO, USUARIOS_NAV_LINHA_GRAVADA, USUARIOS_NAV_VOLTAR_SEM_RECARREGAR, VENDEDORES_NAV_ID_EXCLUIDO, VENDEDORES_NAV_LINHA_GRAVADA, VENDEDORES_NAV_VOLTAR_SEM_RECARREGAR, ValidationSummaryComponent, agruparCamposMetadataPorSecao, agruparPermissionTabs, anchoredOverlayPositions, aplicarNormalizacaoMultiselectIdsNoPartial, aplicarProdutoDtoNoFormulario, appendCadastroPageActiveTabQuery, appendPdfIframeViewerParams, applyCadastroCollectionArrayValidators, applyCadastroModoSenhaNovos, applyCollectionValidationSummaryNavigation, applyCollectionValueToFormArray, applyEntityToCadastroFormByMetadata, applyOptionalThemeHostClasses, applyPickedCalendarDate, buildCadastroFiltroDialogItensGridRows, buildCadastroMetadataShellRuntime, buildCadastroPageActiveTabPageKey, buildCadastroPageActiveTabPageKeyFromLayout, buildCadastroPageRuntime, buildCadastroRedirectReturnUrl, buildCadastroReferenciaDialogContext, buildCatalogoStubConsultaRuntime, buildConsultaConfirmDuplicarLinhaFromLayout, buildConsultaConfirmRemoverLinhaFromLayout, buildConsultaDefaultIsItemGuard, buildConsultaListaCacheKey, buildConsultaPageMetadataUnified, buildConsultaPageRuntime, buildDecimalBrDisplay, buildDecimalBrParseString, buildDefaultConsultaMapCardFromColunasGrid, buildEmptyStateOverlayHtml, buildFormContainerStateStorageKey, buildFormGroupFromCadastroCampos, buildHistoryStateAfterReturningFromNestedInlineChild, buildInlineReturnStateForChildCadastro, buildNovoFormDefaultsFromCampos, buildRouteReuseKeyFromAppPathname, buildRouteReuseKeyFromNovoRouterLink, buildStructraAdminRouteRedirectCacheKey, buildStructraAdminRouteRedirectChildUrl, buildStructraPageCacheCadastroInitKey, buildStructraPageCacheRouteScope, buildStructraPageFooterParts, buildStructraSidebarTemplateContext, buildValidationMetaFromCadastroCampos, cadastroBuildImageUploadMetadata, cadastroCampoBlocoEditorOcupaLinhaInteira, cadastroCampoBooleanOcupaLinhaInteira, cadastroCampoMetadataDtoFromPartial, cadastroCampoMetadataEhBoolean, cadastroCampoMetadataLarguraCompacta, cadastroCampoMetadataLarguraFixaCss, cadastroCampoReferenciaMetadataDtoFromPartial, cadastroCampoRuleMaxLength, cadastroCampoScriptEditorLanguage, cadastroCampoScriptEditorMinHeight, cadastroCampoValidacaoDtoFromPartial, cadastroCampoWrapperWidthCss, cadastroCollectionEditorGridColumns, cadastroCollectionMaxItemsValidator, cadastroCollectionMinItemsValidator, cadastroConfirmExcluirPartialFromLayout, cadastroContainerLayoutSizeDoRecord, cadastroContainerPathJoin, cadastroCrudMessagesDoFormLayout, cadastroDeclarativeSnapshotDtoFromPartial, cadastroEnsureSingleBooleanInCollection, cadastroFieldsPerRowDoRecord, cadastroFlattenContainerRaw, cadastroFormDraftEnabledDoLayout, cadastroFormGridColumns, cadastroFormLayoutComoRecord, cadastroFormLayoutDoBundle, cadastroFormLayoutDoRuntime, cadastroFormLayoutPreserveActiveTab, cadastroFormPageLayoutFromPartial, cadastroGcd, cadastroGetCollectionItemControl, cadastroGridColumnSpanForFieldIndex, cadastroGridDenominadorTracks, cadastroGridTemplateColumnsLinhaUnicaSeAplicavel, cadastroInferExtensaoArquivo, cadastroInferImageContentType, cadastroLcm, cadastroMetadataDtoParaValidacaoLike, cadastroNavKeysStructra, cadastroNomeArquivoDaUploadUrl, cadastroNormalizarUploadUrlPorPrefixo, cadastroPageActionDtoFromPartial, cadastroPageActionsPorRegiao, cadastroPageActiveTabToRestore, cadastroPageComponentDtoFromPartial, cadastroPageComponentsPorRegiao, cadastroPageIdentityDoFormLayout, cadastroPageOverlayDtoFromPartial, cadastroPageShellAtivo, cadastroPageShellTabsKeepAliveFromLayout, cadastroPageTabDtoFromPartial, cadastroPageTabsOrdenados, cadastroPainelMaxWidthCss, cadastroRawBooleanDeep, cadastroRawNumber, cadastroRawString, cadastroReferenceEntryFromListarService, cadastroReferenciaOpenModeFromWire, cadastroReindexarCollectionOrdem, cadastroResolveId, cadastroSecaoFormGroupDense, cadastroSecaoPersisteExpandedState, cadastroSecaoRenderizaInlineDentroDoPai, cadastroSecaoSegmentosIntercalados, cadastroSecaoSegmentosParaRender, cadastroSecaoUsaFormGroup, cadastroSecaoUsaFormGroupComoBlocoVisual, cadastroSecaoUsaSuperficieDeclarativa, cadastroSingleBooleanCollectionBinding, cadastroTitulosEfectivosDoFormLayout, cadastroToastTitleEfectivoDoFormLayout, cadastroToolbarButtonDtoFromPartial, cadastroToolbarVisibilityDoFormLayout, cadastroUseBackToTopButtonFromLayout, cadastroValidationSummaryFlagsDoRecord, cadastroValidationSummaryPinnedFromFlags, cadastroWireCollectionOrdemReindexOnAdd, cadastroWireCollectionOrdemReindexOnAddRemove, cadastroWireCollectionOrdemReindexOnRemove, campoMetadataVisivelNoModo, caretIndexFromIntegerDigitCount, caretIndexFromSemantic, carregarOpcoesMultiselectViaSpec, cepMaskCompleteValidator, clearRequiredValidatorsOnReadOnlyCadastroFields, clearStructraCadastroInlineReturnSessionCacheForTests, clearStructraCadastroSessionStorageOnLogout, coerceDecimalPtBr, coerceReportBoolean, collectValidationSummaryItems, colunasGridTemFormatacaoDeclarativa, computeReferenciaHasMore, consoleLogLevelClass, consultaCampoMetadataDtoFromPartial, consultaCardCampoDtoFromPartial, consultaFiltroValorDataSomenteDia, consultaGridColunaDtoFromPartial, consultaGridColunaKeyParaCampoLinha, consultaGridConfigDtoFromPartial, consultaPassaItem, consultaPassaTodosItens, consultaUsuariosMetadataReplyFromPartial, consumeCadastroInlineFormDraftPendingRestore, consumirResultadoCadastroInlineCampoPessoaId, consumirResultadoCadastroInlineCampoReferencia, cpfCnpjMaskCompleteValidator, createCadastroDialogActivatedRoute, createCadastroMetadataPageConfig, createCadastroPadraoConfig, createCadastroRuntime, createCollectionFormArray, createCollectionItemFormGroup, createConsultaListaItemGuardFromFiltroUi, createConsultaOptionsListarResolver, createConsultaPadraoRuntime, createConsultaPresetSelectEmptyOptionsMessageSignal, createConsultaPresetStorageApi, createGrpcSaveRequestMapper, createInlineHostNavigation, createMapCardFromConsultaColunasGrid, createMapGridRowFromConsultaColunasGrid, createSaveRequestFromPartialMapper, criarDraftInlinePessoa, decimalPtBrNaoNegativoValidator, decimalPtBrToNullableNumber, defaultIsConsultaListItemMinimo, defaultParseLinhaGravadaJson, deleteConfirmPageConfigFromPartial, deriveCadastroTituloEditar, deriveConsultaListaItemGuardPropsFromFiltroUi, duplicateConfigFromLayout, duplicatePageConfigFromPartial, enrichCadastroReferenciaDialogPageConfig, ensureCadastroCollectionMinItems, ensureCadastroFormControlsFromMetadata, escapeHtml, evaluateStructraPageVisibleExpression, executarConsultaServidorComPreset, extractConsultaListaCacheNamespace, extractDecimalBrParts, fileIsLikelyImage, fileMatchesAccept, filtrarSecoesMetadataPorModo, filtrarUiSelectOptionsPainelComValorPersistente, filtrarUiSelectOptionsPorQuery, findCadastroCampoByKey, findFirstReportLeafId, findReportTreeLabel, fixedDigitsMaskCompleteValidator, flattenCadastroMetadataSecoes, fmtDataPt, fmtDocumentoCelulaConsultaGrid, formatAcceptForDisplay, formatDateTimePtBr, formatDecimalBr, formatDocumentoPessoaParaExibicao, formatFileSizeBytes, formatIntegerThousandsBr, formatMaskDigits, formatPhoneBr, formatUiFieldDateValue, getFilePreviewKind, getStructraActionsByGroup, getThemeClass, getThemeClassList, getThemePrimaryColorLabelPtBr, getThemeTokenClass, hexParaColorInput, inferCadastroItemFieldsFromPlainRows, inferCadastroListaUrlFallback, initialCadastroControlValue, injectEffectiveThemeId, isCadastroDuplicateNavigation, isCollectionField, isCollectionLikeField, isConsultaCardAutoSubtitleExcluded, isLegacyDarkThemeId, isLegacyFormContainerStateStorageKey, isLegacyNomeDocumentoReferencePreset, isReadonlyCollectionField, isReportBooleanColumn, isReportNowrapColumn, isValidPhoneBr, libDialogPanelClasses, listaUrlFromRotaCadastro, listarItensCadastroReferencia, listarTodosPaginado, loadPresetsJson, loadStructraAdminRouteRedirectTarget, mapCadastroFormRawToPayload, mapConsultaGridColunasParaDataGrid, mapConsultaMetadataParaFiltroUi, mapErroTransporteParaMensagem as mapErroListaDefault, mapErroTransporteParaMensagem, mapEstadosToOptions, mapFiltroSalvoParaConsultaPreset, mapListarItensParaMultiselectOpcoes, mapReportTreeToTreeViewNodes, markCadastroInlineFormDraftPendingRestore, maskDigitCount, mergeCadastroConfirmExcluir, mergeConsultaGridRowFormattingFromColunasGrid, mergeConsultaMultiselectOpcoesComSeleccionados, mergeDocumentoFmtNaLinhaConsulta, mergeMapConsultaGridColunasOptsComColumnFormat, mergeNovoIdEmListaSelecionada, mergeStructraShellScrollRestorationOptions, metadataCampoParaChaveLinhaCliente, modoPermissaoReferenciaFromWire, montarFiltrosGrpcPreset, montarFiltrosServidorPreset, montarHierarquiaSecoesMetadata, multiselectIdListRequiredValidator, multiselectMaxItemsValidator, navegarVoltarLista, navegarVoltarListaComIdRemovido, navegarVoltarListaComLinha, navigateCadastroDuplicate, navigateCommandsFromRotaAlterar, navigateCommandsFromRotaNovo, nomeSalvarParaPayloadComPessoa, normalizarArvoreSecoesMetadata, normalizarHexCor, normalizarItensParaGravarServidorCadastro, normalizarListaIdsMultiselect, normalizarOperadorConsultaParaEnvioServidor, normalizarRotaReferencia, normalizarStructraAction, normalizarStructraActionGroup, normalizarStructraActionGroups, normalizeCadastroAppPath, normalizeCadastroCampoMetadataWire, normalizeCadastroInitRouteIdParam, normalizeCadastroItemEditorDecimalControls, normalizeCadastroReferenciaDialogRotaKey, normalizeCadastroRouteForContainerState, normalizeConsoleLogLevel, normalizeFormDateValue, normalizePhoneBr, normalizeStructraAdminPath, normalizeStructraTheme, novoPathCommandsFromRota, onlyDigits, operadorConsultaComValorUnicoComparacao, operadorConsultaDatetimeUsaDatePicker, operadoresConsultaCampo, operadoresPorTipo, ordenarFiltroItens, ordenarStructraActions, parseDecimalBr, parseIntegerString, parseUiFieldDateValue, patchFormFromEntidadeRecord, permissionTabsUsamGruposVerticais, permissoesReferenciaMetadata, phoneBrDynamicMaskCompleteValidator, phoneBrMaskCompleteValidator, phoneBrMaskFromDigits, pickCadastroPageActiveTabExplicit, pickTabKeyLinkedToSummaryItems, precisaValor, precisaValorFinal, provideAppPageFooter, provideStructraCadastroReferenciaDialogRoot, provideStructraPageFooter, provideStructraShellScrollRestoration, qtdCriteriosPresetParaSkeleton, readCadastroDuplicateSourceId, readCadastroPageActiveTabFromNavigationState, readCadastroPageActiveTabFromUrl, readFormContainerCollapsedFromStorage, readStructraAdminRouteRedirectTarget, readStructraCadastroInlineReturn, referenciaAbreEmDialog, referenciaOpenModeRaw, referenciaUsesLegacyRegistryMapper, registerCadastroReferenceEntries, registerCadastroReferenceListSources, registerCadastroReferenciaDialogBridges, registerStructraBuiltinPageComponents, replaceProdutoCadastroFormControls, reportColumnWidthStyle, reportTableHasFixedWidths, resetStructraCadastroReferenciaDialogRootForTests, resolveCadastroCollectionMinItems, resolveCadastroListaUrlParaNavegacao, resolveCadastroPageActiveTabKey, resolveCadastroReferenciaMapOptions, resolveConsultaEditActionLabelFromGridConfig, resolveConsultaListaQuerySliceFromGridConfig, resolveConsultaNavKeysFromPageLayout, resolveConsultaNovoRouterLinkFromLayout, resolveConsultaRouteEditBaseFromLayout, resolveConsultaToastTitleLista, resolveControlAtPath, resolveFormContainerCollapsed, resolveReferenciaOpcaoLabel, resolveStructraAdminMenuUrl, resolveStructraPageCacheCadastroScope, resolveStructraPageInputExpression, resolveStructraPageInputs, resolveStructraShellScrollContainer, resolverAcoesReferenciaPorRota, resolverValorOpcaoPorRotuloNormalizado, resumoValorMultiselectFiltro, rotaListaReferencia, rotuloEnmStatus, rotuloNomeDocumentoLista, rotuloOperadorConsulta, rotuloPessoaLista, runStructraSimulatedLoadingDelay, sanitizeDecimalBrInput, sanitizeIntegerDigits, sanitizeRecordForCadastroDuplicate, savePresetsJson, scheduleRemoteCollectionHydrationAfterSectionExpand, secaoMetadataEhContainerPlain, secaoTemConteudoVisivel, secaoTemCorpoParaRender, sectionHasVisibleInvalid, semanticCaretAt, semanticIntegerDigitCountLeft, serializeCollectionFormArray, shouldDeferInitialRemoteCollectionLoad, shouldSkipCadastroPageActiveTabCacheWrite, shouldSkipStructraAdminMenuNavigation, stripStructraCadastroInlineResultFromHistory, stripToDigits, structraActionButtonVariant, structraCadastroInlineResultTemIdSalvo, structraCadastroInlineResultTemReferenciaExcluida, structraElementScrolls, structraHasValue, structraIsFilledString, structraIsFormGroup, structraIsValidPort, structraParseNumberOrNull, structraReadFormValue, structraReadNestedValue, structraTrimString, subscribeMarkForCheckOnInvalidUiRefresh, subtreeHasVisibleInvalid, syncStructraCadastroInlineReturnSessionCache, tabWarningFromLinkedSummaryItems, tipoCampoMetadataParaUi, tipoValorApi, toCadastroReferenceListPageResult, toConsoleLogLineView, toConsoleLogLineViews, toUiSelectOptionsFromMetadata, uiSelectOpcaoIdNomeDocumento, uiSelectOpcoesDePessoas, validationLikeFromCampoMetadata, validatorsFromCampo, writeFormContainerCollapsedToStorage };
|
|
12294
|
+
export type { AdaptiveDataViewMode, AdminLoginShellConfig, AdminLoginSubmitPayload, StructraSidebarEmpresaContext as AdminSidebarEmpresaContext, StructraSidebarUserView as AdminSidebarUserView, AlertAction, AlertType, AppThemeId, AppThemeOption, ApplyCadastroModoSenhaOptions, BreadcrumbItem, BuildCadastroMetadataShellRuntimeOptions, BuildCadastroPageRuntimeOptions, CadastroActionStateDto$1 as CadastroActionStateDto, CadastroAutoMapFormValueConfig, CadastroCampoContaNaGrelhaFn, CadastroCampoMetadataDto, CadastroCampoMetadataMergeInput, CadastroCampoReferenciaMetadataDto, CadastroCampoSelectOptionDto, CadastroCampoValidacaoDto, CadastroCampoValidacaoLike, CadastroCollectionBinding, CadastroCollectionBridge, CadastroCollectionEditingItemControlsChangeEvent, CadastroCollectionEditingItemControlsChangeOptions, CadastroCollectionItemEvent, CadastroCollectionItemFieldsChangeEvent, CadastroCollectionItemFieldsChangeOptions, CadastroCollectionItemsChangeEvent, CadastroCollectionPageReplyWire, CadastroCollectionPageRequestWire, CadastroCollectionPagingPort, CadastroCollectionPagingUi, CadastroCollectionSaveHandler, CadastroCollectionStateDto, CadastroConfirmExcluirPartial, CadastroCrudMessagesResolved, CadastroDeclarativeSnapshotDto, CadastroDuplicateActionConfig, CadastroEnsureSingleBooleanInCollectionOptions, CadastroFieldChangeEvent, CadastroFieldEventBase, CadastroFieldKey, CadastroFieldRegistration, CadastroFieldSelectEvent, CadastroFieldSimpleEvent, CadastroFiltroDialogRuntimeSlice, CadastroFormPageLayout, CadastroHeaderSecondaryAction, CadastroImageUploadMetadata, CadastroImageUploadMetadataOptions, CadastroInferExtensaoArquivoOptions, CadastroInferImageContentTypeOptions, CadastroInlineHostNavigationConfig, CadastroListSelectBinding, CadastroMetadataCamposReplyLike, CadastroMetadataPageCadastro, CadastroMetadataPageServiceConfig, CadastroMetadataPageShellCallbacks, CadastroMetadataPageStateConfig, CadastroMetadataPageVm, CadastroMetadataSecao, CadastroMetadataServiceConfig, CadastroMetadataServicePort, CadastroMetadataShellRuntime, CadastroMetadataView, CadastroModo, CadastroMultiselectBinding, CadastroPadraoGrpcService, CadastroPageActionDto, CadastroPageActiveTabResolveInput, CadastroPageComponentDto, CadastroPageConfig, CadastroPageIdentityFallback, CadastroPageNavKeysConfig, CadastroPageOverlayDto, CadastroPageRuntime, CadastroPageSenhaConfig, CadastroPageTabDto, CadastroPessoaOpcaoMin, CadastroRawBooleanDeepOptions, CadastroReferenceListPageParams, CadastroReferenceListPageResult, CadastroReferenceListarService, CadastroReferenceRegistryEntry, CadastroReferenciaAcoesPermitidas, CadastroReferenciaDialogBridgeEntry, CadastroReferenciaDialogBridgeFactory, CadastroReferenciaDialogCloseReason, CadastroReferenciaDialogCompletePayload, CadastroReferenciaDialogContext, CadastroReferenciaDialogOpenOptions, CadastroReferenciaDialogOpenRequest, CadastroReferenciaOpenModeWireRef, CadastroReferenciaPermissoesMetadata, CadastroReferenciaRouteAccess, CadastroReindexarCollectionOrdemOptions, CadastroRuntimeDeps, CadastroRuntimeOptions, CadastroSearchSelectBinding, CadastroSearchSelectRedirectSuffix, CadastroSearchSelectReferenciaDialog, CadastroSecaoSegmento, CadastroSingleBooleanCollectionBindingOptions, CadastroTitulosFallback, CadastroToolbarButtonDto, CadastroToolbarVisibilityResolved, CadastroValidationUi, CardItemBooleanField, CardItemMetaField, CardItemView, CardListDataMode, CardListHeaderPosition, CardListMapFn, CatalogoStubConsultaConfig, CatalogoStubListaItem, ConfirmDialogData, ConfirmDialogVariant, ConsoleLogLevel, ConsoleLogLine, ConsoleLogLineView, ConsultaBaseConfig, ConsultaCampoDef, ConsultaCampoMetadataDto, ConsultaCardCampoDto, ConsultaCatalogBundleConfig, ConsultaCatalogBundleSessaoPort, ConsultaCatalogEntityBindings, ConsultaCatalogInitCarregada, ConsultaCrudAdapterConfig, ConsultaEnumSelectOptionDto, ConsultaFiltroCampo, ConsultaFiltroItem, ConsultaFiltroMatchAdapters, ConsultaFiltroPreset, ConsultaFiltroSalvoDto, ConsultaFiltroSalvoItemDto, ConsultaFiltroUiFragment, ConsultaFiltroValorTipo, ConsultaFiltrosBundleSessao, ConsultaFiltrosChromeVolatil, ConsultaFiltrosSessaoConsultaPadraoApi, ConsultaFiltrosSessaoUserLike, ConsultaFiltrosSessaoVolatilApi, ConsultaFiltrosVolatilHandlers, ConsultaGridColunaDto, ConsultaGridColunaDtoLike, ConsultaGridConfigDto, ConsultaInitCarregada, ConsultaListaCacheKeyParts, ConsultaListaCachePayload, ConsultaListaMemoriaCacheStoreOpts, ConsultaListaQueryParamsLike, ConsultaListaResultadoLike, ConsultaListaServidorQuerySlice, ConsultaMapCardLinha, ConsultaMetadataCampo, ConsultaMetadataReplyLike, ConsultaMetadataServicePort, ConsultaMultiselectOpcoesRemotasSpec, ConsultaOperadorOption, ConsultaOptionsListarContrato, ConsultaOptionsListarResolver, ConsultaPadraoGrpcServiceLike, ConsultaPadraoNavigateLike, ConsultaPadraoToastLike, ConsultaPageCacheEntry, ConsultaPageMetadataUnified, ConsultaPageRuntime, ConsultaPageRuntimeDeps, ConsultaRouteReusePort, ConsultaServidorExecutorOpts, ConsultaServidorListaReply, ConsultaServidorPort, ConsultaServidorQueryParams, ConsultaTopbarSlotPort, ConsultaUsuariosMetadataReply, ConsultaValorTipo, CreateCadastroMetadataPageConfigOptions, CreateCadastroPadraoConfigOptions, CreateConsultaPadraoRuntimeOptions, CreateGrpcSaveRequestMapperOptions, CreateSaveRequestFromPartialMapperOptions, CrudConsultaServicePort, DataGridColumn, DataGridPaginationChangeEvent, DeleteConfirmPageConfig, DetailsViewItem, DropdownListBindings, DropdownSearchPageRequested, DuplicatePageConfig, FieldCommonInputs, FieldSize, FilePreviewKind, FiltroItemEntrada, FiltroItemEntradaGenerico, FiltroItemGridRow, FiltroItemSalvoDto, FiltroSalvo, FormContainerStateKeyParts, FormTabValidationLinkConfig, FormTabsVariant, GridLayoutConsultaApiDto, GridLayoutConsultaPersistedPayload, GrpcSaveRequestFactory, InitConsultaReply, ListarTodosPaginadoParams, LoadingDialogData, MapConsultaGridColunasOpts, MenuItemAction, MenuItemDivider, MenuItemGroup, MenuItemKind, MenuItemSubmenu, MenuLeafItem, MenuNodeItem, ModoPermissaoReferencia, MontarFiltrosGrpcPresetOptions, MontarFiltrosServidorPresetOptions, OnboardingChecklistProgress, OnboardingChecklistStep, OptionsSourceServicePort, PatchFormFromEntidadeOptions, PermissionGroupTabBucket, PermissionGroupTabDescriptor, PermissionGroupTabGroup, ReportColumnMeta, ReportColumnWidthFields, ReportFilterMeta, ReportFiltroItemEntrada, ReportHeader, ReportMetadata, ReportPesquisarRequest, ReportResult, ReportSection, ReportSectionColumn, ReportSectionTable, ReportTotal, ReportTreeNode, ResolveStructraAdminMenuUrlOptions, SalvarFiltroConsultaRequest, SalvarFiltroPresetAsyncArgs, SaveRequestFromPartialFactory, ScriptEditorLanguage, SelectPageRequested, SkeletonFieldShellVariant, StatCardDeltaTone, StatusBadgeSize, StatusBadgeVariant, StructraAction, StructraActionButtonVariant, StructraActionGroup, StructraActionGroupWire, StructraActionId, StructraActionVariant, StructraActionWire, StructraAdminRouteRedirectCacheOptions, StructraAdminRouteRedirectLoadOptions, StructraCadastroInlineResultState, StructraCadastroInlineReturnState, StructraFormValueSource, StructraGridLayoutApiBaseResolverFn, StructraGridLayoutAuthHeadersResolverFn, StructraGridLayoutTenantResolverFn, StructraMidiaUploadResult, StructraMidiaUploadTransportContext, StructraMidiaUploadTransportFn, StructraPageCacheGetOrLoadOptions, StructraPageCacheSetOptions, StructraPageFooterConfig, StructraPageInputContext, StructraReportTransport, StructraShellScrollRestorationMergedOptions, StructraShellScrollRestorationOptions, StructraSidebarContext, StructraSidebarEmpresaContext, StructraSidebarTemplateContext, StructraSidebarUserView, StructraTheme, TitulosFromMetadataConfig, ToastInstance, ToastShowOptions, ToastType, ToastVerticalPosition, TreeViewNode, TreeViewSelectEvent, UiFieldInputTextAlign, UiSelectOption, ValidationFieldMeta, ValidationSummaryItem, ValidationSummarySize, ValidationSummaryVariant, ValoresConsultaPresetUi };
|