structra-ui 0.2.77 → 0.2.79
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/fesm2022/structra-ui.mjs +706 -91
- package/fesm2022/structra-ui.mjs.map +1 -1
- package/package.json +2 -2
- package/types/structra-ui.d.ts +171 -14
package/fesm2022/structra-ui.mjs
CHANGED
|
@@ -8937,6 +8937,24 @@ function normalizarQueryPainelLista(query, todas, valorSeleccionado, compareWith
|
|
|
8937
8937
|
}
|
|
8938
8938
|
return q;
|
|
8939
8939
|
}
|
|
8940
|
+
/** Remove entradas repetidas pelo `value` (ex.: valor persistido + resultados da pesquisa). */
|
|
8941
|
+
function dedupeUiSelectOptionsByValue(opcoes, compareWith = (a, b) => String(a ?? '') === String(b ?? '')) {
|
|
8942
|
+
const out = [];
|
|
8943
|
+
for (const o of opcoes) {
|
|
8944
|
+
const v = o.value;
|
|
8945
|
+
const idx = out.findIndex((x) => compareWith(x.value, v));
|
|
8946
|
+
if (idx < 0) {
|
|
8947
|
+
out.push(o);
|
|
8948
|
+
continue;
|
|
8949
|
+
}
|
|
8950
|
+
const prevLab = (out[idx].label ?? '').trim();
|
|
8951
|
+
const nextLab = (o.label ?? '').trim();
|
|
8952
|
+
if (!prevLab && nextLab) {
|
|
8953
|
+
out[idx] = o;
|
|
8954
|
+
}
|
|
8955
|
+
}
|
|
8956
|
+
return out;
|
|
8957
|
+
}
|
|
8940
8958
|
function filtrarUiSelectOptionsPorQuery(opcoes, query) {
|
|
8941
8959
|
const q = query.trim().toLowerCase();
|
|
8942
8960
|
if (!q) {
|
|
@@ -8953,16 +8971,16 @@ function filtrarUiSelectOptionsPainelComValorPersistente(todas, ev, valorSelecci
|
|
|
8953
8971
|
const filtered = opts?.filtrarPorTexto === false ? [...todas] : filtrarUiSelectOptionsPorQuery(todas, queryNorm);
|
|
8954
8972
|
const v = valorSeleccionado?.trim();
|
|
8955
8973
|
if (!v) {
|
|
8956
|
-
return filtered;
|
|
8974
|
+
return dedupeUiSelectOptionsByValue(filtered, compareWith);
|
|
8957
8975
|
}
|
|
8958
8976
|
const sel = todas.find((o) => compareWith(o.value, v));
|
|
8959
8977
|
if (!sel) {
|
|
8960
8978
|
return filtered;
|
|
8961
8979
|
}
|
|
8962
8980
|
if (filtered.some((o) => compareWith(o.value, v))) {
|
|
8963
|
-
return filtered;
|
|
8981
|
+
return dedupeUiSelectOptionsByValue(filtered, compareWith);
|
|
8964
8982
|
}
|
|
8965
|
-
return [sel, ...filtered];
|
|
8983
|
+
return dedupeUiSelectOptionsByValue([sel, ...filtered], compareWith);
|
|
8966
8984
|
}
|
|
8967
8985
|
|
|
8968
8986
|
/**
|
|
@@ -14332,13 +14350,9 @@ const HOME_CONSULTA_LISTA_PATHS_PARA_LIMPAR_CACHE_INLINE = new Set([
|
|
|
14332
14350
|
/** Estado definido pelo botão «novo registro» ao lado do campo (`FieldCadastroRedirectButtonComponent`). */
|
|
14333
14351
|
const STRUCTRA_CADASTRO_INLINE_RETURN_KEY = 'structraCadastroInlineReturn';
|
|
14334
14352
|
/**
|
|
14335
|
-
* Chave em `history.state`
|
|
14336
|
-
*
|
|
14337
|
-
*
|
|
14338
|
-
* actualizados (linhas inseridas/alteradas/removidas) sem servir cache antigo.
|
|
14339
|
-
*
|
|
14340
|
-
* Comportamento base Structra: voltar do cadastro **sempre** recarrega o grid; outras formas
|
|
14341
|
-
* de chegar à consulta (menu, refresh, link directo) continuam a aproveitar o cache.
|
|
14353
|
+
* Chave em `history.state` para forçar invalidação do cache da lista (opt-in explícito).
|
|
14354
|
+
* Comportamento base Structra desde v0.2.x: voltar do cadastro repõe snapshot/patch em memória;
|
|
14355
|
+
* use esta chave só quando precisar de reload completo (ex.: fluxo legado ou refresh manual via router state).
|
|
14342
14356
|
*/
|
|
14343
14357
|
const STRUCTRA_CONSULTA_FORCE_REFRESH_KEY = 'structraConsultaForceRefresh';
|
|
14344
14358
|
/** Resultado enviado ao voltar ao formulário origem (salvar / cancelar / exclusão + cancelamento UX). */
|
|
@@ -14703,11 +14717,16 @@ function navegarVoltarLista(router, listaUrl, navVoltarSemRecarregarKey) {
|
|
|
14703
14717
|
/**
|
|
14704
14718
|
* Após gravar, envia a linha para merge na lista — mesma convenção que a consulta (`navLinhaGravadaKey`).
|
|
14705
14719
|
*/
|
|
14706
|
-
function navegarVoltarListaComLinha(router, listaUrl, navLinhaGravadaKey, linha) {
|
|
14720
|
+
function navegarVoltarListaComLinha(router, listaUrl, navLinhaGravadaKey, linha, navVoltarSemRecarregarKey) {
|
|
14721
|
+
const state = {};
|
|
14722
|
+
if (navVoltarSemRecarregarKey) {
|
|
14723
|
+
state[navVoltarSemRecarregarKey] = true;
|
|
14724
|
+
}
|
|
14707
14725
|
if (navLinhaGravadaKey != null && linha !== undefined) {
|
|
14708
|
-
|
|
14709
|
-
|
|
14710
|
-
|
|
14726
|
+
state[navLinhaGravadaKey] = linha;
|
|
14727
|
+
}
|
|
14728
|
+
if (Object.keys(state).length > 0) {
|
|
14729
|
+
return router.navigateByUrl(listaUrl, { state });
|
|
14711
14730
|
}
|
|
14712
14731
|
return router.navigateByUrl(listaUrl);
|
|
14713
14732
|
}
|
|
@@ -23513,6 +23532,228 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
23513
23532
|
args: [{ providedIn: 'root' }]
|
|
23514
23533
|
}] });
|
|
23515
23534
|
|
|
23535
|
+
/** TTL por defeito para sessão de consulta em memória (volta do cadastro). */
|
|
23536
|
+
const STRUCTRA_CONSULTA_GRID_STATE_TTL_MS_DEFAULT = 120_000;
|
|
23537
|
+
|
|
23538
|
+
function normalizeRoutePath(path) {
|
|
23539
|
+
let p = path.trim().split('?')[0];
|
|
23540
|
+
if (p.length > 1 && p.endsWith('/')) {
|
|
23541
|
+
p = p.slice(0, -1);
|
|
23542
|
+
}
|
|
23543
|
+
return p;
|
|
23544
|
+
}
|
|
23545
|
+
function cloneSessionState(state) {
|
|
23546
|
+
try {
|
|
23547
|
+
return structuredClone(state);
|
|
23548
|
+
}
|
|
23549
|
+
catch {
|
|
23550
|
+
return JSON.parse(JSON.stringify(state));
|
|
23551
|
+
}
|
|
23552
|
+
}
|
|
23553
|
+
/**
|
|
23554
|
+
* Chave estável: tenant + entidade (chaveConsulta) + rota da listagem.
|
|
23555
|
+
*/
|
|
23556
|
+
function buildConsultaGridStateSessionKey(parts) {
|
|
23557
|
+
const tenant = (parts.tenantId ?? '').trim().toLowerCase() || '_';
|
|
23558
|
+
const entity = parts.chaveConsulta.trim().toLowerCase() || 'consulta';
|
|
23559
|
+
const route = normalizeRoutePath(parts.routePath) || '/';
|
|
23560
|
+
const body = `${tenant}\u001e${route}`;
|
|
23561
|
+
return `${entity}${CONSULTA_LISTA_CACHE_NS_SEP}${body}`;
|
|
23562
|
+
}
|
|
23563
|
+
/**
|
|
23564
|
+
* Cache central em memória do estado da consulta (lista, filtros, paginação) para repor
|
|
23565
|
+
* ao voltar do cadastro sem novo fetch — complementa snapshot gRPC e `history.state`.
|
|
23566
|
+
*/
|
|
23567
|
+
class StructraConsultaGridStateService {
|
|
23568
|
+
constructor() {
|
|
23569
|
+
this.sessions = new ConsultaPageCache();
|
|
23570
|
+
this.pendingPatches = new Map();
|
|
23571
|
+
}
|
|
23572
|
+
buildSessionKey(parts) {
|
|
23573
|
+
return buildConsultaGridStateSessionKey(parts);
|
|
23574
|
+
}
|
|
23575
|
+
saveSession(key, state, ttlMs = STRUCTRA_CONSULTA_GRID_STATE_TTL_MS_DEFAULT) {
|
|
23576
|
+
const ns = state.chaveConsulta.trim().toLowerCase() || 'consulta';
|
|
23577
|
+
const now = Date.now();
|
|
23578
|
+
this.sessions.pruneExpired(ns, ttlMs, now);
|
|
23579
|
+
this.sessions.set(key, cloneSessionState(state), ns, 32, now);
|
|
23580
|
+
}
|
|
23581
|
+
getSession(key, chaveConsulta, ttlMs = STRUCTRA_CONSULTA_GRID_STATE_TTL_MS_DEFAULT) {
|
|
23582
|
+
const ns = chaveConsulta.trim().toLowerCase() || 'consulta';
|
|
23583
|
+
const now = Date.now();
|
|
23584
|
+
this.sessions.pruneExpired(ns, ttlMs, now);
|
|
23585
|
+
const hit = this.sessions.get(key, ttlMs, now);
|
|
23586
|
+
return hit ? cloneSessionState(hit) : undefined;
|
|
23587
|
+
}
|
|
23588
|
+
hasValidSession(key, chaveConsulta, ttlMs = STRUCTRA_CONSULTA_GRID_STATE_TTL_MS_DEFAULT) {
|
|
23589
|
+
const ns = chaveConsulta.trim().toLowerCase() || 'consulta';
|
|
23590
|
+
const now = Date.now();
|
|
23591
|
+
this.sessions.pruneExpired(ns, ttlMs, now);
|
|
23592
|
+
return this.sessions.hasValid(key, ttlMs, now);
|
|
23593
|
+
}
|
|
23594
|
+
markReturnFromCadastroPending(key, chaveConsulta, ttlMs) {
|
|
23595
|
+
const session = this.getSession(key, chaveConsulta, ttlMs);
|
|
23596
|
+
if (!session) {
|
|
23597
|
+
return;
|
|
23598
|
+
}
|
|
23599
|
+
this.saveSession(key, { ...session, returnFromCadastroPending: true }, ttlMs);
|
|
23600
|
+
}
|
|
23601
|
+
clearSession(key) {
|
|
23602
|
+
this.sessions.delete(key);
|
|
23603
|
+
}
|
|
23604
|
+
clearForConsulta(chaveConsulta) {
|
|
23605
|
+
const slug = chaveConsulta.trim().toLowerCase();
|
|
23606
|
+
if (!slug) {
|
|
23607
|
+
return;
|
|
23608
|
+
}
|
|
23609
|
+
this.pendingPatches.delete(slug);
|
|
23610
|
+
this.sessions.clearNamespace(slug);
|
|
23611
|
+
}
|
|
23612
|
+
clearAll() {
|
|
23613
|
+
this.sessions.clear();
|
|
23614
|
+
this.pendingPatches.clear();
|
|
23615
|
+
}
|
|
23616
|
+
queuePendingPatch(patch) {
|
|
23617
|
+
const chave = patch.chaveConsulta.trim().toLowerCase();
|
|
23618
|
+
if (!chave) {
|
|
23619
|
+
return;
|
|
23620
|
+
}
|
|
23621
|
+
this.pendingPatches.set(chave, {
|
|
23622
|
+
...patch,
|
|
23623
|
+
chaveConsulta: chave,
|
|
23624
|
+
timestamp: Date.now(),
|
|
23625
|
+
});
|
|
23626
|
+
}
|
|
23627
|
+
peekPendingPatch(chaveConsulta) {
|
|
23628
|
+
const chave = chaveConsulta.trim().toLowerCase();
|
|
23629
|
+
const hit = this.pendingPatches.get(chave);
|
|
23630
|
+
return hit ? { ...hit } : undefined;
|
|
23631
|
+
}
|
|
23632
|
+
consumePendingPatch(chaveConsulta) {
|
|
23633
|
+
const chave = chaveConsulta.trim().toLowerCase();
|
|
23634
|
+
const hit = this.pendingPatches.get(chave);
|
|
23635
|
+
if (!hit) {
|
|
23636
|
+
return undefined;
|
|
23637
|
+
}
|
|
23638
|
+
this.pendingPatches.delete(chave);
|
|
23639
|
+
return { ...hit };
|
|
23640
|
+
}
|
|
23641
|
+
clearPendingPatch(chaveConsulta) {
|
|
23642
|
+
this.pendingPatches.delete(chaveConsulta.trim().toLowerCase());
|
|
23643
|
+
}
|
|
23644
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraConsultaGridStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23645
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraConsultaGridStateService, providedIn: 'root' }); }
|
|
23646
|
+
}
|
|
23647
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraConsultaGridStateService, decorators: [{
|
|
23648
|
+
type: Injectable,
|
|
23649
|
+
args: [{ providedIn: 'root' }]
|
|
23650
|
+
}] });
|
|
23651
|
+
|
|
23652
|
+
const STRUCTRA_CONSULTA_GRID_STATE_TENANT_RESOLVER = new InjectionToken('STRUCTRA_CONSULTA_GRID_STATE_TENANT_RESOLVER');
|
|
23653
|
+
/** Emite quando a sessão deve limpar caches de consulta (logout, troca de tenant). */
|
|
23654
|
+
const STRUCTRA_CONSULTA_GRID_STATE_SESSION_RESET = new InjectionToken('STRUCTRA_CONSULTA_GRID_STATE_SESSION_RESET');
|
|
23655
|
+
|
|
23656
|
+
/**
|
|
23657
|
+
* Activa {@link StructraConsultaGridStateService} e liga reset de sessão (logout / troca de tenant).
|
|
23658
|
+
*/
|
|
23659
|
+
function provideStructraConsultaGridState() {
|
|
23660
|
+
return makeEnvironmentProviders([
|
|
23661
|
+
{
|
|
23662
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
23663
|
+
multi: true,
|
|
23664
|
+
useFactory: () => {
|
|
23665
|
+
const gridState = inject(StructraConsultaGridStateService);
|
|
23666
|
+
const reset = inject(STRUCTRA_CONSULTA_GRID_STATE_SESSION_RESET, { optional: true });
|
|
23667
|
+
return () => {
|
|
23668
|
+
reset?.subscribe(() => gridState.clearAll());
|
|
23669
|
+
};
|
|
23670
|
+
},
|
|
23671
|
+
},
|
|
23672
|
+
]);
|
|
23673
|
+
}
|
|
23674
|
+
|
|
23675
|
+
function idsEquivalentes(a, b) {
|
|
23676
|
+
return a.trim().toLowerCase() === b.trim().toLowerCase();
|
|
23677
|
+
}
|
|
23678
|
+
function cloneItems(items) {
|
|
23679
|
+
try {
|
|
23680
|
+
return structuredClone(items);
|
|
23681
|
+
}
|
|
23682
|
+
catch {
|
|
23683
|
+
return JSON.parse(JSON.stringify(items));
|
|
23684
|
+
}
|
|
23685
|
+
}
|
|
23686
|
+
/**
|
|
23687
|
+
* Aplica patch local à lista da consulta após gravar/excluir/cancelar no cadastro.
|
|
23688
|
+
*/
|
|
23689
|
+
function applyConsultaListaPatch(items, patch, options) {
|
|
23690
|
+
const getId = options.getIdItem;
|
|
23691
|
+
const base = cloneItems(items);
|
|
23692
|
+
if (patch.kind === 'return-only') {
|
|
23693
|
+
return { items: base, applied: true, unsafe: false };
|
|
23694
|
+
}
|
|
23695
|
+
if (patch.kind === 'deleted') {
|
|
23696
|
+
const id = String(patch.idRemovido ?? '').trim();
|
|
23697
|
+
if (!id) {
|
|
23698
|
+
return { items: base, applied: false, unsafe: true };
|
|
23699
|
+
}
|
|
23700
|
+
const next = base.filter((u) => !idsEquivalentes(getId(u), id));
|
|
23701
|
+
if (next.length === base.length) {
|
|
23702
|
+
return { items: base, applied: false, unsafe: true };
|
|
23703
|
+
}
|
|
23704
|
+
return { items: next, applied: true, unsafe: false };
|
|
23705
|
+
}
|
|
23706
|
+
const rawItem = patch.item;
|
|
23707
|
+
if (rawItem == null || typeof rawItem !== 'object') {
|
|
23708
|
+
return { items: base, applied: false, unsafe: true };
|
|
23709
|
+
}
|
|
23710
|
+
const linha = rawItem;
|
|
23711
|
+
const idLinha = getId(linha);
|
|
23712
|
+
if (!idLinha.trim()) {
|
|
23713
|
+
return { items: base, applied: false, unsafe: true };
|
|
23714
|
+
}
|
|
23715
|
+
const matches = options.itemMatchesConsulta?.(linha) ?? true;
|
|
23716
|
+
const idx = base.findIndex((u) => idsEquivalentes(getId(u), idLinha));
|
|
23717
|
+
if (patch.kind === 'updated') {
|
|
23718
|
+
if (idx < 0) {
|
|
23719
|
+
if (!matches) {
|
|
23720
|
+
return { items: base, applied: false, unsafe: true };
|
|
23721
|
+
}
|
|
23722
|
+
return { items: [linha, ...base], applied: true, unsafe: false };
|
|
23723
|
+
}
|
|
23724
|
+
if (!matches) {
|
|
23725
|
+
const next = base.filter((_, i) => i !== idx);
|
|
23726
|
+
return { items: next, applied: true, unsafe: false };
|
|
23727
|
+
}
|
|
23728
|
+
const next = base.map((u, i) => (i === idx ? linha : u));
|
|
23729
|
+
return { items: next, applied: true, unsafe: false };
|
|
23730
|
+
}
|
|
23731
|
+
if (patch.kind === 'created') {
|
|
23732
|
+
if (idx >= 0) {
|
|
23733
|
+
const next = base.map((u, i) => (i === idx ? linha : u));
|
|
23734
|
+
return { items: next, applied: true, unsafe: false };
|
|
23735
|
+
}
|
|
23736
|
+
if (!matches) {
|
|
23737
|
+
return { items: base, applied: false, unsafe: true };
|
|
23738
|
+
}
|
|
23739
|
+
return { items: [linha, ...base], applied: true, unsafe: false };
|
|
23740
|
+
}
|
|
23741
|
+
return { items: base, applied: false, unsafe: true };
|
|
23742
|
+
}
|
|
23743
|
+
function consultaCadastroPatchKindFromModo(modo) {
|
|
23744
|
+
return modo === 'novo' ? 'created' : 'updated';
|
|
23745
|
+
}
|
|
23746
|
+
|
|
23747
|
+
/** Chaves `history.state` para lista ↔ cadastro quando não há entrada no registry legacy. */
|
|
23748
|
+
function consultaNavKeysStructra(slug) {
|
|
23749
|
+
const s = slug.trim().toLowerCase() || 'cadastro';
|
|
23750
|
+
return {
|
|
23751
|
+
linhaGravada: `structra:consulta:${s}:linha-gravada`,
|
|
23752
|
+
voltarSemRecarregar: `structra:consulta:${s}:voltar-sem-recarregar`,
|
|
23753
|
+
idExcluido: `structra:consulta:${s}:id-excluido`,
|
|
23754
|
+
};
|
|
23755
|
+
}
|
|
23756
|
+
|
|
23516
23757
|
/**
|
|
23517
23758
|
* Factory que devolve o utilizador actual (ex.: `() => auth.getUser()`).
|
|
23518
23759
|
* Sobrescrever na app com `deps` + `useFactory` ligado ao serviço de auth.
|
|
@@ -25025,16 +25266,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
25025
25266
|
args: ['cadastroValorAtivoNg', { read: NgModel }]
|
|
25026
25267
|
}] } });
|
|
25027
25268
|
|
|
25028
|
-
/** Chaves `history.state` para lista ↔ cadastro quando não há entrada no registry legacy. */
|
|
25029
|
-
function consultaNavKeysStructra(slug) {
|
|
25030
|
-
const s = slug.trim().toLowerCase() || 'cadastro';
|
|
25031
|
-
return {
|
|
25032
|
-
linhaGravada: `structra:consulta:${s}:linha-gravada`,
|
|
25033
|
-
voltarSemRecarregar: `structra:consulta:${s}:voltar-sem-recarregar`,
|
|
25034
|
-
idExcluido: `structra:consulta:${s}:id-excluido`,
|
|
25035
|
-
};
|
|
25036
|
-
}
|
|
25037
|
-
|
|
25038
25269
|
/** Menu «⋯» do select «Filtro» quando há preset seleccionado. */
|
|
25039
25270
|
const CONSULTA_FILTRO_PRESET_CONTEXT_MENU_ID = 'consulta-filtro-preset-context';
|
|
25040
25271
|
const CTX_MENU_EDITAR_FILTRO_PRESET = 'ctx-editar-filtro-preset';
|
|
@@ -25057,6 +25288,10 @@ class ConsultaBasePageComponent {
|
|
|
25057
25288
|
this.navContentReady = inject(STRUCTRA_SHELL_NAV_CONTENT_READY);
|
|
25058
25289
|
this.injector = inject(Injector);
|
|
25059
25290
|
this.listaMemoriaCache = inject(ConsultaListaMemoriaCacheService);
|
|
25291
|
+
this.gridState = inject(StructraConsultaGridStateService);
|
|
25292
|
+
this.gridStateTenantResolver = inject(STRUCTRA_CONSULTA_GRID_STATE_TENANT_RESOLVER, {
|
|
25293
|
+
optional: true,
|
|
25294
|
+
});
|
|
25060
25295
|
this.router = inject(Router);
|
|
25061
25296
|
this.routeReuse = inject(CONSULTA_ROUTE_REUSE, { optional: true }) ?? NO_OP_CONSULTA_ROUTE_REUSE;
|
|
25062
25297
|
this.bp = inject(BreakpointObserver);
|
|
@@ -25077,7 +25312,10 @@ class ConsultaBasePageComponent {
|
|
|
25077
25312
|
chaveConsulta: chave,
|
|
25078
25313
|
returnUrl: this.router.url,
|
|
25079
25314
|
navVoltarSemRecarregarKey: navKeys.voltarSemRecarregar,
|
|
25080
|
-
flushScroll: () =>
|
|
25315
|
+
flushScroll: () => {
|
|
25316
|
+
this.persistirEstadoGridConsulta();
|
|
25317
|
+
this.scrollPreserveHostDetach?.flush();
|
|
25318
|
+
},
|
|
25081
25319
|
};
|
|
25082
25320
|
}, ...(ngDevMode ? [{ debugName: "gridNavigatePreserve" }] : /* istanbul ignore next */ []));
|
|
25083
25321
|
this.cadastroFiltroDialog = viewChild.required(ConsultaCadastroFiltroDialogComponent);
|
|
@@ -25364,14 +25602,8 @@ class ConsultaBasePageComponent {
|
|
|
25364
25602
|
static { this.CONSULTA_MULTISELECT_IDS_VAZIO = []; }
|
|
25365
25603
|
ngOnInit() {
|
|
25366
25604
|
/**
|
|
25367
|
-
*
|
|
25368
|
-
*
|
|
25369
|
-
* em memória da lista para garantir que o `tentarHidratarListaDoCacheSincrono` mais
|
|
25370
|
-
* abaixo não devolve dados antigos — assim o utilizador vê sempre os registos
|
|
25371
|
-
* inseridos/alterados/removidos depois do fetch real.
|
|
25372
|
-
*
|
|
25373
|
-
* Outras formas de chegar à consulta (menu, link directo, refresh) não passam esta chave
|
|
25374
|
-
* e continuam a aproveitar o cache em memória.
|
|
25605
|
+
* Opt-in explícito (`STRUCTRA_CONSULTA_FORCE_REFRESH_KEY` em `history.state`) para invalidar
|
|
25606
|
+
* cache da lista e forçar fetch. Voltar normal do cadastro usa patch em memória / grid state.
|
|
25375
25607
|
*/
|
|
25376
25608
|
this.consumirForceRefreshDoHistoryState();
|
|
25377
25609
|
const rt = this.runtime();
|
|
@@ -25430,17 +25662,40 @@ class ConsultaBasePageComponent {
|
|
|
25430
25662
|
}
|
|
25431
25663
|
/**
|
|
25432
25664
|
* Voltar do cadastro (`skip-fetch`): repor itens **antes** de ir à rede pelos presets/metadata.
|
|
25433
|
-
*
|
|
25665
|
+
* Grid state + patch têm prioridade sobre `history.state`/snapshot legado — evita repor lista
|
|
25666
|
+
* stale e descartar o patch enfileirado no save.
|
|
25434
25667
|
*/
|
|
25435
|
-
|
|
25436
|
-
|
|
25437
|
-
|
|
25438
|
-
|
|
25439
|
-
|
|
25440
|
-
|
|
25441
|
-
|
|
25668
|
+
let mode = this.tentarRestaurarGridStateDoCadastro();
|
|
25669
|
+
if (mode === 'fetch') {
|
|
25670
|
+
mode = this.tentarSkipFetchComPatchNoSnapshotServico();
|
|
25671
|
+
}
|
|
25672
|
+
if (mode === 'fetch') {
|
|
25673
|
+
if (this.detectarRetornoDoCadastro()) {
|
|
25674
|
+
this.limparSomenteListaMemoriaCache();
|
|
25675
|
+
}
|
|
25676
|
+
mode =
|
|
25677
|
+
rt.onConsultaStartup?.({
|
|
25678
|
+
setItems: (items) => {
|
|
25679
|
+
this.chaveListaExibidaNaUi = null;
|
|
25680
|
+
this.items.set(items);
|
|
25681
|
+
},
|
|
25682
|
+
filtroUi: this.filtroUiServidor(),
|
|
25683
|
+
}) ?? 'fetch';
|
|
25684
|
+
}
|
|
25685
|
+
const patchMode = this.tentarAplicarPatchPendenteAosItemsActuais();
|
|
25686
|
+
if (patchMode === 'skip-fetch') {
|
|
25687
|
+
mode = 'skip-fetch';
|
|
25688
|
+
}
|
|
25689
|
+
else if (mode === 'skip-fetch' && patchMode === 'patch-failed') {
|
|
25690
|
+
/**
|
|
25691
|
+
* Snapshot/`history.state` repôs lista antiga mas o patch enfileirado no save falhou
|
|
25692
|
+
* (ex.: `linhaSalvaParaLista` omisso) — força fetch em vez de ficar com dados stale.
|
|
25693
|
+
*/
|
|
25694
|
+
mode = 'fetch';
|
|
25695
|
+
this.limparSomenteListaMemoriaCache();
|
|
25696
|
+
}
|
|
25442
25697
|
if (mode === 'skip-fetch') {
|
|
25443
|
-
this.
|
|
25698
|
+
this.limparSomenteListaMemoriaCache();
|
|
25444
25699
|
}
|
|
25445
25700
|
if (mode === 'fetch') {
|
|
25446
25701
|
this.tentarHidratarListaDoCacheSincrono();
|
|
@@ -25492,7 +25747,9 @@ class ConsultaBasePageComponent {
|
|
|
25492
25747
|
filtroUi = this.filtroUiServidor();
|
|
25493
25748
|
}
|
|
25494
25749
|
else {
|
|
25495
|
-
|
|
25750
|
+
if (mode !== 'skip-fetch') {
|
|
25751
|
+
this.limparCacheListaConsulta();
|
|
25752
|
+
}
|
|
25496
25753
|
try {
|
|
25497
25754
|
const b = await rt.loadConsultaBundleAsync();
|
|
25498
25755
|
presetList = b.presets;
|
|
@@ -25956,6 +26213,7 @@ class ConsultaBasePageComponent {
|
|
|
25956
26213
|
if (link == null || link === '') {
|
|
25957
26214
|
return;
|
|
25958
26215
|
}
|
|
26216
|
+
this.persistirEstadoGridConsulta();
|
|
25959
26217
|
const key = buildRouteReuseKeyFromNovoRouterLink(link);
|
|
25960
26218
|
if (key !== '') {
|
|
25961
26219
|
this.routeReuse.invalidateRouteReuseKey(key);
|
|
@@ -26012,12 +26270,242 @@ class ConsultaBasePageComponent {
|
|
|
26012
26270
|
this.presets.set(list);
|
|
26013
26271
|
}
|
|
26014
26272
|
limparCacheListaConsulta() {
|
|
26273
|
+
this.limparSomenteListaMemoriaCache();
|
|
26274
|
+
const ns = this.runtimeConsulta().consultaListaCacheNamespace?.trim();
|
|
26275
|
+
if (ns) {
|
|
26276
|
+
this.gridState.clearForConsulta(ns);
|
|
26277
|
+
}
|
|
26278
|
+
}
|
|
26279
|
+
/** Invalida só páginas em memória da lista — preserva sessão/patch do grid state. */
|
|
26280
|
+
limparSomenteListaMemoriaCache() {
|
|
26015
26281
|
const ns = this.runtimeConsulta().consultaListaCacheNamespace?.trim();
|
|
26016
|
-
if (ns)
|
|
26282
|
+
if (ns) {
|
|
26017
26283
|
this.listaMemoriaCache.clearConsulta(ns);
|
|
26284
|
+
}
|
|
26018
26285
|
this.ultimaChaveOrdenacaoListaCache = null;
|
|
26019
26286
|
this.chaveListaExibidaNaUi = null;
|
|
26020
26287
|
}
|
|
26288
|
+
resolveNavVoltarSemRecarregarKey() {
|
|
26289
|
+
const chave = this.runtimeConsulta().consultaListaCacheNamespace?.trim();
|
|
26290
|
+
if (!chave) {
|
|
26291
|
+
return undefined;
|
|
26292
|
+
}
|
|
26293
|
+
return consultaNavKeysStructra(chave).voltarSemRecarregar;
|
|
26294
|
+
}
|
|
26295
|
+
historyTemVoltarSemRecarregar() {
|
|
26296
|
+
const key = this.resolveNavVoltarSemRecarregarKey();
|
|
26297
|
+
if (!key) {
|
|
26298
|
+
return false;
|
|
26299
|
+
}
|
|
26300
|
+
try {
|
|
26301
|
+
const navSt = history.state;
|
|
26302
|
+
return navSt != null && typeof navSt === 'object' && navSt[key] === true;
|
|
26303
|
+
}
|
|
26304
|
+
catch {
|
|
26305
|
+
return false;
|
|
26306
|
+
}
|
|
26307
|
+
}
|
|
26308
|
+
detectarRetornoDoCadastro() {
|
|
26309
|
+
const chave = this.runtimeConsulta().consultaListaCacheNamespace?.trim();
|
|
26310
|
+
if (!chave) {
|
|
26311
|
+
return false;
|
|
26312
|
+
}
|
|
26313
|
+
if (this.gridState.peekPendingPatch(chave)) {
|
|
26314
|
+
return true;
|
|
26315
|
+
}
|
|
26316
|
+
return this.historyTemVoltarSemRecarregar();
|
|
26317
|
+
}
|
|
26318
|
+
aplicarPatchPendenteAItems(items, patch, appliedConsultaOverride) {
|
|
26319
|
+
const rt = this.runtimeConsulta();
|
|
26320
|
+
const getIdItem = (item) => String(item.id ?? '');
|
|
26321
|
+
const appliedSnap = appliedConsultaOverride !== undefined ? appliedConsultaOverride : this.appliedConsulta();
|
|
26322
|
+
const presetSnap = appliedSnap
|
|
26323
|
+
? this.presets().find((p) => p.id === appliedSnap.presetId)
|
|
26324
|
+
: undefined;
|
|
26325
|
+
const result = applyConsultaListaPatch(items, patch, {
|
|
26326
|
+
getIdItem,
|
|
26327
|
+
itemMatchesConsulta: patch.kind === 'return-only' || !appliedSnap || !presetSnap?.itens?.length
|
|
26328
|
+
? undefined
|
|
26329
|
+
: (item) => rt.itemPassaConsulta(item, presetSnap.itens, appliedSnap.valores),
|
|
26330
|
+
});
|
|
26331
|
+
if (patch.kind !== 'return-only' && (!result.applied || result.unsafe)) {
|
|
26332
|
+
return null;
|
|
26333
|
+
}
|
|
26334
|
+
return result.items;
|
|
26335
|
+
}
|
|
26336
|
+
/**
|
|
26337
|
+
* Fallback quando a sessão de grid state falhou mas o cadastro enfileirou patch —
|
|
26338
|
+
* repõe snapshot gRPC e aplica merge local (sem fetch).
|
|
26339
|
+
*/
|
|
26340
|
+
tentarSkipFetchComPatchNoSnapshotServico() {
|
|
26341
|
+
const chave = this.runtimeConsulta().consultaListaCacheNamespace?.trim();
|
|
26342
|
+
if (!chave) {
|
|
26343
|
+
return 'fetch';
|
|
26344
|
+
}
|
|
26345
|
+
const patch = this.gridState.peekPendingPatch(chave);
|
|
26346
|
+
if (!patch || patch.kind === 'return-only') {
|
|
26347
|
+
return 'fetch';
|
|
26348
|
+
}
|
|
26349
|
+
const snap = this.runtimeConsulta().lerSnapshotListaConsulta?.() ?? null;
|
|
26350
|
+
if (snap == null) {
|
|
26351
|
+
return 'fetch';
|
|
26352
|
+
}
|
|
26353
|
+
const consumed = this.gridState.consumePendingPatch(chave);
|
|
26354
|
+
if (!consumed) {
|
|
26355
|
+
return 'fetch';
|
|
26356
|
+
}
|
|
26357
|
+
const next = this.aplicarPatchPendenteAItems(snap, consumed);
|
|
26358
|
+
if (next == null) {
|
|
26359
|
+
return 'fetch';
|
|
26360
|
+
}
|
|
26361
|
+
this.items.set(next);
|
|
26362
|
+
this.runtimeConsulta().onListaAlteradaLocalmente?.(next);
|
|
26363
|
+
this.limparHistoryVoltarSemRecarregarSePresente();
|
|
26364
|
+
return 'skip-fetch';
|
|
26365
|
+
}
|
|
26366
|
+
/**
|
|
26367
|
+
* Última tentativa: `onConsultaStartup` repôs snapshot antigo (voltarSemRecarregar) —
|
|
26368
|
+
* aplica patch enfileirado no save antes de aceitar skip-fetch.
|
|
26369
|
+
*/
|
|
26370
|
+
tentarAplicarPatchPendenteAosItemsActuais() {
|
|
26371
|
+
const chave = this.runtimeConsulta().consultaListaCacheNamespace?.trim();
|
|
26372
|
+
if (!chave) {
|
|
26373
|
+
return 'no-patch';
|
|
26374
|
+
}
|
|
26375
|
+
const patch = this.gridState.consumePendingPatch(chave);
|
|
26376
|
+
if (!patch) {
|
|
26377
|
+
return 'no-patch';
|
|
26378
|
+
}
|
|
26379
|
+
const next = this.aplicarPatchPendenteAItems(this.items(), patch);
|
|
26380
|
+
if (next == null) {
|
|
26381
|
+
return 'patch-failed';
|
|
26382
|
+
}
|
|
26383
|
+
this.items.set(next);
|
|
26384
|
+
this.runtimeConsulta().onListaAlteradaLocalmente?.(next);
|
|
26385
|
+
this.limparHistoryVoltarSemRecarregarSePresente();
|
|
26386
|
+
return 'skip-fetch';
|
|
26387
|
+
}
|
|
26388
|
+
resolveGridStateTenantId() {
|
|
26389
|
+
return this.gridStateTenantResolver?.() ?? null;
|
|
26390
|
+
}
|
|
26391
|
+
buildGridStateSessionKey() {
|
|
26392
|
+
const chave = this.runtimeConsulta().consultaListaCacheNamespace?.trim();
|
|
26393
|
+
if (!chave) {
|
|
26394
|
+
return null;
|
|
26395
|
+
}
|
|
26396
|
+
const routePath = this.router.url.split('?')[0] ?? '';
|
|
26397
|
+
return this.gridState.buildSessionKey({
|
|
26398
|
+
tenantId: this.resolveGridStateTenantId(),
|
|
26399
|
+
chaveConsulta: chave,
|
|
26400
|
+
routePath,
|
|
26401
|
+
});
|
|
26402
|
+
}
|
|
26403
|
+
/** Grava estado completo da consulta antes de sair para cadastro (patch ao voltar). */
|
|
26404
|
+
persistirEstadoGridConsulta() {
|
|
26405
|
+
const rt = this.runtimeConsulta();
|
|
26406
|
+
const chave = rt.consultaListaCacheNamespace?.trim();
|
|
26407
|
+
if (!chave) {
|
|
26408
|
+
return;
|
|
26409
|
+
}
|
|
26410
|
+
const sessionKey = this.buildGridStateSessionKey();
|
|
26411
|
+
if (!sessionKey) {
|
|
26412
|
+
return;
|
|
26413
|
+
}
|
|
26414
|
+
const slice = this.resolveConsultaListaQuerySlice();
|
|
26415
|
+
const cacheKey = this.montarCacheKeyListaOuNull(undefined, slice);
|
|
26416
|
+
const applied = this.appliedConsulta();
|
|
26417
|
+
this.gridState.saveSession(sessionKey, {
|
|
26418
|
+
items: this.items(),
|
|
26419
|
+
total: this.items().length,
|
|
26420
|
+
chrome: {
|
|
26421
|
+
consultaPresetId: this.consultaPresetId(),
|
|
26422
|
+
consultaValores: { ...this.consultaValores() },
|
|
26423
|
+
appliedConsulta: applied
|
|
26424
|
+
? { presetId: applied.presetId, valores: { ...applied.valores } }
|
|
26425
|
+
: null,
|
|
26426
|
+
painelFiltroRecolhido: this.painelFiltroRecolhido(),
|
|
26427
|
+
},
|
|
26428
|
+
querySlice: slice,
|
|
26429
|
+
listaCacheKey: cacheKey,
|
|
26430
|
+
routePath: this.router.url.split('?')[0] ?? '',
|
|
26431
|
+
chaveConsulta: chave,
|
|
26432
|
+
tenantId: this.resolveGridStateTenantId(),
|
|
26433
|
+
timestamp: Date.now(),
|
|
26434
|
+
returnFromCadastroPending: true,
|
|
26435
|
+
});
|
|
26436
|
+
}
|
|
26437
|
+
/**
|
|
26438
|
+
* Fallback quando `history.state` não traz patch — repõe sessão gravada ao sair para cadastro.
|
|
26439
|
+
*/
|
|
26440
|
+
tentarRestaurarGridStateDoCadastro() {
|
|
26441
|
+
const rt = this.runtimeConsulta();
|
|
26442
|
+
const chave = rt.consultaListaCacheNamespace?.trim();
|
|
26443
|
+
if (!chave) {
|
|
26444
|
+
return 'fetch';
|
|
26445
|
+
}
|
|
26446
|
+
const sessionKey = this.buildGridStateSessionKey();
|
|
26447
|
+
if (!sessionKey || !this.gridState.hasValidSession(sessionKey, chave)) {
|
|
26448
|
+
return 'fetch';
|
|
26449
|
+
}
|
|
26450
|
+
const session = this.gridState.getSession(sessionKey, chave);
|
|
26451
|
+
const pendingPatch = this.gridState.peekPendingPatch(chave);
|
|
26452
|
+
const voltarSemRecarregar = this.historyTemVoltarSemRecarregar();
|
|
26453
|
+
const deveRestaurarSessao = session != null &&
|
|
26454
|
+
(session.returnFromCadastroPending || pendingPatch != null || voltarSemRecarregar);
|
|
26455
|
+
if (!deveRestaurarSessao) {
|
|
26456
|
+
return 'fetch';
|
|
26457
|
+
}
|
|
26458
|
+
const sessionState = session;
|
|
26459
|
+
let items = sessionState.items;
|
|
26460
|
+
const patch = this.gridState.consumePendingPatch(chave);
|
|
26461
|
+
if (patch) {
|
|
26462
|
+
const next = this.aplicarPatchPendenteAItems(items, patch, sessionState.chrome.appliedConsulta);
|
|
26463
|
+
if (next == null) {
|
|
26464
|
+
return 'fetch';
|
|
26465
|
+
}
|
|
26466
|
+
items = next;
|
|
26467
|
+
}
|
|
26468
|
+
this.chaveListaExibidaNaUi = sessionState.listaCacheKey;
|
|
26469
|
+
this.consultaPresetId.set(sessionState.chrome.consultaPresetId);
|
|
26470
|
+
this.consultaValores.set({ ...sessionState.chrome.consultaValores });
|
|
26471
|
+
this.appliedConsulta.set(sessionState.chrome.appliedConsulta
|
|
26472
|
+
? {
|
|
26473
|
+
presetId: sessionState.chrome.appliedConsulta.presetId,
|
|
26474
|
+
valores: { ...sessionState.chrome.appliedConsulta.valores },
|
|
26475
|
+
}
|
|
26476
|
+
: null);
|
|
26477
|
+
if (sessionState.chrome.painelFiltroRecolhido !== undefined) {
|
|
26478
|
+
this.painelFiltroRecolhido.set(sessionState.chrome.painelFiltroRecolhido);
|
|
26479
|
+
}
|
|
26480
|
+
this.items.set(items);
|
|
26481
|
+
rt.onListaAlteradaLocalmente?.(items);
|
|
26482
|
+
this.gridState.saveSession(sessionKey, {
|
|
26483
|
+
...sessionState,
|
|
26484
|
+
items,
|
|
26485
|
+
returnFromCadastroPending: false,
|
|
26486
|
+
timestamp: Date.now(),
|
|
26487
|
+
});
|
|
26488
|
+
this.limparHistoryVoltarSemRecarregarSePresente();
|
|
26489
|
+
return 'skip-fetch';
|
|
26490
|
+
}
|
|
26491
|
+
limparHistoryVoltarSemRecarregarSePresente() {
|
|
26492
|
+
const key = this.resolveNavVoltarSemRecarregarKey();
|
|
26493
|
+
if (!key) {
|
|
26494
|
+
return;
|
|
26495
|
+
}
|
|
26496
|
+
try {
|
|
26497
|
+
const navSt = history.state;
|
|
26498
|
+
if (!navSt || typeof navSt !== 'object' || navSt[key] !== true) {
|
|
26499
|
+
return;
|
|
26500
|
+
}
|
|
26501
|
+
const rest = { ...navSt };
|
|
26502
|
+
delete rest[key];
|
|
26503
|
+
history.replaceState(rest, '');
|
|
26504
|
+
}
|
|
26505
|
+
catch {
|
|
26506
|
+
/* SSR / ambiente sem history */
|
|
26507
|
+
}
|
|
26508
|
+
}
|
|
26021
26509
|
/**
|
|
26022
26510
|
* Detecta {@link STRUCTRA_CONSULTA_FORCE_REFRESH_KEY} em `history.state` (posto pelo botão
|
|
26023
26511
|
* voltar do cadastro) e, se presente, invalida o cache em memória da lista e remove a chave
|
|
@@ -26287,6 +26775,7 @@ class ConsultaBasePageComponent {
|
|
|
26287
26775
|
}
|
|
26288
26776
|
}
|
|
26289
26777
|
editar(row) {
|
|
26778
|
+
this.persistirEstadoGridConsulta();
|
|
26290
26779
|
this.runtimeConsulta().editar?.(row);
|
|
26291
26780
|
}
|
|
26292
26781
|
async duplicar(row) {
|
|
@@ -26850,6 +27339,10 @@ function buildConsultaPageRuntime(config, deps) {
|
|
|
26850
27339
|
onListaAlteradaLocalmente: config.onListaAlteradaLocalmente
|
|
26851
27340
|
? (items) => config.onListaAlteradaLocalmente(items)
|
|
26852
27341
|
: (items) => atualizarSnapshotListaNoServico(items),
|
|
27342
|
+
lerSnapshotListaConsulta: () => {
|
|
27343
|
+
const snap = config.listaConsulta?.getSnapshotConsulta();
|
|
27344
|
+
return snap != null ? [...snap] : null;
|
|
27345
|
+
},
|
|
26853
27346
|
toastTitleLista,
|
|
26854
27347
|
toastTitleListaAviso,
|
|
26855
27348
|
toastTitleFiltros,
|
|
@@ -31050,6 +31543,52 @@ function buildCadastroPageRuntime(config, deps, options) {
|
|
|
31050
31543
|
};
|
|
31051
31544
|
const inlineResultKey = inlineCfg?.resultStateKey ?? STRUCTRA_CADASTRO_INLINE_RESULT_KEY;
|
|
31052
31545
|
const listaUrlNavegacao = () => resolveCadastroListaUrlParaNavegacao(config.listaUrl, deps.router.url);
|
|
31546
|
+
const gridState = inj
|
|
31547
|
+
? runInInjectionContext(inj, () => inject(StructraConsultaGridStateService, { optional: true }))
|
|
31548
|
+
: undefined;
|
|
31549
|
+
const routeReuse = inj
|
|
31550
|
+
? runInInjectionContext(inj, () => inject(CONSULTA_ROUTE_REUSE, { optional: true }) ?? NO_OP_CONSULTA_ROUTE_REUSE)
|
|
31551
|
+
: NO_OP_CONSULTA_ROUTE_REUSE;
|
|
31552
|
+
const invalidateConsultaListaRouteReuse = (listaUrl) => {
|
|
31553
|
+
const key = buildRouteReuseKeyFromAppPathname((listaUrl.split('?')[0] ?? '').trim());
|
|
31554
|
+
if (key) {
|
|
31555
|
+
routeReuse.invalidateRouteReuseKey(key);
|
|
31556
|
+
}
|
|
31557
|
+
};
|
|
31558
|
+
const resolveLinhaSalvaParaPatchConsulta = (res) => {
|
|
31559
|
+
const mapped = config.linhaSalvaParaLista?.(res);
|
|
31560
|
+
if (mapped != null && typeof mapped === 'object') {
|
|
31561
|
+
return mapped;
|
|
31562
|
+
}
|
|
31563
|
+
if (cadastroResponseEntityId(res) != null) {
|
|
31564
|
+
return res;
|
|
31565
|
+
}
|
|
31566
|
+
return undefined;
|
|
31567
|
+
};
|
|
31568
|
+
const queueConsultaGridPatch = (kind, payload) => {
|
|
31569
|
+
const chave = config.consultaChaveConsulta?.trim();
|
|
31570
|
+
if (!chave || !gridState) {
|
|
31571
|
+
return;
|
|
31572
|
+
}
|
|
31573
|
+
gridState.queuePendingPatch({
|
|
31574
|
+
kind,
|
|
31575
|
+
chaveConsulta: chave,
|
|
31576
|
+
listaUrl: listaUrlNavegacao(),
|
|
31577
|
+
...(payload?.item !== undefined ? { item: payload.item } : {}),
|
|
31578
|
+
...(payload?.idRemovido ? { idRemovido: payload.idRemovido } : {}),
|
|
31579
|
+
});
|
|
31580
|
+
};
|
|
31581
|
+
const consultaChaveNormalizada = () => config.consultaChaveConsulta?.trim().toLowerCase() ?? '';
|
|
31582
|
+
const temPatchConsultaSalvoPendente = () => {
|
|
31583
|
+
const chave = consultaChaveNormalizada();
|
|
31584
|
+
if (!chave || !gridState) {
|
|
31585
|
+
return false;
|
|
31586
|
+
}
|
|
31587
|
+
const pending = gridState.peekPendingPatch(chave);
|
|
31588
|
+
return (pending != null &&
|
|
31589
|
+
pending.kind !== 'return-only' &&
|
|
31590
|
+
pending.kind !== 'deleted');
|
|
31591
|
+
};
|
|
31053
31592
|
const resolverIdEdicaoParaSalvar = () => {
|
|
31054
31593
|
if (contextId) {
|
|
31055
31594
|
const v = String(contextId() ?? '').trim();
|
|
@@ -31109,6 +31648,12 @@ function buildCadastroPageRuntime(config, deps, options) {
|
|
|
31109
31648
|
invalidateCadastroCachesParaEstaFolha();
|
|
31110
31649
|
config.onSalvarSuccess?.();
|
|
31111
31650
|
const host = resolveInlineHost();
|
|
31651
|
+
if (!host) {
|
|
31652
|
+
const linhaSalva = resolveLinhaSalvaParaPatchConsulta(res);
|
|
31653
|
+
queueConsultaGridPatch(consultaCadastroPatchKindFromModo(modoGravacao), {
|
|
31654
|
+
item: linhaSalva,
|
|
31655
|
+
});
|
|
31656
|
+
}
|
|
31112
31657
|
if (host) {
|
|
31113
31658
|
let mapped = inlineCfg?.mapSaveResult?.(res, modoGravacao);
|
|
31114
31659
|
if (mapped === undefined) {
|
|
@@ -31155,7 +31700,9 @@ function buildCadastroPageRuntime(config, deps, options) {
|
|
|
31155
31700
|
}
|
|
31156
31701
|
else if (config.navegarParaConsultaAposSalvar === true) {
|
|
31157
31702
|
const linha = config.linhaSalvaParaLista?.(res);
|
|
31158
|
-
|
|
31703
|
+
const lista = listaUrlNavegacao();
|
|
31704
|
+
invalidateConsultaListaRouteReuse(lista);
|
|
31705
|
+
await navegarVoltarListaComLinha(deps.router, lista, config.navLinhaGravadaKey, linha, config.navVoltarSemRecarregarKey);
|
|
31159
31706
|
}
|
|
31160
31707
|
else if (gravarComoNovo) {
|
|
31161
31708
|
const newId = cadastroResponseEntityId(res);
|
|
@@ -31204,6 +31751,10 @@ function buildCadastroPageRuntime(config, deps, options) {
|
|
|
31204
31751
|
}
|
|
31205
31752
|
const lista = listaUrlNavegacao().trim();
|
|
31206
31753
|
if (lista !== '') {
|
|
31754
|
+
if (!temPatchConsultaSalvoPendente()) {
|
|
31755
|
+
queueConsultaGridPatch('return-only');
|
|
31756
|
+
}
|
|
31757
|
+
invalidateConsultaListaRouteReuse(lista);
|
|
31207
31758
|
void navegarVoltarLista(deps.router, lista, config.navVoltarSemRecarregarKey);
|
|
31208
31759
|
return;
|
|
31209
31760
|
}
|
|
@@ -31319,10 +31870,15 @@ function buildCadastroPageRuntime(config, deps, options) {
|
|
|
31319
31870
|
}
|
|
31320
31871
|
}
|
|
31321
31872
|
else if (config.navIdRemovidoKey) {
|
|
31322
|
-
|
|
31873
|
+
const listaExcluir = listaUrlNavegacao();
|
|
31874
|
+
queueConsultaGridPatch('deleted', { idRemovido: eid });
|
|
31875
|
+
invalidateConsultaListaRouteReuse(listaExcluir);
|
|
31876
|
+
void navegarVoltarListaComIdRemovido(deps.router, listaExcluir, config.navIdRemovidoKey, eid, config.navVoltarSemRecarregarKey);
|
|
31323
31877
|
}
|
|
31324
31878
|
else {
|
|
31325
|
-
|
|
31879
|
+
const listaExcluir = listaUrlNavegacao();
|
|
31880
|
+
invalidateConsultaListaRouteReuse(listaExcluir);
|
|
31881
|
+
void navegarVoltarLista(deps.router, listaExcluir, config.navVoltarSemRecarregarKey);
|
|
31326
31882
|
}
|
|
31327
31883
|
}
|
|
31328
31884
|
catch (err) {
|
|
@@ -31849,16 +32405,13 @@ function createCadastroInlineReferencePart(config) {
|
|
|
31849
32405
|
const painel = opcoesPainel();
|
|
31850
32406
|
const selId = String(idSelecionadoParaCtx() ?? '').trim();
|
|
31851
32407
|
if (!selId) {
|
|
31852
|
-
return painel;
|
|
31853
|
-
}
|
|
31854
|
-
if (painel.some((o) => compareSelectValor(o.value, selId))) {
|
|
31855
|
-
return painel;
|
|
32408
|
+
return dedupeUiSelectOptionsByValue(painel, compareSelectValor);
|
|
31856
32409
|
}
|
|
31857
32410
|
const cached = opcoes().find((o) => compareSelectValor(o.value, selId));
|
|
31858
32411
|
if (cached) {
|
|
31859
|
-
return [cached, ...painel];
|
|
32412
|
+
return dedupeUiSelectOptionsByValue([cached, ...painel], compareSelectValor);
|
|
31860
32413
|
}
|
|
31861
|
-
return painel;
|
|
32414
|
+
return dedupeUiSelectOptionsByValue(painel, compareSelectValor);
|
|
31862
32415
|
}, ...(ngDevMode ? [{ debugName: "optionsParaUi" }] : /* istanbul ignore next */ []));
|
|
31863
32416
|
const contextMenuItems = computed(() => {
|
|
31864
32417
|
if (!resolveAcoesReferencia().contextMenuIdEfectivo) {
|
|
@@ -36839,6 +37392,7 @@ function createCadastroPadraoConfig(opts) {
|
|
|
36839
37392
|
(typeof service.toListItem === 'function'
|
|
36840
37393
|
? (dto) => service.toListItem(dto)
|
|
36841
37394
|
: undefined);
|
|
37395
|
+
const svcChaveConsulta = service.chaveConsulta?.trim();
|
|
36842
37396
|
const initCadastroResolved = resolveInitCadastroFn(service, initCadastroOpt, initCadastroMethod);
|
|
36843
37397
|
const svcCol = service;
|
|
36844
37398
|
const cadastroCollectionPageMerged = rest.cadastroCollectionPage ??
|
|
@@ -36857,6 +37411,7 @@ function createCadastroPadraoConfig(opts) {
|
|
|
36857
37411
|
...(mapUser != null ? { mapFormValue: mapUser } : {}),
|
|
36858
37412
|
mapErro: mapErroMerged,
|
|
36859
37413
|
...(linhaMerged != null ? { linhaSalvaParaLista: linhaMerged } : {}),
|
|
37414
|
+
...(svcChaveConsulta ? { consultaChaveConsulta: svcChaveConsulta } : {}),
|
|
36860
37415
|
};
|
|
36861
37416
|
}
|
|
36862
37417
|
/**
|
|
@@ -38330,6 +38885,10 @@ class CadastroMetadataPageStateBase {
|
|
|
38330
38885
|
navLinhaGravadaKey: nav.linhaGravada,
|
|
38331
38886
|
navVoltarSemRecarregarKey: nav.voltarSemRecarregar,
|
|
38332
38887
|
navIdRemovidoKey: nav.idExcluido,
|
|
38888
|
+
consultaChaveConsulta: this.config.consultaChaveConsulta?.trim() ||
|
|
38889
|
+
pageId.serviceKey?.trim() ||
|
|
38890
|
+
pageId.entityName?.trim() ||
|
|
38891
|
+
undefined,
|
|
38333
38892
|
toastTitle,
|
|
38334
38893
|
mensagemSalvoNovo: crudMessages.createSuccessMessage,
|
|
38335
38894
|
mensagemSalvoEdicao: crudMessages.updateSuccessMessage,
|
|
@@ -38848,6 +39407,11 @@ class CadastroPadraoPageBase extends CadastroMetadataPageBase {
|
|
|
38848
39407
|
});
|
|
38849
39408
|
}
|
|
38850
39409
|
}
|
|
39410
|
+
/**
|
|
39411
|
+
* Hook após concluir uma fase de persistência de coleções (`savePhase`).
|
|
39412
|
+
* Usado p.ex. para recalcular totais após save paralelo de serviços/peças.
|
|
39413
|
+
*/
|
|
39414
|
+
async afterCollectionSavePhase(_phase, _ctx, _parentId, _persistedInPhase) { }
|
|
38851
39415
|
/**
|
|
38852
39416
|
* Persiste deltas declarados em {@link cadastroCollectionSaveHandlers} depois da capa gravada.
|
|
38853
39417
|
* Sobrescrever `aposSalvarAntesToast` na página deve chamar `await super.aposSalvarAntesToast(ctx)` primeiro.
|
|
@@ -38862,46 +39426,93 @@ class CadastroPadraoPageBase extends CadastroMetadataPageBase {
|
|
|
38862
39426
|
return;
|
|
38863
39427
|
}
|
|
38864
39428
|
const registry = this.cadastro()?.uiRegistry;
|
|
39429
|
+
const phases = new Map();
|
|
38865
39430
|
for (const h of handlers) {
|
|
38866
|
-
const
|
|
38867
|
-
const
|
|
38868
|
-
|
|
38869
|
-
|
|
39431
|
+
const phase = h.savePhase ?? 0;
|
|
39432
|
+
const list = phases.get(phase) ?? [];
|
|
39433
|
+
list.push(h);
|
|
39434
|
+
phases.set(phase, list);
|
|
39435
|
+
}
|
|
39436
|
+
const sortedPhases = [...phases.keys()].sort((a, b) => a - b);
|
|
39437
|
+
for (const phase of sortedPhases) {
|
|
39438
|
+
const phaseHandlers = phases.get(phase) ?? [];
|
|
39439
|
+
const jobs = [];
|
|
39440
|
+
for (const h of phaseHandlers) {
|
|
39441
|
+
const job = this.persistirColecaoCadastro(ctx, parentId, registry, h);
|
|
39442
|
+
if (job) {
|
|
39443
|
+
jobs.push(job);
|
|
39444
|
+
}
|
|
38870
39445
|
}
|
|
38871
|
-
const
|
|
38872
|
-
|
|
38873
|
-
|
|
38874
|
-
|
|
38875
|
-
|
|
38876
|
-
|
|
38877
|
-
fa.length === 0 &&
|
|
38878
|
-
removidos.size === 0) {
|
|
38879
|
-
continue;
|
|
39446
|
+
const persistedInPhase = jobs.length > 0;
|
|
39447
|
+
if (jobs.length === 1) {
|
|
39448
|
+
await jobs[0];
|
|
39449
|
+
}
|
|
39450
|
+
else if (jobs.length > 1) {
|
|
39451
|
+
await Promise.all(jobs);
|
|
38880
39452
|
}
|
|
38881
|
-
|
|
39453
|
+
await this.afterCollectionSavePhase(phase, ctx, parentId, persistedInPhase);
|
|
39454
|
+
}
|
|
39455
|
+
}
|
|
39456
|
+
persistirColecaoCadastro(ctx, parentId, registry, h) {
|
|
39457
|
+
const ck = h.collectionKey;
|
|
39458
|
+
const ctl = ctx.form.get(ck);
|
|
39459
|
+
if (!(ctl instanceof FormArray)) {
|
|
39460
|
+
return null;
|
|
39461
|
+
}
|
|
39462
|
+
const fa = ctl;
|
|
39463
|
+
const hidratada = registry?.isCollectionRemoteHydrated(ck) ?? false;
|
|
39464
|
+
const removidos = this.cadastroObterOuCriarRemovidos(ck);
|
|
39465
|
+
if (ctx.modoGravacao === 'editar' &&
|
|
39466
|
+
h.skipWhenNotHydratedOnEdit === true &&
|
|
39467
|
+
!hidratada &&
|
|
39468
|
+
fa.length === 0 &&
|
|
39469
|
+
removidos.size === 0) {
|
|
39470
|
+
return null;
|
|
39471
|
+
}
|
|
39472
|
+
if (fa.length === 0 && removidos.size === 0) {
|
|
39473
|
+
return null;
|
|
39474
|
+
}
|
|
39475
|
+
const upserts = [];
|
|
39476
|
+
for (let i = 0; i < fa.length; i++) {
|
|
39477
|
+
const row = fa.at(i);
|
|
39478
|
+
if (!(row instanceof FormGroup)) {
|
|
38882
39479
|
continue;
|
|
38883
39480
|
}
|
|
38884
|
-
const
|
|
38885
|
-
|
|
38886
|
-
|
|
38887
|
-
|
|
38888
|
-
continue;
|
|
38889
|
-
}
|
|
38890
|
-
const raw = row.getRawValue();
|
|
38891
|
-
const u = h.buildUpsert(raw);
|
|
38892
|
-
if (u != null) {
|
|
38893
|
-
upserts.push(u);
|
|
38894
|
-
}
|
|
39481
|
+
const raw = row.getRawValue();
|
|
39482
|
+
const u = h.buildUpsert(raw);
|
|
39483
|
+
if (u != null) {
|
|
39484
|
+
upserts.push(u);
|
|
38895
39485
|
}
|
|
38896
|
-
|
|
38897
|
-
|
|
38898
|
-
|
|
38899
|
-
|
|
38900
|
-
|
|
38901
|
-
|
|
38902
|
-
|
|
39486
|
+
}
|
|
39487
|
+
return h
|
|
39488
|
+
.persist({
|
|
39489
|
+
parentId,
|
|
39490
|
+
response: ctx.response,
|
|
39491
|
+
form: ctx.form,
|
|
39492
|
+
upserts,
|
|
39493
|
+
removerItemIds: [...removidos],
|
|
39494
|
+
deferRecalcularTotais: h.deferRecalcularTotais === true,
|
|
39495
|
+
})
|
|
39496
|
+
.then(() => {
|
|
38903
39497
|
removidos.clear();
|
|
39498
|
+
});
|
|
39499
|
+
}
|
|
39500
|
+
colecaoCadastroTeraPersistencia(ctx, collectionKey, skipWhenNotHydratedOnEdit = true) {
|
|
39501
|
+
const ctl = ctx.form.get(collectionKey);
|
|
39502
|
+
if (!(ctl instanceof FormArray)) {
|
|
39503
|
+
return false;
|
|
38904
39504
|
}
|
|
39505
|
+
const registry = this.cadastro()?.uiRegistry;
|
|
39506
|
+
const hidratada = registry?.isCollectionRemoteHydrated(collectionKey) ?? false;
|
|
39507
|
+
const removidos = this.cadastroObterOuCriarRemovidos(collectionKey);
|
|
39508
|
+
if (ctx.modoGravacao === 'editar' &&
|
|
39509
|
+
skipWhenNotHydratedOnEdit &&
|
|
39510
|
+
!hidratada &&
|
|
39511
|
+
ctl.length === 0 &&
|
|
39512
|
+
removidos.size === 0) {
|
|
39513
|
+
return false;
|
|
39514
|
+
}
|
|
39515
|
+
return ctl.length > 0 || removidos.size > 0;
|
|
38905
39516
|
}
|
|
38906
39517
|
cadastroObterOuCriarRemovidos(collectionKey) {
|
|
38907
39518
|
let s = this.cadastroRemovidosPorColecao.get(collectionKey);
|
|
@@ -41038,14 +41649,18 @@ class FormCollectionComponent {
|
|
|
41038
41649
|
return true;
|
|
41039
41650
|
}, ...(ngDevMode ? [{ debugName: "mostrarPaginacaoRemota" }] : /* istanbul ignore next */ []));
|
|
41040
41651
|
/**
|
|
41041
|
-
* Skeleton na grelha
|
|
41042
|
-
* mantêm-se as linhas até à resposta
|
|
41652
|
+
* Skeleton na grelha enquanto o formulário ou a 1.ª página remota da coleção carrega;
|
|
41653
|
+
* durante troca de página remota mantêm-se as linhas até à resposta.
|
|
41043
41654
|
*/
|
|
41044
41655
|
this.collectionDataGridLoading = computed(() => {
|
|
41045
|
-
if (
|
|
41046
|
-
return
|
|
41656
|
+
if (this.loading()) {
|
|
41657
|
+
return true;
|
|
41658
|
+
}
|
|
41659
|
+
const st = this.pagingEstadoRemoto();
|
|
41660
|
+
if (st?.loading !== true) {
|
|
41661
|
+
return false;
|
|
41047
41662
|
}
|
|
41048
|
-
return this.
|
|
41663
|
+
return this.gridRows().length === 0;
|
|
41049
41664
|
}, ...(ngDevMode ? [{ debugName: "collectionDataGridLoading" }] : /* istanbul ignore next */ []));
|
|
41050
41665
|
this.agGridPageSize = computed(() => {
|
|
41051
41666
|
if (this.mostrarPaginacaoRemota()) {
|
|
@@ -45896,5 +46511,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
45896
46511
|
* Generated bundle index. Do not edit.
|
|
45897
46512
|
*/
|
|
45898
46513
|
|
|
45899
|
-
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, StructraAppVersionService as AppVersionService, 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, ConsultaPageLoadingSkeletonComponent, ContainerLayoutSize, ContextMenuComponent, CpfCnpjFieldComponent, DEFAULT_STRUCTRA_APP_VERSION_API_PATH, DEFAULT_STRUCTRA_APP_VERSION_FALLBACK, DEFAULT_STRUCTRA_COOKIE_NOTICE_ACCEPT_LABEL, DEFAULT_STRUCTRA_COOKIE_NOTICE_DESCRIPTION, DEFAULT_STRUCTRA_COOKIE_NOTICE_STORAGE_KEY, DEFAULT_STRUCTRA_COOKIE_NOTICE_TITLE, DEFAULT_STRUCTRA_SHELL_SCROLL_RESTORATION_OPTIONS, DEFAULT_STRUCTRA_SHELL_SIDEBAR_COLLAPSED_STORAGE_KEY, 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_APP_VERSION_CONFIG, STRUCTRA_CADASTRO_INLINE_RESULT_KEY, STRUCTRA_CADASTRO_INLINE_RETURN_KEY, STRUCTRA_CONSULTA_FORCE_REFRESH_KEY, STRUCTRA_COOKIE_NOTICE_CONFIG, 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_KANBAN_DESKTOP_MIN_WIDTH, STRUCTRA_MIDIA_PUBLIC_BASE_RESOLVER, STRUCTRA_MIDIA_UPLOAD_TRANSPORT, STRUCTRA_PAGE_CACHE_SCOPE_SEP, STRUCTRA_PAGE_FOOTER_CONFIG, STRUCTRA_PAGE_FOOTER_PARTS, STRUCTRA_PAGE_STATE_ACTIVE_TAB_PREFIX, STRUCTRA_REPORT_DEFAULT_PAGE_SIZE, STRUCTRA_REPORT_TRANSPORT, STRUCTRA_SCROLL_SESSION_RESET, STRUCTRA_SCROLL_TENANT_RESOLVER, STRUCTRA_SHELL_NAV_CONTENT_READY, 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, StructraAppVersionService, StructraBackToTopButtonComponent, StructraCookieNoticeComponent, StructraCookieNoticeService, StructraKanbanDragAutoScrollController, StructraPageCacheService, StructraPageComponentOutletComponent, StructraPageComponentRegistry, StructraPageFooterComponent, StructraPageStateCacheService, StructraPreserveScrollDirective, StructraProgressOverlayComponent, StructraReportEmptyStateComponent, StructraReportFilterPanelComponent, StructraReportLoadingSkeletonComponent, StructraReportPageBaseComponent, StructraReportPageComponent, StructraReportPaginatorComponent, StructraReportPreviewHeaderComponent, StructraReportTableComponent, StructraReportTreeCacheService, StructraReportTreeComponent, StructraReportTreeSkeletonComponent, StructraReportViewerComponent, ScriptEditorFieldComponent as StructraScriptEditorComponent, StructraScrollStateService, StructraShellScrollRestorationService, StructraShellTopbarSlotService, AppSidebarBottomActionsTemplateDirective as StructraSidebarBottomActionsDirective, AppSidebarFooterTemplateDirective as StructraSidebarFooterDirective, AppSidebarHeaderTemplateDirective as StructraSidebarHeaderDirective, AppSidebarUserInfoTemplateDirective as StructraSidebarUserInfoDirective, StructraSidebarUserPanelComponent, StructraTreeExpandStateService, 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, attachStructraScrollPreserve, buildCadastroFiltroDialogItensGridRows, buildCadastroMetadataShellRuntime, buildCadastroPageActiveTabPageKey, buildCadastroPageActiveTabPageKeyFromLayout, buildCadastroPageRuntime, buildCadastroRedirectReturnUrl, buildCadastroReferenciaDialogContext, buildCatalogoStubConsultaRuntime, buildConsultaConfirmDuplicarLinhaFromLayout, buildConsultaConfirmRemoverLinhaFromLayout, buildConsultaDefaultIsItemGuard, buildConsultaListaCacheKey, buildConsultaPageMetadataUnified, buildConsultaPageRuntime, buildDecimalBrDisplay, buildDecimalBrParseString, buildDefaultConsultaMapCardFromColunasGrid, buildEmptyStateOverlayHtml, buildFormContainerStateStorageKey, buildFormGroupFromCadastroCampos, buildGridNavigateUrl, buildHistoryStateAfterReturningFromNestedInlineChild, buildInlineReturnStateForChildCadastro, buildNovoFormDefaultsFromCampos, buildReportRowCardMap, 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, consumeConsultaPendingGridReturn, consumeGridReturnVoltarKeyForUrl, 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, formatReportPreviewTitulo, formatUiFieldDateValue, getFilePreviewKind, getStructraActionsByGroup, getThemeClass, getThemeClassList, getThemePrimaryColorLabelPtBr, getThemeTokenClass, gridNavigateIconClass, hexParaColorInput, inferCadastroItemFieldsFromPlainRows, inferCadastroListaUrlFallback, initialCadastroControlValue, injectEffectiveThemeId, isCadastroDuplicateNavigation, isCollectionField, isCollectionLikeField, isConsultaCardAutoSubtitleExcluded, isLegacyDarkThemeId, isLegacyFormContainerStateStorageKey, isLegacyNomeDocumentoReferencePreset, isReadonlyCollectionField, isReportBooleanColumn, isReportGroupNode, isReportNowrapColumn, isValidPhoneBr, libDialogPanelClasses, listaUrlFromRotaCadastro, listarItensCadastroReferencia, listarTodosPaginado, loadPresetsJson, loadStructraAdminRouteRedirectTarget, mapCadastroFormRawToPayload, mapConsultaGridColunasParaDataGrid, mapConsultaMetadataParaFiltroUi, mapErroTransporteParaMensagem as mapErroListaDefault, mapErroTransporteParaMensagem, mapEstadosToOptions, mapFiltroSalvoParaConsultaPreset, mapGridNavigateFromColuna, mapListarItensParaMultiselectOpcoes, mapReportTreeToTreeViewNodes, mapReportTreeToTreeViewNodesForSelection, markCadastroInlineFormDraftPendingRestore, markConsultaPendingGridReturn, maskDigitCount, mergeCadastroConfirmExcluir, mergeConsultaGridRowFormattingFromColunasGrid, mergeConsultaMultiselectOpcoesComSeleccionados, mergeDocumentoFmtNaLinhaConsulta, mergeMapConsultaGridColunasOptsComColumnFormat, mergeNovoIdEmListaSelecionada, mergeStructraShellScrollRestorationOptions, metadataCampoParaChaveLinhaCliente, modoPermissaoReferenciaFromWire, montarFiltrosGrpcPreset, montarFiltrosServidorPreset, montarHierarquiaSecoesMetadata, multiselectIdListRequiredValidator, multiselectMaxItemsValidator, navegarAposLoginAdmin, navegarVoltarLista, navegarVoltarListaComIdRemovido, navegarVoltarListaComLinha, navigateCadastroDuplicate, navigateCommandsFromRotaAlterar, navigateCommandsFromRotaNovo, navigateFromGrid, nomeSalvarParaPayloadComPessoa, normalizarArvoreSecoesMetadata, normalizarCaminhoLoginAdmin, normalizarHexCor, normalizarItensParaGravarServidorCadastro, normalizarListaIdsMultiselect, normalizarOperadorConsultaParaEnvioServidor, normalizarRotaReferencia, normalizarStructraAction, normalizarStructraActionGroup, normalizarStructraActionGroups, normalizeCadastroAppPath, normalizeCadastroCampoMetadataWire, normalizeCadastroInitRouteIdParam, normalizeCadastroItemEditorDecimalControls, normalizeCadastroReferenciaDialogRotaKey, normalizeCadastroRouteForContainerState, normalizeConsoleLogLevel, normalizeFormDateValue, normalizePhoneBr, normalizeStructraAdminPath, normalizeStructraScrollRoute, normalizeStructraTheme, novoPathCommandsFromRota, onlyDigits, operadorConsultaComValorUnicoComparacao, operadorConsultaDatetimeUsaDatePicker, operadoresConsultaCampo, operadoresPorTipo, ordenarFiltroItens, ordenarStructraActions, parseDecimalBr, parseIntegerString, parseUiFieldDateValue, patchFormFromEntidadeRecord, permissionTabsUsamGruposVerticais, permissoesReferenciaMetadata, persistStructraCookieNoticeAccepted, persistStructraShellSidebarCollapsed, phoneBrDynamicMaskCompleteValidator, phoneBrMaskCompleteValidator, phoneBrMaskFromDigits, pickCadastroPageActiveTabExplicit, pickTabKeyLinkedToSummaryItems, podeNavegarGridColuna, precisaValor, precisaValorFinal, provideAppPageFooter, provideAppVersion, provideStructraAppVersion, provideStructraCadastroReferenciaDialogRoot, provideStructraCookieNotice, provideStructraPageFooter, provideStructraScrollState, provideStructraShellScrollRestoration, provideStructraTreeExpandState, qtdCriteriosPresetParaSkeleton, readCadastroDuplicateSourceId, readCadastroPageActiveTabFromNavigationState, readCadastroPageActiveTabFromUrl, readFormContainerCollapsedFromStorage, readStructraAdminRouteRedirectTarget, readStructraCadastroInlineReturn, readStructraShellSidebarCollapsed, referenciaAbreEmDialog, referenciaOpenModeRaw, referenciaUsesLegacyRegistryMapper, registerCadastroReferenceEntries, registerCadastroReferenceListSources, registerCadastroReferenciaDialogBridges, registerStructraBuiltinPageComponents, replaceProdutoCadastroFormControls, reportColumnWidthStyle, reportExistsInTree, reportTableHasFixedWidths, resetStructraCadastroReferenciaDialogRootForTests, resolveCadastroCollectionMinItems, resolveCadastroListaUrlParaNavegacao, resolveCadastroPageActiveTabKey, resolveCadastroReferenciaMapOptions, resolveConsultaEditActionLabelFromGridConfig, resolveConsultaListaQuerySliceFromGridConfig, resolveConsultaNavKeysFromPageLayout, resolveConsultaNovoRouterLinkFromLayout, resolveConsultaRouteEditBaseFromLayout, resolveConsultaToastTitleLista, resolveControlAtPath, resolveFormContainerCollapsed, resolveInitialReportId, resolveReferenciaOpcaoLabel, resolveReportPreviewSubtitulo, resolveStructraAdminMenuUrl, resolveStructraAppVersionConfig, resolveStructraCookieNoticeConfig, 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, structraCookieNoticeWasAccepted, structraElementScrolls, structraHasValue, structraIsFilledString, structraIsFormGroup, structraIsValidPort, structraParseNumberOrNull, structraReadFormValue, structraReadNestedValue, structraTrimString, subscribeMarkForCheckOnInvalidUiRefresh, subtreeHasVisibleInvalid, syncStructraCadastroInlineReturnSessionCache, tabWarningFromLinkedSummaryItems, tipoCampoMetadataParaUi, tipoValorApi, toCadastroReferenceListPageResult, toConsoleLogLineView, toConsoleLogLineViews, toUiSelectOptionsFromMetadata, uiSelectOpcaoIdNomeDocumento, uiSelectOpcoesDePessoas, validationLikeFromCampoMetadata, validatorsFromCampo, writeFormContainerCollapsedToStorage };
|
|
46514
|
+
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, StructraAppVersionService as AppVersionService, 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, ConsultaPageLoadingSkeletonComponent, ContainerLayoutSize, ContextMenuComponent, CpfCnpjFieldComponent, DEFAULT_STRUCTRA_APP_VERSION_API_PATH, DEFAULT_STRUCTRA_APP_VERSION_FALLBACK, DEFAULT_STRUCTRA_COOKIE_NOTICE_ACCEPT_LABEL, DEFAULT_STRUCTRA_COOKIE_NOTICE_DESCRIPTION, DEFAULT_STRUCTRA_COOKIE_NOTICE_STORAGE_KEY, DEFAULT_STRUCTRA_COOKIE_NOTICE_TITLE, DEFAULT_STRUCTRA_SHELL_SCROLL_RESTORATION_OPTIONS, DEFAULT_STRUCTRA_SHELL_SIDEBAR_COLLAPSED_STORAGE_KEY, 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_APP_VERSION_CONFIG, STRUCTRA_CADASTRO_INLINE_RESULT_KEY, STRUCTRA_CADASTRO_INLINE_RETURN_KEY, STRUCTRA_CONSULTA_FORCE_REFRESH_KEY, STRUCTRA_CONSULTA_GRID_STATE_SESSION_RESET, STRUCTRA_CONSULTA_GRID_STATE_TENANT_RESOLVER, STRUCTRA_CONSULTA_GRID_STATE_TTL_MS_DEFAULT, STRUCTRA_COOKIE_NOTICE_CONFIG, 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_KANBAN_DESKTOP_MIN_WIDTH, STRUCTRA_MIDIA_PUBLIC_BASE_RESOLVER, STRUCTRA_MIDIA_UPLOAD_TRANSPORT, STRUCTRA_PAGE_CACHE_SCOPE_SEP, STRUCTRA_PAGE_FOOTER_CONFIG, STRUCTRA_PAGE_FOOTER_PARTS, STRUCTRA_PAGE_STATE_ACTIVE_TAB_PREFIX, STRUCTRA_REPORT_DEFAULT_PAGE_SIZE, STRUCTRA_REPORT_TRANSPORT, STRUCTRA_SCROLL_SESSION_RESET, STRUCTRA_SCROLL_TENANT_RESOLVER, STRUCTRA_SHELL_NAV_CONTENT_READY, 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, StructraAppVersionService, StructraBackToTopButtonComponent, StructraConsultaGridStateService, StructraCookieNoticeComponent, StructraCookieNoticeService, StructraKanbanDragAutoScrollController, StructraPageCacheService, StructraPageComponentOutletComponent, StructraPageComponentRegistry, StructraPageFooterComponent, StructraPageStateCacheService, StructraPreserveScrollDirective, StructraProgressOverlayComponent, StructraReportEmptyStateComponent, StructraReportFilterPanelComponent, StructraReportLoadingSkeletonComponent, StructraReportPageBaseComponent, StructraReportPageComponent, StructraReportPaginatorComponent, StructraReportPreviewHeaderComponent, StructraReportTableComponent, StructraReportTreeCacheService, StructraReportTreeComponent, StructraReportTreeSkeletonComponent, StructraReportViewerComponent, ScriptEditorFieldComponent as StructraScriptEditorComponent, StructraScrollStateService, StructraShellScrollRestorationService, StructraShellTopbarSlotService, AppSidebarBottomActionsTemplateDirective as StructraSidebarBottomActionsDirective, AppSidebarFooterTemplateDirective as StructraSidebarFooterDirective, AppSidebarHeaderTemplateDirective as StructraSidebarHeaderDirective, AppSidebarUserInfoTemplateDirective as StructraSidebarUserInfoDirective, StructraSidebarUserPanelComponent, StructraTreeExpandStateService, 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, applyConsultaListaPatch, applyEntityToCadastroFormByMetadata, applyOptionalThemeHostClasses, applyPickedCalendarDate, attachStructraScrollPreserve, buildCadastroFiltroDialogItensGridRows, buildCadastroMetadataShellRuntime, buildCadastroPageActiveTabPageKey, buildCadastroPageActiveTabPageKeyFromLayout, buildCadastroPageRuntime, buildCadastroRedirectReturnUrl, buildCadastroReferenciaDialogContext, buildCatalogoStubConsultaRuntime, buildConsultaConfirmDuplicarLinhaFromLayout, buildConsultaConfirmRemoverLinhaFromLayout, buildConsultaDefaultIsItemGuard, buildConsultaGridStateSessionKey, buildConsultaListaCacheKey, buildConsultaPageMetadataUnified, buildConsultaPageRuntime, buildDecimalBrDisplay, buildDecimalBrParseString, buildDefaultConsultaMapCardFromColunasGrid, buildEmptyStateOverlayHtml, buildFormContainerStateStorageKey, buildFormGroupFromCadastroCampos, buildGridNavigateUrl, buildHistoryStateAfterReturningFromNestedInlineChild, buildInlineReturnStateForChildCadastro, buildNovoFormDefaultsFromCampos, buildReportRowCardMap, 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, consultaCadastroPatchKindFromModo, consultaCampoMetadataDtoFromPartial, consultaCardCampoDtoFromPartial, consultaFiltroValorDataSomenteDia, consultaGridColunaDtoFromPartial, consultaGridColunaKeyParaCampoLinha, consultaGridConfigDtoFromPartial, consultaNavKeysStructra, consultaPassaItem, consultaPassaTodosItens, consultaUsuariosMetadataReplyFromPartial, consumeCadastroInlineFormDraftPendingRestore, consumeConsultaPendingGridReturn, consumeGridReturnVoltarKeyForUrl, consumirResultadoCadastroInlineCampoPessoaId, consumirResultadoCadastroInlineCampoReferencia, cpfCnpjMaskCompleteValidator, createCadastroDialogActivatedRoute, createCadastroMetadataPageConfig, createCadastroPadraoConfig, createCadastroRuntime, createCollectionFormArray, createCollectionItemFormGroup, createConsultaListaItemGuardFromFiltroUi, createConsultaOptionsListarResolver, createConsultaPadraoRuntime, createConsultaPresetSelectEmptyOptionsMessageSignal, createConsultaPresetStorageApi, createGrpcSaveRequestMapper, createInlineHostNavigation, createMapCardFromConsultaColunasGrid, createMapGridRowFromConsultaColunasGrid, createSaveRequestFromPartialMapper, criarDraftInlinePessoa, decimalPtBrNaoNegativoValidator, decimalPtBrToNullableNumber, dedupeUiSelectOptionsByValue, 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, formatReportPreviewTitulo, formatUiFieldDateValue, getFilePreviewKind, getStructraActionsByGroup, getThemeClass, getThemeClassList, getThemePrimaryColorLabelPtBr, getThemeTokenClass, gridNavigateIconClass, hexParaColorInput, inferCadastroItemFieldsFromPlainRows, inferCadastroListaUrlFallback, initialCadastroControlValue, injectEffectiveThemeId, isCadastroDuplicateNavigation, isCollectionField, isCollectionLikeField, isConsultaCardAutoSubtitleExcluded, isLegacyDarkThemeId, isLegacyFormContainerStateStorageKey, isLegacyNomeDocumentoReferencePreset, isReadonlyCollectionField, isReportBooleanColumn, isReportGroupNode, isReportNowrapColumn, isValidPhoneBr, libDialogPanelClasses, listaUrlFromRotaCadastro, listarItensCadastroReferencia, listarTodosPaginado, loadPresetsJson, loadStructraAdminRouteRedirectTarget, mapCadastroFormRawToPayload, mapConsultaGridColunasParaDataGrid, mapConsultaMetadataParaFiltroUi, mapErroTransporteParaMensagem as mapErroListaDefault, mapErroTransporteParaMensagem, mapEstadosToOptions, mapFiltroSalvoParaConsultaPreset, mapGridNavigateFromColuna, mapListarItensParaMultiselectOpcoes, mapReportTreeToTreeViewNodes, mapReportTreeToTreeViewNodesForSelection, markCadastroInlineFormDraftPendingRestore, markConsultaPendingGridReturn, maskDigitCount, mergeCadastroConfirmExcluir, mergeConsultaGridRowFormattingFromColunasGrid, mergeConsultaMultiselectOpcoesComSeleccionados, mergeDocumentoFmtNaLinhaConsulta, mergeMapConsultaGridColunasOptsComColumnFormat, mergeNovoIdEmListaSelecionada, mergeStructraShellScrollRestorationOptions, metadataCampoParaChaveLinhaCliente, modoPermissaoReferenciaFromWire, montarFiltrosGrpcPreset, montarFiltrosServidorPreset, montarHierarquiaSecoesMetadata, multiselectIdListRequiredValidator, multiselectMaxItemsValidator, navegarAposLoginAdmin, navegarVoltarLista, navegarVoltarListaComIdRemovido, navegarVoltarListaComLinha, navigateCadastroDuplicate, navigateCommandsFromRotaAlterar, navigateCommandsFromRotaNovo, navigateFromGrid, nomeSalvarParaPayloadComPessoa, normalizarArvoreSecoesMetadata, normalizarCaminhoLoginAdmin, normalizarHexCor, normalizarItensParaGravarServidorCadastro, normalizarListaIdsMultiselect, normalizarOperadorConsultaParaEnvioServidor, normalizarRotaReferencia, normalizarStructraAction, normalizarStructraActionGroup, normalizarStructraActionGroups, normalizeCadastroAppPath, normalizeCadastroCampoMetadataWire, normalizeCadastroInitRouteIdParam, normalizeCadastroItemEditorDecimalControls, normalizeCadastroReferenciaDialogRotaKey, normalizeCadastroRouteForContainerState, normalizeConsoleLogLevel, normalizeFormDateValue, normalizePhoneBr, normalizeStructraAdminPath, normalizeStructraScrollRoute, normalizeStructraTheme, novoPathCommandsFromRota, onlyDigits, operadorConsultaComValorUnicoComparacao, operadorConsultaDatetimeUsaDatePicker, operadoresConsultaCampo, operadoresPorTipo, ordenarFiltroItens, ordenarStructraActions, parseDecimalBr, parseIntegerString, parseUiFieldDateValue, patchFormFromEntidadeRecord, permissionTabsUsamGruposVerticais, permissoesReferenciaMetadata, persistStructraCookieNoticeAccepted, persistStructraShellSidebarCollapsed, phoneBrDynamicMaskCompleteValidator, phoneBrMaskCompleteValidator, phoneBrMaskFromDigits, pickCadastroPageActiveTabExplicit, pickTabKeyLinkedToSummaryItems, podeNavegarGridColuna, precisaValor, precisaValorFinal, provideAppPageFooter, provideAppVersion, provideStructraAppVersion, provideStructraCadastroReferenciaDialogRoot, provideStructraConsultaGridState, provideStructraCookieNotice, provideStructraPageFooter, provideStructraScrollState, provideStructraShellScrollRestoration, provideStructraTreeExpandState, qtdCriteriosPresetParaSkeleton, readCadastroDuplicateSourceId, readCadastroPageActiveTabFromNavigationState, readCadastroPageActiveTabFromUrl, readFormContainerCollapsedFromStorage, readStructraAdminRouteRedirectTarget, readStructraCadastroInlineReturn, readStructraShellSidebarCollapsed, referenciaAbreEmDialog, referenciaOpenModeRaw, referenciaUsesLegacyRegistryMapper, registerCadastroReferenceEntries, registerCadastroReferenceListSources, registerCadastroReferenciaDialogBridges, registerStructraBuiltinPageComponents, replaceProdutoCadastroFormControls, reportColumnWidthStyle, reportExistsInTree, reportTableHasFixedWidths, resetStructraCadastroReferenciaDialogRootForTests, resolveCadastroCollectionMinItems, resolveCadastroListaUrlParaNavegacao, resolveCadastroPageActiveTabKey, resolveCadastroReferenciaMapOptions, resolveConsultaEditActionLabelFromGridConfig, resolveConsultaListaQuerySliceFromGridConfig, resolveConsultaNavKeysFromPageLayout, resolveConsultaNovoRouterLinkFromLayout, resolveConsultaRouteEditBaseFromLayout, resolveConsultaToastTitleLista, resolveControlAtPath, resolveFormContainerCollapsed, resolveInitialReportId, resolveReferenciaOpcaoLabel, resolveReportPreviewSubtitulo, resolveStructraAdminMenuUrl, resolveStructraAppVersionConfig, resolveStructraCookieNoticeConfig, 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, structraCookieNoticeWasAccepted, structraElementScrolls, structraHasValue, structraIsFilledString, structraIsFormGroup, structraIsValidPort, structraParseNumberOrNull, structraReadFormValue, structraReadNestedValue, structraTrimString, subscribeMarkForCheckOnInvalidUiRefresh, subtreeHasVisibleInvalid, syncStructraCadastroInlineReturnSessionCache, tabWarningFromLinkedSummaryItems, tipoCampoMetadataParaUi, tipoValorApi, toCadastroReferenceListPageResult, toConsoleLogLineView, toConsoleLogLineViews, toUiSelectOptionsFromMetadata, uiSelectOpcaoIdNomeDocumento, uiSelectOpcoesDePessoas, validationLikeFromCampoMetadata, validatorsFromCampo, writeFormContainerCollapsedToStorage };
|
|
45900
46515
|
//# sourceMappingURL=structra-ui.mjs.map
|