structra-ui 0.2.67 → 0.2.69
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 +394 -95
- package/fesm2022/structra-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/structra-ui.d.ts +124 -25
package/fesm2022/structra-ui.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import '../structra-ui.css';
|
|
|
2
2
|
import * as i1$2 from '@angular/common';
|
|
3
3
|
import { isPlatformBrowser, NgIf, NgClass, NgTemplateOutlet, CommonModule, DOCUMENT, NgStyle, NgComponentOutlet } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { inject, PLATFORM_ID, DestroyRef, ChangeDetectorRef, ElementRef, signal, Input, ChangeDetectionStrategy, Component, booleanAttribute, HostBinding, ViewChild, output, Injector, EventEmitter, Output, Directive, numberAttribute, computed, Injectable,
|
|
5
|
+
import { inject, PLATFORM_ID, DestroyRef, ChangeDetectorRef, ElementRef, signal, Input, ChangeDetectionStrategy, Component, booleanAttribute, HostBinding, ViewChild, output, Injector, EventEmitter, Output, Directive, numberAttribute, input, computed, Injectable, afterNextRender, HostListener, ViewChildren, forwardRef, InjectionToken, ApplicationRef, ContentChildren, NgZone, viewChild, effect, Renderer2, TemplateRef, ContentChild, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, isDevMode, runInInjectionContext, untracked, EnvironmentInjector, createEnvironmentInjector, APP_INITIALIZER, createComponent } from '@angular/core';
|
|
6
6
|
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
7
7
|
import { takeUntilDestroyed, toSignal, toObservable } from '@angular/core/rxjs-interop';
|
|
8
8
|
import * as i1 from '@angular/forms';
|
|
@@ -1321,19 +1321,40 @@ class SkeletonTableComponent {
|
|
|
1321
1321
|
/** Só o corpo (linhas); omitir cabeçalho e paginação — ex.: overlay sobre o viewport do AG Grid. */
|
|
1322
1322
|
this.bodyOnly = false;
|
|
1323
1323
|
this.animate = true;
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1324
|
+
/** Rótulos do cabeçalho; entradas vazias ⇒ bloco skeleton (metadata antes das colunas da API). */
|
|
1325
|
+
this.headerLabels = input(null, ...(ngDevMode ? [{ debugName: "headerLabels" }] : /* istanbul ignore next */ []));
|
|
1326
|
+
/** Tint do chrome alinhado ao `app-data-grid` (metadata vs financeiro). */
|
|
1327
|
+
this.chrome = input('default', ...(ngDevMode ? [{ debugName: "chrome" }] : /* istanbul ignore next */ []));
|
|
1328
|
+
this.showActionsColumn = input(true, { ...(ngDevMode ? { debugName: "showActionsColumn" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
1329
|
+
this.pagerRangeLabel = input('0 a 0 de 0', ...(ngDevMode ? [{ debugName: "pagerRangeLabel" }] : /* istanbul ignore next */ []));
|
|
1330
|
+
this.pagerPageLabel = input('Página 0 de 0', ...(ngDevMode ? [{ debugName: "pagerPageLabel" }] : /* istanbul ignore next */ []));
|
|
1331
|
+
this.resolvedHeaderLabels = computed(() => {
|
|
1332
|
+
const labels = this.headerLabels();
|
|
1333
|
+
if (labels?.length) {
|
|
1334
|
+
return [...labels];
|
|
1335
|
+
}
|
|
1336
|
+
const n = Math.max(1, this.columnCount);
|
|
1337
|
+
return Array.from({ length: n }, () => '');
|
|
1338
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedHeaderLabels" }] : /* istanbul ignore next */ []));
|
|
1339
|
+
/** Garante colunas de corpo/cabeçalho alinhadas — nunca menos que `columnCount` nem que os rótulos. */
|
|
1340
|
+
this.effectiveColumnCount = computed(() => {
|
|
1341
|
+
const labelCount = this.resolvedHeaderLabels().length;
|
|
1342
|
+
return Math.max(1, this.columnCount, labelCount);
|
|
1343
|
+
}, ...(ngDevMode ? [{ debugName: "effectiveColumnCount" }] : /* istanbul ignore next */ []));
|
|
1344
|
+
this.colIndexesList = computed(() => Array.from({ length: this.effectiveColumnCount() }, (_, i) => i), ...(ngDevMode ? [{ debugName: "colIndexesList" }] : /* istanbul ignore next */ []));
|
|
1327
1345
|
}
|
|
1328
1346
|
rowIndexes() {
|
|
1329
1347
|
return Array.from({ length: Math.max(1, this.rowCount) }, (_, i) => i);
|
|
1330
1348
|
}
|
|
1349
|
+
isActionsHeaderCell(label, index) {
|
|
1350
|
+
return index === 0 && this.showActionsColumn() && label.trim().toLowerCase() === 'ações';
|
|
1351
|
+
}
|
|
1331
1352
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SkeletonTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1332
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SkeletonTableComponent, isStandalone: true, selector: "app-skeleton-table", inputs: { columnCount:
|
|
1353
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SkeletonTableComponent, isStandalone: true, selector: "app-skeleton-table", inputs: { columnCount: { classPropertyName: "columnCount", publicName: "columnCount", isSignal: false, isRequired: false, transformFunction: numberAttribute }, rowCount: { classPropertyName: "rowCount", publicName: "rowCount", isSignal: false, isRequired: false, transformFunction: numberAttribute }, showPager: { classPropertyName: "showPager", publicName: "showPager", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, bodyOnly: { classPropertyName: "bodyOnly", publicName: "bodyOnly", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, headerLabels: { classPropertyName: "headerLabels", publicName: "headerLabels", isSignal: true, isRequired: false, transformFunction: null }, chrome: { classPropertyName: "chrome", publicName: "chrome", isSignal: true, isRequired: false, transformFunction: null }, showActionsColumn: { classPropertyName: "showActionsColumn", publicName: "showActionsColumn", isSignal: true, isRequired: false, transformFunction: null }, pagerRangeLabel: { classPropertyName: "pagerRangeLabel", publicName: "pagerRangeLabel", isSignal: true, isRequired: false, transformFunction: null }, pagerPageLabel: { classPropertyName: "pagerPageLabel", publicName: "pagerPageLabel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"skeleton-table\"\n [class.skeleton-table--body-only]=\"bodyOnly\"\n [class.skeleton-table--chrome-financeiro]=\"chrome() === 'financeiro'\"\n aria-hidden=\"true\">\n @if (!bodyOnly) {\n <div class=\"skeleton-table__header\">\n @for (label of resolvedHeaderLabels(); track $index; let i = $index) {\n <div\n class=\"skeleton-table__header-cell\"\n [class.skeleton-table__header-cell--actions]=\"isActionsHeaderCell(label, i)\"\n [class.skeleton-table__header-cell--skeleton]=\"!label?.trim()\">\n @if (label?.trim()) {\n <span class=\"skeleton-table__header-label\">{{ label }}</span>\n } @else {\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"72%\" height=\"0.65rem\" radius=\"6px\" [animate]=\"animate\" />\n }\n </div>\n }\n </div>\n }\n <div class=\"skeleton-table__body\">\n @for (r of rowIndexes(); track r) {\n <div class=\"skeleton-table__row\">\n @for (c of colIndexesList(); track c; let i = $index) {\n <div class=\"skeleton-table__body-cell\" [class.skeleton-table__body-cell--actions]=\"i === 0 && showActionsColumn()\">\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.55rem\" radius=\"5px\" [animate]=\"animate\" />\n </div>\n }\n </div>\n }\n </div>\n @if (showPager && !bodyOnly) {\n <div class=\"skeleton-table__pager\">\n <span class=\"skeleton-table__pager-range\">{{ pagerRangeLabel() }}</span>\n <span class=\"skeleton-table__pager-nav\" aria-hidden=\"true\">\n <span class=\"skeleton-table__pager-btn\"></span>\n <span class=\"skeleton-table__pager-btn\"></span>\n <span class=\"skeleton-table__pager-page\">{{ pagerPageLabel() }}</span>\n <span class=\"skeleton-table__pager-btn\"></span>\n <span class=\"skeleton-table__pager-btn\"></span>\n </span>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0;height:100%;min-height:0;box-sizing:border-box}.skeleton-table{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box;border-radius:10px;overflow:hidden;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-elevated-surface, var(--app-color-surface));--skeleton-table-header-bg: var( --data-grid-header-background, color-mix(in srgb, var(--app-color-primary) 10%, var(--app-color-background, #ffffff)) )}.skeleton-table--chrome-financeiro{--skeleton-table-header-bg: var( --data-grid-header-background, color-mix(in srgb, var(--app-color-success, #15803d) 12%, var(--app-color-background, #ffffff)) )}.skeleton-table--body-only{border:none;border-radius:0;background:transparent}.skeleton-table__header{display:flex;align-items:stretch;flex-shrink:0;min-height:calc(var(--ag-grid-size, 7px) * 8);background:var(--skeleton-table-header-bg);border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1))}.skeleton-table__header-cell{display:flex;flex:1 1 0%;align-items:center;justify-content:flex-start;min-width:0;padding:.65rem .75rem;box-sizing:border-box;border-right:1px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 10%,transparent)}.skeleton-table__header-cell:last-child{border-right:none}.skeleton-table__header-cell--actions{flex:0 0 6.5rem;max-width:6.5rem;justify-content:center;border-right:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:color-mix(in srgb,var(--app-color-primary, #2563eb) 14%,var(--skeleton-table-header-bg))}.skeleton-table__header-cell--skeleton{justify-content:flex-start}.skeleton-table--chrome-financeiro .skeleton-table__header-cell--actions{background:color-mix(in srgb,var(--app-color-success, #15803d) 16%,var(--skeleton-table-header-bg))}.skeleton-table__header-label{font-size:.85rem;font-weight:600;line-height:1.2;color:var(--app-color-text-primary, #1a2f45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skeleton-table__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.skeleton-table__row{display:flex;align-items:stretch;flex:1 1 0%;min-height:2.35rem;border-bottom:1px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 7%,transparent);background:var(--app-color-surface, #ffffff)}.skeleton-table__row:nth-child(2n){background:var(--app-color-surface-alt, var(--app-color-background, #f8fafc))}.skeleton-table__body-cell{display:flex;flex:1 1 0%;align-items:center;min-width:0;padding:.55rem .75rem;box-sizing:border-box;border-right:1px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 6%,transparent)}.skeleton-table__body-cell:last-child{border-right:none}.skeleton-table__body-cell--actions{flex:0 0 6.5rem;max-width:6.5rem;justify-content:center;border-right:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12))}.skeleton-table__cell{flex:1 1 0;min-width:0}:host ::ng-deep .skeleton-table__header-cell>app-skeleton-block.skeleton-table__cell,:host ::ng-deep .skeleton-table__body-cell>app-skeleton-block.skeleton-table__cell{flex:1 1 0%;min-width:0;align-self:stretch}:host ::ng-deep .skeleton-table__header,:host ::ng-deep .skeleton-table__row{width:100%;box-sizing:border-box}:host ::ng-deep .skeleton-table__body{width:100%;box-sizing:border-box}.skeleton-table__pager{display:flex;flex-shrink:0;align-items:center;justify-content:center;flex-wrap:nowrap;gap:.5rem;min-height:calc(var(--ag-grid-size, 7px) * 8);padding:.5rem .75rem;box-sizing:border-box;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));background:var(--skeleton-table-header-bg);font-size:.85rem;color:var(--app-color-tab-inactive-text, #51667a);-webkit-user-select:none;user-select:none}.skeleton-table__pager-range{flex:0 0 auto}.skeleton-table__pager-nav{display:inline-flex;align-items:center;gap:.35rem}.skeleton-table__pager-page{min-width:5.5rem;text-align:center}.skeleton-table__pager-btn{display:inline-block;width:1.35rem;height:1.35rem;border-radius:4px;background:color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 12%,transparent);opacity:.55}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1333
1354
|
}
|
|
1334
1355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SkeletonTableComponent, decorators: [{
|
|
1335
1356
|
type: Component,
|
|
1336
|
-
args: [{ selector: 'app-skeleton-table', imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
|
1357
|
+
args: [{ selector: 'app-skeleton-table', imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"skeleton-table\"\n [class.skeleton-table--body-only]=\"bodyOnly\"\n [class.skeleton-table--chrome-financeiro]=\"chrome() === 'financeiro'\"\n aria-hidden=\"true\">\n @if (!bodyOnly) {\n <div class=\"skeleton-table__header\">\n @for (label of resolvedHeaderLabels(); track $index; let i = $index) {\n <div\n class=\"skeleton-table__header-cell\"\n [class.skeleton-table__header-cell--actions]=\"isActionsHeaderCell(label, i)\"\n [class.skeleton-table__header-cell--skeleton]=\"!label?.trim()\">\n @if (label?.trim()) {\n <span class=\"skeleton-table__header-label\">{{ label }}</span>\n } @else {\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"72%\" height=\"0.65rem\" radius=\"6px\" [animate]=\"animate\" />\n }\n </div>\n }\n </div>\n }\n <div class=\"skeleton-table__body\">\n @for (r of rowIndexes(); track r) {\n <div class=\"skeleton-table__row\">\n @for (c of colIndexesList(); track c; let i = $index) {\n <div class=\"skeleton-table__body-cell\" [class.skeleton-table__body-cell--actions]=\"i === 0 && showActionsColumn()\">\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.55rem\" radius=\"5px\" [animate]=\"animate\" />\n </div>\n }\n </div>\n }\n </div>\n @if (showPager && !bodyOnly) {\n <div class=\"skeleton-table__pager\">\n <span class=\"skeleton-table__pager-range\">{{ pagerRangeLabel() }}</span>\n <span class=\"skeleton-table__pager-nav\" aria-hidden=\"true\">\n <span class=\"skeleton-table__pager-btn\"></span>\n <span class=\"skeleton-table__pager-btn\"></span>\n <span class=\"skeleton-table__pager-page\">{{ pagerPageLabel() }}</span>\n <span class=\"skeleton-table__pager-btn\"></span>\n <span class=\"skeleton-table__pager-btn\"></span>\n </span>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0;height:100%;min-height:0;box-sizing:border-box}.skeleton-table{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box;border-radius:10px;overflow:hidden;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-elevated-surface, var(--app-color-surface));--skeleton-table-header-bg: var( --data-grid-header-background, color-mix(in srgb, var(--app-color-primary) 10%, var(--app-color-background, #ffffff)) )}.skeleton-table--chrome-financeiro{--skeleton-table-header-bg: var( --data-grid-header-background, color-mix(in srgb, var(--app-color-success, #15803d) 12%, var(--app-color-background, #ffffff)) )}.skeleton-table--body-only{border:none;border-radius:0;background:transparent}.skeleton-table__header{display:flex;align-items:stretch;flex-shrink:0;min-height:calc(var(--ag-grid-size, 7px) * 8);background:var(--skeleton-table-header-bg);border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1))}.skeleton-table__header-cell{display:flex;flex:1 1 0%;align-items:center;justify-content:flex-start;min-width:0;padding:.65rem .75rem;box-sizing:border-box;border-right:1px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 10%,transparent)}.skeleton-table__header-cell:last-child{border-right:none}.skeleton-table__header-cell--actions{flex:0 0 6.5rem;max-width:6.5rem;justify-content:center;border-right:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:color-mix(in srgb,var(--app-color-primary, #2563eb) 14%,var(--skeleton-table-header-bg))}.skeleton-table__header-cell--skeleton{justify-content:flex-start}.skeleton-table--chrome-financeiro .skeleton-table__header-cell--actions{background:color-mix(in srgb,var(--app-color-success, #15803d) 16%,var(--skeleton-table-header-bg))}.skeleton-table__header-label{font-size:.85rem;font-weight:600;line-height:1.2;color:var(--app-color-text-primary, #1a2f45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skeleton-table__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.skeleton-table__row{display:flex;align-items:stretch;flex:1 1 0%;min-height:2.35rem;border-bottom:1px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 7%,transparent);background:var(--app-color-surface, #ffffff)}.skeleton-table__row:nth-child(2n){background:var(--app-color-surface-alt, var(--app-color-background, #f8fafc))}.skeleton-table__body-cell{display:flex;flex:1 1 0%;align-items:center;min-width:0;padding:.55rem .75rem;box-sizing:border-box;border-right:1px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 6%,transparent)}.skeleton-table__body-cell:last-child{border-right:none}.skeleton-table__body-cell--actions{flex:0 0 6.5rem;max-width:6.5rem;justify-content:center;border-right:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12))}.skeleton-table__cell{flex:1 1 0;min-width:0}:host ::ng-deep .skeleton-table__header-cell>app-skeleton-block.skeleton-table__cell,:host ::ng-deep .skeleton-table__body-cell>app-skeleton-block.skeleton-table__cell{flex:1 1 0%;min-width:0;align-self:stretch}:host ::ng-deep .skeleton-table__header,:host ::ng-deep .skeleton-table__row{width:100%;box-sizing:border-box}:host ::ng-deep .skeleton-table__body{width:100%;box-sizing:border-box}.skeleton-table__pager{display:flex;flex-shrink:0;align-items:center;justify-content:center;flex-wrap:nowrap;gap:.5rem;min-height:calc(var(--ag-grid-size, 7px) * 8);padding:.5rem .75rem;box-sizing:border-box;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));background:var(--skeleton-table-header-bg);font-size:.85rem;color:var(--app-color-tab-inactive-text, #51667a);-webkit-user-select:none;user-select:none}.skeleton-table__pager-range{flex:0 0 auto}.skeleton-table__pager-nav{display:inline-flex;align-items:center;gap:.35rem}.skeleton-table__pager-page{min-width:5.5rem;text-align:center}.skeleton-table__pager-btn{display:inline-block;width:1.35rem;height:1.35rem;border-radius:4px;background:color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 12%,transparent);opacity:.55}\n"] }]
|
|
1337
1358
|
}], propDecorators: { columnCount: [{
|
|
1338
1359
|
type: Input,
|
|
1339
1360
|
args: [{ transform: numberAttribute }]
|
|
@@ -1349,7 +1370,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1349
1370
|
}], animate: [{
|
|
1350
1371
|
type: Input,
|
|
1351
1372
|
args: [{ transform: booleanAttribute }]
|
|
1352
|
-
}] } });
|
|
1373
|
+
}], headerLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerLabels", required: false }] }], chrome: [{ type: i0.Input, args: [{ isSignal: true, alias: "chrome", required: false }] }], showActionsColumn: [{ type: i0.Input, args: [{ isSignal: true, alias: "showActionsColumn", required: false }] }], pagerRangeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagerRangeLabel", required: false }] }], pagerPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagerPageLabel", required: false }] }] } });
|
|
1353
1374
|
|
|
1354
1375
|
/**
|
|
1355
1376
|
* Placeholder de campo: barra de valor e, opcionalmente, quadrado à esquerda (ex.: uploads).
|
|
@@ -14215,6 +14236,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
14215
14236
|
args: [{ providedIn: 'root' }]
|
|
14216
14237
|
}] });
|
|
14217
14238
|
|
|
14239
|
+
/** Coluna «Ações» + placeholders genéricos no skeleton antes do metadata da API. */
|
|
14240
|
+
const CONSULTA_SKELETON_GRID_COLUMN_COUNT = 5;
|
|
14241
|
+
const CONSULTA_SKELETON_DATA_COL_COUNT = CONSULTA_SKELETON_GRID_COLUMN_COUNT - 1;
|
|
14242
|
+
/** Cabeçalhos do skeleton de consulta: «Ações» + barras genéricas (sem esperar metadata). */
|
|
14243
|
+
const CONSULTA_SKELETON_GRID_HEADERS = [
|
|
14244
|
+
'Ações',
|
|
14245
|
+
...Array.from({ length: CONSULTA_SKELETON_DATA_COL_COUNT }, () => ''),
|
|
14246
|
+
];
|
|
14247
|
+
/** A grelha de consulta está pronta quando há pelo menos uma coluna de dados (além de «Ações»). */
|
|
14248
|
+
function consultaGrelhaTemColunasDados(colunas) {
|
|
14249
|
+
return (colunas ?? []).some((c) => c.type !== 'actions' && String(c.key ?? '').trim() !== '__actions');
|
|
14250
|
+
}
|
|
14251
|
+
|
|
14218
14252
|
const DEFAULT_LAYOUT_GRID_KEY = 'consulta-principal';
|
|
14219
14253
|
const LAYOUT_APPLY_RETRY_MS = 50;
|
|
14220
14254
|
/** Até ~6s — metadata de colunas (F5) pode demorar mais que o tenant a hidratar. */
|
|
@@ -14354,6 +14388,8 @@ class DataGridComponent {
|
|
|
14354
14388
|
/** Localização pt-BR do chrome do AG Grid (paginação e rótulos associados). */
|
|
14355
14389
|
this.localeText = DATA_GRID_LOCALE_PT_BR;
|
|
14356
14390
|
this.paginationPageSizeChoices = [10, 15, 25, 50];
|
|
14391
|
+
/** Cabeçalhos genéricos alinhados ao {@link ConsultaPageLoadingSkeletonComponent}. */
|
|
14392
|
+
this.placeholderSkeletonHeaders = CONSULTA_SKELETON_GRID_HEADERS;
|
|
14357
14393
|
this.defaultColDef = {
|
|
14358
14394
|
sortable: true,
|
|
14359
14395
|
resizable: true,
|
|
@@ -14417,6 +14453,13 @@ class DataGridComponent {
|
|
|
14417
14453
|
}
|
|
14418
14454
|
return (this.rows?.length ?? 0) === 0;
|
|
14419
14455
|
}
|
|
14456
|
+
/**
|
|
14457
|
+
* Bootstrap só com coluna «Ações»: skeleton tabular completo (cabeçalho + linhas + paginação),
|
|
14458
|
+
* em vez do overlay `bodyOnly` sobre o AG Grid com uma coluna real visível.
|
|
14459
|
+
*/
|
|
14460
|
+
get showFullPlaceholderSkeleton() {
|
|
14461
|
+
return this.showViewportSkeleton && this.countDataColumns(this.columns ?? []) === 0;
|
|
14462
|
+
}
|
|
14420
14463
|
/** Só esvazia `rowData` durante loading quando ainda não há linhas a mostrar. */
|
|
14421
14464
|
get clearRowDataWhileLoading() {
|
|
14422
14465
|
return this.loading && (this.rows?.length ?? 0) === 0;
|
|
@@ -14425,7 +14468,7 @@ class DataGridComponent {
|
|
|
14425
14468
|
* Empty state **fora** do AG Grid: o overlay nativo falha na 1.ª carga (skeleton + `suppressNoRowsOverlay` / v35).
|
|
14426
14469
|
*/
|
|
14427
14470
|
get showManualEmptyState() {
|
|
14428
|
-
if (this.showViewportSkeleton || this.paginationStripOnly) {
|
|
14471
|
+
if (this.showFullPlaceholderSkeleton || this.showViewportSkeleton || this.paginationStripOnly) {
|
|
14429
14472
|
return false;
|
|
14430
14473
|
}
|
|
14431
14474
|
const n = (this.rows ?? []).length;
|
|
@@ -14442,6 +14485,9 @@ class DataGridComponent {
|
|
|
14442
14485
|
const visible = this.columnsForGrid(this.columns ?? []);
|
|
14443
14486
|
const n = visible.length;
|
|
14444
14487
|
if (n > 0) {
|
|
14488
|
+
if (this.loading && this.countDataColumns(this.columns ?? []) === 0) {
|
|
14489
|
+
return CONSULTA_SKELETON_GRID_COLUMN_COUNT;
|
|
14490
|
+
}
|
|
14445
14491
|
return Math.min(24, n);
|
|
14446
14492
|
}
|
|
14447
14493
|
return 8;
|
|
@@ -15334,11 +15380,11 @@ class DataGridComponent {
|
|
|
15334
15380
|
});
|
|
15335
15381
|
}
|
|
15336
15382
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DataGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15337
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DataGridComponent, isStandalone: true, selector: "app-data-grid", inputs: { rows: "rows", columns: "columns", pageSize: "pageSize", loading: "loading", initialPaginationPage: ["initialPaginationPage", "initialPaginationPage", numberAttribute], height: "height", fitPaginationHeight: ["fitPaginationHeight", "fitPaginationHeight", booleanAttribute], fitPaginationMinEmptyRows: ["fitPaginationMinEmptyRows", "fitPaginationMinEmptyRows", numberAttribute], emptyMessage: "emptyMessage", pagination: "pagination", paginationPanelPlacement: "paginationPanelPlacement", paginationStripOnly: ["paginationStripOnly", "paginationStripOnly", booleanAttribute], suppressPaginationPageSizeSelector: ["suppressPaginationPageSizeSelector", "suppressPaginationPageSizeSelector", booleanAttribute], showActionsColumn: "showActionsColumn", showEditAction: ["showEditAction", "showEditAction", booleanAttribute], editActionLabel: "editActionLabel", editActionIconClass: "editActionIconClass", showRemoveAction: ["showRemoveAction", "showRemoveAction", booleanAttribute], showDuplicateAction: ["showDuplicateAction", "showDuplicateAction", booleanAttribute], showPrintAction: ["showPrintAction", "showPrintAction", booleanAttribute], printActionLabel: "printActionLabel", suppressRowClick: ["suppressRowClick", "suppressRowClick", booleanAttribute], inlineCellEditing: ["inlineCellEditing", "inlineCellEditing", booleanAttribute], highlightedRowMatch: "highlightedRowMatch", highlightMatchField: "highlightMatchField", layoutTelaKey: "layoutTelaKey", layoutGridKey: "layoutGridKey" }, outputs: { edit: "edit", duplicate: "duplicate", print: "print", remove: "remove", rowClick: "rowClick", selectionChange: "selectionChange", paginationChanged: "paginationChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"data-grid\" [class.data-grid--layout-stabilizing]=\"suppressHorizontalScrollFlicker\"\n [class.data-grid--fit-pagination]=\"fitPaginationHeight\"\n [class.data-grid--paginated]=\"pagination\"\n [class.data-grid--pagination-top]=\"pagination && paginationPanelPlacement === 'top'\"\n [class.data-grid--pagination-strip-only]=\"paginationStripOnly\" [style.height]=\"hostHeight\">\n <ag-grid-angular class=\"data-grid__ag ag-theme-alpine\" [theme]=\"'legacy'\" [localeText]=\"localeText\"\n [columnDefs]=\"agColumnDefs\" [components]=\"frameworkComponents\" [context]=\"actionsContext\"\n [defaultColDef]=\"defaultColDef\" [pagination]=\"pagination\" [paginationPageSize]=\"pageSize\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelectorInput\" [suppressCellFocus]=\"suppressCellFocusBinding\"\n [singleClickEdit]=\"inlineCellEditing\" [enableCellTextSelection]=\"true\" [animateRows]=\"false\" [domLayout]=\"'normal'\"\n [suppressNoRowsOverlay]=\"true\" [suppressLoadingOverlay]=\"true\" [cellFlashDuration]=\"0\"\n [cellFadeDuration]=\"0\" [suppressColumnMoveAnimation]=\"suppressColumnMoveAnimation\"\n [getRowId]=\"getRowId\" (gridReady)=\"onGridReady($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n (columnMoved)=\"onLayoutColumnMoved($event)\"\n (columnResized)=\"onLayoutColumnResized($event)\"\n (columnVisible)=\"onLayoutColumnVisible($event)\"\n (columnPinned)=\"onLayoutColumnPinned($event)\" />\n @if (showViewportSkeleton) {\n <div class=\"data-grid__viewport-skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <span class=\"visually-hidden\">A carregar grid...</span>\n <app-skeleton-table class=\"data-grid__viewport-skeleton-table\" [columnCount]=\"skeletonColumnCount\"\n [rowCount]=\"skeletonRowCount\" [showPager]=\"false\" [bodyOnly]=\"true\" />\n </div>\n }\n @if (showManualEmptyState) {\n <div class=\"data-grid__empty-overlay\" role=\"status\" aria-live=\"polite\">\n <div class=\"empty-state empty-state--embed\">\n <span class=\"empty-state__icon\" aria-hidden=\"true\"><i class=\"fa-solid fa-inbox\"></i></span>\n <p class=\"empty-state__message\">{{ emptyMessage }}</p>\n </div>\n </div>\n }\n</div>", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep .ag-row.structra-data-grid-row--highlighted{background-color:#1976d217}.data-grid{--ag-grid-size: 7px;position:relative;display:flex;flex-direction:column;width:100%;min-width:0;min-height:200px;box-sizing:border-box;border-radius:10px;overflow:hidden;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, var(--app-color-elevated-surface))}.data-grid__viewport-skeleton{position:absolute;z-index:3;left:0;right:0;top:calc(var(--ag-grid-size) * 8);bottom:0;display:flex;flex-direction:column;min-height:0;box-sizing:border-box;pointer-events:none;background:var(--app-color-surface, var(--app-color-elevated-surface))}.data-grid--paginated .data-grid__viewport-skeleton{bottom:calc(var(--ag-grid-size) * 8)}.data-grid__viewport-skeleton-table{flex:1 1 auto;min-height:0;width:100%}.data-grid__empty-overlay{position:absolute;z-index:2;left:0;right:0;top:calc(var(--ag-grid-size) * 8);bottom:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;background:var(--app-color-surface, var(--app-color-elevated-surface))}.data-grid--paginated .data-grid__empty-overlay{bottom:calc(var(--ag-grid-size) * 8)}.data-grid:has(.data-grid__viewport-skeleton) .data-grid__empty-overlay{display:none!important}.data-grid--fit-pagination{flex-shrink:0;align-self:flex-start;min-height:0}.data-grid__ag{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%}.data-grid--pagination-top .data-grid__ag ::ng-deep .ag-root-wrapper{flex-direction:column-reverse}.data-grid--pagination-strip-only{min-height:0;flex-shrink:0}.data-grid--pagination-strip-only .data-grid__ag ::ng-deep .ag-root-wrapper-body{display:none!important}.data-grid--pagination-strip-only .data-grid__ag{flex:0 0 auto;min-height:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"], dependencies: [{ kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipSwitchShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "hidePaddedHeaderRows", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "animateColumnResizing", "components", "editType", "suppressStartEditOnTab", "getFullRowEditValidationErrors", "invalidEditValueMode", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "advancedFilterParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableFilterHandlers", "filterHandlers", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "suppressOverlays", "overlayComponent", "overlayComponentParams", "overlayComponentSelector", "activeOverlay", "activeOverlayParams", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "formulaDataSource", "formulaFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "refreshAfterGroupEdit", "rowDragInsertDelay", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupHideColumnsUntilExpanded", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "groupHierarchyConfig", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "tabToNextGridContainer", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "ssrmExpandAllAffectsAllRows", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow", "isRowValidDropPosition"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnsReset", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "bulkEditingStarted", "bulkEditingStopped", "batchEditingStarted", "batchEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "filterUiChanged", "floatingFilterUiChanged", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { kind: "component", type: SkeletonTableComponent, selector: "app-skeleton-table", inputs: ["columnCount", "rowCount", "showPager", "bodyOnly", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15383
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DataGridComponent, isStandalone: true, selector: "app-data-grid", inputs: { rows: "rows", columns: "columns", pageSize: "pageSize", loading: "loading", initialPaginationPage: ["initialPaginationPage", "initialPaginationPage", numberAttribute], height: "height", fitPaginationHeight: ["fitPaginationHeight", "fitPaginationHeight", booleanAttribute], fitPaginationMinEmptyRows: ["fitPaginationMinEmptyRows", "fitPaginationMinEmptyRows", numberAttribute], emptyMessage: "emptyMessage", pagination: "pagination", paginationPanelPlacement: "paginationPanelPlacement", paginationStripOnly: ["paginationStripOnly", "paginationStripOnly", booleanAttribute], suppressPaginationPageSizeSelector: ["suppressPaginationPageSizeSelector", "suppressPaginationPageSizeSelector", booleanAttribute], showActionsColumn: "showActionsColumn", showEditAction: ["showEditAction", "showEditAction", booleanAttribute], editActionLabel: "editActionLabel", editActionIconClass: "editActionIconClass", showRemoveAction: ["showRemoveAction", "showRemoveAction", booleanAttribute], showDuplicateAction: ["showDuplicateAction", "showDuplicateAction", booleanAttribute], showPrintAction: ["showPrintAction", "showPrintAction", booleanAttribute], printActionLabel: "printActionLabel", suppressRowClick: ["suppressRowClick", "suppressRowClick", booleanAttribute], inlineCellEditing: ["inlineCellEditing", "inlineCellEditing", booleanAttribute], highlightedRowMatch: "highlightedRowMatch", highlightMatchField: "highlightMatchField", layoutTelaKey: "layoutTelaKey", layoutGridKey: "layoutGridKey" }, outputs: { edit: "edit", duplicate: "duplicate", print: "print", remove: "remove", rowClick: "rowClick", selectionChange: "selectionChange", paginationChanged: "paginationChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"data-grid\" [class.data-grid--layout-stabilizing]=\"suppressHorizontalScrollFlicker\"\n [class.data-grid--fit-pagination]=\"fitPaginationHeight\"\n [class.data-grid--paginated]=\"pagination\"\n [class.data-grid--pagination-top]=\"pagination && paginationPanelPlacement === 'top'\"\n [class.data-grid--pagination-strip-only]=\"paginationStripOnly\"\n [class.data-grid--placeholder-loading]=\"showFullPlaceholderSkeleton\"\n [style.height]=\"hostHeight\">\n <ag-grid-angular class=\"data-grid__ag ag-theme-alpine\" [class.data-grid__ag--hidden]=\"showFullPlaceholderSkeleton\"\n [theme]=\"'legacy'\" [localeText]=\"localeText\"\n [columnDefs]=\"agColumnDefs\" [components]=\"frameworkComponents\" [context]=\"actionsContext\"\n [defaultColDef]=\"defaultColDef\" [pagination]=\"pagination\" [paginationPageSize]=\"pageSize\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelectorInput\" [suppressCellFocus]=\"suppressCellFocusBinding\"\n [singleClickEdit]=\"inlineCellEditing\" [enableCellTextSelection]=\"true\" [animateRows]=\"false\" [domLayout]=\"'normal'\"\n [suppressNoRowsOverlay]=\"true\" [suppressLoadingOverlay]=\"true\" [cellFlashDuration]=\"0\"\n [cellFadeDuration]=\"0\" [suppressColumnMoveAnimation]=\"suppressColumnMoveAnimation\"\n [getRowId]=\"getRowId\" (gridReady)=\"onGridReady($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n (columnMoved)=\"onLayoutColumnMoved($event)\"\n (columnResized)=\"onLayoutColumnResized($event)\"\n (columnVisible)=\"onLayoutColumnVisible($event)\"\n (columnPinned)=\"onLayoutColumnPinned($event)\" />\n @if (showFullPlaceholderSkeleton) {\n <div class=\"data-grid__placeholder-skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <span class=\"visually-hidden\">A carregar grid...</span>\n <app-skeleton-table class=\"data-grid__placeholder-skeleton-table\"\n [headerLabels]=\"placeholderSkeletonHeaders\"\n [columnCount]=\"skeletonColumnCount\"\n [rowCount]=\"skeletonRowCount\"\n [showPager]=\"pagination && !paginationStripOnly\"\n pagerRangeLabel=\"0 a 0 de 0\"\n pagerPageLabel=\"P\u00E1gina 0 de 0\" />\n </div>\n } @else if (showViewportSkeleton) {\n <div class=\"data-grid__viewport-skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <span class=\"visually-hidden\">A carregar grid...</span>\n <app-skeleton-table class=\"data-grid__viewport-skeleton-table\" [columnCount]=\"skeletonColumnCount\"\n [rowCount]=\"skeletonRowCount\" [showPager]=\"false\" [bodyOnly]=\"true\" />\n </div>\n }\n @if (showManualEmptyState) {\n <div class=\"data-grid__empty-overlay\" role=\"status\" aria-live=\"polite\">\n <div class=\"empty-state empty-state--embed\">\n <span class=\"empty-state__icon\" aria-hidden=\"true\"><i class=\"fa-solid fa-inbox\"></i></span>\n <p class=\"empty-state__message\">{{ emptyMessage }}</p>\n </div>\n </div>\n }\n</div>", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep .ag-row.structra-data-grid-row--highlighted{background-color:#1976d217}.data-grid{--ag-grid-size: 7px;position:relative;display:flex;flex-direction:column;width:100%;min-width:0;min-height:200px;box-sizing:border-box;border-radius:10px;overflow:hidden;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, var(--app-color-elevated-surface))}.data-grid__viewport-skeleton{position:absolute;z-index:3;left:0;right:0;top:calc(var(--ag-grid-size) * 8);bottom:0;display:flex;flex-direction:column;min-height:0;box-sizing:border-box;pointer-events:none;background:var(--app-color-surface, var(--app-color-elevated-surface))}.data-grid--paginated .data-grid__viewport-skeleton{bottom:calc(var(--ag-grid-size) * 8)}.data-grid__viewport-skeleton-table{flex:1 1 auto;min-height:0;width:100%}.data-grid--placeholder-loading .data-grid__ag--hidden{visibility:hidden;pointer-events:none}.data-grid__placeholder-skeleton{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;min-height:0;box-sizing:border-box;pointer-events:none}.data-grid__placeholder-skeleton-table{flex:1 1 auto;min-height:0;width:100%}.data-grid__empty-overlay{position:absolute;z-index:2;left:0;right:0;top:calc(var(--ag-grid-size) * 8);bottom:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;background:var(--app-color-surface, var(--app-color-elevated-surface))}.data-grid--paginated .data-grid__empty-overlay{bottom:calc(var(--ag-grid-size) * 8)}.data-grid:has(.data-grid__viewport-skeleton) .data-grid__empty-overlay{display:none!important}.data-grid--fit-pagination{flex-shrink:0;align-self:flex-start;min-height:0}.data-grid__ag{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%}.data-grid--pagination-top .data-grid__ag ::ng-deep .ag-root-wrapper{flex-direction:column-reverse}.data-grid--pagination-strip-only{min-height:0;flex-shrink:0}.data-grid--pagination-strip-only .data-grid__ag ::ng-deep .ag-root-wrapper-body{display:none!important}.data-grid--pagination-strip-only .data-grid__ag{flex:0 0 auto;min-height:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"], dependencies: [{ kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipSwitchShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "hidePaddedHeaderRows", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "animateColumnResizing", "components", "editType", "suppressStartEditOnTab", "getFullRowEditValidationErrors", "invalidEditValueMode", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "advancedFilterParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableFilterHandlers", "filterHandlers", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "suppressOverlays", "overlayComponent", "overlayComponentParams", "overlayComponentSelector", "activeOverlay", "activeOverlayParams", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "formulaDataSource", "formulaFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "refreshAfterGroupEdit", "rowDragInsertDelay", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupHideColumnsUntilExpanded", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "groupHierarchyConfig", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "tabToNextGridContainer", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "ssrmExpandAllAffectsAllRows", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow", "isRowValidDropPosition"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnsReset", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "bulkEditingStarted", "bulkEditingStopped", "batchEditingStarted", "batchEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "filterUiChanged", "floatingFilterUiChanged", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { kind: "component", type: SkeletonTableComponent, selector: "app-skeleton-table", inputs: ["columnCount", "rowCount", "showPager", "bodyOnly", "animate", "headerLabels", "chrome", "showActionsColumn", "pagerRangeLabel", "pagerPageLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15338
15384
|
}
|
|
15339
15385
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DataGridComponent, decorators: [{
|
|
15340
15386
|
type: Component,
|
|
15341
|
-
args: [{ selector: 'app-data-grid', imports: [AgGridAngular, SkeletonTableComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"data-grid\" [class.data-grid--layout-stabilizing]=\"suppressHorizontalScrollFlicker\"\n [class.data-grid--fit-pagination]=\"fitPaginationHeight\"\n [class.data-grid--paginated]=\"pagination\"\n [class.data-grid--pagination-top]=\"pagination && paginationPanelPlacement === 'top'\"\n [class.data-grid--pagination-strip-only]=\"paginationStripOnly\"
|
|
15387
|
+
args: [{ selector: 'app-data-grid', imports: [AgGridAngular, SkeletonTableComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"data-grid\" [class.data-grid--layout-stabilizing]=\"suppressHorizontalScrollFlicker\"\n [class.data-grid--fit-pagination]=\"fitPaginationHeight\"\n [class.data-grid--paginated]=\"pagination\"\n [class.data-grid--pagination-top]=\"pagination && paginationPanelPlacement === 'top'\"\n [class.data-grid--pagination-strip-only]=\"paginationStripOnly\"\n [class.data-grid--placeholder-loading]=\"showFullPlaceholderSkeleton\"\n [style.height]=\"hostHeight\">\n <ag-grid-angular class=\"data-grid__ag ag-theme-alpine\" [class.data-grid__ag--hidden]=\"showFullPlaceholderSkeleton\"\n [theme]=\"'legacy'\" [localeText]=\"localeText\"\n [columnDefs]=\"agColumnDefs\" [components]=\"frameworkComponents\" [context]=\"actionsContext\"\n [defaultColDef]=\"defaultColDef\" [pagination]=\"pagination\" [paginationPageSize]=\"pageSize\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelectorInput\" [suppressCellFocus]=\"suppressCellFocusBinding\"\n [singleClickEdit]=\"inlineCellEditing\" [enableCellTextSelection]=\"true\" [animateRows]=\"false\" [domLayout]=\"'normal'\"\n [suppressNoRowsOverlay]=\"true\" [suppressLoadingOverlay]=\"true\" [cellFlashDuration]=\"0\"\n [cellFadeDuration]=\"0\" [suppressColumnMoveAnimation]=\"suppressColumnMoveAnimation\"\n [getRowId]=\"getRowId\" (gridReady)=\"onGridReady($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n (columnMoved)=\"onLayoutColumnMoved($event)\"\n (columnResized)=\"onLayoutColumnResized($event)\"\n (columnVisible)=\"onLayoutColumnVisible($event)\"\n (columnPinned)=\"onLayoutColumnPinned($event)\" />\n @if (showFullPlaceholderSkeleton) {\n <div class=\"data-grid__placeholder-skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <span class=\"visually-hidden\">A carregar grid...</span>\n <app-skeleton-table class=\"data-grid__placeholder-skeleton-table\"\n [headerLabels]=\"placeholderSkeletonHeaders\"\n [columnCount]=\"skeletonColumnCount\"\n [rowCount]=\"skeletonRowCount\"\n [showPager]=\"pagination && !paginationStripOnly\"\n pagerRangeLabel=\"0 a 0 de 0\"\n pagerPageLabel=\"P\u00E1gina 0 de 0\" />\n </div>\n } @else if (showViewportSkeleton) {\n <div class=\"data-grid__viewport-skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <span class=\"visually-hidden\">A carregar grid...</span>\n <app-skeleton-table class=\"data-grid__viewport-skeleton-table\" [columnCount]=\"skeletonColumnCount\"\n [rowCount]=\"skeletonRowCount\" [showPager]=\"false\" [bodyOnly]=\"true\" />\n </div>\n }\n @if (showManualEmptyState) {\n <div class=\"data-grid__empty-overlay\" role=\"status\" aria-live=\"polite\">\n <div class=\"empty-state empty-state--embed\">\n <span class=\"empty-state__icon\" aria-hidden=\"true\"><i class=\"fa-solid fa-inbox\"></i></span>\n <p class=\"empty-state__message\">{{ emptyMessage }}</p>\n </div>\n </div>\n }\n</div>", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep .ag-row.structra-data-grid-row--highlighted{background-color:#1976d217}.data-grid{--ag-grid-size: 7px;position:relative;display:flex;flex-direction:column;width:100%;min-width:0;min-height:200px;box-sizing:border-box;border-radius:10px;overflow:hidden;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, var(--app-color-elevated-surface))}.data-grid__viewport-skeleton{position:absolute;z-index:3;left:0;right:0;top:calc(var(--ag-grid-size) * 8);bottom:0;display:flex;flex-direction:column;min-height:0;box-sizing:border-box;pointer-events:none;background:var(--app-color-surface, var(--app-color-elevated-surface))}.data-grid--paginated .data-grid__viewport-skeleton{bottom:calc(var(--ag-grid-size) * 8)}.data-grid__viewport-skeleton-table{flex:1 1 auto;min-height:0;width:100%}.data-grid--placeholder-loading .data-grid__ag--hidden{visibility:hidden;pointer-events:none}.data-grid__placeholder-skeleton{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;min-height:0;box-sizing:border-box;pointer-events:none}.data-grid__placeholder-skeleton-table{flex:1 1 auto;min-height:0;width:100%}.data-grid__empty-overlay{position:absolute;z-index:2;left:0;right:0;top:calc(var(--ag-grid-size) * 8);bottom:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;background:var(--app-color-surface, var(--app-color-elevated-surface))}.data-grid--paginated .data-grid__empty-overlay{bottom:calc(var(--ag-grid-size) * 8)}.data-grid:has(.data-grid__viewport-skeleton) .data-grid__empty-overlay{display:none!important}.data-grid--fit-pagination{flex-shrink:0;align-self:flex-start;min-height:0}.data-grid__ag{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%}.data-grid--pagination-top .data-grid__ag ::ng-deep .ag-root-wrapper{flex-direction:column-reverse}.data-grid--pagination-strip-only{min-height:0;flex-shrink:0}.data-grid--pagination-strip-only .data-grid__ag ::ng-deep .ag-root-wrapper-body{display:none!important}.data-grid--pagination-strip-only .data-grid__ag{flex:0 0 auto;min-height:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"] }]
|
|
15342
15388
|
}], ctorParameters: () => [], propDecorators: { rows: [{
|
|
15343
15389
|
type: Input,
|
|
15344
15390
|
args: [{ required: true }]
|
|
@@ -19216,6 +19262,14 @@ const STRUCTRA_SHELL_TOPBAR_TITLE_SKELETON = new InjectionToken('STRUCTRA_SHELL_
|
|
|
19216
19262
|
providedIn: 'root',
|
|
19217
19263
|
factory: () => signal(false),
|
|
19218
19264
|
});
|
|
19265
|
+
/**
|
|
19266
|
+
* Handshake overlay de navegação (ex.: `app-home`) ↔ página de consulta montada.
|
|
19267
|
+
* A shell só faz fade-out do skeleton transitório quando a rota sinaliza `true` (ou timeout).
|
|
19268
|
+
*/
|
|
19269
|
+
const STRUCTRA_SHELL_NAV_CONTENT_READY = new InjectionToken('STRUCTRA_SHELL_NAV_CONTENT_READY', {
|
|
19270
|
+
providedIn: 'root',
|
|
19271
|
+
factory: () => signal(false),
|
|
19272
|
+
});
|
|
19219
19273
|
const CONSULTA_TOPBAR_SLOT = new InjectionToken('CONSULTA_TOPBAR_SLOT');
|
|
19220
19274
|
const CONSULTA_ROUTE_REUSE = new InjectionToken('CONSULTA_ROUTE_REUSE');
|
|
19221
19275
|
class NoOpConsultaTopbarSlot {
|
|
@@ -22181,6 +22235,9 @@ class ConsultaFiltrosSessaoService {
|
|
|
22181
22235
|
...(b.tituloTopbarConsulta != null && b.tituloTopbarConsulta !== ''
|
|
22182
22236
|
? { tituloTopbarConsulta: b.tituloTopbarConsulta }
|
|
22183
22237
|
: {}),
|
|
22238
|
+
...(b.subtituloTopbarConsulta != null && b.subtituloTopbarConsulta !== ''
|
|
22239
|
+
? { subtituloTopbarConsulta: b.subtituloTopbarConsulta }
|
|
22240
|
+
: {}),
|
|
22184
22241
|
...(b.toastTitleListaServidor != null && b.toastTitleListaServidor !== ''
|
|
22185
22242
|
? { toastTitleListaServidor: b.toastTitleListaServidor }
|
|
22186
22243
|
: {}),
|
|
@@ -22363,6 +22420,10 @@ function tituloTopbarConsultaDesdeLayout(layout) {
|
|
|
22363
22420
|
const t = layout?.pageTitleConsulta?.trim();
|
|
22364
22421
|
return t || undefined;
|
|
22365
22422
|
}
|
|
22423
|
+
function subtituloTopbarConsultaDesdeLayout(layout) {
|
|
22424
|
+
const t = layout?.pageSubtitle?.trim();
|
|
22425
|
+
return t || undefined;
|
|
22426
|
+
}
|
|
22366
22427
|
function toastTitleListaConsultaDesdeLayout(layout) {
|
|
22367
22428
|
const t = layout?.pageToastTitle?.trim();
|
|
22368
22429
|
return t || undefined;
|
|
@@ -22379,6 +22440,7 @@ class ConsultaCatalogBundleHelper {
|
|
|
22379
22440
|
const presets = (init.filtros ?? []).map((f) => this.cfg.mapFiltroSalvoParaPreset(f));
|
|
22380
22441
|
const tituloTooltipBotaoNovo = tituloTooltipConsultaBotaoNovo(init.cadastroFormLayout);
|
|
22381
22442
|
const tituloTopbarConsulta = tituloTopbarConsultaDesdeLayout(init.cadastroFormLayout);
|
|
22443
|
+
const subtituloTopbarConsulta = subtituloTopbarConsultaDesdeLayout(init.cadastroFormLayout);
|
|
22382
22444
|
const toastTitleListaServidor = toastTitleListaConsultaDesdeLayout(init.cadastroFormLayout);
|
|
22383
22445
|
const consultaPageMetadata = buildConsultaPageMetadataUnified({
|
|
22384
22446
|
metadata: init.metadata,
|
|
@@ -22390,6 +22452,7 @@ class ConsultaCatalogBundleHelper {
|
|
|
22390
22452
|
filtroUi: this.cfg.mapMetadataParaFiltroUi(init.metadata),
|
|
22391
22453
|
...(tituloTooltipBotaoNovo ? { tituloTooltipBotaoNovo } : {}),
|
|
22392
22454
|
...(tituloTopbarConsulta ? { tituloTopbarConsulta } : {}),
|
|
22455
|
+
...(subtituloTopbarConsulta ? { subtituloTopbarConsulta } : {}),
|
|
22393
22456
|
...(toastTitleListaServidor ? { toastTitleListaServidor } : {}),
|
|
22394
22457
|
consultaPageMetadata,
|
|
22395
22458
|
};
|
|
@@ -23622,11 +23685,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
23622
23685
|
args: ['cadastroValorAtivoNg', { read: NgModel }]
|
|
23623
23686
|
}] } });
|
|
23624
23687
|
|
|
23625
|
-
/** A grelha de consulta está pronta quando há pelo menos uma coluna de dados (além de «Ações»). */
|
|
23626
|
-
function consultaGrelhaTemColunasDados(colunas) {
|
|
23627
|
-
return (colunas ?? []).some((c) => c.type !== 'actions' && String(c.key ?? '').trim() !== '__actions');
|
|
23628
|
-
}
|
|
23629
|
-
|
|
23630
23688
|
/** Menu «⋯» do select «Filtro» quando há preset seleccionado. */
|
|
23631
23689
|
const CONSULTA_FILTRO_PRESET_CONTEXT_MENU_ID = 'consulta-filtro-preset-context';
|
|
23632
23690
|
const CTX_MENU_EDITAR_FILTRO_PRESET = 'ctx-editar-filtro-preset';
|
|
@@ -23646,6 +23704,8 @@ class ConsultaBasePageComponent {
|
|
|
23646
23704
|
this.toast = inject(ToastService);
|
|
23647
23705
|
this.topbarSlot = inject(CONSULTA_TOPBAR_SLOT, { optional: true }) ?? NO_OP_CONSULTA_TOPBAR_SLOT;
|
|
23648
23706
|
this.topbarTitleSkeleton = inject(STRUCTRA_SHELL_TOPBAR_TITLE_SKELETON);
|
|
23707
|
+
this.navContentReady = inject(STRUCTRA_SHELL_NAV_CONTENT_READY);
|
|
23708
|
+
this.injector = inject(Injector);
|
|
23649
23709
|
this.listaMemoriaCache = inject(ConsultaListaMemoriaCacheService);
|
|
23650
23710
|
this.router = inject(Router);
|
|
23651
23711
|
this.routeReuse = inject(CONSULTA_ROUTE_REUSE, { optional: true }) ?? NO_OP_CONSULTA_ROUTE_REUSE;
|
|
@@ -23666,6 +23726,8 @@ class ConsultaBasePageComponent {
|
|
|
23666
23726
|
this.tituloTooltipBotaoNovoServidor = signal(undefined, ...(ngDevMode ? [{ debugName: "tituloTooltipBotaoNovoServidor" }] : /* istanbul ignore next */ []));
|
|
23667
23727
|
/** `[Title(TitleConsulta = …)]` — topbar da consulta; vazio ⇒ {@link CONSULTA_TOPBAR_TITULO_PADRAO}. */
|
|
23668
23728
|
this.tituloTopbarConsultaServidor = signal(undefined, ...(ngDevMode ? [{ debugName: "tituloTopbarConsultaServidor" }] : /* istanbul ignore next */ []));
|
|
23729
|
+
/** `[Title(SubTitle = …)]` do cadastro — subtítulo da topbar na listagem (mesmo ritmo que Receitas/Despesas). */
|
|
23730
|
+
this.subtituloTopbarConsultaServidor = signal(undefined, ...(ngDevMode ? [{ debugName: "subtituloTopbarConsultaServidor" }] : /* istanbul ignore next */ []));
|
|
23669
23731
|
/** `[Title(ToastTitle = …)]` — toasts da lista; vazio ⇒ {@link ConsultaPageRuntime.toastTitleLista}. */
|
|
23670
23732
|
this.toastTitleListaServidor = signal(undefined, ...(ngDevMode ? [{ debugName: "toastTitleListaServidor" }] : /* istanbul ignore next */ []));
|
|
23671
23733
|
/**
|
|
@@ -23753,7 +23815,8 @@ class ConsultaBasePageComponent {
|
|
|
23753
23815
|
return;
|
|
23754
23816
|
}
|
|
23755
23817
|
const t = this.tituloTopbarConsultaServidor()?.trim();
|
|
23756
|
-
this.
|
|
23818
|
+
const s = this.subtituloTopbarConsultaServidor()?.trim();
|
|
23819
|
+
this.topbarSlot.setHeaderOverrides(t && t !== '' ? t : CONSULTA_TOPBAR_TITULO_PADRAO, s && s !== '' ? s : null);
|
|
23757
23820
|
}, ...(ngDevMode ? [{ debugName: "syncTopbarConsultaTituloListagem" }] : /* istanbul ignore next */ []));
|
|
23758
23821
|
/** Pedidos de lista concorrentes: só o mais recente aplica resultado e desliga o skeleton. */
|
|
23759
23822
|
this.listaFetchSeq = 0;
|
|
@@ -23766,22 +23829,28 @@ class ConsultaBasePageComponent {
|
|
|
23766
23829
|
/** `performance.now()` quando {@link filtroPainelItensAguardaArranqueServidor} passou a `true`. */
|
|
23767
23830
|
this.filtroSkeletonShownAtMs = 0;
|
|
23768
23831
|
this.carregandoListaExplicito = signal(false, ...(ngDevMode ? [{ debugName: "carregandoListaExplicito" }] : /* istanbul ignore next */ []));
|
|
23832
|
+
this.listaGrelhaPrecisaLoading = computed(() => {
|
|
23833
|
+
if (this.carregandoListaExplicito()) {
|
|
23834
|
+
return true;
|
|
23835
|
+
}
|
|
23836
|
+
/** Com itens já visíveis (cache), não forçar skeleton só porque o metadata de colunas ainda hidrata. */
|
|
23837
|
+
if (this.items().length > 0) {
|
|
23838
|
+
return false;
|
|
23839
|
+
}
|
|
23840
|
+
return !consultaGrelhaTemColunasDados(this.runtimeConsulta().gridColumns);
|
|
23841
|
+
}, ...(ngDevMode ? [{ debugName: "listaGrelhaPrecisaLoading" }] : /* istanbul ignore next */ []));
|
|
23769
23842
|
/**
|
|
23770
23843
|
* Skeleton na grelha enquanto a lista ou o metadata de colunas (bundle gRPC) não estiverem prontos.
|
|
23771
23844
|
* Evita mostrar só a coluna «Ações» ({@link GRID_BOOTSTRAP_VAZIO}) antes das colunas de dados.
|
|
23772
23845
|
*/
|
|
23773
23846
|
this.listaGrelhaExibirLoading = computed(() => {
|
|
23774
|
-
if (this.
|
|
23847
|
+
if (this.listaGrelhaPrecisaLoading()) {
|
|
23775
23848
|
return true;
|
|
23776
23849
|
}
|
|
23777
23850
|
if (!this.runtime().loadConsultaBundleAsync) {
|
|
23778
23851
|
return false;
|
|
23779
23852
|
}
|
|
23780
|
-
|
|
23781
|
-
if (this.items().length > 0) {
|
|
23782
|
-
return false;
|
|
23783
|
-
}
|
|
23784
|
-
return !consultaGrelhaTemColunasDados(this.runtimeConsulta().gridColumns);
|
|
23853
|
+
return this.filtroPainelItensAguardaArranqueServidor();
|
|
23785
23854
|
}, ...(ngDevMode ? [{ debugName: "listaGrelhaExibirLoading" }] : /* istanbul ignore next */ []));
|
|
23786
23855
|
this.items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
23787
23856
|
this.painelFiltroRecolhido = signal(true, ...(ngDevMode ? [{ debugName: "painelFiltroRecolhido" }] : /* istanbul ignore next */ []));
|
|
@@ -23956,6 +24025,8 @@ class ConsultaBasePageComponent {
|
|
|
23956
24025
|
this.tituloTooltipBotaoNovoServidor.set(tt || undefined);
|
|
23957
24026
|
const tc = bundle.tituloTopbarConsulta?.trim();
|
|
23958
24027
|
this.tituloTopbarConsultaServidor.set(tc || undefined);
|
|
24028
|
+
const st = bundle.subtituloTopbarConsulta?.trim();
|
|
24029
|
+
this.subtituloTopbarConsultaServidor.set(st || undefined);
|
|
23959
24030
|
const tls = bundle.toastTitleListaServidor?.trim();
|
|
23960
24031
|
this.toastTitleListaServidor.set(tls || undefined);
|
|
23961
24032
|
}
|
|
@@ -24057,6 +24128,8 @@ class ConsultaBasePageComponent {
|
|
|
24057
24128
|
this.tituloTooltipBotaoNovoServidor.set(tt || undefined);
|
|
24058
24129
|
const tc = b.tituloTopbarConsulta?.trim();
|
|
24059
24130
|
this.tituloTopbarConsultaServidor.set(tc || undefined);
|
|
24131
|
+
const st = b.subtituloTopbarConsulta?.trim();
|
|
24132
|
+
this.subtituloTopbarConsultaServidor.set(st || undefined);
|
|
24060
24133
|
const tls = b.toastTitleListaServidor?.trim();
|
|
24061
24134
|
this.toastTitleListaServidor.set(tls || undefined);
|
|
24062
24135
|
}
|
|
@@ -24105,6 +24178,9 @@ class ConsultaBasePageComponent {
|
|
|
24105
24178
|
if (this.runtime().omitirTopbarShellOverride !== true) {
|
|
24106
24179
|
this.topbarSlot.setEndTemplate(this.consultaTopbarEnd ?? null);
|
|
24107
24180
|
}
|
|
24181
|
+
afterNextRender(() => {
|
|
24182
|
+
this.navContentReady.set(true);
|
|
24183
|
+
}, { injector: this.injector });
|
|
24108
24184
|
}
|
|
24109
24185
|
syncScrollContainer() {
|
|
24110
24186
|
this.scrollContainer.set(resolveStructraShellScrollContainer(this.host.nativeElement, '.structra-consulta-page-host'));
|
|
@@ -24891,7 +24967,7 @@ class ConsultaBasePageComponent {
|
|
|
24891
24967
|
}
|
|
24892
24968
|
}
|
|
24893
24969
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ConsultaBasePageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24894
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ConsultaBasePageComponent, isStandalone: true, selector: "app-consulta-base-page", inputs: { runtime: { classPropertyName: "runtime", publicName: "runtime", isSignal: true, isRequired: true, transformFunction: null }, topbarEndExtraTemplate: { classPropertyName: "topbarEndExtraTemplate", publicName: "topbarEndExtraTemplate", isSignal: true, isRequired: false, transformFunction: null }, tooltipBotaoPesquisar: { classPropertyName: "tooltipBotaoPesquisar", publicName: "tooltipBotaoPesquisar", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "cadastroFiltroDialog", first: true, predicate: ConsultaCadastroFiltroDialogComponent, descendants: true, isSignal: true }, { propertyName: "consultaTopbarEnd", first: true, predicate: ["consultaTopbarEnd"], descendants: true }], ngImport: i0, template: "<div class=\"usuarios-page flex min-h-0 w-full min-w-0 max-w-none flex-1 flex-col\">\n <app-form-group class=\"usuarios-consulta-filtro-group block w-full shrink-0\"\n [titulo]=\"runtimeConsulta().tituloConsultaFiltros ?? 'Filtros'\" [subtitulo]=\"subtituloConsultaFiltros()\"\n [collapsible]=\"true\" [dense]=\"true\" [showDivider]=\"false\" [collapsed]=\"painelFiltroRecolhido()\"\n (collapsedChange)=\"painelFiltroRecolhido.set($event)\">\n <div class=\"usuarios-consulta-filtro-inner\">\n <!-- Um \u00FAnico `app-form-row`: o mesmo `gap-xs` (0.5rem) entre todas as linhas; dois rows separados davam 0.35rem vs 0.5rem. -->\n <app-form-row wrap=\"true\" align=\"stretch\" gap=\"xs\">\n <app-form-col [xs]=\"12\">\n <app-consulta-filtro-preset-toolbar [options]=\"presetSelectOptions()\"\n [presetId]=\"consultaPresetId()\" (presetIdChange)=\"onConsultaPresetChange($event)\"\n [emptyOptionsMessage]=\"consultaPresetSelectEmptyOptionsMessage()\" [compareWith]=\"compareStr\"\n [mostrarMenuContexto]=\"!!consultaPreset()\"\n [contextMenuItems]=\"consultaFiltroContextMenuItems()\"\n [contextMenuId]=\"CONSULTA_FILTRO_PRESET_CONTEXT_MENU_ID\"\n (contextMenuSelect)=\"onConsultaFiltroContextMenuSelect($event)\"\n (novoFiltroClick)=\"abrirDialogCadastroFiltro()\" />\n </app-form-col>\n @if (filtroItensSkeletonIndices().length > 0) {\n @for (idx of filtroItensSkeletonIndices(); track idx; let isLast = $last, itemCount = $count) {\n <app-form-col [xs]=\"12\" [md]=\"6\"\n [class.usuarios-consulta-filtro-item--solo]=\"isLast && itemCount % 2 === 1\">\n <app-text-field label=\" \" aria-label=\"A carregar crit\u00E9rios do filtro\"\n [loading]=\"true\" [showPrefixIcon]=\"false\" [clearable]=\"false\" [autocomplete]=\"false\" />\n </app-form-col>\n }\n } @else if (consultaPreset()) {\n @for (it of consultaItensOrdenados(); track it.id; let isLast = $last, itemCount = $count) {\n <app-form-col [xs]=\"12\" [md]=\"6\"\n [class.usuarios-consulta-filtro-item--solo]=\"isLast && itemCount % 2 === 1\">\n @if (isBoolColuna(it.coluna)) {\n <app-select-field [label]=\"rotuloCampoConsulta(it, $index)\" [showPrefixIcon]=\"false\"\n [options]=\"runtimeConsulta().estadoOptions ?? []\"\n [ngModel]=\"consultaValorSelectAtivo(it.id)\"\n (ngModelChange)=\"patchConsultaValorAtivo(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\" />\n } @else if (isSearchSelectColuna(it.coluna)) {\n <app-dropdown-search-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Pesquisar e seleccionar\u2026\" [showPrefixIcon]=\"false\"\n [options]=\"consultaSearchSelectOpcoesPainel(it)\"\n [ngModel]=\"consultaValorFilterSelectId(it.id)\"\n (ngModelChange)=\"patchConsultaValorFilterSelect(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" clearAriaLabel=\"Limpar valor\"\n [useCache]=\"false\"\n [hasMore]=\"false\"\n [loadingMore]=\"false\"\n [pageSize]=\"consultaSearchSelectPageSize\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\"\n (pageRequested)=\"onConsultaSearchSelectPageRequested(it, $event)\" />\n } @else if (isFilterSelectColuna(it.coluna)) {\n <app-select-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Selecione um valor para filtrar\" [showPrefixIcon]=\"false\"\n [options]=\"consultaFilterSelectOpcoesMescladas(it)\"\n [ngModel]=\"consultaValorFilterSelectId(it.id)\"\n (ngModelChange)=\"patchConsultaValorFilterSelect(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\"\n [useCache]=\"false\"\n [pagination]=\"false\"\n (pageRequested)=\"onConsultaMultiselectPageRequested(it.coluna, $event)\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\" />\n } @else if (isMultiselectColuna(it.coluna)) {\n <app-multiselect-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Selecione valores para filtrar\" [showPrefixIcon]=\"false\"\n [options]=\"consultaMultiselectOpcoesMescladas(it)\"\n [ngModel]=\"consultaValorMultiselectIds(it.id)\"\n (ngModelChange)=\"patchConsultaValorLista(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\" [searchable]=\"true\"\n [useCache]=\"false\"\n [pagination]=\"false\"\n (pageRequested)=\"onConsultaMultiselectPageRequested(it.coluna, $event)\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\" />\n } @else if (isDatetimeColuna(it.coluna) && consultaDatetimeUsaDatePicker(it.operador)) {\n <app-date-field [label]=\"rotuloCampoConsulta(it, $index)\" [showTimeHours]=\"false\"\n [showPrefixIcon]=\"false\" [clearable]=\"true\" clearAriaLabel=\"Limpar data\"\n [ngModel]=\"consultaValorDataCampo(it.id)\"\n (ngModelChange)=\"patchConsultaValorData(it.id, $event)\" />\n } @else if (isNumeroColuna(it.coluna) && operadorConsultaValorUnico(it.operador)) {\n <app-decimal-field [label]=\"rotuloCampoConsulta(it, $index)\" inputPrefix=\"R$\"\n [showPrefixIcon]=\"false\" [autocomplete]=\"false\" [clearable]=\"true\"\n clearAriaLabel=\"Limpar valor\" [ngModel]=\"consultaValorDecimal(it.id)\"\n (ngModelChange)=\"patchConsultaValorDecimal(it.id, $event)\" />\n } @else {\n <app-text-field [label]=\"rotuloCampoConsulta(it, $index)\"\n [placeholder]=\"rotuloCampoConsulta(it, $index)\" [showPrefixIcon]=\"false\"\n [ngModel]=\"consultaValores()[it.id] || ''\"\n (ngModelChange)=\"patchConsultaValor(it.id, $event ?? '')\" [clearable]=\"true\"\n [autocomplete]=\"false\" />\n }\n </app-form-col>\n }\n }\n </app-form-row>\n\n <div class=\"usuarios-consulta-filtro-acoes\">\n <app-button type=\"button\" variant=\"primary\" size=\"md\" [fullWidth]=\"false\" (click)=\"pesquisar()\"\n label=\"Pesquisar\"\n [matTooltip]=\"tooltipBotaoPesquisar() ?? ''\"\n [matTooltipDisabled]=\"!tooltipBotaoPesquisar()?.trim()\"\n [matTooltipShowDelay]=\"tooltipBotaoPesquisar()?.trim() ? 300 : 0\" aria-label=\"Pesquisar\">\n <i data-base-button-leading class=\"fa-solid fa-magnifying-glass text-[1.05rem] leading-none\"\n aria-hidden=\"true\"></i>\n </app-button>\n </div>\n </div>\n </app-form-group>\n\n <div class=\"usuarios-grid-host flex min-h-0 w-full min-w-0 flex-1 flex-col\">\n <app-adaptive-data-view class=\"usuarios-consulta-adaptive flex min-h-0 min-w-0 w-full flex-1 flex-col\"\n [items]=\"gridRows()\" [gridColumns]=\"runtimeConsulta().gridColumns\" [mapItem]=\"runtimeConsulta().mapCard\"\n [pageSize]=\"runtimeConsulta().pageSize\" [pagination]=\"true\" [gridHeight]=\"runtimeConsulta().gridHeight\"\n [mobileView]=\"runtimeConsulta().adaptiveMobileView\" [desktopView]=\"runtimeConsulta().adaptiveDesktopView\"\n [showActionsColumn]=\"runtimeConsulta().showListaAcoes ?? true\"\n [showCardItemActions]=\"runtimeConsulta().showListaAcoes ?? true\" headerPosition=\"header\"\n [showCardFooter]=\"true\" [showResultCount]=\"false\" emptyMessageGrid=\"Sem resultados.\"\n emptyMessageCard=\"Sem resultados.\" [loading]=\"listaGrelhaExibirLoading()\"\n [loadingSkeletonMinMs]=\"listaSkeletonMinMs\"\n [showDuplicateAction]=\"runtimeConsulta().showDuplicateAction === true\"\n [showPrintAction]=\"runtimeConsulta().showPrintAction === true\"\n [printActionLabel]=\"runtimeConsulta().printActionLabel ?? 'Imprimir'\"\n [showEditAction]=\"runtimeConsulta().showEditAction ?? true\"\n [showRemoveAction]=\"runtimeConsulta().showRemoveAction ?? true\"\n [editActionLabel]=\"runtimeConsulta().editActionLabel\"\n [editActionIconClass]=\"runtimeConsulta().editActionIconClass ?? ''\"\n [layoutTelaKey]=\"runtimeConsulta().layoutTelaKey ?? runtimeConsulta().consultaListaCacheNamespace ?? null\"\n [layoutGridKey]=\"runtimeConsulta().layoutGridKey ?? 'consulta-principal'\"\n (edit)=\"editar($event)\" (duplicate)=\"duplicar($event)\" (print)=\"imprimir($event)\"\n (remove)=\"excluirUsuario($event)\" />\n </div>\n</div>\n\n<app-consulta-cadastro-filtro-dialog #cadastroFiltroDialog [runtime]=\"runtimeConsulta()\" [presets]=\"presets()\"\n [onMultiselectOpcoesRefresh]=\"recarregarOpcoesMultiselectCampo\"\n (presetsUpdated)=\"onPresetsListaUpdated($event)\" (presetAppliedAfterSave)=\"onCadastroFiltroPresetApplied($event)\" />\n\n@if (mostrarBotaoVoltarTopoMobile()) {\n<structra-back-to-top-button\n class=\"consulta-back-to-top\"\n [scrollContainer]=\"scrollContainer()\"\n/>\n}\n\n<ng-template #consultaTopbarEnd>\n <div class=\"consulta-topbar-end flex flex-wrap items-center justify-end gap-1\">\n @if (runtimeConsulta().novoRouterLink && runtimeConsulta().showNovoButton === true) {\n <app-button type=\"button\" class=\"consulta-topbar-btn-novo\" variant=\"success\" size=\"md\" [fullWidth]=\"false\"\n label=\"Novo\"\n (click)=\"onNovoCadastroClick()\"\n [title]=\"tooltipBotaoNovoCadastro()\"\n [attr.aria-label]=\"tooltipBotaoNovoCadastro()\">\n <i data-base-button-leading class=\"fa-solid fa-plus text-[1.05rem] leading-none shrink-0\"\n aria-hidden=\"true\"></i>\n </app-button>\n } @else if (topbarTitleSkeleton() && runtimeConsulta().showNovoButton !== false && runtimeConsulta().novoRouterLink) {\n <app-button type=\"button\" class=\"consulta-topbar-btn-novo consulta-topbar-btn-novo-placeholder\" variant=\"success\"\n size=\"md\" [fullWidth]=\"false\" label=\"Novo\" tabindex=\"-1\" aria-hidden=\"true\">\n <i data-base-button-leading class=\"fa-solid fa-plus text-[1.05rem] leading-none shrink-0\"\n aria-hidden=\"true\"></i>\n </app-button>\n }\n @if (topbarEndExtraTemplate(); as extraTpl) {\n <ng-container *ngTemplateOutlet=\"extraTpl\" />\n }\n </div>\n</ng-template>", styles: ["@charset \"UTF-8\";:host{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch;box-sizing:border-box;min-width:0;min-height:0;width:100%;max-width:100%;background:transparent}.usuarios-page{flex:1 1 0%;min-height:0;width:100%;max-width:none;align-self:stretch;box-sizing:border-box;gap:var(--home-content-gutter, .35rem)}.usuarios-grid-host{flex:1 1 0%;min-height:0;min-width:0;width:100%;align-self:stretch;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive{display:flex;flex-direction:column;width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive:has(.adaptive-data-view--card-fill-parent){flex:1 1 0%!important;min-height:0}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive:has(.adaptive-data-view--grid-fit-page){flex:0 1 auto!important}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view{width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view__main{width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view__main app-data-grid{width:100%;max-width:none;min-width:0;align-self:stretch;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive app-data-grid .data-grid__skeleton{flex:1 1 auto;min-height:0;align-self:stretch}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive app-data-grid .data-grid__skeleton app-skeleton-table{flex:1 1 auto;min-height:0;align-self:stretch;height:100%;display:flex;flex-direction:column}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive ag-grid-angular{width:100%;min-width:0}:host ::ng-deep .usuarios-page .ag-paging-page-size{display:none!important}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header{padding:.5rem .65rem;box-sizing:border-box;min-height:3.25rem;margin-bottom:0}@media(max-width:767.98px){:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header{min-height:auto;padding:.45rem .5rem .55rem}}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--expanded .form-group__body{padding:.5rem .55rem .01rem!important;gap:.35rem!important}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--expanded .form-group__body .form-group__body-stack:not(.form-group__body-stack--neutral){padding:2px 5px;box-sizing:border-box}.usuarios-consulta-filtro-inner{display:flex;flex-direction:column;gap:.4rem;min-width:0}.consulta-topbar-end{min-height:2.345625rem}@media(min-width:768px){.consulta-topbar-end{min-height:3.15rem}}:host ::ng-deep app-button.consulta-topbar-btn-novo-placeholder{visibility:hidden;pointer-events:none}:host ::ng-deep app-button.consulta-topbar-btn-novo .base-button__native{box-sizing:border-box;width:auto;min-width:0;min-height:2.345625rem;padding-inline:.55rem}@media(min-width:768px){:host ::ng-deep app-button.consulta-topbar-btn-novo .base-button__native{min-height:3.15rem;padding-inline:.65rem}}@media(min-width:40rem){:host ::ng-deep .usuarios-consulta-filtro-inner app-form-col.usuarios-consulta-filtro-item--solo{grid-column:4/span 6}}.usuarios-consulta-filtro-acoes{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;box-sizing:border-box;margin-top:.15rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));padding:.35rem 0 .3rem}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native{background:color-mix(in srgb,var(--ui-button-success-bg, var(--app-color-success)) 91%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border, var(--app-color-success)) 89%,#000)}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native:hover:not(:disabled){background:color-mix(in srgb,var(--ui-button-success-bg-hover, var(--app-color-success)) 87%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border-hover, var(--app-color-success)) 85%,#000)}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native:active:not(:disabled){background:color-mix(in srgb,var(--ui-button-success-bg-active, var(--app-color-success)) 83%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border-active, var(--app-color-success)) 81%,#000)}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-juncao{align-self:stretch;min-height:0}@media(min-width:48rem){:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-coluna{order:1}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-operador{order:2}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-juncao{order:3}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-valor{order:4}}.consulta-back-to-top{--structra-back-to-top-mobile-bottom: 88px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormGroupComponent, selector: "app-form-group", inputs: ["titulo", "subtitulo", "collapsible", "foldable", "collapsed", "disabled", "readonly", "dense", "canMoveUp", "canMoveDown", "showHeader", "showChevron", "showDivider", "variant", "destroyOnCollapse", "skipBodyChildStacking", "groupInvalid", "formGroupPath", "uxSubmittedPass", "size", "tamanhoCampoMobile"], outputs: ["collapsedChange", "moveUp", "moveDown"] }, { kind: "component", type: FormRowComponent, selector: "app-form-row", inputs: ["gap", "align", "justify", "grow", "wrap", "stackOnMobile"] }, { kind: "component", type: FormColComponent, selector: "app-form-col", inputs: ["xs", "sm", "md", "lg", "xl", "order", "grow", "gap", "align", "justify"] }, { kind: "component", type: ButtonComponent, selector: "app-button" }, { kind: "component", type: TextFieldComponent, selector: "app-text-field", inputs: ["maxLength", "nativeInputType"] }, { kind: "component", type: SelectFieldComponent, selector: "app-select-field", inputs: ["pagination", "useCache", "pageable", "pageSize", "hasMore", "loadingMore"], outputs: ["pageRequested"] }, { kind: "component", type: DropdownSearchFieldComponent, selector: "app-dropdown-search-field", inputs: ["pageSize", "hasMore", "loadingMore", "useCache", "searchDebounceMs"], outputs: ["pageRequested"] }, { kind: "component", type: MultiselectFieldComponent, selector: "app-multiselect-field", inputs: ["searchable", "pagination", "useCache", "pageable", "showSuffixSlot", "pageSize", "hasMore", "loadingMore", "defaultValue", "defaultValueLabel", "maxSelected"], outputs: ["pageRequested"] }, { kind: "component", type: DateFieldComponent, selector: "app-date-field", inputs: ["showTimeHours", "autocomplete", "minDate", "maxDate"] }, { kind: "component", type: DecimalFieldComponent, selector: "app-decimal-field", inputs: ["max", "inputTextAlign", "inputPrefix"] }, { kind: "component", type: ConsultaCadastroFiltroDialogComponent, selector: "app-consulta-cadastro-filtro-dialog", inputs: ["runtime", "presets", "onMultiselectOpcoesRefresh"], outputs: ["presetsUpdated", "presetAppliedAfterSave"] }, { kind: "component", type: ConsultaFiltroPresetToolbarComponent, selector: "app-consulta-filtro-preset-toolbar", inputs: ["options", "presetId", "emptyOptionsMessage", "presetNgModelOptions", "compareWith", "clearable", "autocomplete", "clearAriaLabel", "mostrarMenuContexto", "contextMenuItems", "contextMenuId", "filtroLabel", "novoFiltroTexto", "novoFiltroAriaLabel"], outputs: ["presetIdChange", "contextMenuSelect", "novoFiltroClick"] }, { kind: "component", type: AdaptiveDataViewComponent, selector: "app-adaptive-data-view", inputs: ["items", "gridColumns", "mapItem", "pageSize", "gridHeight", "cardScrollMaxHeight", "gridFitPaginationHeight", "gridFitPaginationMinEmptyRows", "emptyMessageGrid", "emptyMessageCard", "pagination", "showActionsColumn", "showCardItemActions", "editActionLabel", "editActionIconClass", "cardOpenOnClick", "scrollBatchSize", "showCardFooter", "headerPosition", "cardsPerRow", "loading", "loadingSkeletonMinMs", "showResultCount", "resultCountTemplate", "mobileView", "desktopView", "showDuplicateAction", "showPrintAction", "printActionLabel", "showEditAction", "showRemoveAction", "layoutTelaKey", "layoutGridKey"], outputs: ["edit", "duplicate", "print", "remove", "loadMore"] }, { kind: "component", type: StructraBackToTopButtonComponent, selector: "structra-back-to-top-button", inputs: ["enabled", "threshold", "scrollContainer", "ariaLabel", "position", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24970
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ConsultaBasePageComponent, isStandalone: true, selector: "app-consulta-base-page", inputs: { runtime: { classPropertyName: "runtime", publicName: "runtime", isSignal: true, isRequired: true, transformFunction: null }, topbarEndExtraTemplate: { classPropertyName: "topbarEndExtraTemplate", publicName: "topbarEndExtraTemplate", isSignal: true, isRequired: false, transformFunction: null }, tooltipBotaoPesquisar: { classPropertyName: "tooltipBotaoPesquisar", publicName: "tooltipBotaoPesquisar", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "cadastroFiltroDialog", first: true, predicate: ConsultaCadastroFiltroDialogComponent, descendants: true, isSignal: true }, { propertyName: "consultaTopbarEnd", first: true, predicate: ["consultaTopbarEnd"], descendants: true }], ngImport: i0, template: "<div class=\"usuarios-page flex min-h-0 w-full min-w-0 max-w-none flex-1 flex-col\">\n <app-form-group class=\"usuarios-consulta-filtro-group block w-full shrink-0\"\n [titulo]=\"runtimeConsulta().tituloConsultaFiltros ?? 'Filtros'\" [subtitulo]=\"subtituloConsultaFiltros()\"\n [collapsible]=\"true\" [dense]=\"true\" [showDivider]=\"false\" [collapsed]=\"painelFiltroRecolhido()\"\n (collapsedChange)=\"painelFiltroRecolhido.set($event)\">\n <div class=\"usuarios-consulta-filtro-inner\">\n <!-- Um \u00FAnico `app-form-row`: o mesmo `gap-xs` (0.5rem) entre todas as linhas; dois rows separados davam 0.35rem vs 0.5rem. -->\n <app-form-row wrap=\"true\" align=\"stretch\" gap=\"xs\">\n <app-form-col [xs]=\"12\">\n <app-consulta-filtro-preset-toolbar [options]=\"presetSelectOptions()\"\n [presetId]=\"consultaPresetId()\" (presetIdChange)=\"onConsultaPresetChange($event)\"\n [emptyOptionsMessage]=\"consultaPresetSelectEmptyOptionsMessage()\" [compareWith]=\"compareStr\"\n [mostrarMenuContexto]=\"!!consultaPreset()\"\n [contextMenuItems]=\"consultaFiltroContextMenuItems()\"\n [contextMenuId]=\"CONSULTA_FILTRO_PRESET_CONTEXT_MENU_ID\"\n (contextMenuSelect)=\"onConsultaFiltroContextMenuSelect($event)\"\n (novoFiltroClick)=\"abrirDialogCadastroFiltro()\" />\n </app-form-col>\n @if (filtroItensSkeletonIndices().length > 0) {\n @for (idx of filtroItensSkeletonIndices(); track idx; let isLast = $last, itemCount = $count) {\n <app-form-col [xs]=\"12\" [md]=\"6\"\n [class.usuarios-consulta-filtro-item--solo]=\"isLast && itemCount % 2 === 1\">\n <app-text-field label=\" \" aria-label=\"A carregar crit\u00E9rios do filtro\"\n [loading]=\"true\" [showPrefixIcon]=\"false\" [clearable]=\"false\" [autocomplete]=\"false\" />\n </app-form-col>\n }\n } @else if (consultaPreset()) {\n @for (it of consultaItensOrdenados(); track it.id; let isLast = $last, itemCount = $count) {\n <app-form-col [xs]=\"12\" [md]=\"6\"\n [class.usuarios-consulta-filtro-item--solo]=\"isLast && itemCount % 2 === 1\">\n @if (isBoolColuna(it.coluna)) {\n <app-select-field [label]=\"rotuloCampoConsulta(it, $index)\" [showPrefixIcon]=\"false\"\n [options]=\"runtimeConsulta().estadoOptions ?? []\"\n [ngModel]=\"consultaValorSelectAtivo(it.id)\"\n (ngModelChange)=\"patchConsultaValorAtivo(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\" />\n } @else if (isSearchSelectColuna(it.coluna)) {\n <app-dropdown-search-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Pesquisar e seleccionar\u2026\" [showPrefixIcon]=\"false\"\n [options]=\"consultaSearchSelectOpcoesPainel(it)\"\n [ngModel]=\"consultaValorFilterSelectId(it.id)\"\n (ngModelChange)=\"patchConsultaValorFilterSelect(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" clearAriaLabel=\"Limpar valor\"\n [useCache]=\"false\"\n [hasMore]=\"false\"\n [loadingMore]=\"false\"\n [pageSize]=\"consultaSearchSelectPageSize\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\"\n (pageRequested)=\"onConsultaSearchSelectPageRequested(it, $event)\" />\n } @else if (isFilterSelectColuna(it.coluna)) {\n <app-select-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Selecione um valor para filtrar\" [showPrefixIcon]=\"false\"\n [options]=\"consultaFilterSelectOpcoesMescladas(it)\"\n [ngModel]=\"consultaValorFilterSelectId(it.id)\"\n (ngModelChange)=\"patchConsultaValorFilterSelect(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\"\n [useCache]=\"false\"\n [pagination]=\"false\"\n (pageRequested)=\"onConsultaMultiselectPageRequested(it.coluna, $event)\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\" />\n } @else if (isMultiselectColuna(it.coluna)) {\n <app-multiselect-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Selecione valores para filtrar\" [showPrefixIcon]=\"false\"\n [options]=\"consultaMultiselectOpcoesMescladas(it)\"\n [ngModel]=\"consultaValorMultiselectIds(it.id)\"\n (ngModelChange)=\"patchConsultaValorLista(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\" [searchable]=\"true\"\n [useCache]=\"false\"\n [pagination]=\"false\"\n (pageRequested)=\"onConsultaMultiselectPageRequested(it.coluna, $event)\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\" />\n } @else if (isDatetimeColuna(it.coluna) && consultaDatetimeUsaDatePicker(it.operador)) {\n <app-date-field [label]=\"rotuloCampoConsulta(it, $index)\" [showTimeHours]=\"false\"\n [showPrefixIcon]=\"false\" [clearable]=\"true\" clearAriaLabel=\"Limpar data\"\n [ngModel]=\"consultaValorDataCampo(it.id)\"\n (ngModelChange)=\"patchConsultaValorData(it.id, $event)\" />\n } @else if (isNumeroColuna(it.coluna) && operadorConsultaValorUnico(it.operador)) {\n <app-decimal-field [label]=\"rotuloCampoConsulta(it, $index)\" inputPrefix=\"R$\"\n [showPrefixIcon]=\"false\" [autocomplete]=\"false\" [clearable]=\"true\"\n clearAriaLabel=\"Limpar valor\" [ngModel]=\"consultaValorDecimal(it.id)\"\n (ngModelChange)=\"patchConsultaValorDecimal(it.id, $event)\" />\n } @else {\n <app-text-field [label]=\"rotuloCampoConsulta(it, $index)\"\n [placeholder]=\"rotuloCampoConsulta(it, $index)\" [showPrefixIcon]=\"false\"\n [ngModel]=\"consultaValores()[it.id] || ''\"\n (ngModelChange)=\"patchConsultaValor(it.id, $event ?? '')\" [clearable]=\"true\"\n [autocomplete]=\"false\" />\n }\n </app-form-col>\n }\n }\n </app-form-row>\n\n <div class=\"usuarios-consulta-filtro-acoes\">\n <app-button type=\"button\" variant=\"primary\" size=\"md\" [fullWidth]=\"false\" (click)=\"pesquisar()\"\n label=\"Pesquisar\"\n [matTooltip]=\"tooltipBotaoPesquisar() ?? ''\"\n [matTooltipDisabled]=\"!tooltipBotaoPesquisar()?.trim()\"\n [matTooltipShowDelay]=\"tooltipBotaoPesquisar()?.trim() ? 300 : 0\" aria-label=\"Pesquisar\">\n <i data-base-button-leading class=\"fa-solid fa-magnifying-glass text-[1.05rem] leading-none\"\n aria-hidden=\"true\"></i>\n </app-button>\n </div>\n </div>\n </app-form-group>\n\n <div class=\"usuarios-grid-host flex min-h-0 w-full min-w-0 flex-1 flex-col\">\n <app-adaptive-data-view class=\"usuarios-consulta-adaptive flex min-h-0 min-w-0 w-full flex-1 flex-col\"\n [items]=\"gridRows()\" [gridColumns]=\"runtimeConsulta().gridColumns\" [mapItem]=\"runtimeConsulta().mapCard\"\n [pageSize]=\"runtimeConsulta().pageSize\" [pagination]=\"true\" [gridHeight]=\"runtimeConsulta().gridHeight\"\n [mobileView]=\"runtimeConsulta().adaptiveMobileView\" [desktopView]=\"runtimeConsulta().adaptiveDesktopView\"\n [showActionsColumn]=\"runtimeConsulta().showListaAcoes ?? true\"\n [showCardItemActions]=\"runtimeConsulta().showListaAcoes ?? true\" headerPosition=\"header\"\n [showCardFooter]=\"true\" [showResultCount]=\"false\" emptyMessageGrid=\"Sem resultados.\"\n emptyMessageCard=\"Sem resultados.\" [loading]=\"listaGrelhaExibirLoading()\"\n [loadingSkeletonMinMs]=\"listaSkeletonMinMs\"\n [showDuplicateAction]=\"runtimeConsulta().showDuplicateAction === true\"\n [showPrintAction]=\"runtimeConsulta().showPrintAction === true\"\n [printActionLabel]=\"runtimeConsulta().printActionLabel ?? 'Imprimir'\"\n [showEditAction]=\"runtimeConsulta().showEditAction ?? true\"\n [showRemoveAction]=\"runtimeConsulta().showRemoveAction ?? true\"\n [editActionLabel]=\"runtimeConsulta().editActionLabel\"\n [editActionIconClass]=\"runtimeConsulta().editActionIconClass ?? ''\"\n [layoutTelaKey]=\"runtimeConsulta().layoutTelaKey ?? runtimeConsulta().consultaListaCacheNamespace ?? null\"\n [layoutGridKey]=\"runtimeConsulta().layoutGridKey ?? 'consulta-principal'\"\n (edit)=\"editar($event)\" (duplicate)=\"duplicar($event)\" (print)=\"imprimir($event)\"\n (remove)=\"excluirUsuario($event)\" />\n </div>\n</div>\n\n<app-consulta-cadastro-filtro-dialog #cadastroFiltroDialog [runtime]=\"runtimeConsulta()\" [presets]=\"presets()\"\n [onMultiselectOpcoesRefresh]=\"recarregarOpcoesMultiselectCampo\"\n (presetsUpdated)=\"onPresetsListaUpdated($event)\" (presetAppliedAfterSave)=\"onCadastroFiltroPresetApplied($event)\" />\n\n@if (mostrarBotaoVoltarTopoMobile()) {\n<structra-back-to-top-button\n class=\"consulta-back-to-top\"\n [scrollContainer]=\"scrollContainer()\"\n/>\n}\n\n<ng-template #consultaTopbarEnd>\n <div class=\"consulta-topbar-end flex flex-wrap items-center justify-end gap-1\">\n @if (runtimeConsulta().novoRouterLink && runtimeConsulta().showNovoButton === true) {\n <app-button type=\"button\" class=\"consulta-topbar-btn-novo\" variant=\"success\" size=\"md\" [fullWidth]=\"false\"\n label=\"Novo\"\n (click)=\"onNovoCadastroClick()\"\n [title]=\"tooltipBotaoNovoCadastro()\"\n [attr.aria-label]=\"tooltipBotaoNovoCadastro()\">\n <i data-base-button-leading class=\"fa-solid fa-plus text-[1.05rem] leading-none shrink-0\"\n aria-hidden=\"true\"></i>\n </app-button>\n } @else if (topbarTitleSkeleton() && runtimeConsulta().showNovoButton !== false && runtimeConsulta().novoRouterLink) {\n <app-button type=\"button\" class=\"consulta-topbar-btn-novo consulta-topbar-btn-novo-placeholder\" variant=\"success\"\n size=\"md\" [fullWidth]=\"false\" label=\"Novo\" tabindex=\"-1\" aria-hidden=\"true\">\n <i data-base-button-leading class=\"fa-solid fa-plus text-[1.05rem] leading-none shrink-0\"\n aria-hidden=\"true\"></i>\n </app-button>\n }\n @if (topbarEndExtraTemplate(); as extraTpl) {\n <ng-container *ngTemplateOutlet=\"extraTpl\" />\n }\n </div>\n</ng-template>", styles: ["@charset \"UTF-8\";:host{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch;box-sizing:border-box;min-width:0;min-height:0;width:100%;max-width:100%;background:transparent}.usuarios-page{flex:1 1 0%;min-height:0;width:100%;max-width:none;align-self:stretch;box-sizing:border-box;gap:var(--home-content-gutter, .35rem)}.usuarios-grid-host{flex:1 1 0%;min-height:0;min-width:0;width:100%;align-self:stretch;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive{display:flex;flex-direction:column;width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive:has(.adaptive-data-view--card-fill-parent){flex:1 1 0%!important;min-height:0}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive:has(.adaptive-data-view--grid-fit-page){flex:0 1 auto!important}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view{width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view__main{width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view__main app-data-grid{width:100%;max-width:none;min-width:0;align-self:stretch;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive app-data-grid .data-grid__skeleton{flex:1 1 auto;min-height:0;align-self:stretch}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive app-data-grid .data-grid__skeleton app-skeleton-table{flex:1 1 auto;min-height:0;align-self:stretch;height:100%;display:flex;flex-direction:column}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive ag-grid-angular{width:100%;min-width:0}:host ::ng-deep .usuarios-page .ag-paging-page-size{display:none!important}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header{padding:.5rem .65rem;box-sizing:border-box;min-height:3.25rem;max-height:3.25rem;align-items:center;overflow:hidden;margin-bottom:0}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header .form-group__header-main{align-items:center}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header .form-group__subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:767.98px){:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header{min-height:auto;padding:.45rem .5rem .55rem}}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--expanded .form-group__body{padding:.5rem .55rem .01rem!important;gap:.35rem!important}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--expanded .form-group__body .form-group__body-stack:not(.form-group__body-stack--neutral){padding:2px 5px;box-sizing:border-box}.usuarios-consulta-filtro-inner{display:flex;flex-direction:column;gap:.4rem;min-width:0}.consulta-topbar-end{min-height:2.35rem}:host ::ng-deep app-button.consulta-topbar-btn-novo-placeholder{visibility:hidden;pointer-events:none}:host ::ng-deep app-button.consulta-topbar-btn-novo .base-button__native{box-sizing:border-box;width:auto;min-width:0;min-height:2.35rem;padding-inline:.55rem}@media(min-width:768px){:host ::ng-deep app-button.consulta-topbar-btn-novo .base-button__native{padding-inline:.65rem}}@media(min-width:40rem){:host ::ng-deep .usuarios-consulta-filtro-inner app-form-col.usuarios-consulta-filtro-item--solo{grid-column:4/span 6}}.usuarios-consulta-filtro-acoes{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;box-sizing:border-box;margin-top:.15rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));padding:.35rem 0 .3rem}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native{background:color-mix(in srgb,var(--ui-button-success-bg, var(--app-color-success)) 91%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border, var(--app-color-success)) 89%,#000)}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native:hover:not(:disabled){background:color-mix(in srgb,var(--ui-button-success-bg-hover, var(--app-color-success)) 87%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border-hover, var(--app-color-success)) 85%,#000)}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native:active:not(:disabled){background:color-mix(in srgb,var(--ui-button-success-bg-active, var(--app-color-success)) 83%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border-active, var(--app-color-success)) 81%,#000)}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-juncao{align-self:stretch;min-height:0}@media(min-width:48rem){:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-coluna{order:1}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-operador{order:2}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-juncao{order:3}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-valor{order:4}}.consulta-back-to-top{--structra-back-to-top-mobile-bottom: 88px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormGroupComponent, selector: "app-form-group", inputs: ["titulo", "subtitulo", "collapsible", "foldable", "collapsed", "disabled", "readonly", "dense", "canMoveUp", "canMoveDown", "showHeader", "showChevron", "showDivider", "variant", "destroyOnCollapse", "skipBodyChildStacking", "groupInvalid", "formGroupPath", "uxSubmittedPass", "size", "tamanhoCampoMobile"], outputs: ["collapsedChange", "moveUp", "moveDown"] }, { kind: "component", type: FormRowComponent, selector: "app-form-row", inputs: ["gap", "align", "justify", "grow", "wrap", "stackOnMobile"] }, { kind: "component", type: FormColComponent, selector: "app-form-col", inputs: ["xs", "sm", "md", "lg", "xl", "order", "grow", "gap", "align", "justify"] }, { kind: "component", type: ButtonComponent, selector: "app-button" }, { kind: "component", type: TextFieldComponent, selector: "app-text-field", inputs: ["maxLength", "nativeInputType"] }, { kind: "component", type: SelectFieldComponent, selector: "app-select-field", inputs: ["pagination", "useCache", "pageable", "pageSize", "hasMore", "loadingMore"], outputs: ["pageRequested"] }, { kind: "component", type: DropdownSearchFieldComponent, selector: "app-dropdown-search-field", inputs: ["pageSize", "hasMore", "loadingMore", "useCache", "searchDebounceMs"], outputs: ["pageRequested"] }, { kind: "component", type: MultiselectFieldComponent, selector: "app-multiselect-field", inputs: ["searchable", "pagination", "useCache", "pageable", "showSuffixSlot", "pageSize", "hasMore", "loadingMore", "defaultValue", "defaultValueLabel", "maxSelected"], outputs: ["pageRequested"] }, { kind: "component", type: DateFieldComponent, selector: "app-date-field", inputs: ["showTimeHours", "autocomplete", "minDate", "maxDate"] }, { kind: "component", type: DecimalFieldComponent, selector: "app-decimal-field", inputs: ["max", "inputTextAlign", "inputPrefix"] }, { kind: "component", type: ConsultaCadastroFiltroDialogComponent, selector: "app-consulta-cadastro-filtro-dialog", inputs: ["runtime", "presets", "onMultiselectOpcoesRefresh"], outputs: ["presetsUpdated", "presetAppliedAfterSave"] }, { kind: "component", type: ConsultaFiltroPresetToolbarComponent, selector: "app-consulta-filtro-preset-toolbar", inputs: ["options", "presetId", "emptyOptionsMessage", "presetNgModelOptions", "compareWith", "clearable", "autocomplete", "clearAriaLabel", "mostrarMenuContexto", "contextMenuItems", "contextMenuId", "filtroLabel", "novoFiltroTexto", "novoFiltroAriaLabel"], outputs: ["presetIdChange", "contextMenuSelect", "novoFiltroClick"] }, { kind: "component", type: AdaptiveDataViewComponent, selector: "app-adaptive-data-view", inputs: ["items", "gridColumns", "mapItem", "pageSize", "gridHeight", "cardScrollMaxHeight", "gridFitPaginationHeight", "gridFitPaginationMinEmptyRows", "emptyMessageGrid", "emptyMessageCard", "pagination", "showActionsColumn", "showCardItemActions", "editActionLabel", "editActionIconClass", "cardOpenOnClick", "scrollBatchSize", "showCardFooter", "headerPosition", "cardsPerRow", "loading", "loadingSkeletonMinMs", "showResultCount", "resultCountTemplate", "mobileView", "desktopView", "showDuplicateAction", "showPrintAction", "printActionLabel", "showEditAction", "showRemoveAction", "layoutTelaKey", "layoutGridKey"], outputs: ["edit", "duplicate", "print", "remove", "loadMore"] }, { kind: "component", type: StructraBackToTopButtonComponent, selector: "structra-back-to-top-button", inputs: ["enabled", "threshold", "scrollContainer", "ariaLabel", "position", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24895
24971
|
}
|
|
24896
24972
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ConsultaBasePageComponent, decorators: [{
|
|
24897
24973
|
type: Component,
|
|
@@ -24913,12 +24989,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
24913
24989
|
ConsultaFiltroPresetToolbarComponent,
|
|
24914
24990
|
AdaptiveDataViewComponent,
|
|
24915
24991
|
StructraBackToTopButtonComponent,
|
|
24916
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"usuarios-page flex min-h-0 w-full min-w-0 max-w-none flex-1 flex-col\">\n <app-form-group class=\"usuarios-consulta-filtro-group block w-full shrink-0\"\n [titulo]=\"runtimeConsulta().tituloConsultaFiltros ?? 'Filtros'\" [subtitulo]=\"subtituloConsultaFiltros()\"\n [collapsible]=\"true\" [dense]=\"true\" [showDivider]=\"false\" [collapsed]=\"painelFiltroRecolhido()\"\n (collapsedChange)=\"painelFiltroRecolhido.set($event)\">\n <div class=\"usuarios-consulta-filtro-inner\">\n <!-- Um \u00FAnico `app-form-row`: o mesmo `gap-xs` (0.5rem) entre todas as linhas; dois rows separados davam 0.35rem vs 0.5rem. -->\n <app-form-row wrap=\"true\" align=\"stretch\" gap=\"xs\">\n <app-form-col [xs]=\"12\">\n <app-consulta-filtro-preset-toolbar [options]=\"presetSelectOptions()\"\n [presetId]=\"consultaPresetId()\" (presetIdChange)=\"onConsultaPresetChange($event)\"\n [emptyOptionsMessage]=\"consultaPresetSelectEmptyOptionsMessage()\" [compareWith]=\"compareStr\"\n [mostrarMenuContexto]=\"!!consultaPreset()\"\n [contextMenuItems]=\"consultaFiltroContextMenuItems()\"\n [contextMenuId]=\"CONSULTA_FILTRO_PRESET_CONTEXT_MENU_ID\"\n (contextMenuSelect)=\"onConsultaFiltroContextMenuSelect($event)\"\n (novoFiltroClick)=\"abrirDialogCadastroFiltro()\" />\n </app-form-col>\n @if (filtroItensSkeletonIndices().length > 0) {\n @for (idx of filtroItensSkeletonIndices(); track idx; let isLast = $last, itemCount = $count) {\n <app-form-col [xs]=\"12\" [md]=\"6\"\n [class.usuarios-consulta-filtro-item--solo]=\"isLast && itemCount % 2 === 1\">\n <app-text-field label=\" \" aria-label=\"A carregar crit\u00E9rios do filtro\"\n [loading]=\"true\" [showPrefixIcon]=\"false\" [clearable]=\"false\" [autocomplete]=\"false\" />\n </app-form-col>\n }\n } @else if (consultaPreset()) {\n @for (it of consultaItensOrdenados(); track it.id; let isLast = $last, itemCount = $count) {\n <app-form-col [xs]=\"12\" [md]=\"6\"\n [class.usuarios-consulta-filtro-item--solo]=\"isLast && itemCount % 2 === 1\">\n @if (isBoolColuna(it.coluna)) {\n <app-select-field [label]=\"rotuloCampoConsulta(it, $index)\" [showPrefixIcon]=\"false\"\n [options]=\"runtimeConsulta().estadoOptions ?? []\"\n [ngModel]=\"consultaValorSelectAtivo(it.id)\"\n (ngModelChange)=\"patchConsultaValorAtivo(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\" />\n } @else if (isSearchSelectColuna(it.coluna)) {\n <app-dropdown-search-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Pesquisar e seleccionar\u2026\" [showPrefixIcon]=\"false\"\n [options]=\"consultaSearchSelectOpcoesPainel(it)\"\n [ngModel]=\"consultaValorFilterSelectId(it.id)\"\n (ngModelChange)=\"patchConsultaValorFilterSelect(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" clearAriaLabel=\"Limpar valor\"\n [useCache]=\"false\"\n [hasMore]=\"false\"\n [loadingMore]=\"false\"\n [pageSize]=\"consultaSearchSelectPageSize\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\"\n (pageRequested)=\"onConsultaSearchSelectPageRequested(it, $event)\" />\n } @else if (isFilterSelectColuna(it.coluna)) {\n <app-select-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Selecione um valor para filtrar\" [showPrefixIcon]=\"false\"\n [options]=\"consultaFilterSelectOpcoesMescladas(it)\"\n [ngModel]=\"consultaValorFilterSelectId(it.id)\"\n (ngModelChange)=\"patchConsultaValorFilterSelect(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\"\n [useCache]=\"false\"\n [pagination]=\"false\"\n (pageRequested)=\"onConsultaMultiselectPageRequested(it.coluna, $event)\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\" />\n } @else if (isMultiselectColuna(it.coluna)) {\n <app-multiselect-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Selecione valores para filtrar\" [showPrefixIcon]=\"false\"\n [options]=\"consultaMultiselectOpcoesMescladas(it)\"\n [ngModel]=\"consultaValorMultiselectIds(it.id)\"\n (ngModelChange)=\"patchConsultaValorLista(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\" [searchable]=\"true\"\n [useCache]=\"false\"\n [pagination]=\"false\"\n (pageRequested)=\"onConsultaMultiselectPageRequested(it.coluna, $event)\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\" />\n } @else if (isDatetimeColuna(it.coluna) && consultaDatetimeUsaDatePicker(it.operador)) {\n <app-date-field [label]=\"rotuloCampoConsulta(it, $index)\" [showTimeHours]=\"false\"\n [showPrefixIcon]=\"false\" [clearable]=\"true\" clearAriaLabel=\"Limpar data\"\n [ngModel]=\"consultaValorDataCampo(it.id)\"\n (ngModelChange)=\"patchConsultaValorData(it.id, $event)\" />\n } @else if (isNumeroColuna(it.coluna) && operadorConsultaValorUnico(it.operador)) {\n <app-decimal-field [label]=\"rotuloCampoConsulta(it, $index)\" inputPrefix=\"R$\"\n [showPrefixIcon]=\"false\" [autocomplete]=\"false\" [clearable]=\"true\"\n clearAriaLabel=\"Limpar valor\" [ngModel]=\"consultaValorDecimal(it.id)\"\n (ngModelChange)=\"patchConsultaValorDecimal(it.id, $event)\" />\n } @else {\n <app-text-field [label]=\"rotuloCampoConsulta(it, $index)\"\n [placeholder]=\"rotuloCampoConsulta(it, $index)\" [showPrefixIcon]=\"false\"\n [ngModel]=\"consultaValores()[it.id] || ''\"\n (ngModelChange)=\"patchConsultaValor(it.id, $event ?? '')\" [clearable]=\"true\"\n [autocomplete]=\"false\" />\n }\n </app-form-col>\n }\n }\n </app-form-row>\n\n <div class=\"usuarios-consulta-filtro-acoes\">\n <app-button type=\"button\" variant=\"primary\" size=\"md\" [fullWidth]=\"false\" (click)=\"pesquisar()\"\n label=\"Pesquisar\"\n [matTooltip]=\"tooltipBotaoPesquisar() ?? ''\"\n [matTooltipDisabled]=\"!tooltipBotaoPesquisar()?.trim()\"\n [matTooltipShowDelay]=\"tooltipBotaoPesquisar()?.trim() ? 300 : 0\" aria-label=\"Pesquisar\">\n <i data-base-button-leading class=\"fa-solid fa-magnifying-glass text-[1.05rem] leading-none\"\n aria-hidden=\"true\"></i>\n </app-button>\n </div>\n </div>\n </app-form-group>\n\n <div class=\"usuarios-grid-host flex min-h-0 w-full min-w-0 flex-1 flex-col\">\n <app-adaptive-data-view class=\"usuarios-consulta-adaptive flex min-h-0 min-w-0 w-full flex-1 flex-col\"\n [items]=\"gridRows()\" [gridColumns]=\"runtimeConsulta().gridColumns\" [mapItem]=\"runtimeConsulta().mapCard\"\n [pageSize]=\"runtimeConsulta().pageSize\" [pagination]=\"true\" [gridHeight]=\"runtimeConsulta().gridHeight\"\n [mobileView]=\"runtimeConsulta().adaptiveMobileView\" [desktopView]=\"runtimeConsulta().adaptiveDesktopView\"\n [showActionsColumn]=\"runtimeConsulta().showListaAcoes ?? true\"\n [showCardItemActions]=\"runtimeConsulta().showListaAcoes ?? true\" headerPosition=\"header\"\n [showCardFooter]=\"true\" [showResultCount]=\"false\" emptyMessageGrid=\"Sem resultados.\"\n emptyMessageCard=\"Sem resultados.\" [loading]=\"listaGrelhaExibirLoading()\"\n [loadingSkeletonMinMs]=\"listaSkeletonMinMs\"\n [showDuplicateAction]=\"runtimeConsulta().showDuplicateAction === true\"\n [showPrintAction]=\"runtimeConsulta().showPrintAction === true\"\n [printActionLabel]=\"runtimeConsulta().printActionLabel ?? 'Imprimir'\"\n [showEditAction]=\"runtimeConsulta().showEditAction ?? true\"\n [showRemoveAction]=\"runtimeConsulta().showRemoveAction ?? true\"\n [editActionLabel]=\"runtimeConsulta().editActionLabel\"\n [editActionIconClass]=\"runtimeConsulta().editActionIconClass ?? ''\"\n [layoutTelaKey]=\"runtimeConsulta().layoutTelaKey ?? runtimeConsulta().consultaListaCacheNamespace ?? null\"\n [layoutGridKey]=\"runtimeConsulta().layoutGridKey ?? 'consulta-principal'\"\n (edit)=\"editar($event)\" (duplicate)=\"duplicar($event)\" (print)=\"imprimir($event)\"\n (remove)=\"excluirUsuario($event)\" />\n </div>\n</div>\n\n<app-consulta-cadastro-filtro-dialog #cadastroFiltroDialog [runtime]=\"runtimeConsulta()\" [presets]=\"presets()\"\n [onMultiselectOpcoesRefresh]=\"recarregarOpcoesMultiselectCampo\"\n (presetsUpdated)=\"onPresetsListaUpdated($event)\" (presetAppliedAfterSave)=\"onCadastroFiltroPresetApplied($event)\" />\n\n@if (mostrarBotaoVoltarTopoMobile()) {\n<structra-back-to-top-button\n class=\"consulta-back-to-top\"\n [scrollContainer]=\"scrollContainer()\"\n/>\n}\n\n<ng-template #consultaTopbarEnd>\n <div class=\"consulta-topbar-end flex flex-wrap items-center justify-end gap-1\">\n @if (runtimeConsulta().novoRouterLink && runtimeConsulta().showNovoButton === true) {\n <app-button type=\"button\" class=\"consulta-topbar-btn-novo\" variant=\"success\" size=\"md\" [fullWidth]=\"false\"\n label=\"Novo\"\n (click)=\"onNovoCadastroClick()\"\n [title]=\"tooltipBotaoNovoCadastro()\"\n [attr.aria-label]=\"tooltipBotaoNovoCadastro()\">\n <i data-base-button-leading class=\"fa-solid fa-plus text-[1.05rem] leading-none shrink-0\"\n aria-hidden=\"true\"></i>\n </app-button>\n } @else if (topbarTitleSkeleton() && runtimeConsulta().showNovoButton !== false && runtimeConsulta().novoRouterLink) {\n <app-button type=\"button\" class=\"consulta-topbar-btn-novo consulta-topbar-btn-novo-placeholder\" variant=\"success\"\n size=\"md\" [fullWidth]=\"false\" label=\"Novo\" tabindex=\"-1\" aria-hidden=\"true\">\n <i data-base-button-leading class=\"fa-solid fa-plus text-[1.05rem] leading-none shrink-0\"\n aria-hidden=\"true\"></i>\n </app-button>\n }\n @if (topbarEndExtraTemplate(); as extraTpl) {\n <ng-container *ngTemplateOutlet=\"extraTpl\" />\n }\n </div>\n</ng-template>", styles: ["@charset \"UTF-8\";:host{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch;box-sizing:border-box;min-width:0;min-height:0;width:100%;max-width:100%;background:transparent}.usuarios-page{flex:1 1 0%;min-height:0;width:100%;max-width:none;align-self:stretch;box-sizing:border-box;gap:var(--home-content-gutter, .35rem)}.usuarios-grid-host{flex:1 1 0%;min-height:0;min-width:0;width:100%;align-self:stretch;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive{display:flex;flex-direction:column;width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive:has(.adaptive-data-view--card-fill-parent){flex:1 1 0%!important;min-height:0}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive:has(.adaptive-data-view--grid-fit-page){flex:0 1 auto!important}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view{width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view__main{width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view__main app-data-grid{width:100%;max-width:none;min-width:0;align-self:stretch;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive app-data-grid .data-grid__skeleton{flex:1 1 auto;min-height:0;align-self:stretch}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive app-data-grid .data-grid__skeleton app-skeleton-table{flex:1 1 auto;min-height:0;align-self:stretch;height:100%;display:flex;flex-direction:column}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive ag-grid-angular{width:100%;min-width:0}:host ::ng-deep .usuarios-page .ag-paging-page-size{display:none!important}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header{padding:.5rem .65rem;box-sizing:border-box;min-height:3.25rem;margin-bottom:0}@media(max-width:767.98px){:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header{min-height:auto;padding:.45rem .5rem .55rem}}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--expanded .form-group__body{padding:.5rem .55rem .01rem!important;gap:.35rem!important}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--expanded .form-group__body .form-group__body-stack:not(.form-group__body-stack--neutral){padding:2px 5px;box-sizing:border-box}.usuarios-consulta-filtro-inner{display:flex;flex-direction:column;gap:.4rem;min-width:0}.consulta-topbar-end{min-height:2.345625rem}@media(min-width:768px){.consulta-topbar-end{min-height:3.15rem}}:host ::ng-deep app-button.consulta-topbar-btn-novo-placeholder{visibility:hidden;pointer-events:none}:host ::ng-deep app-button.consulta-topbar-btn-novo .base-button__native{box-sizing:border-box;width:auto;min-width:0;min-height:2.345625rem;padding-inline:.55rem}@media(min-width:768px){:host ::ng-deep app-button.consulta-topbar-btn-novo .base-button__native{min-height:3.15rem;padding-inline:.65rem}}@media(min-width:40rem){:host ::ng-deep .usuarios-consulta-filtro-inner app-form-col.usuarios-consulta-filtro-item--solo{grid-column:4/span 6}}.usuarios-consulta-filtro-acoes{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;box-sizing:border-box;margin-top:.15rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));padding:.35rem 0 .3rem}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native{background:color-mix(in srgb,var(--ui-button-success-bg, var(--app-color-success)) 91%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border, var(--app-color-success)) 89%,#000)}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native:hover:not(:disabled){background:color-mix(in srgb,var(--ui-button-success-bg-hover, var(--app-color-success)) 87%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border-hover, var(--app-color-success)) 85%,#000)}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native:active:not(:disabled){background:color-mix(in srgb,var(--ui-button-success-bg-active, var(--app-color-success)) 83%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border-active, var(--app-color-success)) 81%,#000)}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-juncao{align-self:stretch;min-height:0}@media(min-width:48rem){:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-coluna{order:1}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-operador{order:2}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-juncao{order:3}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-valor{order:4}}.consulta-back-to-top{--structra-back-to-top-mobile-bottom: 88px}\n"] }]
|
|
24992
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"usuarios-page flex min-h-0 w-full min-w-0 max-w-none flex-1 flex-col\">\n <app-form-group class=\"usuarios-consulta-filtro-group block w-full shrink-0\"\n [titulo]=\"runtimeConsulta().tituloConsultaFiltros ?? 'Filtros'\" [subtitulo]=\"subtituloConsultaFiltros()\"\n [collapsible]=\"true\" [dense]=\"true\" [showDivider]=\"false\" [collapsed]=\"painelFiltroRecolhido()\"\n (collapsedChange)=\"painelFiltroRecolhido.set($event)\">\n <div class=\"usuarios-consulta-filtro-inner\">\n <!-- Um \u00FAnico `app-form-row`: o mesmo `gap-xs` (0.5rem) entre todas as linhas; dois rows separados davam 0.35rem vs 0.5rem. -->\n <app-form-row wrap=\"true\" align=\"stretch\" gap=\"xs\">\n <app-form-col [xs]=\"12\">\n <app-consulta-filtro-preset-toolbar [options]=\"presetSelectOptions()\"\n [presetId]=\"consultaPresetId()\" (presetIdChange)=\"onConsultaPresetChange($event)\"\n [emptyOptionsMessage]=\"consultaPresetSelectEmptyOptionsMessage()\" [compareWith]=\"compareStr\"\n [mostrarMenuContexto]=\"!!consultaPreset()\"\n [contextMenuItems]=\"consultaFiltroContextMenuItems()\"\n [contextMenuId]=\"CONSULTA_FILTRO_PRESET_CONTEXT_MENU_ID\"\n (contextMenuSelect)=\"onConsultaFiltroContextMenuSelect($event)\"\n (novoFiltroClick)=\"abrirDialogCadastroFiltro()\" />\n </app-form-col>\n @if (filtroItensSkeletonIndices().length > 0) {\n @for (idx of filtroItensSkeletonIndices(); track idx; let isLast = $last, itemCount = $count) {\n <app-form-col [xs]=\"12\" [md]=\"6\"\n [class.usuarios-consulta-filtro-item--solo]=\"isLast && itemCount % 2 === 1\">\n <app-text-field label=\" \" aria-label=\"A carregar crit\u00E9rios do filtro\"\n [loading]=\"true\" [showPrefixIcon]=\"false\" [clearable]=\"false\" [autocomplete]=\"false\" />\n </app-form-col>\n }\n } @else if (consultaPreset()) {\n @for (it of consultaItensOrdenados(); track it.id; let isLast = $last, itemCount = $count) {\n <app-form-col [xs]=\"12\" [md]=\"6\"\n [class.usuarios-consulta-filtro-item--solo]=\"isLast && itemCount % 2 === 1\">\n @if (isBoolColuna(it.coluna)) {\n <app-select-field [label]=\"rotuloCampoConsulta(it, $index)\" [showPrefixIcon]=\"false\"\n [options]=\"runtimeConsulta().estadoOptions ?? []\"\n [ngModel]=\"consultaValorSelectAtivo(it.id)\"\n (ngModelChange)=\"patchConsultaValorAtivo(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\" />\n } @else if (isSearchSelectColuna(it.coluna)) {\n <app-dropdown-search-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Pesquisar e seleccionar\u2026\" [showPrefixIcon]=\"false\"\n [options]=\"consultaSearchSelectOpcoesPainel(it)\"\n [ngModel]=\"consultaValorFilterSelectId(it.id)\"\n (ngModelChange)=\"patchConsultaValorFilterSelect(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" clearAriaLabel=\"Limpar valor\"\n [useCache]=\"false\"\n [hasMore]=\"false\"\n [loadingMore]=\"false\"\n [pageSize]=\"consultaSearchSelectPageSize\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\"\n (pageRequested)=\"onConsultaSearchSelectPageRequested(it, $event)\" />\n } @else if (isFilterSelectColuna(it.coluna)) {\n <app-select-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Selecione um valor para filtrar\" [showPrefixIcon]=\"false\"\n [options]=\"consultaFilterSelectOpcoesMescladas(it)\"\n [ngModel]=\"consultaValorFilterSelectId(it.id)\"\n (ngModelChange)=\"patchConsultaValorFilterSelect(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\"\n [useCache]=\"false\"\n [pagination]=\"false\"\n (pageRequested)=\"onConsultaMultiselectPageRequested(it.coluna, $event)\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\" />\n } @else if (isMultiselectColuna(it.coluna)) {\n <app-multiselect-field [label]=\"rotuloCampoConsulta(it, $index)\"\n placeholder=\"Selecione valores para filtrar\" [showPrefixIcon]=\"false\"\n [options]=\"consultaMultiselectOpcoesMescladas(it)\"\n [ngModel]=\"consultaValorMultiselectIds(it.id)\"\n (ngModelChange)=\"patchConsultaValorLista(it.id, $event)\" [compareWith]=\"compareStr\"\n [clearable]=\"true\" [autocomplete]=\"false\" [searchable]=\"true\"\n [useCache]=\"false\"\n [pagination]=\"false\"\n (pageRequested)=\"onConsultaMultiselectPageRequested(it.coluna, $event)\"\n emptyOptionsMessage=\"Sem op\u00E7\u00F5es dispon\u00EDveis para este crit\u00E9rio.\" />\n } @else if (isDatetimeColuna(it.coluna) && consultaDatetimeUsaDatePicker(it.operador)) {\n <app-date-field [label]=\"rotuloCampoConsulta(it, $index)\" [showTimeHours]=\"false\"\n [showPrefixIcon]=\"false\" [clearable]=\"true\" clearAriaLabel=\"Limpar data\"\n [ngModel]=\"consultaValorDataCampo(it.id)\"\n (ngModelChange)=\"patchConsultaValorData(it.id, $event)\" />\n } @else if (isNumeroColuna(it.coluna) && operadorConsultaValorUnico(it.operador)) {\n <app-decimal-field [label]=\"rotuloCampoConsulta(it, $index)\" inputPrefix=\"R$\"\n [showPrefixIcon]=\"false\" [autocomplete]=\"false\" [clearable]=\"true\"\n clearAriaLabel=\"Limpar valor\" [ngModel]=\"consultaValorDecimal(it.id)\"\n (ngModelChange)=\"patchConsultaValorDecimal(it.id, $event)\" />\n } @else {\n <app-text-field [label]=\"rotuloCampoConsulta(it, $index)\"\n [placeholder]=\"rotuloCampoConsulta(it, $index)\" [showPrefixIcon]=\"false\"\n [ngModel]=\"consultaValores()[it.id] || ''\"\n (ngModelChange)=\"patchConsultaValor(it.id, $event ?? '')\" [clearable]=\"true\"\n [autocomplete]=\"false\" />\n }\n </app-form-col>\n }\n }\n </app-form-row>\n\n <div class=\"usuarios-consulta-filtro-acoes\">\n <app-button type=\"button\" variant=\"primary\" size=\"md\" [fullWidth]=\"false\" (click)=\"pesquisar()\"\n label=\"Pesquisar\"\n [matTooltip]=\"tooltipBotaoPesquisar() ?? ''\"\n [matTooltipDisabled]=\"!tooltipBotaoPesquisar()?.trim()\"\n [matTooltipShowDelay]=\"tooltipBotaoPesquisar()?.trim() ? 300 : 0\" aria-label=\"Pesquisar\">\n <i data-base-button-leading class=\"fa-solid fa-magnifying-glass text-[1.05rem] leading-none\"\n aria-hidden=\"true\"></i>\n </app-button>\n </div>\n </div>\n </app-form-group>\n\n <div class=\"usuarios-grid-host flex min-h-0 w-full min-w-0 flex-1 flex-col\">\n <app-adaptive-data-view class=\"usuarios-consulta-adaptive flex min-h-0 min-w-0 w-full flex-1 flex-col\"\n [items]=\"gridRows()\" [gridColumns]=\"runtimeConsulta().gridColumns\" [mapItem]=\"runtimeConsulta().mapCard\"\n [pageSize]=\"runtimeConsulta().pageSize\" [pagination]=\"true\" [gridHeight]=\"runtimeConsulta().gridHeight\"\n [mobileView]=\"runtimeConsulta().adaptiveMobileView\" [desktopView]=\"runtimeConsulta().adaptiveDesktopView\"\n [showActionsColumn]=\"runtimeConsulta().showListaAcoes ?? true\"\n [showCardItemActions]=\"runtimeConsulta().showListaAcoes ?? true\" headerPosition=\"header\"\n [showCardFooter]=\"true\" [showResultCount]=\"false\" emptyMessageGrid=\"Sem resultados.\"\n emptyMessageCard=\"Sem resultados.\" [loading]=\"listaGrelhaExibirLoading()\"\n [loadingSkeletonMinMs]=\"listaSkeletonMinMs\"\n [showDuplicateAction]=\"runtimeConsulta().showDuplicateAction === true\"\n [showPrintAction]=\"runtimeConsulta().showPrintAction === true\"\n [printActionLabel]=\"runtimeConsulta().printActionLabel ?? 'Imprimir'\"\n [showEditAction]=\"runtimeConsulta().showEditAction ?? true\"\n [showRemoveAction]=\"runtimeConsulta().showRemoveAction ?? true\"\n [editActionLabel]=\"runtimeConsulta().editActionLabel\"\n [editActionIconClass]=\"runtimeConsulta().editActionIconClass ?? ''\"\n [layoutTelaKey]=\"runtimeConsulta().layoutTelaKey ?? runtimeConsulta().consultaListaCacheNamespace ?? null\"\n [layoutGridKey]=\"runtimeConsulta().layoutGridKey ?? 'consulta-principal'\"\n (edit)=\"editar($event)\" (duplicate)=\"duplicar($event)\" (print)=\"imprimir($event)\"\n (remove)=\"excluirUsuario($event)\" />\n </div>\n</div>\n\n<app-consulta-cadastro-filtro-dialog #cadastroFiltroDialog [runtime]=\"runtimeConsulta()\" [presets]=\"presets()\"\n [onMultiselectOpcoesRefresh]=\"recarregarOpcoesMultiselectCampo\"\n (presetsUpdated)=\"onPresetsListaUpdated($event)\" (presetAppliedAfterSave)=\"onCadastroFiltroPresetApplied($event)\" />\n\n@if (mostrarBotaoVoltarTopoMobile()) {\n<structra-back-to-top-button\n class=\"consulta-back-to-top\"\n [scrollContainer]=\"scrollContainer()\"\n/>\n}\n\n<ng-template #consultaTopbarEnd>\n <div class=\"consulta-topbar-end flex flex-wrap items-center justify-end gap-1\">\n @if (runtimeConsulta().novoRouterLink && runtimeConsulta().showNovoButton === true) {\n <app-button type=\"button\" class=\"consulta-topbar-btn-novo\" variant=\"success\" size=\"md\" [fullWidth]=\"false\"\n label=\"Novo\"\n (click)=\"onNovoCadastroClick()\"\n [title]=\"tooltipBotaoNovoCadastro()\"\n [attr.aria-label]=\"tooltipBotaoNovoCadastro()\">\n <i data-base-button-leading class=\"fa-solid fa-plus text-[1.05rem] leading-none shrink-0\"\n aria-hidden=\"true\"></i>\n </app-button>\n } @else if (topbarTitleSkeleton() && runtimeConsulta().showNovoButton !== false && runtimeConsulta().novoRouterLink) {\n <app-button type=\"button\" class=\"consulta-topbar-btn-novo consulta-topbar-btn-novo-placeholder\" variant=\"success\"\n size=\"md\" [fullWidth]=\"false\" label=\"Novo\" tabindex=\"-1\" aria-hidden=\"true\">\n <i data-base-button-leading class=\"fa-solid fa-plus text-[1.05rem] leading-none shrink-0\"\n aria-hidden=\"true\"></i>\n </app-button>\n }\n @if (topbarEndExtraTemplate(); as extraTpl) {\n <ng-container *ngTemplateOutlet=\"extraTpl\" />\n }\n </div>\n</ng-template>", styles: ["@charset \"UTF-8\";:host{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch;box-sizing:border-box;min-width:0;min-height:0;width:100%;max-width:100%;background:transparent}.usuarios-page{flex:1 1 0%;min-height:0;width:100%;max-width:none;align-self:stretch;box-sizing:border-box;gap:var(--home-content-gutter, .35rem)}.usuarios-grid-host{flex:1 1 0%;min-height:0;min-width:0;width:100%;align-self:stretch;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive{display:flex;flex-direction:column;width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive:has(.adaptive-data-view--card-fill-parent){flex:1 1 0%!important;min-height:0}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive:has(.adaptive-data-view--grid-fit-page){flex:0 1 auto!important}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view{width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view__main{width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive .adaptive-data-view__main app-data-grid{width:100%;max-width:none;min-width:0;align-self:stretch;box-sizing:border-box}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive app-data-grid .data-grid__skeleton{flex:1 1 auto;min-height:0;align-self:stretch}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive app-data-grid .data-grid__skeleton app-skeleton-table{flex:1 1 auto;min-height:0;align-self:stretch;height:100%;display:flex;flex-direction:column}:host ::ng-deep app-adaptive-data-view.usuarios-consulta-adaptive ag-grid-angular{width:100%;min-width:0}:host ::ng-deep .usuarios-page .ag-paging-page-size{display:none!important}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header{padding:.5rem .65rem;box-sizing:border-box;min-height:3.25rem;max-height:3.25rem;align-items:center;overflow:hidden;margin-bottom:0}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header .form-group__header-main{align-items:center}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header .form-group__subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:767.98px){:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--default.form-group--dense.form-group--collapsible .form-group__header{min-height:auto;padding:.45rem .5rem .55rem}}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--expanded .form-group__body{padding:.5rem .55rem .01rem!important;gap:.35rem!important}:host ::ng-deep app-form-group.usuarios-consulta-filtro-group.form-group--expanded .form-group__body .form-group__body-stack:not(.form-group__body-stack--neutral){padding:2px 5px;box-sizing:border-box}.usuarios-consulta-filtro-inner{display:flex;flex-direction:column;gap:.4rem;min-width:0}.consulta-topbar-end{min-height:2.35rem}:host ::ng-deep app-button.consulta-topbar-btn-novo-placeholder{visibility:hidden;pointer-events:none}:host ::ng-deep app-button.consulta-topbar-btn-novo .base-button__native{box-sizing:border-box;width:auto;min-width:0;min-height:2.35rem;padding-inline:.55rem}@media(min-width:768px){:host ::ng-deep app-button.consulta-topbar-btn-novo .base-button__native{padding-inline:.65rem}}@media(min-width:40rem){:host ::ng-deep .usuarios-consulta-filtro-inner app-form-col.usuarios-consulta-filtro-item--solo{grid-column:4/span 6}}.usuarios-consulta-filtro-acoes{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;box-sizing:border-box;margin-top:.15rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));padding:.35rem 0 .3rem}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native{background:color-mix(in srgb,var(--ui-button-success-bg, var(--app-color-success)) 91%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border, var(--app-color-success)) 89%,#000)}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native:hover:not(:disabled){background:color-mix(in srgb,var(--ui-button-success-bg-hover, var(--app-color-success)) 87%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border-hover, var(--app-color-success)) 85%,#000)}:host ::ng-deep app-button.consulta-topbar-btn-novo.base-button--success .base-button__native:active:not(:disabled){background:color-mix(in srgb,var(--ui-button-success-bg-active, var(--app-color-success)) 83%,#000);border-color:color-mix(in srgb,var(--ui-button-success-border-active, var(--app-color-success)) 81%,#000)}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-juncao{align-self:stretch;min-height:0}@media(min-width:48rem){:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-coluna{order:1}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-operador{order:2}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-juncao{order:3}:host ::ng-deep .consulta-cadastro-filtro-dialog-item-panel app-form-col.consulta-cadastro-filtro-dialog-col-item-valor{order:4}}.consulta-back-to-top{--structra-back-to-top-mobile-bottom: 88px}\n"] }]
|
|
24917
24993
|
}], ctorParameters: () => [], propDecorators: { consultaTopbarEnd: [{
|
|
24918
24994
|
type: ViewChild,
|
|
24919
24995
|
args: ['consultaTopbarEnd']
|
|
24920
24996
|
}], cadastroFiltroDialog: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ConsultaCadastroFiltroDialogComponent), { isSignal: true }] }], runtime: [{ type: i0.Input, args: [{ isSignal: true, alias: "runtime", required: true }] }], topbarEndExtraTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "topbarEndExtraTemplate", required: false }] }], tooltipBotaoPesquisar: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipBotaoPesquisar", required: false }] }] } });
|
|
24921
24997
|
|
|
24998
|
+
const FINANCEIRO_GRID_HEADERS = [
|
|
24999
|
+
'Ações',
|
|
25000
|
+
'Descrição',
|
|
25001
|
+
'Categoria',
|
|
25002
|
+
'Valor',
|
|
25003
|
+
'Status',
|
|
25004
|
+
'Competência',
|
|
25005
|
+
];
|
|
25006
|
+
class ConsultaPageLoadingSkeletonComponent {
|
|
25007
|
+
constructor() {
|
|
25008
|
+
this.variant = input('metadata', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
25009
|
+
this.financeiroStatSlots = [0, 1, 2];
|
|
25010
|
+
this.financeiroGridHeaders = FINANCEIRO_GRID_HEADERS;
|
|
25011
|
+
this.metadataGridHeaders = CONSULTA_SKELETON_GRID_HEADERS;
|
|
25012
|
+
}
|
|
25013
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ConsultaPageLoadingSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25014
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ConsultaPageLoadingSkeletonComponent, isStandalone: true, selector: "app-consulta-page-loading-skeleton", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"consulta-page-loading-skeleton\"\n [class.consulta-page-loading-skeleton--financeiro]=\"variant() === 'financeiro'\"\n aria-hidden=\"true\">\n <section class=\"consulta-page-loading-skeleton__filtros\">\n <header class=\"consulta-page-loading-skeleton__filtros-header\">\n <span class=\"consulta-page-loading-skeleton__chevron\" aria-hidden=\"true\"></span>\n <div class=\"consulta-page-loading-skeleton__filtros-titles\">\n <span class=\"consulta-page-loading-skeleton__filtros-title\">Filtros</span>\n <span class=\"consulta-page-loading-skeleton__filtros-subtitle\"></span>\n </div>\n </header>\n </section>\n\n @if (variant() === 'financeiro') {\n <app-form-row class=\"consulta-page-loading-skeleton__stats oficina-consulta-stats oficina-consulta-stats--3\" gap=\"sm\" align=\"stretch\" justify=\"start\">\n @for (slot of financeiroStatSlots; track slot) {\n <app-form-col [xs]=\"12\" [sm]=\"6\">\n <div class=\"consulta-page-loading-skeleton__stat-card\">\n <div class=\"consulta-page-loading-skeleton__stat-head\">\n <span class=\"consulta-page-loading-skeleton__stat-icon\"></span>\n <span class=\"consulta-page-loading-skeleton__stat-title\"></span>\n </div>\n <span class=\"consulta-page-loading-skeleton__stat-value\"></span>\n </div>\n </app-form-col>\n }\n </app-form-row>\n }\n\n <div class=\"consulta-page-loading-skeleton__grid-host\">\n @if (variant() === 'financeiro') {\n <app-skeleton-table\n class=\"consulta-page-loading-skeleton__grid\"\n chrome=\"financeiro\"\n [headerLabels]=\"financeiroGridHeaders\"\n [columnCount]=\"financeiroGridHeaders.length\"\n [rowCount]=\"8\"\n [showPager]=\"true\"\n pagerRangeLabel=\"0 a 0 de 0\"\n pagerPageLabel=\"P\u00E1gina 0 de 0\"\n />\n } @else {\n <app-skeleton-table\n class=\"consulta-page-loading-skeleton__grid\"\n chrome=\"default\"\n [headerLabels]=\"metadataGridHeaders\"\n [columnCount]=\"metadataGridHeaders.length\"\n [rowCount]=\"8\"\n [showPager]=\"true\"\n pagerRangeLabel=\"0 a 0 de 0\"\n pagerPageLabel=\"P\u00E1gina 0 de 0\"\n />\n }\n </div>\n</div>\n", styles: ["@keyframes ui-skeleton-shimmer{to{transform:translate(100%)}}:host{display:flex;flex:1 1 0%;flex-direction:column;min-height:0;min-width:0;width:100%;height:100%;box-sizing:border-box}.consulta-page-loading-skeleton{display:flex;flex:1 1 0%;flex-direction:column;gap:var(--home-content-gutter, .35rem);min-height:0;min-width:0;width:100%;height:100%;box-sizing:border-box}.consulta-page-loading-skeleton__filtros{flex-shrink:0;border-radius:var(--app-radius-md, .5rem);border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, #ffffff);overflow:hidden}.consulta-page-loading-skeleton__filtros-header{display:flex;align-items:center;gap:.5rem;min-height:var(--oficina-consulta-header-height, var(--app-header-height, 3.25rem));max-height:var(--oficina-consulta-header-height, var(--app-header-height, 3.25rem));padding:.5rem .65rem;box-sizing:border-box;overflow:hidden}.consulta-page-loading-skeleton__chevron{flex-shrink:0;width:.55rem;height:.55rem;border-right:2px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 55%,transparent);border-bottom:2px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 55%,transparent);transform:rotate(-45deg)}.consulta-page-loading-skeleton__filtros-titles{display:flex;flex:1 1 auto;flex-direction:column;justify-content:center;gap:.2rem;min-width:0}.consulta-page-loading-skeleton__filtros-title{font-size:.92rem;font-weight:600;line-height:1.25;color:var(--app-color-text-primary, #1a2f45)}.consulta-page-loading-skeleton__filtros-subtitle{display:block;width:42%;height:.62rem;border-radius:6px;position:relative;overflow:hidden;background:var(--app-color-skeleton-track, color-mix(in srgb, var(--app-color-text-primary) 7%, var(--app-color-surface-alt) 93%))}.consulta-page-loading-skeleton__filtros-subtitle:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--app-color-skeleton-shine, color-mix(in srgb, var(--app-color-text-primary) 14%, transparent)),transparent);animation:ui-skeleton-shimmer 1.35s ease-in-out infinite}:host ::ng-deep app-form-row.consulta-page-loading-skeleton__stats{flex-shrink:0;width:100%;min-width:0;margin:0;--oficina-consulta-stats-cols: 3}:host ::ng-deep app-form-row.consulta-page-loading-skeleton__stats .form-row__grid{width:100%;min-width:0;gap:var(--oficina-consulta-panel-gap, .375rem)}@media(min-width:40rem){:host ::ng-deep app-form-row.consulta-page-loading-skeleton__stats .form-row__grid{display:grid;grid-template-columns:repeat(var(--oficina-consulta-stats-cols, 3),minmax(0,1fr))}:host ::ng-deep app-form-row.consulta-page-loading-skeleton__stats app-form-col{grid-column:span 1!important;width:100%;max-width:none}}.consulta-page-loading-skeleton__stat-card{display:flex;flex-direction:column;gap:.45rem;height:100%;min-height:5.5rem;padding:1rem 1.05rem;box-sizing:border-box;border-radius:10px;border:2px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));background:var(--app-color-surface, #ffffff);box-shadow:0 1px 2px #0f172a0a}.consulta-page-loading-skeleton__stat-head{display:flex;align-items:flex-start;gap:.5rem}.consulta-page-loading-skeleton__stat-icon{flex-shrink:0;width:2rem;height:2rem;border-radius:8px;position:relative;overflow:hidden;background:var(--app-color-skeleton-track, color-mix(in srgb, var(--app-color-text-primary) 7%, var(--app-color-surface-alt) 93%))}.consulta-page-loading-skeleton__stat-icon:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--app-color-skeleton-shine, color-mix(in srgb, var(--app-color-text-primary) 14%, transparent)),transparent);animation:ui-skeleton-shimmer 1.35s ease-in-out infinite}.consulta-page-loading-skeleton__stat-title{flex:1 1 auto;height:1.11rem;min-width:0;border-radius:6px;position:relative;overflow:hidden;background:var(--app-color-skeleton-track, color-mix(in srgb, var(--app-color-text-primary) 7%, var(--app-color-surface-alt) 93%))}.consulta-page-loading-skeleton__stat-title:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--app-color-skeleton-shine, color-mix(in srgb, var(--app-color-text-primary) 14%, transparent)),transparent);animation:ui-skeleton-shimmer 1.35s ease-in-out infinite}.consulta-page-loading-skeleton__stat-value{display:block;width:44%;height:1.74rem;border-radius:6px;position:relative;overflow:hidden;background:var(--app-color-skeleton-track, color-mix(in srgb, var(--app-color-text-primary) 7%, var(--app-color-surface-alt) 93%))}.consulta-page-loading-skeleton__stat-value:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--app-color-skeleton-shine, color-mix(in srgb, var(--app-color-text-primary) 14%, transparent)),transparent);animation:ui-skeleton-shimmer 1.35s ease-in-out infinite}.consulta-page-loading-skeleton__grid-host{display:flex;flex:1 1 0%;flex-direction:column;min-height:0;min-width:0;width:100%}.consulta-page-loading-skeleton__grid{flex:1 1 0%;min-height:0;width:100%}@media(max-width:767.98px){.consulta-page-loading-skeleton__filtros-header{min-height:auto;max-height:none;padding:.45rem .5rem .55rem}}\n"], dependencies: [{ kind: "component", type: FormRowComponent, selector: "app-form-row", inputs: ["gap", "align", "justify", "grow", "wrap", "stackOnMobile"] }, { kind: "component", type: FormColComponent, selector: "app-form-col", inputs: ["xs", "sm", "md", "lg", "xl", "order", "grow", "gap", "align", "justify"] }, { kind: "component", type: SkeletonTableComponent, selector: "app-skeleton-table", inputs: ["columnCount", "rowCount", "showPager", "bodyOnly", "animate", "headerLabels", "chrome", "showActionsColumn", "pagerRangeLabel", "pagerPageLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25015
|
+
}
|
|
25016
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ConsultaPageLoadingSkeletonComponent, decorators: [{
|
|
25017
|
+
type: Component,
|
|
25018
|
+
args: [{ selector: 'app-consulta-page-loading-skeleton', standalone: true, imports: [FormRowComponent, FormColComponent, SkeletonTableComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"consulta-page-loading-skeleton\"\n [class.consulta-page-loading-skeleton--financeiro]=\"variant() === 'financeiro'\"\n aria-hidden=\"true\">\n <section class=\"consulta-page-loading-skeleton__filtros\">\n <header class=\"consulta-page-loading-skeleton__filtros-header\">\n <span class=\"consulta-page-loading-skeleton__chevron\" aria-hidden=\"true\"></span>\n <div class=\"consulta-page-loading-skeleton__filtros-titles\">\n <span class=\"consulta-page-loading-skeleton__filtros-title\">Filtros</span>\n <span class=\"consulta-page-loading-skeleton__filtros-subtitle\"></span>\n </div>\n </header>\n </section>\n\n @if (variant() === 'financeiro') {\n <app-form-row class=\"consulta-page-loading-skeleton__stats oficina-consulta-stats oficina-consulta-stats--3\" gap=\"sm\" align=\"stretch\" justify=\"start\">\n @for (slot of financeiroStatSlots; track slot) {\n <app-form-col [xs]=\"12\" [sm]=\"6\">\n <div class=\"consulta-page-loading-skeleton__stat-card\">\n <div class=\"consulta-page-loading-skeleton__stat-head\">\n <span class=\"consulta-page-loading-skeleton__stat-icon\"></span>\n <span class=\"consulta-page-loading-skeleton__stat-title\"></span>\n </div>\n <span class=\"consulta-page-loading-skeleton__stat-value\"></span>\n </div>\n </app-form-col>\n }\n </app-form-row>\n }\n\n <div class=\"consulta-page-loading-skeleton__grid-host\">\n @if (variant() === 'financeiro') {\n <app-skeleton-table\n class=\"consulta-page-loading-skeleton__grid\"\n chrome=\"financeiro\"\n [headerLabels]=\"financeiroGridHeaders\"\n [columnCount]=\"financeiroGridHeaders.length\"\n [rowCount]=\"8\"\n [showPager]=\"true\"\n pagerRangeLabel=\"0 a 0 de 0\"\n pagerPageLabel=\"P\u00E1gina 0 de 0\"\n />\n } @else {\n <app-skeleton-table\n class=\"consulta-page-loading-skeleton__grid\"\n chrome=\"default\"\n [headerLabels]=\"metadataGridHeaders\"\n [columnCount]=\"metadataGridHeaders.length\"\n [rowCount]=\"8\"\n [showPager]=\"true\"\n pagerRangeLabel=\"0 a 0 de 0\"\n pagerPageLabel=\"P\u00E1gina 0 de 0\"\n />\n }\n </div>\n</div>\n", styles: ["@keyframes ui-skeleton-shimmer{to{transform:translate(100%)}}:host{display:flex;flex:1 1 0%;flex-direction:column;min-height:0;min-width:0;width:100%;height:100%;box-sizing:border-box}.consulta-page-loading-skeleton{display:flex;flex:1 1 0%;flex-direction:column;gap:var(--home-content-gutter, .35rem);min-height:0;min-width:0;width:100%;height:100%;box-sizing:border-box}.consulta-page-loading-skeleton__filtros{flex-shrink:0;border-radius:var(--app-radius-md, .5rem);border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, #ffffff);overflow:hidden}.consulta-page-loading-skeleton__filtros-header{display:flex;align-items:center;gap:.5rem;min-height:var(--oficina-consulta-header-height, var(--app-header-height, 3.25rem));max-height:var(--oficina-consulta-header-height, var(--app-header-height, 3.25rem));padding:.5rem .65rem;box-sizing:border-box;overflow:hidden}.consulta-page-loading-skeleton__chevron{flex-shrink:0;width:.55rem;height:.55rem;border-right:2px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 55%,transparent);border-bottom:2px solid color-mix(in srgb,var(--app-color-text-secondary, #4a6682) 55%,transparent);transform:rotate(-45deg)}.consulta-page-loading-skeleton__filtros-titles{display:flex;flex:1 1 auto;flex-direction:column;justify-content:center;gap:.2rem;min-width:0}.consulta-page-loading-skeleton__filtros-title{font-size:.92rem;font-weight:600;line-height:1.25;color:var(--app-color-text-primary, #1a2f45)}.consulta-page-loading-skeleton__filtros-subtitle{display:block;width:42%;height:.62rem;border-radius:6px;position:relative;overflow:hidden;background:var(--app-color-skeleton-track, color-mix(in srgb, var(--app-color-text-primary) 7%, var(--app-color-surface-alt) 93%))}.consulta-page-loading-skeleton__filtros-subtitle:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--app-color-skeleton-shine, color-mix(in srgb, var(--app-color-text-primary) 14%, transparent)),transparent);animation:ui-skeleton-shimmer 1.35s ease-in-out infinite}:host ::ng-deep app-form-row.consulta-page-loading-skeleton__stats{flex-shrink:0;width:100%;min-width:0;margin:0;--oficina-consulta-stats-cols: 3}:host ::ng-deep app-form-row.consulta-page-loading-skeleton__stats .form-row__grid{width:100%;min-width:0;gap:var(--oficina-consulta-panel-gap, .375rem)}@media(min-width:40rem){:host ::ng-deep app-form-row.consulta-page-loading-skeleton__stats .form-row__grid{display:grid;grid-template-columns:repeat(var(--oficina-consulta-stats-cols, 3),minmax(0,1fr))}:host ::ng-deep app-form-row.consulta-page-loading-skeleton__stats app-form-col{grid-column:span 1!important;width:100%;max-width:none}}.consulta-page-loading-skeleton__stat-card{display:flex;flex-direction:column;gap:.45rem;height:100%;min-height:5.5rem;padding:1rem 1.05rem;box-sizing:border-box;border-radius:10px;border:2px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));background:var(--app-color-surface, #ffffff);box-shadow:0 1px 2px #0f172a0a}.consulta-page-loading-skeleton__stat-head{display:flex;align-items:flex-start;gap:.5rem}.consulta-page-loading-skeleton__stat-icon{flex-shrink:0;width:2rem;height:2rem;border-radius:8px;position:relative;overflow:hidden;background:var(--app-color-skeleton-track, color-mix(in srgb, var(--app-color-text-primary) 7%, var(--app-color-surface-alt) 93%))}.consulta-page-loading-skeleton__stat-icon:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--app-color-skeleton-shine, color-mix(in srgb, var(--app-color-text-primary) 14%, transparent)),transparent);animation:ui-skeleton-shimmer 1.35s ease-in-out infinite}.consulta-page-loading-skeleton__stat-title{flex:1 1 auto;height:1.11rem;min-width:0;border-radius:6px;position:relative;overflow:hidden;background:var(--app-color-skeleton-track, color-mix(in srgb, var(--app-color-text-primary) 7%, var(--app-color-surface-alt) 93%))}.consulta-page-loading-skeleton__stat-title:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--app-color-skeleton-shine, color-mix(in srgb, var(--app-color-text-primary) 14%, transparent)),transparent);animation:ui-skeleton-shimmer 1.35s ease-in-out infinite}.consulta-page-loading-skeleton__stat-value{display:block;width:44%;height:1.74rem;border-radius:6px;position:relative;overflow:hidden;background:var(--app-color-skeleton-track, color-mix(in srgb, var(--app-color-text-primary) 7%, var(--app-color-surface-alt) 93%))}.consulta-page-loading-skeleton__stat-value:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--app-color-skeleton-shine, color-mix(in srgb, var(--app-color-text-primary) 14%, transparent)),transparent);animation:ui-skeleton-shimmer 1.35s ease-in-out infinite}.consulta-page-loading-skeleton__grid-host{display:flex;flex:1 1 0%;flex-direction:column;min-height:0;min-width:0;width:100%}.consulta-page-loading-skeleton__grid{flex:1 1 0%;min-height:0;width:100%}@media(max-width:767.98px){.consulta-page-loading-skeleton__filtros-header{min-height:auto;max-height:none;padding:.45rem .5rem .55rem}}\n"] }]
|
|
25019
|
+
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
|
|
25020
|
+
|
|
24922
25021
|
function mapListarItensParaMultiselectOpcoes(itens, optionsValueField, optionsLabelField, optionsOnlyActive) {
|
|
24923
25022
|
const vf = optionsValueField.trim() || 'id';
|
|
24924
25023
|
const lf = optionsLabelField.trim() || 'nome';
|
|
@@ -25222,14 +25321,7 @@ function buildConsultaPageRuntime(config, deps) {
|
|
|
25222
25321
|
const sliceLista = () => config.consultaListaQuerySlice?.() ?? CONSULTA_SERVIDOR_LISTA_QUERY_DEFAULTS;
|
|
25223
25322
|
const mapErro = deps.mapErroLista ?? mapErroTransporteParaMensagem;
|
|
25224
25323
|
const itemPassaConsulta = config.itemPassaConsulta ?? ((_item, _itens, _valores) => true);
|
|
25225
|
-
const
|
|
25226
|
-
const subtituloConsultaFiltros = config.subtituloConsultaFiltros ??
|
|
25227
|
-
(appThemeParaSubtitulo
|
|
25228
|
-
? () => {
|
|
25229
|
-
const nomeCor = String(appThemeParaSubtitulo.themePrimaryColorLabelPtBr()).toLowerCase();
|
|
25230
|
-
return `Ao lado do campo Filtro, use o botão para criar um novo filtro; abaixo, o botão ${nomeCor} para pesquisar.`;
|
|
25231
|
-
}
|
|
25232
|
-
: () => '');
|
|
25324
|
+
const subtituloConsultaFiltros = config.subtituloConsultaFiltros ?? (() => 'Refine a listagem pelos filtros abaixo.');
|
|
25233
25325
|
const maybeSimulatedDelay = async () => {
|
|
25234
25326
|
const inj = deps.injector;
|
|
25235
25327
|
if (inj) {
|
|
@@ -25261,6 +25353,7 @@ function buildConsultaPageRuntime(config, deps) {
|
|
|
25261
25353
|
filtroUi: b.filtroUi,
|
|
25262
25354
|
...(b.tituloTooltipBotaoNovo ? { tituloTooltipBotaoNovo: b.tituloTooltipBotaoNovo } : {}),
|
|
25263
25355
|
...(b.tituloTopbarConsulta ? { tituloTopbarConsulta: b.tituloTopbarConsulta } : {}),
|
|
25356
|
+
...(b.subtituloTopbarConsulta ? { subtituloTopbarConsulta: b.subtituloTopbarConsulta } : {}),
|
|
25264
25357
|
...(b.toastTitleListaServidor ? { toastTitleListaServidor: b.toastTitleListaServidor } : {}),
|
|
25265
25358
|
};
|
|
25266
25359
|
},
|
|
@@ -43333,44 +43426,136 @@ function mapReportTreeToTreeViewNodes(nodes) {
|
|
|
43333
43426
|
}));
|
|
43334
43427
|
}
|
|
43335
43428
|
|
|
43429
|
+
function findAncestorBranchIds(nodes, targetId) {
|
|
43430
|
+
const ancestors = new Set();
|
|
43431
|
+
const walk = (list, path) => {
|
|
43432
|
+
for (const node of list) {
|
|
43433
|
+
if (node.leaf) {
|
|
43434
|
+
if (node.id === targetId) {
|
|
43435
|
+
for (const id of path) {
|
|
43436
|
+
ancestors.add(id);
|
|
43437
|
+
}
|
|
43438
|
+
return true;
|
|
43439
|
+
}
|
|
43440
|
+
continue;
|
|
43441
|
+
}
|
|
43442
|
+
if (node.children?.length) {
|
|
43443
|
+
const nextPath = [...path, node.id];
|
|
43444
|
+
if (walk(node.children, nextPath)) {
|
|
43445
|
+
return true;
|
|
43446
|
+
}
|
|
43447
|
+
}
|
|
43448
|
+
}
|
|
43449
|
+
return false;
|
|
43450
|
+
};
|
|
43451
|
+
walk(nodes, []);
|
|
43452
|
+
return ancestors;
|
|
43453
|
+
}
|
|
43454
|
+
/** Grupos de relatório criados pelo backend (`grp-cadastros`, etc.). */
|
|
43455
|
+
function isReportGroupNode(node, groupIdPrefix = 'grp-') {
|
|
43456
|
+
return node.id.startsWith(groupIdPrefix);
|
|
43457
|
+
}
|
|
43336
43458
|
/**
|
|
43337
|
-
*
|
|
43459
|
+
* Árvore de relatórios com expansão automática dos ramos ancestrais do item seleccionado.
|
|
43460
|
+
* Grupos `grp-*` recolhidos por omissão, excepto o caminho até ao relatório activo.
|
|
43461
|
+
*/
|
|
43462
|
+
function mapReportTreeToTreeViewNodesForSelection(nodes, selectedReportId, options) {
|
|
43463
|
+
const groupIdPrefix = options?.groupIdPrefix ?? 'grp-';
|
|
43464
|
+
const expandedBranchIds = selectedReportId
|
|
43465
|
+
? findAncestorBranchIds(nodes, selectedReportId)
|
|
43466
|
+
: new Set();
|
|
43467
|
+
const applyExpansion = (source) => source.map((node) => {
|
|
43468
|
+
const hasChildren = Boolean(node.children?.length);
|
|
43469
|
+
const isBranch = hasChildren && !node.leaf;
|
|
43470
|
+
let expanded = node.expanded ?? false;
|
|
43471
|
+
if (isReportGroupNode(node, groupIdPrefix)) {
|
|
43472
|
+
expanded = expandedBranchIds.has(node.id);
|
|
43473
|
+
}
|
|
43474
|
+
else if (isBranch && expandedBranchIds.has(node.id)) {
|
|
43475
|
+
expanded = true;
|
|
43476
|
+
}
|
|
43477
|
+
return {
|
|
43478
|
+
...node,
|
|
43479
|
+
expanded,
|
|
43480
|
+
children: node.children?.length ? applyExpansion(node.children) : node.children,
|
|
43481
|
+
};
|
|
43482
|
+
});
|
|
43483
|
+
return mapReportTreeToTreeViewNodes(applyExpansion(nodes));
|
|
43484
|
+
}
|
|
43485
|
+
function reportExistsInTree(reportId, nodes) {
|
|
43486
|
+
for (const node of nodes) {
|
|
43487
|
+
if (node.leaf) {
|
|
43488
|
+
if (node.id === reportId) {
|
|
43489
|
+
return true;
|
|
43490
|
+
}
|
|
43491
|
+
continue;
|
|
43492
|
+
}
|
|
43493
|
+
if (node.children?.length && reportExistsInTree(reportId, node.children)) {
|
|
43494
|
+
return true;
|
|
43495
|
+
}
|
|
43496
|
+
}
|
|
43497
|
+
return false;
|
|
43498
|
+
}
|
|
43499
|
+
function resolveInitialReportId(nodes, options) {
|
|
43500
|
+
const preferred = options?.preferredId?.trim();
|
|
43501
|
+
if (preferred && reportExistsInTree(preferred, nodes)) {
|
|
43502
|
+
return preferred;
|
|
43503
|
+
}
|
|
43504
|
+
const findFirst = options?.findFirstLeaf;
|
|
43505
|
+
return findFirst ? findFirst(nodes) : null;
|
|
43506
|
+
}
|
|
43507
|
+
|
|
43508
|
+
/**
|
|
43509
|
+
* Cache em memória da árvore de relatórios (escopo da aba), indexado por {@link cacheKey}.
|
|
43338
43510
|
* Persiste entre navegações SPA; limpa no F5 ou {@link invalidate}.
|
|
43339
43511
|
*/
|
|
43340
43512
|
class StructraReportTreeCacheService {
|
|
43341
43513
|
constructor() {
|
|
43342
|
-
this.
|
|
43343
|
-
|
|
43514
|
+
this.entries = new Map();
|
|
43515
|
+
}
|
|
43516
|
+
entry(cacheKey) {
|
|
43517
|
+
const key = cacheKey.trim() || 'default';
|
|
43518
|
+
let entry = this.entries.get(key);
|
|
43519
|
+
if (!entry) {
|
|
43520
|
+
entry = { nodes: [], inflight: null };
|
|
43521
|
+
this.entries.set(key, entry);
|
|
43522
|
+
}
|
|
43523
|
+
return entry;
|
|
43344
43524
|
}
|
|
43345
|
-
peek() {
|
|
43346
|
-
|
|
43525
|
+
peek(cacheKey = 'default') {
|
|
43526
|
+
const nodes = this.entry(cacheKey).nodes;
|
|
43527
|
+
return nodes.length > 0 ? nodes : null;
|
|
43347
43528
|
}
|
|
43348
|
-
hasCache() {
|
|
43349
|
-
return (this.
|
|
43529
|
+
hasCache(cacheKey = 'default') {
|
|
43530
|
+
return (this.entry(cacheKey).nodes.length ?? 0) > 0;
|
|
43350
43531
|
}
|
|
43351
|
-
invalidate() {
|
|
43352
|
-
|
|
43353
|
-
|
|
43532
|
+
invalidate(cacheKey) {
|
|
43533
|
+
if (cacheKey == null || cacheKey.trim() === '') {
|
|
43534
|
+
this.entries.clear();
|
|
43535
|
+
return;
|
|
43536
|
+
}
|
|
43537
|
+
this.entries.delete(cacheKey.trim() || 'default');
|
|
43354
43538
|
}
|
|
43355
|
-
async getOrFetch(fetcher, options) {
|
|
43539
|
+
async getOrFetch(cacheKey, fetcher, options) {
|
|
43356
43540
|
const force = options?.force === true;
|
|
43357
|
-
|
|
43358
|
-
|
|
43541
|
+
const bucket = this.entry(cacheKey);
|
|
43542
|
+
if (!force && bucket.nodes.length > 0) {
|
|
43543
|
+
return bucket.nodes;
|
|
43359
43544
|
}
|
|
43360
|
-
if (!force &&
|
|
43361
|
-
return
|
|
43545
|
+
if (!force && bucket.inflight) {
|
|
43546
|
+
return bucket.inflight;
|
|
43362
43547
|
}
|
|
43363
|
-
|
|
43548
|
+
bucket.inflight = fetcher()
|
|
43364
43549
|
.then((nodes) => {
|
|
43365
|
-
|
|
43366
|
-
|
|
43550
|
+
bucket.nodes = nodes;
|
|
43551
|
+
bucket.inflight = null;
|
|
43367
43552
|
return nodes;
|
|
43368
43553
|
})
|
|
43369
43554
|
.catch((error) => {
|
|
43370
|
-
|
|
43555
|
+
bucket.inflight = null;
|
|
43371
43556
|
throw error;
|
|
43372
43557
|
});
|
|
43373
|
-
return
|
|
43558
|
+
return bucket.inflight;
|
|
43374
43559
|
}
|
|
43375
43560
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportTreeCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43376
43561
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportTreeCacheService, providedIn: 'root' }); }
|
|
@@ -43384,19 +43569,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
43384
43569
|
class StructraReportTreeSkeletonComponent {
|
|
43385
43570
|
constructor() {
|
|
43386
43571
|
this.rows = 9;
|
|
43387
|
-
/**
|
|
43388
|
-
this.
|
|
43572
|
+
/** Profundidade, largura e tipo (pasta/folha) — padrão repetível como árvore real. */
|
|
43573
|
+
this.rowLayouts = [
|
|
43574
|
+
{ depth: 0, labelWidth: '62%', folder: true },
|
|
43575
|
+
{ depth: 1, labelWidth: '72%', folder: true },
|
|
43576
|
+
{ depth: 1, labelWidth: '55%', folder: false },
|
|
43577
|
+
{ depth: 2, labelWidth: '48%', folder: false },
|
|
43578
|
+
{ depth: 0, labelWidth: '58%', folder: true },
|
|
43579
|
+
{ depth: 1, labelWidth: '65%', folder: false },
|
|
43580
|
+
{ depth: 2, labelWidth: '52%', folder: false },
|
|
43581
|
+
{ depth: 1, labelWidth: '70%', folder: true },
|
|
43582
|
+
{ depth: 0, labelWidth: '50%', folder: false },
|
|
43583
|
+
{ depth: 1, labelWidth: '68%', folder: false },
|
|
43584
|
+
{ depth: 2, labelWidth: '44%', folder: false },
|
|
43585
|
+
{ depth: 0, labelWidth: '60%', folder: true },
|
|
43586
|
+
];
|
|
43389
43587
|
}
|
|
43390
43588
|
get skeletonRows() {
|
|
43391
43589
|
const count = Math.max(1, Math.min(12, this.rows));
|
|
43392
|
-
return Array.from({ length: count }, (_, index) => index);
|
|
43590
|
+
return Array.from({ length: count }, (_, index) => this.rowLayouts[index % this.rowLayouts.length]);
|
|
43393
43591
|
}
|
|
43394
43592
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportTreeSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43395
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: StructraReportTreeSkeletonComponent, isStandalone: true, selector: "structra-report-tree-skeleton", inputs: { rows: "rows" }, ngImport: i0, template: "<aside class=\"structra-report-tree-skeleton\" aria-hidden=\"true\" aria-busy=\"true\">\n <div class=\"structra-report-tree-skeleton__panel\">\n <div class=\"structra-report-tree-skeleton__header\">\n <app-skeleton-block class=\"structra-report-tree-skeleton__header-icon\" width=\"1rem\" height=\"1rem\" radius=\"4px\" />\n <app-skeleton-block class=\"structra-report-tree-skeleton__header-title\" width=\"5.5rem\" height=\"0.95rem\" radius=\"6px\" />\n </div>\n\n <div class=\"structra-report-tree-skeleton__filter\">\n <app-skeleton-field-shell variant=\"text\" size=\"sm\" />\n </div>\n\n <ul class=\"structra-report-tree-skeleton__rows\">\n @for (
|
|
43593
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: StructraReportTreeSkeletonComponent, isStandalone: true, selector: "structra-report-tree-skeleton", inputs: { rows: "rows" }, ngImport: i0, template: "<aside class=\"structra-report-tree-skeleton\" aria-hidden=\"true\" aria-busy=\"true\">\n <div class=\"structra-report-tree-skeleton__panel\">\n <div class=\"structra-report-tree-skeleton__header\">\n <app-skeleton-block class=\"structra-report-tree-skeleton__header-icon\" width=\"1rem\" height=\"1rem\" radius=\"4px\" />\n <app-skeleton-block class=\"structra-report-tree-skeleton__header-title\" width=\"5.5rem\" height=\"0.95rem\" radius=\"6px\" />\n </div>\n\n <div class=\"structra-report-tree-skeleton__filter\">\n <app-skeleton-field-shell variant=\"text\" size=\"sm\" />\n </div>\n\n <ul class=\"structra-report-tree-skeleton__rows\">\n @for (row of skeletonRows; track $index) {\n <li\n class=\"structra-report-tree-skeleton__row\"\n [style.--row-depth]=\"row.depth\">\n <span\n class=\"structra-report-tree-skeleton__caret-slot\"\n [class.structra-report-tree-skeleton__caret-slot--spacer]=\"!row.folder\"\n aria-hidden=\"true\">\n @if (row.folder) {\n <app-skeleton-block width=\"0.55rem\" height=\"0.55rem\" radius=\"2px\" />\n }\n </span>\n <app-skeleton-block\n class=\"structra-report-tree-skeleton__row-icon\"\n width=\"0.95rem\"\n height=\"0.95rem\"\n radius=\"4px\" />\n <app-skeleton-block\n class=\"structra-report-tree-skeleton__row-label\"\n [width]=\"row.labelWidth\"\n height=\"0.875rem\"\n radius=\"6px\" />\n </li>\n }\n </ul>\n </div>\n</aside>\n", styles: [":host{display:block;min-height:0;width:100%}.structra-report-tree-skeleton{display:flex;min-height:0;flex-direction:column;width:100%}.structra-report-tree-skeleton__panel{box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, #ffffff);overflow:hidden}.structra-report-tree-skeleton__header{display:flex;align-items:center;gap:.5rem;box-sizing:border-box;min-height:2.45rem;padding:.65rem .85rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1))}.structra-report-tree-skeleton__header-icon{flex-shrink:0}.structra-report-tree-skeleton__header-title{min-width:0}.structra-report-tree-skeleton__filter{margin:0 .65rem .35rem;padding-top:.35rem;min-width:0}.structra-report-tree-skeleton__rows{list-style:none;margin:0;padding:.35rem 0;display:flex;flex-direction:column}.structra-report-tree-skeleton__row{display:flex;align-items:center;gap:.35rem;box-sizing:border-box;min-height:2rem;padding:.12rem .65rem .12rem calc(.65rem + var(--row-depth, 0) * .85rem)}.structra-report-tree-skeleton__caret-slot{flex:0 0 1.35rem;width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.structra-report-tree-skeleton__caret-slot--spacer{visibility:hidden}.structra-report-tree-skeleton__row-icon{flex:0 0 auto;flex-shrink:0}.structra-report-tree-skeleton__row-label{flex:1 1 auto;min-width:0;max-width:100%}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }, { kind: "component", type: SkeletonFieldShellComponent, selector: "app-skeleton-field-shell", inputs: ["variant", "animate", "size", "showLeadingIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43396
43594
|
}
|
|
43397
43595
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportTreeSkeletonComponent, decorators: [{
|
|
43398
43596
|
type: Component,
|
|
43399
|
-
args: [{ selector: 'structra-report-tree-skeleton', standalone: true, imports: [SkeletonBlockComponent, SkeletonFieldShellComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<aside class=\"structra-report-tree-skeleton\" aria-hidden=\"true\" aria-busy=\"true\">\n <div class=\"structra-report-tree-skeleton__panel\">\n <div class=\"structra-report-tree-skeleton__header\">\n <app-skeleton-block class=\"structra-report-tree-skeleton__header-icon\" width=\"1rem\" height=\"1rem\" radius=\"4px\" />\n <app-skeleton-block class=\"structra-report-tree-skeleton__header-title\" width=\"5.5rem\" height=\"0.95rem\" radius=\"6px\" />\n </div>\n\n <div class=\"structra-report-tree-skeleton__filter\">\n <app-skeleton-field-shell variant=\"text\" size=\"sm\" />\n </div>\n\n <ul class=\"structra-report-tree-skeleton__rows\">\n @for (
|
|
43597
|
+
args: [{ selector: 'structra-report-tree-skeleton', standalone: true, imports: [SkeletonBlockComponent, SkeletonFieldShellComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<aside class=\"structra-report-tree-skeleton\" aria-hidden=\"true\" aria-busy=\"true\">\n <div class=\"structra-report-tree-skeleton__panel\">\n <div class=\"structra-report-tree-skeleton__header\">\n <app-skeleton-block class=\"structra-report-tree-skeleton__header-icon\" width=\"1rem\" height=\"1rem\" radius=\"4px\" />\n <app-skeleton-block class=\"structra-report-tree-skeleton__header-title\" width=\"5.5rem\" height=\"0.95rem\" radius=\"6px\" />\n </div>\n\n <div class=\"structra-report-tree-skeleton__filter\">\n <app-skeleton-field-shell variant=\"text\" size=\"sm\" />\n </div>\n\n <ul class=\"structra-report-tree-skeleton__rows\">\n @for (row of skeletonRows; track $index) {\n <li\n class=\"structra-report-tree-skeleton__row\"\n [style.--row-depth]=\"row.depth\">\n <span\n class=\"structra-report-tree-skeleton__caret-slot\"\n [class.structra-report-tree-skeleton__caret-slot--spacer]=\"!row.folder\"\n aria-hidden=\"true\">\n @if (row.folder) {\n <app-skeleton-block width=\"0.55rem\" height=\"0.55rem\" radius=\"2px\" />\n }\n </span>\n <app-skeleton-block\n class=\"structra-report-tree-skeleton__row-icon\"\n width=\"0.95rem\"\n height=\"0.95rem\"\n radius=\"4px\" />\n <app-skeleton-block\n class=\"structra-report-tree-skeleton__row-label\"\n [width]=\"row.labelWidth\"\n height=\"0.875rem\"\n radius=\"6px\" />\n </li>\n }\n </ul>\n </div>\n</aside>\n", styles: [":host{display:block;min-height:0;width:100%}.structra-report-tree-skeleton{display:flex;min-height:0;flex-direction:column;width:100%}.structra-report-tree-skeleton__panel{box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, #ffffff);overflow:hidden}.structra-report-tree-skeleton__header{display:flex;align-items:center;gap:.5rem;box-sizing:border-box;min-height:2.45rem;padding:.65rem .85rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1))}.structra-report-tree-skeleton__header-icon{flex-shrink:0}.structra-report-tree-skeleton__header-title{min-width:0}.structra-report-tree-skeleton__filter{margin:0 .65rem .35rem;padding-top:.35rem;min-width:0}.structra-report-tree-skeleton__rows{list-style:none;margin:0;padding:.35rem 0;display:flex;flex-direction:column}.structra-report-tree-skeleton__row{display:flex;align-items:center;gap:.35rem;box-sizing:border-box;min-height:2rem;padding:.12rem .65rem .12rem calc(.65rem + var(--row-depth, 0) * .85rem)}.structra-report-tree-skeleton__caret-slot{flex:0 0 1.35rem;width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.structra-report-tree-skeleton__caret-slot--spacer{visibility:hidden}.structra-report-tree-skeleton__row-icon{flex:0 0 auto;flex-shrink:0}.structra-report-tree-skeleton__row-label{flex:1 1 auto;min-width:0;max-width:100%}\n"] }]
|
|
43400
43598
|
}], propDecorators: { rows: [{
|
|
43401
43599
|
type: Input
|
|
43402
43600
|
}] } });
|
|
@@ -43690,69 +43888,168 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
43690
43888
|
type: Output
|
|
43691
43889
|
}] } });
|
|
43692
43890
|
|
|
43693
|
-
|
|
43891
|
+
/**
|
|
43892
|
+
* Shell reutilizável de relatórios: árvore com cache em memória + área principal projectável.
|
|
43893
|
+
* Usar em qualquer sistema com módulo de relatórios (Oficina, templates Structra, etc.).
|
|
43894
|
+
*/
|
|
43895
|
+
class StructraReportPageBaseComponent {
|
|
43694
43896
|
constructor() {
|
|
43695
|
-
this.transport = inject(STRUCTRA_REPORT_TRANSPORT);
|
|
43897
|
+
this.transport = inject(STRUCTRA_REPORT_TRANSPORT, { optional: true });
|
|
43696
43898
|
this.treeCache = inject(StructraReportTreeCacheService);
|
|
43899
|
+
/** Isola cache por tenant/módulo (ex.: `oficina:${tenantId}`). */
|
|
43900
|
+
this.cacheKey = 'default';
|
|
43901
|
+
/** Repõe expansão da árvore Structra (incrementar ao reentrar na rota). */
|
|
43902
|
+
this.expansionStateKey = 0;
|
|
43903
|
+
this.initialReportId = null;
|
|
43697
43904
|
this.autoSelectFirst = true;
|
|
43698
|
-
this.
|
|
43699
|
-
this.
|
|
43700
|
-
this.
|
|
43905
|
+
this.treeTitle = 'Relatórios';
|
|
43906
|
+
this.treeTitleIconClass = 'fa-solid fa-chart-simple';
|
|
43907
|
+
this.groupIdPrefix = 'grp-';
|
|
43908
|
+
this.useCache = true;
|
|
43909
|
+
this.selectedReportId = null;
|
|
43910
|
+
this.selectedReportIdChange = new EventEmitter();
|
|
43911
|
+
this.treeLoaded = new EventEmitter();
|
|
43912
|
+
this.treeLoadError = new EventEmitter();
|
|
43701
43913
|
this.treeNodes = signal([], ...(ngDevMode ? [{ debugName: "treeNodes" }] : /* istanbul ignore next */ []));
|
|
43702
|
-
this.selectedReportId = signal(null, ...(ngDevMode ? [{ debugName: "selectedReportId" }] : /* istanbul ignore next */ []));
|
|
43703
|
-
this.metadata = signal(null, ...(ngDevMode ? [{ debugName: "metadata" }] : /* istanbul ignore next */ []));
|
|
43704
|
-
this.result = signal(null, ...(ngDevMode ? [{ debugName: "result" }] : /* istanbul ignore next */ []));
|
|
43705
|
-
this.filtrosValores = signal({}, ...(ngDevMode ? [{ debugName: "filtrosValores" }] : /* istanbul ignore next */ []));
|
|
43706
43914
|
this.loadingTree = signal(true, ...(ngDevMode ? [{ debugName: "loadingTree" }] : /* istanbul ignore next */ []));
|
|
43707
|
-
this.
|
|
43708
|
-
this.
|
|
43709
|
-
this.
|
|
43710
|
-
this.treeViewNodes = computed(() => mapReportTreeToTreeViewNodes(this.treeNodes()), ...(ngDevMode ? [{ debugName: "treeViewNodes" }] : /* istanbul ignore next */ []));
|
|
43711
|
-
this.hidratarArvoreDoCache();
|
|
43712
|
-
if (!this.treeCache.hasCache()) {
|
|
43713
|
-
void this.carregarArvore();
|
|
43714
|
-
}
|
|
43915
|
+
this.selectedIdInternal = signal(null, ...(ngDevMode ? [{ debugName: "selectedIdInternal" }] : /* istanbul ignore next */ []));
|
|
43916
|
+
this.effectiveSelectedId = computed(() => this.selectedReportId ?? this.selectedIdInternal(), ...(ngDevMode ? [{ debugName: "effectiveSelectedId" }] : /* istanbul ignore next */ []));
|
|
43917
|
+
this.treeViewNodes = computed(() => mapReportTreeToTreeViewNodesForSelection(this.treeNodes(), this.effectiveSelectedId(), { groupIdPrefix: this.groupIdPrefix }), ...(ngDevMode ? [{ debugName: "treeViewNodes" }] : /* istanbul ignore next */ []));
|
|
43715
43918
|
effect(() => {
|
|
43716
|
-
const
|
|
43919
|
+
const preferred = this.initialReportId;
|
|
43920
|
+
const nodes = this.treeNodes();
|
|
43921
|
+
if (!nodes.length || !preferred?.trim()) {
|
|
43922
|
+
return;
|
|
43923
|
+
}
|
|
43717
43924
|
untracked(() => {
|
|
43718
|
-
|
|
43925
|
+
if (!this.effectiveSelectedId()) {
|
|
43926
|
+
this.selectReport(preferred);
|
|
43927
|
+
}
|
|
43719
43928
|
});
|
|
43720
43929
|
});
|
|
43721
43930
|
}
|
|
43931
|
+
ngOnInit() {
|
|
43932
|
+
this.hidratarArvoreDoCache();
|
|
43933
|
+
if (!this.useCache || !this.treeCache.hasCache(this.cacheKey)) {
|
|
43934
|
+
void this.carregarArvore();
|
|
43935
|
+
}
|
|
43936
|
+
}
|
|
43937
|
+
selectReport(id) {
|
|
43938
|
+
this.selectedIdInternal.set(id);
|
|
43939
|
+
this.selectedReportIdChange.emit(id);
|
|
43940
|
+
}
|
|
43941
|
+
async refreshTree(force = true) {
|
|
43942
|
+
await this.carregarArvore(force);
|
|
43943
|
+
}
|
|
43722
43944
|
hidratarArvoreDoCache() {
|
|
43723
|
-
|
|
43945
|
+
if (!this.useCache) {
|
|
43946
|
+
return;
|
|
43947
|
+
}
|
|
43948
|
+
const cached = this.treeCache.peek(this.cacheKey);
|
|
43724
43949
|
if (!cached?.length) {
|
|
43725
43950
|
return;
|
|
43726
43951
|
}
|
|
43727
|
-
this.
|
|
43952
|
+
this.applyTreeNodes(cached, false);
|
|
43953
|
+
}
|
|
43954
|
+
applyTreeNodes(nodes, emitLoaded) {
|
|
43955
|
+
this.treeNodes.set(nodes);
|
|
43728
43956
|
this.loadingTree.set(false);
|
|
43729
|
-
if (
|
|
43730
|
-
|
|
43731
|
-
|
|
43732
|
-
|
|
43957
|
+
if (emitLoaded) {
|
|
43958
|
+
this.treeLoaded.emit(nodes);
|
|
43959
|
+
}
|
|
43960
|
+
if (!this.effectiveSelectedId()) {
|
|
43961
|
+
const initial = resolveInitialReportId(nodes, {
|
|
43962
|
+
preferredId: this.initialReportId,
|
|
43963
|
+
findFirstLeaf: this.autoSelectFirst ? findFirstReportLeafId : () => null,
|
|
43964
|
+
});
|
|
43965
|
+
if (initial) {
|
|
43966
|
+
this.selectReport(initial);
|
|
43733
43967
|
}
|
|
43734
43968
|
}
|
|
43735
43969
|
}
|
|
43736
43970
|
async carregarArvore(force = false) {
|
|
43737
|
-
if (!force && this.treeCache.hasCache()) {
|
|
43971
|
+
if (this.useCache && !force && this.treeCache.hasCache(this.cacheKey)) {
|
|
43738
43972
|
this.hidratarArvoreDoCache();
|
|
43739
43973
|
return;
|
|
43740
43974
|
}
|
|
43975
|
+
const fetcher = this.transport?.obterArvore.bind(this.transport);
|
|
43976
|
+
if (!fetcher) {
|
|
43977
|
+
this.loadingTree.set(false);
|
|
43978
|
+
this.treeLoadError.emit(new Error('STRUCTRA_REPORT_TRANSPORT não configurado.'));
|
|
43979
|
+
return;
|
|
43980
|
+
}
|
|
43741
43981
|
this.loadingTree.set(true);
|
|
43742
43982
|
try {
|
|
43743
|
-
const nodes =
|
|
43744
|
-
|
|
43745
|
-
|
|
43746
|
-
|
|
43747
|
-
|
|
43748
|
-
|
|
43749
|
-
|
|
43750
|
-
}
|
|
43983
|
+
const nodes = this.useCache
|
|
43984
|
+
? await this.treeCache.getOrFetch(this.cacheKey, fetcher, { force })
|
|
43985
|
+
: await fetcher();
|
|
43986
|
+
this.applyTreeNodes(nodes, true);
|
|
43987
|
+
}
|
|
43988
|
+
catch (error) {
|
|
43989
|
+
this.treeLoadError.emit(error);
|
|
43751
43990
|
}
|
|
43752
43991
|
finally {
|
|
43753
43992
|
this.loadingTree.set(false);
|
|
43754
43993
|
}
|
|
43755
43994
|
}
|
|
43995
|
+
onTreeSelected(id) {
|
|
43996
|
+
this.selectReport(id);
|
|
43997
|
+
}
|
|
43998
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportPageBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43999
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: StructraReportPageBaseComponent, isStandalone: true, selector: "structra-report-page-base", inputs: { cacheKey: "cacheKey", expansionStateKey: "expansionStateKey", initialReportId: "initialReportId", autoSelectFirst: "autoSelectFirst", treeTitle: "treeTitle", treeTitleIconClass: "treeTitleIconClass", groupIdPrefix: "groupIdPrefix", useCache: ["useCache", "useCache", booleanAttribute], selectedReportId: "selectedReportId" }, outputs: { selectedReportIdChange: "selectedReportIdChange", treeLoaded: "treeLoaded", treeLoadError: "treeLoadError" }, host: { classAttribute: "structra-report-page-base-host structra-report-page-host" }, ngImport: i0, template: "<div class=\"structra-report-page-base structra-report-page\">\n @for (treeKey of [expansionStateKey]; track treeKey) {\n <structra-report-tree\n class=\"structra-report-page-base__tree structra-report-page__tree\"\n [nodes]=\"treeViewNodes()\"\n [selectedId]=\"effectiveSelectedId()\"\n [loading]=\"loadingTree()\"\n [title]=\"treeTitle\"\n [titleIconClass]=\"treeTitleIconClass\"\n [expansionStateKey]=\"treeKey\"\n (selectedIdChange)=\"onTreeSelected($event)\" />\n }\n\n <main class=\"structra-report-page-base__main structra-report-page__main\">\n <ng-content />\n </main>\n</div>\n", styles: [":host{display:flex;min-height:0;width:100%;flex:1}.structra-report-page-base{display:flex;min-height:0;width:100%;flex:1;flex-direction:column;gap:.5rem}@media(min-width:1024px){.structra-report-page-base{flex-direction:row;align-items:stretch;gap:0}.structra-report-page-base__tree{width:280px;min-width:280px;max-width:280px;flex:0 0 280px;border-right:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));padding-right:1rem}.structra-report-page-base__main{padding-left:.375rem}}.structra-report-page-base__main{display:flex;min-height:0;min-width:0;flex:1;flex-direction:column}@media(min-width:1024px){:host ::ng-deep .structra-report-page-base__tree{display:flex;flex:0 0 280px;flex-direction:column;min-height:0}:host ::ng-deep .structra-report-page-base__tree .tree-view{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}:host ::ng-deep .structra-report-page-base__tree .tree-view__scroll{flex:1 1 auto;min-height:0;overflow:auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: StructraReportTreeComponent, selector: "structra-report-tree", inputs: ["nodes", "selectedId", "title", "titleIconClass", "expansionStateKey", "loading"], outputs: ["selectedIdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44000
|
+
}
|
|
44001
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportPageBaseComponent, decorators: [{
|
|
44002
|
+
type: Component,
|
|
44003
|
+
args: [{ selector: 'structra-report-page-base', standalone: true, imports: [CommonModule, StructraReportTreeComponent], host: { class: 'structra-report-page-base-host structra-report-page-host' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"structra-report-page-base structra-report-page\">\n @for (treeKey of [expansionStateKey]; track treeKey) {\n <structra-report-tree\n class=\"structra-report-page-base__tree structra-report-page__tree\"\n [nodes]=\"treeViewNodes()\"\n [selectedId]=\"effectiveSelectedId()\"\n [loading]=\"loadingTree()\"\n [title]=\"treeTitle\"\n [titleIconClass]=\"treeTitleIconClass\"\n [expansionStateKey]=\"treeKey\"\n (selectedIdChange)=\"onTreeSelected($event)\" />\n }\n\n <main class=\"structra-report-page-base__main structra-report-page__main\">\n <ng-content />\n </main>\n</div>\n", styles: [":host{display:flex;min-height:0;width:100%;flex:1}.structra-report-page-base{display:flex;min-height:0;width:100%;flex:1;flex-direction:column;gap:.5rem}@media(min-width:1024px){.structra-report-page-base{flex-direction:row;align-items:stretch;gap:0}.structra-report-page-base__tree{width:280px;min-width:280px;max-width:280px;flex:0 0 280px;border-right:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));padding-right:1rem}.structra-report-page-base__main{padding-left:.375rem}}.structra-report-page-base__main{display:flex;min-height:0;min-width:0;flex:1;flex-direction:column}@media(min-width:1024px){:host ::ng-deep .structra-report-page-base__tree{display:flex;flex:0 0 280px;flex-direction:column;min-height:0}:host ::ng-deep .structra-report-page-base__tree .tree-view{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}:host ::ng-deep .structra-report-page-base__tree .tree-view__scroll{flex:1 1 auto;min-height:0;overflow:auto}}\n"] }]
|
|
44004
|
+
}], ctorParameters: () => [], propDecorators: { cacheKey: [{
|
|
44005
|
+
type: Input
|
|
44006
|
+
}], expansionStateKey: [{
|
|
44007
|
+
type: Input
|
|
44008
|
+
}], initialReportId: [{
|
|
44009
|
+
type: Input
|
|
44010
|
+
}], autoSelectFirst: [{
|
|
44011
|
+
type: Input
|
|
44012
|
+
}], treeTitle: [{
|
|
44013
|
+
type: Input
|
|
44014
|
+
}], treeTitleIconClass: [{
|
|
44015
|
+
type: Input
|
|
44016
|
+
}], groupIdPrefix: [{
|
|
44017
|
+
type: Input
|
|
44018
|
+
}], useCache: [{
|
|
44019
|
+
type: Input,
|
|
44020
|
+
args: [{ transform: booleanAttribute }]
|
|
44021
|
+
}], selectedReportId: [{
|
|
44022
|
+
type: Input
|
|
44023
|
+
}], selectedReportIdChange: [{
|
|
44024
|
+
type: Output
|
|
44025
|
+
}], treeLoaded: [{
|
|
44026
|
+
type: Output
|
|
44027
|
+
}], treeLoadError: [{
|
|
44028
|
+
type: Output
|
|
44029
|
+
}] } });
|
|
44030
|
+
|
|
44031
|
+
class StructraReportPageComponent {
|
|
44032
|
+
constructor() {
|
|
44033
|
+
this.transport = inject(STRUCTRA_REPORT_TRANSPORT);
|
|
44034
|
+
this.autoSelectFirst = true;
|
|
44035
|
+
this.autoPesquisarOnSelect = true;
|
|
44036
|
+
this.cacheKey = 'default';
|
|
44037
|
+
this.reportSelected = new EventEmitter();
|
|
44038
|
+
this.reportLoaded = new EventEmitter();
|
|
44039
|
+
this.selectedReportId = signal(null, ...(ngDevMode ? [{ debugName: "selectedReportId" }] : /* istanbul ignore next */ []));
|
|
44040
|
+
this.metadata = signal(null, ...(ngDevMode ? [{ debugName: "metadata" }] : /* istanbul ignore next */ []));
|
|
44041
|
+
this.result = signal(null, ...(ngDevMode ? [{ debugName: "result" }] : /* istanbul ignore next */ []));
|
|
44042
|
+
this.filtrosValores = signal({}, ...(ngDevMode ? [{ debugName: "filtrosValores" }] : /* istanbul ignore next */ []));
|
|
44043
|
+
this.loadingMetadata = signal(false, ...(ngDevMode ? [{ debugName: "loadingMetadata" }] : /* istanbul ignore next */ []));
|
|
44044
|
+
this.loadingResult = signal(false, ...(ngDevMode ? [{ debugName: "loadingResult" }] : /* istanbul ignore next */ []));
|
|
44045
|
+
this.painelFiltroRecolhido = signal(false, ...(ngDevMode ? [{ debugName: "painelFiltroRecolhido" }] : /* istanbul ignore next */ []));
|
|
44046
|
+
effect(() => {
|
|
44047
|
+
const id = this.selectedReportId();
|
|
44048
|
+
untracked(() => {
|
|
44049
|
+
void this.carregarMetadata(id);
|
|
44050
|
+
});
|
|
44051
|
+
});
|
|
44052
|
+
}
|
|
43756
44053
|
onReportSelected(id) {
|
|
43757
44054
|
this.selectedReportId.set(id);
|
|
43758
44055
|
this.reportSelected.emit(id);
|
|
@@ -43796,20 +44093,22 @@ class StructraReportPageComponent {
|
|
|
43796
44093
|
this.filtrosValores.set(next);
|
|
43797
44094
|
}
|
|
43798
44095
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43799
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: StructraReportPageComponent, isStandalone: true, selector: "structra-report-page", inputs: { autoSelectFirst: "autoSelectFirst", autoPesquisarOnSelect: "autoPesquisarOnSelect" }, outputs: { reportSelected: "reportSelected", reportLoaded: "reportLoaded" }, ngImport: i0, template: "<
|
|
44096
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: StructraReportPageComponent, isStandalone: true, selector: "structra-report-page", inputs: { autoSelectFirst: "autoSelectFirst", autoPesquisarOnSelect: "autoPesquisarOnSelect", cacheKey: "cacheKey" }, outputs: { reportSelected: "reportSelected", reportLoaded: "reportLoaded" }, ngImport: i0, template: "<structra-report-page-base\n class=\"structra-report-page\"\n [cacheKey]=\"cacheKey\"\n [autoSelectFirst]=\"autoSelectFirst\"\n (selectedReportIdChange)=\"onReportSelected($event)\">\n @if (!selectedReportId()) {\n <structra-report-empty-state />\n } @else {\n <structra-report-viewer\n [metadata]=\"metadata()\"\n [result]=\"result()\"\n [filtrosValores]=\"filtrosValores()\"\n [loadingMetadata]=\"loadingMetadata()\"\n [loadingResult]=\"loadingResult()\"\n [collapsed]=\"painelFiltroRecolhido()\"\n (collapsedChange)=\"painelFiltroRecolhido.set($event)\"\n (filtrosValoresChange)=\"patchFiltrosValores($event)\"\n (pesquisar)=\"pesquisar()\" />\n }\n</structra-report-page-base>\n", styles: [":host{display:flex;min-height:0;width:100%;flex:1}.structra-report-page{display:flex;min-height:0;width:100%;flex:1;flex-direction:column;gap:.5rem}@media(min-width:1024px){.structra-report-page{flex-direction:row;align-items:stretch;gap:0}.structra-report-page__tree{width:280px;flex-shrink:0;border-right:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));padding-right:1rem}.structra-report-page__main{padding-left:.375rem}}.structra-report-page__main{display:flex;min-height:0;min-width:0;flex:1;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: StructraReportPageBaseComponent, selector: "structra-report-page-base", inputs: ["cacheKey", "expansionStateKey", "initialReportId", "autoSelectFirst", "treeTitle", "treeTitleIconClass", "groupIdPrefix", "useCache", "selectedReportId"], outputs: ["selectedReportIdChange", "treeLoaded", "treeLoadError"] }, { kind: "component", type: StructraReportViewerComponent, selector: "structra-report-viewer", inputs: ["metadata", "result", "filtrosValores", "loadingMetadata", "loadingResult", "collapsed"], outputs: ["filtrosValoresChange", "collapsedChange", "pesquisar"] }, { kind: "component", type: StructraReportEmptyStateComponent, selector: "structra-report-empty-state", inputs: ["message", "description", "iconClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43800
44097
|
}
|
|
43801
44098
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportPageComponent, decorators: [{
|
|
43802
44099
|
type: Component,
|
|
43803
44100
|
args: [{ selector: 'structra-report-page', standalone: true, imports: [
|
|
43804
44101
|
CommonModule,
|
|
43805
|
-
|
|
44102
|
+
StructraReportPageBaseComponent,
|
|
43806
44103
|
StructraReportViewerComponent,
|
|
43807
44104
|
StructraReportEmptyStateComponent,
|
|
43808
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<
|
|
44105
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<structra-report-page-base\n class=\"structra-report-page\"\n [cacheKey]=\"cacheKey\"\n [autoSelectFirst]=\"autoSelectFirst\"\n (selectedReportIdChange)=\"onReportSelected($event)\">\n @if (!selectedReportId()) {\n <structra-report-empty-state />\n } @else {\n <structra-report-viewer\n [metadata]=\"metadata()\"\n [result]=\"result()\"\n [filtrosValores]=\"filtrosValores()\"\n [loadingMetadata]=\"loadingMetadata()\"\n [loadingResult]=\"loadingResult()\"\n [collapsed]=\"painelFiltroRecolhido()\"\n (collapsedChange)=\"painelFiltroRecolhido.set($event)\"\n (filtrosValoresChange)=\"patchFiltrosValores($event)\"\n (pesquisar)=\"pesquisar()\" />\n }\n</structra-report-page-base>\n", styles: [":host{display:flex;min-height:0;width:100%;flex:1}.structra-report-page{display:flex;min-height:0;width:100%;flex:1;flex-direction:column;gap:.5rem}@media(min-width:1024px){.structra-report-page{flex-direction:row;align-items:stretch;gap:0}.structra-report-page__tree{width:280px;flex-shrink:0;border-right:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));padding-right:1rem}.structra-report-page__main{padding-left:.375rem}}.structra-report-page__main{display:flex;min-height:0;min-width:0;flex:1;flex-direction:column}\n"] }]
|
|
43809
44106
|
}], ctorParameters: () => [], propDecorators: { autoSelectFirst: [{
|
|
43810
44107
|
type: Input
|
|
43811
44108
|
}], autoPesquisarOnSelect: [{
|
|
43812
44109
|
type: Input
|
|
44110
|
+
}], cacheKey: [{
|
|
44111
|
+
type: Input
|
|
43813
44112
|
}], reportSelected: [{
|
|
43814
44113
|
type: Output
|
|
43815
44114
|
}], reportLoaded: [{
|
|
@@ -43825,5 +44124,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
43825
44124
|
* Generated bundle index. Do not edit.
|
|
43826
44125
|
*/
|
|
43827
44126
|
|
|
43828
|
-
export { ADAPTIVE_DATA_VIEW_MOBILE_QUERY, APP_SIDEBAR_LABEL_REVEAL_LAG_MS, APP_SIDEBAR_LAYOUT_DURATION_MS, APP_SIDEBAR_NAV_REVEAL_TOTAL_MS, APP_THEME_BASE_CLASS, APP_THEME_IDS, ActionMenuComponent, AdaptiveDataViewComponent, AdminLoginPageComponent, AdminLoginShellComponent, StructraSidebarUserPanelComponent as AdminSidebarUserPanelComponent, AlertComponent, AnchoredOverlayComponent, AppBreadcrumbComponent, AppDialogComponent, AppLibLightBlockScrollStrategy, AppShellComponent, AppShellSidebarTemplateDirective, AppShellSidebarToggleComponent, AppSidebarBottomActionsSlotDirective, AppSidebarBottomActionsTemplateDirective, AppSidebarBrandDirective, AppSidebarComponent, AppSidebarFooterSlotDirective, AppSidebarFooterTemplateDirective, AppSidebarHeaderSlotDirective, AppSidebarHeaderTemplateDirective, AppSidebarToolbarDirective, AppSidebarUserInfoSlotDirective, AppSidebarUserInfoTemplateDirective, AppTheme, AppThemeService, AppTopbarComponent, AppUserMenuComponent, BR_ESTADOS_NOME_SIGLA, ButtonType as BaseButtonType, ButtonVariant as BaseButtonVariant, BaseFieldComponent, BaseFieldDirective, BooleanFieldDirective, ButtonComponent, ButtonRadius, ButtonSize, ButtonType, ButtonVariant, CADASTRO_COLLAPSIBLE_REMOTE_LOAD_DELAY_MS, CADASTRO_DUPLICATE_FLAG_STATE, CADASTRO_DUPLICATE_SOURCE_ID_STATE, CADASTRO_FOCO_COLUNA_APOS_RESUMO_MS, CADASTRO_FORM_COLLECTION_REMOVE_ITEM_CONFIRM, CADASTRO_INVALIDATE_ROUTE_SNAPSHOT, CADASTRO_PAGE_SUBTITULO_PADRAO, CADASTRO_PAGE_TITULO_NOVO_PADRAO, CADASTRO_PESSOA_INLINE_DESTINO_URL_FRAGMENTS, CADASTRO_REFERENCIA_DIALOG_CONTEXT, CADASTRO_REFERENCIA_DIALOG_PAGE_CONFIG, CADASTRO_REFERENCIA_ROUTE_ACCESS, CADASTRO_REFERENCIA_ROUTE_ACCESS_PERMISSIVE, CADASTRO_RESUMO_FIELD_NAVIGATE_DEFER_MS, CADASTRO_TOAST_TITLE_PADRAO, CADASTRO_VALIDATION_SUMMARY_PINNED, CADASTRO_VALIDATION_SUMMARY_STATIC, CATEGORIAS_NAV_ID_EXCLUIDO, CATEGORIAS_NAV_LINHA_GRAVADA, CATEGORIAS_NAV_VOLTAR_SEM_RECARREGAR, CLIENTES_NAV_ID_EXCLUIDO, CLIENTES_NAV_LINHA_GRAVADA, CLIENTES_NAV_VOLTAR_SEM_RECARREGAR, CONSULTA_DATETIME_KEYS_ISO_PARA_FMT, CONSULTA_DOCUMENTO_GRID_KEYS_ISO_PARA_FMT, CONSULTA_FILTROS_SESSAO_USER, CONSULTA_GRID_OPTS_DATAS_PADRAO, CONSULTA_LISTA_CACHE_MAX_PAGINAS_DEFAULT, CONSULTA_LISTA_CACHE_NS_SEP, CONSULTA_LISTA_CACHE_TTL_MS_DEFAULT, CONSULTA_MOBILE_LAYOUT_MEDIA_QUERY, CONSULTA_MULTISELECT_LABEL_STUB, CONSULTA_OPTIONS_LISTAR_RESOLVER, CONSULTA_PEDIDOS_GRID_OPTS, CONSULTA_PHONE_GRID_KEYS_ISO_PARA_FMT, CONSULTA_PRESET_SELECT_EMPTY_OPTIONS_MESSAGE_DESKTOP, CONSULTA_PRESET_SELECT_EMPTY_OPTIONS_MESSAGE_MOBILE, CONSULTA_PRODUTOS_GRID_OPTS, CONSULTA_ROUTE_REUSE, CONSULTA_SERVIDOR_LISTA_QUERY_DEFAULTS, CONSULTA_TOPBAR_SLOT, CadastroBasePageComponent, CadastroCollectionGridColumnFormat, CadastroCollectionReferenciaHostService, CadastroCollectionRuntime, CadastroEnumOptionsRegistry, CadastroFieldRendererComponent, CadastroFieldRuntime, CadastroFieldsBaseComponent, CadastroFormDraftCacheService, CadastroFormLoadingSkeletonComponent, CadastroMetadataPageBase, CadastroMetadataPageComponent, CadastroMetadataPageServiceBase, CadastroMetadataPageShellLayoutComponent, CadastroMetadataPageStateBase, CadastroMetadataShellPageComponent, CadastroPadraoPageBase, CadastroReferenceRegistry, CadastroReferenciaDialogBridgeRegistry, CadastroReferenciaDialogHostComponent, CadastroReferenciaDialogService, CadastroReferenciaOpenMode, CadastroRuntime, CadastroRuntimeRegistry, CadastroSectionPanelLayout, CardListComponent, CepFieldComponent, CheckboxFieldComponent, ColorPickerFieldComponent, ComponentType, ConfirmDialogComponent, ConfirmDialogService, ConsoleLogComponent, ConsultaBasePageComponent, ConsultaCadastroFiltroDialogComponent, ConsultaCardCampoPapel, ConsultaCardFieldFormat, ConsultaCatalogBundleHelper, ConsultaFiltroPresetToolbarComponent, ConsultaFiltrosSessaoService, ConsultaGridColumnFormat, ConsultaGridOrderDirection, ConsultaListaMemoriaCacheService, ConsultaPadraoPageBase, ConsultaPageCache, ContainerLayoutSize, ContextMenuComponent, CpfCnpjFieldComponent, DEFAULT_STRUCTRA_SHELL_SCROLL_RESTORATION_OPTIONS, DROPDOWN_SEARCH_LOCAL_PAGE_SIZE, DashboardSectionComponent, DataCardComponent, DataGridComponent, DataListComponent, DataToolbarComponent, DateFieldComponent, DecimalFieldComponent, DetailsFieldComponent, DetailsViewComponent, DialogFooterDirective, DividerComponent, DrawerComponent, DrawerSide, DrawerSize, DropdownBaseComponent, DropdownMenuComponent, DropdownMultiOptionFieldBase, DropdownOptionFieldBase, DropdownSearchFieldComponent, ENM_STATUS_OPCOES_SELECT, EmptyStateComponent, EnmStatus, FIELD_MOBILE_LAYOUT_QUERY, FILE_PREVIEW_UNAVAILABLE_MESSAGE, FORM_CONTAINER_STATE_STORAGE_PREFIX, FORNECEDORES_NAV_ID_EXCLUIDO, FORNECEDORES_NAV_LINHA_GRAVADA, FORNECEDORES_NAV_VOLTAR_SEM_RECARREGAR, FieldCadastroRedirectButtonComponent, FileUploadFieldComponent, FileUploadType, FormActionsAlign, FormActionsComponent, FormColComponent, FormCollectionComponent, FormCollectionLayout, FormGroupComponent, FormGroupVariant, FormLayoutGap, FormRowAlign, FormRowComponent, FormRowJustify, FormSectionAlign, FormSectionComponent, FormSectionRadius, FormSectionVariant, FormTabComponent, FormTabsComponent, GridLayoutConsultaService, ImagePreviewPanelComponent, InputMaskFieldComponent, IntegerFieldComponent, LAYOUT_STACK_SIDE_BY_SIDE, LAYOUT_STACK_STACKED, LayoutStackAlign, LayoutStackComponent, LayoutStackDirection, LayoutStackItemAlign, LibDialogSize, ListItemComponent, LoadingDialogComponent, LoadingDialogService, MaskedTextFieldBase, MenuDividerComponent, MenuDropdownPlacement, MenuGroupComponent, MenuListComponent, MultiselectFieldComponent, NO_OP_CONSULTA_ROUTE_REUSE, NO_OP_CONSULTA_TOPBAR_SLOT, NgControlFieldDirective, OPS_BOOL, OPS_DATA, OPS_TEXTO, OPS_TEXTO_MULTISELECT, ORIGEM_CADASTRO_INLINE_PESSOA, OnboardingChecklistComponent, OverlayPlacement, PDF_IFRAME_VIEWER_HASH, PEDIDOS_NAV_ID_EXCLUIDO, PEDIDOS_NAV_LINHA_GRAVADA, PEDIDOS_NAV_VOLTAR_SEM_RECARREGAR, PERMISSION_GROUP_OUTROS_KEY, PERMISSION_GROUP_OUTROS_LABEL, PERMISSION_GROUP_OUTROS_ORDER, PESSOAS_NAV_LINHA_GRAVADA, PESSOAS_NAV_VOLTAR_SEM_RECARREGAR, PHONE_BR_LANDLINE_MASK, PHONE_BR_MOBILE_MASK, PRODUTOS_NAV_ID_EXCLUIDO, PRODUTOS_NAV_LINHA_GRAVADA, PRODUTOS_NAV_VOLTAR_SEM_RECARREGAR, StructraPageFooterComponent as PageFooterComponent, PasswordFieldComponent, PermissionGroupTabComponent, PermissionGroupTabsComponent, PhoneFieldComponent, PopoverBodyTemplateDirective, PopoverComponent, PopoverFooterTemplateDirective, PopoverTriggerDirective, ReferenceOptionPreset, STRUCTRA_ADMIN_ROUTE_REDIRECT_CACHE_PREFIX, STRUCTRA_ADMIN_ROUTE_REDIRECT_LOGIN_ID_CACHE_KEY, STRUCTRA_CADASTRO_INLINE_RESULT_KEY, STRUCTRA_CADASTRO_INLINE_RETURN_KEY, STRUCTRA_CONSULTA_FORCE_REFRESH_KEY, STRUCTRA_DEDICATED_BACK_TO_TOP_SELECTOR, STRUCTRA_GRID_LAYOUT_API_BASE_RESOLVER, STRUCTRA_GRID_LAYOUT_AUTH_HEADERS_RESOLVER, STRUCTRA_GRID_LAYOUT_TENANT_RESOLVER, STRUCTRA_INLINE_FORM_DRAFT_PENDING_PREFIX, STRUCTRA_MIDIA_PUBLIC_BASE_RESOLVER, STRUCTRA_MIDIA_UPLOAD_TRANSPORT, STRUCTRA_PAGE_CACHE_SCOPE_SEP, STRUCTRA_PAGE_FOOTER_PARTS, STRUCTRA_PAGE_STATE_ACTIVE_TAB_PREFIX, STRUCTRA_REPORT_DEFAULT_PAGE_SIZE, STRUCTRA_REPORT_TRANSPORT, STRUCTRA_SHELL_SCROLL_RESTORATION_OPTIONS, STRUCTRA_SHELL_TOPBAR_TITLE_SKELETON, STRUCTRA_SIMULATED_LOADING_DELAY_MS, STRUCTRA_THEME_DARK_CLASS, STRUCTRA_THEME_IDS, STRUCTRA_UI, ScriptEditorFieldComponent, SelectFieldComponent, SkeletonBlockComponent, SkeletonCardComponent, SkeletonFieldShellComponent, SkeletonListComponent, SkeletonStatCardComponent, SkeletonTableComponent, SkeletonTextComponent, StatCardComponent, StatusBadgeComponent, StructraAdminRouteRedirectPageBase, StructraBackToTopButtonComponent, StructraPageCacheService, StructraPageComponentOutletComponent, StructraPageComponentRegistry, StructraPageFooterComponent, StructraPageStateCacheService, StructraProgressOverlayComponent, StructraReportEmptyStateComponent, StructraReportFilterPanelComponent, StructraReportLoadingSkeletonComponent, StructraReportPageComponent, StructraReportPaginatorComponent, StructraReportTableComponent, StructraReportTreeCacheService, StructraReportTreeComponent, StructraReportTreeSkeletonComponent, StructraReportViewerComponent, ScriptEditorFieldComponent as StructraScriptEditorComponent, StructraShellScrollRestorationService, StructraShellTopbarSlotService, AppSidebarBottomActionsTemplateDirective as StructraSidebarBottomActionsDirective, AppSidebarFooterTemplateDirective as StructraSidebarFooterDirective, AppSidebarHeaderTemplateDirective as StructraSidebarHeaderDirective, AppSidebarUserInfoTemplateDirective as StructraSidebarUserInfoDirective, StructraSidebarUserPanelComponent, SwitchFieldComponent, THEME_PRIMARY_COLOR_LABEL_PT_BR, TOAST_REGISTRO_EXCLUIDO_SUCESSO, TableEmptyStateComponent, TableToolbarComponent, TextFieldComponent, TextareaFieldComponent, ThemeDirective, ToastHostComponent, ToastService, TooltipComponent, TooltipPanelTemplateDirective, TreeViewComponent, USUARIOS_CONSULTA_GRID_OPTS, USUARIOS_NAV_ID_EXCLUIDO, USUARIOS_NAV_LINHA_GRAVADA, USUARIOS_NAV_VOLTAR_SEM_RECARREGAR, VENDEDORES_NAV_ID_EXCLUIDO, VENDEDORES_NAV_LINHA_GRAVADA, VENDEDORES_NAV_VOLTAR_SEM_RECARREGAR, ValidationSummaryComponent, agruparCamposMetadataPorSecao, agruparPermissionTabs, anchoredOverlayPositions, aplicarNormalizacaoMultiselectIdsNoPartial, aplicarProdutoDtoNoFormulario, appendCadastroPageActiveTabQuery, appendPdfIframeViewerParams, applyCadastroCollectionArrayValidators, applyCadastroModoSenhaNovos, applyCollectionValidationSummaryNavigation, applyCollectionValueToFormArray, applyEntityToCadastroFormByMetadata, applyOptionalThemeHostClasses, applyPickedCalendarDate, buildCadastroFiltroDialogItensGridRows, buildCadastroMetadataShellRuntime, buildCadastroPageActiveTabPageKey, buildCadastroPageActiveTabPageKeyFromLayout, buildCadastroPageRuntime, buildCadastroRedirectReturnUrl, buildCadastroReferenciaDialogContext, buildCatalogoStubConsultaRuntime, buildConsultaConfirmDuplicarLinhaFromLayout, buildConsultaConfirmRemoverLinhaFromLayout, buildConsultaDefaultIsItemGuard, buildConsultaListaCacheKey, buildConsultaPageMetadataUnified, buildConsultaPageRuntime, buildDecimalBrDisplay, buildDecimalBrParseString, buildDefaultConsultaMapCardFromColunasGrid, buildEmptyStateOverlayHtml, buildFormContainerStateStorageKey, buildFormGroupFromCadastroCampos, buildHistoryStateAfterReturningFromNestedInlineChild, buildInlineReturnStateForChildCadastro, buildNovoFormDefaultsFromCampos, buildRouteReuseKeyFromAppPathname, buildRouteReuseKeyFromNovoRouterLink, buildStructraAdminRouteRedirectCacheKey, buildStructraAdminRouteRedirectChildUrl, buildStructraPageCacheCadastroInitKey, buildStructraPageCacheRouteScope, buildStructraPageFooterParts, buildStructraSidebarTemplateContext, buildValidationMetaFromCadastroCampos, cadastroBuildImageUploadMetadata, cadastroCampoBlocoEditorOcupaLinhaInteira, cadastroCampoBooleanOcupaLinhaInteira, cadastroCampoMetadataDtoFromPartial, cadastroCampoMetadataEhBoolean, cadastroCampoMetadataLarguraCompacta, cadastroCampoMetadataLarguraFixaCss, cadastroCampoReferenciaMetadataDtoFromPartial, cadastroCampoRuleMaxLength, cadastroCampoScriptEditorLanguage, cadastroCampoScriptEditorMinHeight, cadastroCampoValidacaoDtoFromPartial, cadastroCampoWrapperWidthCss, cadastroCollectionEditorGridColumns, cadastroCollectionMaxItemsValidator, cadastroCollectionMinItemsValidator, cadastroConfirmExcluirPartialFromLayout, cadastroContainerLayoutSizeDoRecord, cadastroContainerPathJoin, cadastroCrudMessagesDoFormLayout, cadastroDeclarativeSnapshotDtoFromPartial, cadastroEnsureSingleBooleanInCollection, cadastroFieldsPerRowDoRecord, cadastroFlattenContainerRaw, cadastroFormDraftEnabledDoLayout, cadastroFormGridColumns, cadastroFormLayoutComoRecord, cadastroFormLayoutDoBundle, cadastroFormLayoutDoRuntime, cadastroFormLayoutPreserveActiveTab, cadastroFormPageLayoutFromPartial, cadastroGcd, cadastroGetCollectionItemControl, cadastroGridColumnSpanForFieldIndex, cadastroGridDenominadorTracks, cadastroGridTemplateColumnsLinhaUnicaSeAplicavel, cadastroInferExtensaoArquivo, cadastroInferImageContentType, cadastroLcm, cadastroMetadataDtoParaValidacaoLike, cadastroNavKeysStructra, cadastroNomeArquivoDaUploadUrl, cadastroNormalizarUploadUrlPorPrefixo, cadastroPageActionDtoFromPartial, cadastroPageActionsPorRegiao, cadastroPageActiveTabToRestore, cadastroPageComponentDtoFromPartial, cadastroPageComponentsPorRegiao, cadastroPageIdentityDoFormLayout, cadastroPageOverlayDtoFromPartial, cadastroPageShellAtivo, cadastroPageShellTabsKeepAliveFromLayout, cadastroPageTabDtoFromPartial, cadastroPageTabsOrdenados, cadastroPainelMaxWidthCss, cadastroRawBooleanDeep, cadastroRawNumber, cadastroRawString, cadastroReferenceEntryFromListarService, cadastroReferenciaOpenModeFromWire, cadastroReindexarCollectionOrdem, cadastroResolveId, cadastroSecaoFormGroupDense, cadastroSecaoPersisteExpandedState, cadastroSecaoRenderizaInlineDentroDoPai, cadastroSecaoSegmentosIntercalados, cadastroSecaoSegmentosParaRender, cadastroSecaoUsaFormGroup, cadastroSecaoUsaFormGroupComoBlocoVisual, cadastroSecaoUsaSuperficieDeclarativa, cadastroSingleBooleanCollectionBinding, cadastroTitulosEfectivosDoFormLayout, cadastroToastTitleEfectivoDoFormLayout, cadastroToolbarButtonDtoFromPartial, cadastroToolbarVisibilityDoFormLayout, cadastroUseBackToTopButtonFromLayout, cadastroValidationSummaryFlagsDoRecord, cadastroValidationSummaryPinnedFromFlags, cadastroWireCollectionOrdemReindexOnAdd, cadastroWireCollectionOrdemReindexOnAddRemove, cadastroWireCollectionOrdemReindexOnRemove, campoMetadataVisivelNoModo, caretIndexFromIntegerDigitCount, caretIndexFromSemantic, carregarOpcoesMultiselectViaSpec, cepMaskCompleteValidator, clearRequiredValidatorsOnReadOnlyCadastroFields, clearStructraCadastroInlineReturnSessionCacheForTests, clearStructraCadastroSessionStorageOnLogout, coerceDecimalPtBr, coerceReportBoolean, collectValidationSummaryItems, colunasGridTemFormatacaoDeclarativa, computeReferenciaHasMore, consoleLogLevelClass, consultaCampoMetadataDtoFromPartial, consultaCardCampoDtoFromPartial, consultaFiltroValorDataSomenteDia, consultaGridColunaDtoFromPartial, consultaGridColunaKeyParaCampoLinha, consultaGridConfigDtoFromPartial, consultaPassaItem, consultaPassaTodosItens, consultaUsuariosMetadataReplyFromPartial, consumeCadastroInlineFormDraftPendingRestore, consumirResultadoCadastroInlineCampoPessoaId, consumirResultadoCadastroInlineCampoReferencia, cpfCnpjMaskCompleteValidator, createCadastroDialogActivatedRoute, createCadastroMetadataPageConfig, createCadastroPadraoConfig, createCadastroRuntime, createCollectionFormArray, createCollectionItemFormGroup, createConsultaListaItemGuardFromFiltroUi, createConsultaOptionsListarResolver, createConsultaPadraoRuntime, createConsultaPresetSelectEmptyOptionsMessageSignal, createConsultaPresetStorageApi, createGrpcSaveRequestMapper, createInlineHostNavigation, createMapCardFromConsultaColunasGrid, createMapGridRowFromConsultaColunasGrid, createSaveRequestFromPartialMapper, criarDraftInlinePessoa, decimalPtBrNaoNegativoValidator, decimalPtBrToNullableNumber, defaultIsConsultaListItemMinimo, defaultParseLinhaGravadaJson, deleteConfirmPageConfigFromPartial, deriveCadastroTituloEditar, deriveConsultaListaItemGuardPropsFromFiltroUi, duplicateConfigFromLayout, duplicatePageConfigFromPartial, enrichCadastroReferenciaDialogPageConfig, ensureCadastroCollectionMinItems, ensureCadastroFormControlsFromMetadata, escapeHtml, evaluateStructraPageVisibleExpression, executarConsultaServidorComPreset, extractConsultaListaCacheNamespace, extractDecimalBrParts, fileIsLikelyImage, fileMatchesAccept, filtrarSecoesMetadataPorModo, filtrarUiSelectOptionsPainelComValorPersistente, filtrarUiSelectOptionsPorQuery, findCadastroCampoByKey, findFirstReportLeafId, findReportTreeLabel, fixedDigitsMaskCompleteValidator, flattenCadastroMetadataSecoes, fmtDataPt, fmtDocumentoCelulaConsultaGrid, formatAcceptForDisplay, formatDateTimePtBr, formatDecimalBr, formatDocumentoPessoaParaExibicao, formatFileSizeBytes, formatIntegerThousandsBr, formatMaskDigits, formatPhoneBr, formatUiFieldDateValue, getFilePreviewKind, getStructraActionsByGroup, getThemeClass, getThemeClassList, getThemePrimaryColorLabelPtBr, getThemeTokenClass, hexParaColorInput, inferCadastroItemFieldsFromPlainRows, inferCadastroListaUrlFallback, initialCadastroControlValue, injectEffectiveThemeId, isCadastroDuplicateNavigation, isCollectionField, isCollectionLikeField, isConsultaCardAutoSubtitleExcluded, isLegacyDarkThemeId, isLegacyFormContainerStateStorageKey, isLegacyNomeDocumentoReferencePreset, isReadonlyCollectionField, isReportBooleanColumn, isReportNowrapColumn, isValidPhoneBr, libDialogPanelClasses, listaUrlFromRotaCadastro, listarItensCadastroReferencia, listarTodosPaginado, loadPresetsJson, loadStructraAdminRouteRedirectTarget, mapCadastroFormRawToPayload, mapConsultaGridColunasParaDataGrid, mapConsultaMetadataParaFiltroUi, mapErroTransporteParaMensagem as mapErroListaDefault, mapErroTransporteParaMensagem, mapEstadosToOptions, mapFiltroSalvoParaConsultaPreset, mapListarItensParaMultiselectOpcoes, mapReportTreeToTreeViewNodes, markCadastroInlineFormDraftPendingRestore, maskDigitCount, mergeCadastroConfirmExcluir, mergeConsultaGridRowFormattingFromColunasGrid, mergeConsultaMultiselectOpcoesComSeleccionados, mergeDocumentoFmtNaLinhaConsulta, mergeMapConsultaGridColunasOptsComColumnFormat, mergeNovoIdEmListaSelecionada, mergeStructraShellScrollRestorationOptions, metadataCampoParaChaveLinhaCliente, modoPermissaoReferenciaFromWire, montarFiltrosGrpcPreset, montarFiltrosServidorPreset, montarHierarquiaSecoesMetadata, multiselectIdListRequiredValidator, multiselectMaxItemsValidator, navegarVoltarLista, navegarVoltarListaComIdRemovido, navegarVoltarListaComLinha, navigateCadastroDuplicate, navigateCommandsFromRotaAlterar, navigateCommandsFromRotaNovo, nomeSalvarParaPayloadComPessoa, normalizarArvoreSecoesMetadata, normalizarHexCor, normalizarItensParaGravarServidorCadastro, normalizarListaIdsMultiselect, normalizarOperadorConsultaParaEnvioServidor, normalizarRotaReferencia, normalizarStructraAction, normalizarStructraActionGroup, normalizarStructraActionGroups, normalizeCadastroAppPath, normalizeCadastroCampoMetadataWire, normalizeCadastroInitRouteIdParam, normalizeCadastroItemEditorDecimalControls, normalizeCadastroReferenciaDialogRotaKey, normalizeCadastroRouteForContainerState, normalizeConsoleLogLevel, normalizeFormDateValue, normalizePhoneBr, normalizeStructraAdminPath, normalizeStructraTheme, novoPathCommandsFromRota, onlyDigits, operadorConsultaComValorUnicoComparacao, operadorConsultaDatetimeUsaDatePicker, operadoresConsultaCampo, operadoresPorTipo, ordenarFiltroItens, ordenarStructraActions, parseDecimalBr, parseIntegerString, parseUiFieldDateValue, patchFormFromEntidadeRecord, permissionTabsUsamGruposVerticais, permissoesReferenciaMetadata, phoneBrDynamicMaskCompleteValidator, phoneBrMaskCompleteValidator, phoneBrMaskFromDigits, pickCadastroPageActiveTabExplicit, pickTabKeyLinkedToSummaryItems, precisaValor, precisaValorFinal, provideAppPageFooter, provideStructraCadastroReferenciaDialogRoot, provideStructraPageFooter, provideStructraShellScrollRestoration, qtdCriteriosPresetParaSkeleton, readCadastroDuplicateSourceId, readCadastroPageActiveTabFromNavigationState, readCadastroPageActiveTabFromUrl, readFormContainerCollapsedFromStorage, readStructraAdminRouteRedirectTarget, readStructraCadastroInlineReturn, referenciaAbreEmDialog, referenciaOpenModeRaw, referenciaUsesLegacyRegistryMapper, registerCadastroReferenceEntries, registerCadastroReferenceListSources, registerCadastroReferenciaDialogBridges, registerStructraBuiltinPageComponents, replaceProdutoCadastroFormControls, reportColumnWidthStyle, reportTableHasFixedWidths, resetStructraCadastroReferenciaDialogRootForTests, resolveCadastroCollectionMinItems, resolveCadastroListaUrlParaNavegacao, resolveCadastroPageActiveTabKey, resolveCadastroReferenciaMapOptions, resolveConsultaEditActionLabelFromGridConfig, resolveConsultaListaQuerySliceFromGridConfig, resolveConsultaNavKeysFromPageLayout, resolveConsultaNovoRouterLinkFromLayout, resolveConsultaRouteEditBaseFromLayout, resolveConsultaToastTitleLista, resolveControlAtPath, resolveFormContainerCollapsed, resolveReferenciaOpcaoLabel, resolveStructraAdminMenuUrl, resolveStructraPageCacheCadastroScope, resolveStructraPageInputExpression, resolveStructraPageInputs, resolveStructraShellScrollContainer, resolverAcoesReferenciaPorRota, resolverValorOpcaoPorRotuloNormalizado, resumoValorMultiselectFiltro, rotaListaReferencia, rotuloEnmStatus, rotuloNomeDocumentoLista, rotuloOperadorConsulta, rotuloPessoaLista, runStructraSimulatedLoadingDelay, sanitizeDecimalBrInput, sanitizeIntegerDigits, sanitizeRecordForCadastroDuplicate, savePresetsJson, scheduleRemoteCollectionHydrationAfterSectionExpand, secaoMetadataEhContainerPlain, secaoTemConteudoVisivel, secaoTemCorpoParaRender, sectionHasVisibleInvalid, semanticCaretAt, semanticIntegerDigitCountLeft, serializeCollectionFormArray, shouldDeferInitialRemoteCollectionLoad, shouldSkipCadastroPageActiveTabCacheWrite, shouldSkipStructraAdminMenuNavigation, stripStructraCadastroInlineResultFromHistory, stripToDigits, structraActionButtonVariant, structraCadastroInlineResultTemIdSalvo, structraCadastroInlineResultTemReferenciaExcluida, structraElementScrolls, structraHasValue, structraIsFilledString, structraIsFormGroup, structraIsValidPort, structraParseNumberOrNull, structraReadFormValue, structraReadNestedValue, structraTrimString, subscribeMarkForCheckOnInvalidUiRefresh, subtreeHasVisibleInvalid, syncStructraCadastroInlineReturnSessionCache, tabWarningFromLinkedSummaryItems, tipoCampoMetadataParaUi, tipoValorApi, toCadastroReferenceListPageResult, toConsoleLogLineView, toConsoleLogLineViews, toUiSelectOptionsFromMetadata, uiSelectOpcaoIdNomeDocumento, uiSelectOpcoesDePessoas, validationLikeFromCampoMetadata, validatorsFromCampo, writeFormContainerCollapsedToStorage };
|
|
44127
|
+
export { ADAPTIVE_DATA_VIEW_MOBILE_QUERY, APP_SIDEBAR_LABEL_REVEAL_LAG_MS, APP_SIDEBAR_LAYOUT_DURATION_MS, APP_SIDEBAR_NAV_REVEAL_TOTAL_MS, APP_THEME_BASE_CLASS, APP_THEME_IDS, ActionMenuComponent, AdaptiveDataViewComponent, AdminLoginPageComponent, AdminLoginShellComponent, StructraSidebarUserPanelComponent as AdminSidebarUserPanelComponent, AlertComponent, AnchoredOverlayComponent, AppBreadcrumbComponent, AppDialogComponent, AppLibLightBlockScrollStrategy, AppShellComponent, AppShellSidebarTemplateDirective, AppShellSidebarToggleComponent, AppSidebarBottomActionsSlotDirective, AppSidebarBottomActionsTemplateDirective, AppSidebarBrandDirective, AppSidebarComponent, AppSidebarFooterSlotDirective, AppSidebarFooterTemplateDirective, AppSidebarHeaderSlotDirective, AppSidebarHeaderTemplateDirective, AppSidebarToolbarDirective, AppSidebarUserInfoSlotDirective, AppSidebarUserInfoTemplateDirective, AppTheme, AppThemeService, AppTopbarComponent, AppUserMenuComponent, BR_ESTADOS_NOME_SIGLA, ButtonType as BaseButtonType, ButtonVariant as BaseButtonVariant, BaseFieldComponent, BaseFieldDirective, BooleanFieldDirective, ButtonComponent, ButtonRadius, ButtonSize, ButtonType, ButtonVariant, CADASTRO_COLLAPSIBLE_REMOTE_LOAD_DELAY_MS, CADASTRO_DUPLICATE_FLAG_STATE, CADASTRO_DUPLICATE_SOURCE_ID_STATE, CADASTRO_FOCO_COLUNA_APOS_RESUMO_MS, CADASTRO_FORM_COLLECTION_REMOVE_ITEM_CONFIRM, CADASTRO_INVALIDATE_ROUTE_SNAPSHOT, CADASTRO_PAGE_SUBTITULO_PADRAO, CADASTRO_PAGE_TITULO_NOVO_PADRAO, CADASTRO_PESSOA_INLINE_DESTINO_URL_FRAGMENTS, CADASTRO_REFERENCIA_DIALOG_CONTEXT, CADASTRO_REFERENCIA_DIALOG_PAGE_CONFIG, CADASTRO_REFERENCIA_ROUTE_ACCESS, CADASTRO_REFERENCIA_ROUTE_ACCESS_PERMISSIVE, CADASTRO_RESUMO_FIELD_NAVIGATE_DEFER_MS, CADASTRO_TOAST_TITLE_PADRAO, CADASTRO_VALIDATION_SUMMARY_PINNED, CADASTRO_VALIDATION_SUMMARY_STATIC, CATEGORIAS_NAV_ID_EXCLUIDO, CATEGORIAS_NAV_LINHA_GRAVADA, CATEGORIAS_NAV_VOLTAR_SEM_RECARREGAR, CLIENTES_NAV_ID_EXCLUIDO, CLIENTES_NAV_LINHA_GRAVADA, CLIENTES_NAV_VOLTAR_SEM_RECARREGAR, CONSULTA_DATETIME_KEYS_ISO_PARA_FMT, CONSULTA_DOCUMENTO_GRID_KEYS_ISO_PARA_FMT, CONSULTA_FILTROS_SESSAO_USER, CONSULTA_GRID_OPTS_DATAS_PADRAO, CONSULTA_LISTA_CACHE_MAX_PAGINAS_DEFAULT, CONSULTA_LISTA_CACHE_NS_SEP, CONSULTA_LISTA_CACHE_TTL_MS_DEFAULT, CONSULTA_MOBILE_LAYOUT_MEDIA_QUERY, CONSULTA_MULTISELECT_LABEL_STUB, CONSULTA_OPTIONS_LISTAR_RESOLVER, CONSULTA_PEDIDOS_GRID_OPTS, CONSULTA_PHONE_GRID_KEYS_ISO_PARA_FMT, CONSULTA_PRESET_SELECT_EMPTY_OPTIONS_MESSAGE_DESKTOP, CONSULTA_PRESET_SELECT_EMPTY_OPTIONS_MESSAGE_MOBILE, CONSULTA_PRODUTOS_GRID_OPTS, CONSULTA_ROUTE_REUSE, CONSULTA_SERVIDOR_LISTA_QUERY_DEFAULTS, CONSULTA_TOPBAR_SLOT, CadastroBasePageComponent, CadastroCollectionGridColumnFormat, CadastroCollectionReferenciaHostService, CadastroCollectionRuntime, CadastroEnumOptionsRegistry, CadastroFieldRendererComponent, CadastroFieldRuntime, CadastroFieldsBaseComponent, CadastroFormDraftCacheService, CadastroFormLoadingSkeletonComponent, CadastroMetadataPageBase, CadastroMetadataPageComponent, CadastroMetadataPageServiceBase, CadastroMetadataPageShellLayoutComponent, CadastroMetadataPageStateBase, CadastroMetadataShellPageComponent, CadastroPadraoPageBase, CadastroReferenceRegistry, CadastroReferenciaDialogBridgeRegistry, CadastroReferenciaDialogHostComponent, CadastroReferenciaDialogService, CadastroReferenciaOpenMode, CadastroRuntime, CadastroRuntimeRegistry, CadastroSectionPanelLayout, CardListComponent, CepFieldComponent, CheckboxFieldComponent, ColorPickerFieldComponent, ComponentType, ConfirmDialogComponent, ConfirmDialogService, ConsoleLogComponent, ConsultaBasePageComponent, ConsultaCadastroFiltroDialogComponent, ConsultaCardCampoPapel, ConsultaCardFieldFormat, ConsultaCatalogBundleHelper, ConsultaFiltroPresetToolbarComponent, ConsultaFiltrosSessaoService, ConsultaGridColumnFormat, ConsultaGridOrderDirection, ConsultaListaMemoriaCacheService, ConsultaPadraoPageBase, ConsultaPageCache, ConsultaPageLoadingSkeletonComponent, ContainerLayoutSize, ContextMenuComponent, CpfCnpjFieldComponent, DEFAULT_STRUCTRA_SHELL_SCROLL_RESTORATION_OPTIONS, DROPDOWN_SEARCH_LOCAL_PAGE_SIZE, DashboardSectionComponent, DataCardComponent, DataGridComponent, DataListComponent, DataToolbarComponent, DateFieldComponent, DecimalFieldComponent, DetailsFieldComponent, DetailsViewComponent, DialogFooterDirective, DividerComponent, DrawerComponent, DrawerSide, DrawerSize, DropdownBaseComponent, DropdownMenuComponent, DropdownMultiOptionFieldBase, DropdownOptionFieldBase, DropdownSearchFieldComponent, ENM_STATUS_OPCOES_SELECT, EmptyStateComponent, EnmStatus, FIELD_MOBILE_LAYOUT_QUERY, FILE_PREVIEW_UNAVAILABLE_MESSAGE, FORM_CONTAINER_STATE_STORAGE_PREFIX, FORNECEDORES_NAV_ID_EXCLUIDO, FORNECEDORES_NAV_LINHA_GRAVADA, FORNECEDORES_NAV_VOLTAR_SEM_RECARREGAR, FieldCadastroRedirectButtonComponent, FileUploadFieldComponent, FileUploadType, FormActionsAlign, FormActionsComponent, FormColComponent, FormCollectionComponent, FormCollectionLayout, FormGroupComponent, FormGroupVariant, FormLayoutGap, FormRowAlign, FormRowComponent, FormRowJustify, FormSectionAlign, FormSectionComponent, FormSectionRadius, FormSectionVariant, FormTabComponent, FormTabsComponent, GridLayoutConsultaService, ImagePreviewPanelComponent, InputMaskFieldComponent, IntegerFieldComponent, LAYOUT_STACK_SIDE_BY_SIDE, LAYOUT_STACK_STACKED, LayoutStackAlign, LayoutStackComponent, LayoutStackDirection, LayoutStackItemAlign, LibDialogSize, ListItemComponent, LoadingDialogComponent, LoadingDialogService, MaskedTextFieldBase, MenuDividerComponent, MenuDropdownPlacement, MenuGroupComponent, MenuListComponent, MultiselectFieldComponent, NO_OP_CONSULTA_ROUTE_REUSE, NO_OP_CONSULTA_TOPBAR_SLOT, NgControlFieldDirective, OPS_BOOL, OPS_DATA, OPS_TEXTO, OPS_TEXTO_MULTISELECT, ORIGEM_CADASTRO_INLINE_PESSOA, OnboardingChecklistComponent, OverlayPlacement, PDF_IFRAME_VIEWER_HASH, PEDIDOS_NAV_ID_EXCLUIDO, PEDIDOS_NAV_LINHA_GRAVADA, PEDIDOS_NAV_VOLTAR_SEM_RECARREGAR, PERMISSION_GROUP_OUTROS_KEY, PERMISSION_GROUP_OUTROS_LABEL, PERMISSION_GROUP_OUTROS_ORDER, PESSOAS_NAV_LINHA_GRAVADA, PESSOAS_NAV_VOLTAR_SEM_RECARREGAR, PHONE_BR_LANDLINE_MASK, PHONE_BR_MOBILE_MASK, PRODUTOS_NAV_ID_EXCLUIDO, PRODUTOS_NAV_LINHA_GRAVADA, PRODUTOS_NAV_VOLTAR_SEM_RECARREGAR, StructraPageFooterComponent as PageFooterComponent, PasswordFieldComponent, PermissionGroupTabComponent, PermissionGroupTabsComponent, PhoneFieldComponent, PopoverBodyTemplateDirective, PopoverComponent, PopoverFooterTemplateDirective, PopoverTriggerDirective, ReferenceOptionPreset, STRUCTRA_ADMIN_ROUTE_REDIRECT_CACHE_PREFIX, STRUCTRA_ADMIN_ROUTE_REDIRECT_LOGIN_ID_CACHE_KEY, STRUCTRA_CADASTRO_INLINE_RESULT_KEY, STRUCTRA_CADASTRO_INLINE_RETURN_KEY, STRUCTRA_CONSULTA_FORCE_REFRESH_KEY, STRUCTRA_DEDICATED_BACK_TO_TOP_SELECTOR, STRUCTRA_GRID_LAYOUT_API_BASE_RESOLVER, STRUCTRA_GRID_LAYOUT_AUTH_HEADERS_RESOLVER, STRUCTRA_GRID_LAYOUT_TENANT_RESOLVER, STRUCTRA_INLINE_FORM_DRAFT_PENDING_PREFIX, STRUCTRA_MIDIA_PUBLIC_BASE_RESOLVER, STRUCTRA_MIDIA_UPLOAD_TRANSPORT, STRUCTRA_PAGE_CACHE_SCOPE_SEP, STRUCTRA_PAGE_FOOTER_PARTS, STRUCTRA_PAGE_STATE_ACTIVE_TAB_PREFIX, STRUCTRA_REPORT_DEFAULT_PAGE_SIZE, STRUCTRA_REPORT_TRANSPORT, STRUCTRA_SHELL_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, StructraBackToTopButtonComponent, StructraPageCacheService, StructraPageComponentOutletComponent, StructraPageComponentRegistry, StructraPageFooterComponent, StructraPageStateCacheService, StructraProgressOverlayComponent, StructraReportEmptyStateComponent, StructraReportFilterPanelComponent, StructraReportLoadingSkeletonComponent, StructraReportPageBaseComponent, StructraReportPageComponent, StructraReportPaginatorComponent, StructraReportTableComponent, StructraReportTreeCacheService, StructraReportTreeComponent, StructraReportTreeSkeletonComponent, StructraReportViewerComponent, ScriptEditorFieldComponent as StructraScriptEditorComponent, StructraShellScrollRestorationService, StructraShellTopbarSlotService, AppSidebarBottomActionsTemplateDirective as StructraSidebarBottomActionsDirective, AppSidebarFooterTemplateDirective as StructraSidebarFooterDirective, AppSidebarHeaderTemplateDirective as StructraSidebarHeaderDirective, AppSidebarUserInfoTemplateDirective as StructraSidebarUserInfoDirective, StructraSidebarUserPanelComponent, SwitchFieldComponent, THEME_PRIMARY_COLOR_LABEL_PT_BR, TOAST_REGISTRO_EXCLUIDO_SUCESSO, TableEmptyStateComponent, TableToolbarComponent, TextFieldComponent, TextareaFieldComponent, ThemeDirective, ToastHostComponent, ToastService, TooltipComponent, TooltipPanelTemplateDirective, TreeViewComponent, USUARIOS_CONSULTA_GRID_OPTS, USUARIOS_NAV_ID_EXCLUIDO, USUARIOS_NAV_LINHA_GRAVADA, USUARIOS_NAV_VOLTAR_SEM_RECARREGAR, VENDEDORES_NAV_ID_EXCLUIDO, VENDEDORES_NAV_LINHA_GRAVADA, VENDEDORES_NAV_VOLTAR_SEM_RECARREGAR, ValidationSummaryComponent, agruparCamposMetadataPorSecao, agruparPermissionTabs, anchoredOverlayPositions, aplicarNormalizacaoMultiselectIdsNoPartial, aplicarProdutoDtoNoFormulario, appendCadastroPageActiveTabQuery, appendPdfIframeViewerParams, applyCadastroCollectionArrayValidators, applyCadastroModoSenhaNovos, applyCollectionValidationSummaryNavigation, applyCollectionValueToFormArray, applyEntityToCadastroFormByMetadata, applyOptionalThemeHostClasses, applyPickedCalendarDate, buildCadastroFiltroDialogItensGridRows, buildCadastroMetadataShellRuntime, buildCadastroPageActiveTabPageKey, buildCadastroPageActiveTabPageKeyFromLayout, buildCadastroPageRuntime, buildCadastroRedirectReturnUrl, buildCadastroReferenciaDialogContext, buildCatalogoStubConsultaRuntime, buildConsultaConfirmDuplicarLinhaFromLayout, buildConsultaConfirmRemoverLinhaFromLayout, buildConsultaDefaultIsItemGuard, buildConsultaListaCacheKey, buildConsultaPageMetadataUnified, buildConsultaPageRuntime, buildDecimalBrDisplay, buildDecimalBrParseString, buildDefaultConsultaMapCardFromColunasGrid, buildEmptyStateOverlayHtml, buildFormContainerStateStorageKey, buildFormGroupFromCadastroCampos, buildHistoryStateAfterReturningFromNestedInlineChild, buildInlineReturnStateForChildCadastro, buildNovoFormDefaultsFromCampos, buildRouteReuseKeyFromAppPathname, buildRouteReuseKeyFromNovoRouterLink, buildStructraAdminRouteRedirectCacheKey, buildStructraAdminRouteRedirectChildUrl, buildStructraPageCacheCadastroInitKey, buildStructraPageCacheRouteScope, buildStructraPageFooterParts, buildStructraSidebarTemplateContext, buildValidationMetaFromCadastroCampos, cadastroBuildImageUploadMetadata, cadastroCampoBlocoEditorOcupaLinhaInteira, cadastroCampoBooleanOcupaLinhaInteira, cadastroCampoMetadataDtoFromPartial, cadastroCampoMetadataEhBoolean, cadastroCampoMetadataLarguraCompacta, cadastroCampoMetadataLarguraFixaCss, cadastroCampoReferenciaMetadataDtoFromPartial, cadastroCampoRuleMaxLength, cadastroCampoScriptEditorLanguage, cadastroCampoScriptEditorMinHeight, cadastroCampoValidacaoDtoFromPartial, cadastroCampoWrapperWidthCss, cadastroCollectionEditorGridColumns, cadastroCollectionMaxItemsValidator, cadastroCollectionMinItemsValidator, cadastroConfirmExcluirPartialFromLayout, cadastroContainerLayoutSizeDoRecord, cadastroContainerPathJoin, cadastroCrudMessagesDoFormLayout, cadastroDeclarativeSnapshotDtoFromPartial, cadastroEnsureSingleBooleanInCollection, cadastroFieldsPerRowDoRecord, cadastroFlattenContainerRaw, cadastroFormDraftEnabledDoLayout, cadastroFormGridColumns, cadastroFormLayoutComoRecord, cadastroFormLayoutDoBundle, cadastroFormLayoutDoRuntime, cadastroFormLayoutPreserveActiveTab, cadastroFormPageLayoutFromPartial, cadastroGcd, cadastroGetCollectionItemControl, cadastroGridColumnSpanForFieldIndex, cadastroGridDenominadorTracks, cadastroGridTemplateColumnsLinhaUnicaSeAplicavel, cadastroInferExtensaoArquivo, cadastroInferImageContentType, cadastroLcm, cadastroMetadataDtoParaValidacaoLike, cadastroNavKeysStructra, cadastroNomeArquivoDaUploadUrl, cadastroNormalizarUploadUrlPorPrefixo, cadastroPageActionDtoFromPartial, cadastroPageActionsPorRegiao, cadastroPageActiveTabToRestore, cadastroPageComponentDtoFromPartial, cadastroPageComponentsPorRegiao, cadastroPageIdentityDoFormLayout, cadastroPageOverlayDtoFromPartial, cadastroPageShellAtivo, cadastroPageShellTabsKeepAliveFromLayout, cadastroPageTabDtoFromPartial, cadastroPageTabsOrdenados, cadastroPainelMaxWidthCss, cadastroRawBooleanDeep, cadastroRawNumber, cadastroRawString, cadastroReferenceEntryFromListarService, cadastroReferenciaOpenModeFromWire, cadastroReindexarCollectionOrdem, cadastroResolveId, cadastroSecaoFormGroupDense, cadastroSecaoPersisteExpandedState, cadastroSecaoRenderizaInlineDentroDoPai, cadastroSecaoSegmentosIntercalados, cadastroSecaoSegmentosParaRender, cadastroSecaoUsaFormGroup, cadastroSecaoUsaFormGroupComoBlocoVisual, cadastroSecaoUsaSuperficieDeclarativa, cadastroSingleBooleanCollectionBinding, cadastroTitulosEfectivosDoFormLayout, cadastroToastTitleEfectivoDoFormLayout, cadastroToolbarButtonDtoFromPartial, cadastroToolbarVisibilityDoFormLayout, cadastroUseBackToTopButtonFromLayout, cadastroValidationSummaryFlagsDoRecord, cadastroValidationSummaryPinnedFromFlags, cadastroWireCollectionOrdemReindexOnAdd, cadastroWireCollectionOrdemReindexOnAddRemove, cadastroWireCollectionOrdemReindexOnRemove, campoMetadataVisivelNoModo, caretIndexFromIntegerDigitCount, caretIndexFromSemantic, carregarOpcoesMultiselectViaSpec, cepMaskCompleteValidator, clearRequiredValidatorsOnReadOnlyCadastroFields, clearStructraCadastroInlineReturnSessionCacheForTests, clearStructraCadastroSessionStorageOnLogout, coerceDecimalPtBr, coerceReportBoolean, collectValidationSummaryItems, colunasGridTemFormatacaoDeclarativa, computeReferenciaHasMore, consoleLogLevelClass, consultaCampoMetadataDtoFromPartial, consultaCardCampoDtoFromPartial, consultaFiltroValorDataSomenteDia, consultaGridColunaDtoFromPartial, consultaGridColunaKeyParaCampoLinha, consultaGridConfigDtoFromPartial, consultaPassaItem, consultaPassaTodosItens, consultaUsuariosMetadataReplyFromPartial, consumeCadastroInlineFormDraftPendingRestore, consumirResultadoCadastroInlineCampoPessoaId, consumirResultadoCadastroInlineCampoReferencia, cpfCnpjMaskCompleteValidator, createCadastroDialogActivatedRoute, createCadastroMetadataPageConfig, createCadastroPadraoConfig, createCadastroRuntime, createCollectionFormArray, createCollectionItemFormGroup, createConsultaListaItemGuardFromFiltroUi, createConsultaOptionsListarResolver, createConsultaPadraoRuntime, createConsultaPresetSelectEmptyOptionsMessageSignal, createConsultaPresetStorageApi, createGrpcSaveRequestMapper, createInlineHostNavigation, createMapCardFromConsultaColunasGrid, createMapGridRowFromConsultaColunasGrid, createSaveRequestFromPartialMapper, criarDraftInlinePessoa, decimalPtBrNaoNegativoValidator, decimalPtBrToNullableNumber, defaultIsConsultaListItemMinimo, defaultParseLinhaGravadaJson, deleteConfirmPageConfigFromPartial, deriveCadastroTituloEditar, deriveConsultaListaItemGuardPropsFromFiltroUi, duplicateConfigFromLayout, duplicatePageConfigFromPartial, enrichCadastroReferenciaDialogPageConfig, ensureCadastroCollectionMinItems, ensureCadastroFormControlsFromMetadata, escapeHtml, evaluateStructraPageVisibleExpression, executarConsultaServidorComPreset, extractConsultaListaCacheNamespace, extractDecimalBrParts, fileIsLikelyImage, fileMatchesAccept, filtrarSecoesMetadataPorModo, filtrarUiSelectOptionsPainelComValorPersistente, filtrarUiSelectOptionsPorQuery, findCadastroCampoByKey, findFirstReportLeafId, findReportTreeLabel, fixedDigitsMaskCompleteValidator, flattenCadastroMetadataSecoes, fmtDataPt, fmtDocumentoCelulaConsultaGrid, formatAcceptForDisplay, formatDateTimePtBr, formatDecimalBr, formatDocumentoPessoaParaExibicao, formatFileSizeBytes, formatIntegerThousandsBr, formatMaskDigits, formatPhoneBr, formatUiFieldDateValue, getFilePreviewKind, getStructraActionsByGroup, getThemeClass, getThemeClassList, getThemePrimaryColorLabelPtBr, getThemeTokenClass, hexParaColorInput, inferCadastroItemFieldsFromPlainRows, inferCadastroListaUrlFallback, initialCadastroControlValue, injectEffectiveThemeId, isCadastroDuplicateNavigation, isCollectionField, isCollectionLikeField, isConsultaCardAutoSubtitleExcluded, isLegacyDarkThemeId, isLegacyFormContainerStateStorageKey, isLegacyNomeDocumentoReferencePreset, isReadonlyCollectionField, isReportBooleanColumn, isReportGroupNode, isReportNowrapColumn, isValidPhoneBr, libDialogPanelClasses, listaUrlFromRotaCadastro, listarItensCadastroReferencia, listarTodosPaginado, loadPresetsJson, loadStructraAdminRouteRedirectTarget, mapCadastroFormRawToPayload, mapConsultaGridColunasParaDataGrid, mapConsultaMetadataParaFiltroUi, mapErroTransporteParaMensagem as mapErroListaDefault, mapErroTransporteParaMensagem, mapEstadosToOptions, mapFiltroSalvoParaConsultaPreset, mapListarItensParaMultiselectOpcoes, mapReportTreeToTreeViewNodes, mapReportTreeToTreeViewNodesForSelection, markCadastroInlineFormDraftPendingRestore, maskDigitCount, mergeCadastroConfirmExcluir, mergeConsultaGridRowFormattingFromColunasGrid, mergeConsultaMultiselectOpcoesComSeleccionados, mergeDocumentoFmtNaLinhaConsulta, mergeMapConsultaGridColunasOptsComColumnFormat, mergeNovoIdEmListaSelecionada, mergeStructraShellScrollRestorationOptions, metadataCampoParaChaveLinhaCliente, modoPermissaoReferenciaFromWire, montarFiltrosGrpcPreset, montarFiltrosServidorPreset, montarHierarquiaSecoesMetadata, multiselectIdListRequiredValidator, multiselectMaxItemsValidator, navegarVoltarLista, navegarVoltarListaComIdRemovido, navegarVoltarListaComLinha, navigateCadastroDuplicate, navigateCommandsFromRotaAlterar, navigateCommandsFromRotaNovo, nomeSalvarParaPayloadComPessoa, normalizarArvoreSecoesMetadata, normalizarHexCor, normalizarItensParaGravarServidorCadastro, normalizarListaIdsMultiselect, normalizarOperadorConsultaParaEnvioServidor, normalizarRotaReferencia, normalizarStructraAction, normalizarStructraActionGroup, normalizarStructraActionGroups, normalizeCadastroAppPath, normalizeCadastroCampoMetadataWire, normalizeCadastroInitRouteIdParam, normalizeCadastroItemEditorDecimalControls, normalizeCadastroReferenciaDialogRotaKey, normalizeCadastroRouteForContainerState, normalizeConsoleLogLevel, normalizeFormDateValue, normalizePhoneBr, normalizeStructraAdminPath, normalizeStructraTheme, novoPathCommandsFromRota, onlyDigits, operadorConsultaComValorUnicoComparacao, operadorConsultaDatetimeUsaDatePicker, operadoresConsultaCampo, operadoresPorTipo, ordenarFiltroItens, ordenarStructraActions, parseDecimalBr, parseIntegerString, parseUiFieldDateValue, patchFormFromEntidadeRecord, permissionTabsUsamGruposVerticais, permissoesReferenciaMetadata, phoneBrDynamicMaskCompleteValidator, phoneBrMaskCompleteValidator, phoneBrMaskFromDigits, pickCadastroPageActiveTabExplicit, pickTabKeyLinkedToSummaryItems, precisaValor, precisaValorFinal, provideAppPageFooter, provideStructraCadastroReferenciaDialogRoot, provideStructraPageFooter, provideStructraShellScrollRestoration, qtdCriteriosPresetParaSkeleton, readCadastroDuplicateSourceId, readCadastroPageActiveTabFromNavigationState, readCadastroPageActiveTabFromUrl, readFormContainerCollapsedFromStorage, readStructraAdminRouteRedirectTarget, readStructraCadastroInlineReturn, referenciaAbreEmDialog, referenciaOpenModeRaw, referenciaUsesLegacyRegistryMapper, registerCadastroReferenceEntries, registerCadastroReferenceListSources, registerCadastroReferenciaDialogBridges, registerStructraBuiltinPageComponents, replaceProdutoCadastroFormControls, reportColumnWidthStyle, reportExistsInTree, reportTableHasFixedWidths, resetStructraCadastroReferenciaDialogRootForTests, resolveCadastroCollectionMinItems, resolveCadastroListaUrlParaNavegacao, resolveCadastroPageActiveTabKey, resolveCadastroReferenciaMapOptions, resolveConsultaEditActionLabelFromGridConfig, resolveConsultaListaQuerySliceFromGridConfig, resolveConsultaNavKeysFromPageLayout, resolveConsultaNovoRouterLinkFromLayout, resolveConsultaRouteEditBaseFromLayout, resolveConsultaToastTitleLista, resolveControlAtPath, resolveFormContainerCollapsed, resolveInitialReportId, resolveReferenciaOpcaoLabel, resolveStructraAdminMenuUrl, resolveStructraPageCacheCadastroScope, resolveStructraPageInputExpression, resolveStructraPageInputs, resolveStructraShellScrollContainer, resolverAcoesReferenciaPorRota, resolverValorOpcaoPorRotuloNormalizado, resumoValorMultiselectFiltro, rotaListaReferencia, rotuloEnmStatus, rotuloNomeDocumentoLista, rotuloOperadorConsulta, rotuloPessoaLista, runStructraSimulatedLoadingDelay, sanitizeDecimalBrInput, sanitizeIntegerDigits, sanitizeRecordForCadastroDuplicate, savePresetsJson, scheduleRemoteCollectionHydrationAfterSectionExpand, secaoMetadataEhContainerPlain, secaoTemConteudoVisivel, secaoTemCorpoParaRender, sectionHasVisibleInvalid, semanticCaretAt, semanticIntegerDigitCountLeft, serializeCollectionFormArray, shouldDeferInitialRemoteCollectionLoad, shouldSkipCadastroPageActiveTabCacheWrite, shouldSkipStructraAdminMenuNavigation, stripStructraCadastroInlineResultFromHistory, stripToDigits, structraActionButtonVariant, structraCadastroInlineResultTemIdSalvo, structraCadastroInlineResultTemReferenciaExcluida, structraElementScrolls, structraHasValue, structraIsFilledString, structraIsFormGroup, structraIsValidPort, structraParseNumberOrNull, structraReadFormValue, structraReadNestedValue, structraTrimString, subscribeMarkForCheckOnInvalidUiRefresh, subtreeHasVisibleInvalid, syncStructraCadastroInlineReturnSessionCache, tabWarningFromLinkedSummaryItems, tipoCampoMetadataParaUi, tipoValorApi, toCadastroReferenceListPageResult, toConsoleLogLineView, toConsoleLogLineViews, toUiSelectOptionsFromMetadata, uiSelectOpcaoIdNomeDocumento, uiSelectOpcoesDePessoas, validationLikeFromCampoMetadata, validatorsFromCampo, writeFormContainerCollapsedToStorage };
|
|
43829
44128
|
//# sourceMappingURL=structra-ui.mjs.map
|