structra-ui 0.2.68 → 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.
@@ -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, input, 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';
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
- colIndexes() {
1326
- return Array.from({ length: Math.max(1, this.columnCount) }, (_, i) => i);
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: ["columnCount", "columnCount", numberAttribute], rowCount: ["rowCount", "rowCount", numberAttribute], showPager: ["showPager", "showPager", booleanAttribute], bodyOnly: ["bodyOnly", "bodyOnly", booleanAttribute], animate: ["animate", "animate", booleanAttribute] }, ngImport: i0, template: "<div class=\"skeleton-table\" [class.skeleton-table--body-only]=\"bodyOnly\" aria-hidden=\"true\">\n @if (!bodyOnly) {\n <div class=\"skeleton-table__header\">\n @for (c of colIndexes(); track c) {\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.65rem\" radius=\"6px\" [animate]=\"animate\" />\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 colIndexes(); track c) {\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.55rem\" radius=\"5px\" [animate]=\"animate\" />\n }\n </div>\n }\n </div>\n @if (showPager && !bodyOnly) {\n <div class=\"skeleton-table__pager\">\n <app-skeleton-block width=\"40%\" height=\"0.55rem\" radius=\"6px\" [animate]=\"animate\" />\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";: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--body-only{border:none;border-radius:0;background:transparent}.skeleton-table__header{display:flex;gap:.65rem;align-items:center;padding:.65rem .75rem;background:var(--app-color-tab-inactive-bg, #f3f6f9);border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1))}.skeleton-table__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.skeleton-table__row{display:flex;gap:.65rem;align-items:center;padding:.55rem .75rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .06));background:var(--app-color-surface)}.skeleton-table__row:nth-child(2n){background:var(--app-color-surface-alt, var(--app-color-background))}.skeleton-table__cell{flex:1 1 0;min-width:0}:host ::ng-deep .skeleton-table__header>app-skeleton-block.skeleton-table__cell,:host ::ng-deep .skeleton-table__row>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;align-items:center;justify-content:flex-end;padding:.5rem .75rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));background:var(--app-color-surface-alt, var(--app-color-background))}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
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 class=\"skeleton-table\" [class.skeleton-table--body-only]=\"bodyOnly\" aria-hidden=\"true\">\n @if (!bodyOnly) {\n <div class=\"skeleton-table__header\">\n @for (c of colIndexes(); track c) {\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.65rem\" radius=\"6px\" [animate]=\"animate\" />\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 colIndexes(); track c) {\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.55rem\" radius=\"5px\" [animate]=\"animate\" />\n }\n </div>\n }\n </div>\n @if (showPager && !bodyOnly) {\n <div class=\"skeleton-table__pager\">\n <app-skeleton-block width=\"40%\" height=\"0.55rem\" radius=\"6px\" [animate]=\"animate\" />\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";: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--body-only{border:none;border-radius:0;background:transparent}.skeleton-table__header{display:flex;gap:.65rem;align-items:center;padding:.65rem .75rem;background:var(--app-color-tab-inactive-bg, #f3f6f9);border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1))}.skeleton-table__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.skeleton-table__row{display:flex;gap:.65rem;align-items:center;padding:.55rem .75rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .06));background:var(--app-color-surface)}.skeleton-table__row:nth-child(2n){background:var(--app-color-surface-alt, var(--app-color-background))}.skeleton-table__cell{flex:1 1 0;min-width:0}:host ::ng-deep .skeleton-table__header>app-skeleton-block.skeleton-table__cell,:host ::ng-deep .skeleton-table__row>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;align-items:center;justify-content:flex-end;padding:.5rem .75rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));background:var(--app-color-surface-alt, var(--app-color-background))}\n"] }]
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\" [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"] }]
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.topbarSlot.setHeaderOverrides(t && t !== '' ? t : CONSULTA_TOPBAR_TITULO_PADRAO, null);
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.carregandoListaExplicito()) {
23847
+ if (this.listaGrelhaPrecisaLoading()) {
23775
23848
  return true;
23776
23849
  }
23777
23850
  if (!this.runtime().loadConsultaBundleAsync) {
23778
23851
  return false;
23779
23852
  }
23780
- /** Com itens já visíveis (cache), não forçar skeleton só porque o metadata de colunas ainda hidrata. */
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=\"&#160;\" 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=\"&#160;\" 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=\"&#160;\" 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=\"&#160;\" 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 appThemeParaSubtitulo = deps.appTheme ?? deps.injector?.get(AppThemeService, null, { optional: true }) ?? undefined;
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
  },
@@ -43476,19 +43569,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
43476
43569
  class StructraReportTreeSkeletonComponent {
43477
43570
  constructor() {
43478
43571
  this.rows = 9;
43479
- /** Larguras relativas das linhas (simula pastas/folhas com indentação). */
43480
- this.rowWidths = ['55%', '70%', '45%', '62%', '78%', '50%', '68%', '40%', '72%', '58%'];
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
+ ];
43481
43587
  }
43482
43588
  get skeletonRows() {
43483
43589
  const count = Math.max(1, Math.min(12, this.rows));
43484
- return Array.from({ length: count }, (_, index) => index);
43590
+ return Array.from({ length: count }, (_, index) => this.rowLayouts[index % this.rowLayouts.length]);
43485
43591
  }
43486
43592
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportTreeSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43487
- 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 (index of skeletonRows; track index) {\n <li\n class=\"structra-report-tree-skeleton__row\"\n [style.--row-indent]=\"(index % 3) * 0.85 + 'rem'\">\n <app-skeleton-block\n class=\"structra-report-tree-skeleton__row-icon\"\n width=\"0.85rem\"\n height=\"0.85rem\"\n radius=\"3px\" />\n <app-skeleton-block\n class=\"structra-report-tree-skeleton__row-label\"\n [width]=\"rowWidths[index % rowWidths.length]\"\n height=\"0.75rem\"\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{padding:.55rem .75rem .35rem}.structra-report-tree-skeleton__rows{list-style:none;margin:0;padding:.25rem .5rem .75rem;display:flex;flex-direction:column;gap:.35rem}.structra-report-tree-skeleton__row{display:flex;align-items:center;gap:.45rem;padding:.35rem .35rem .35rem calc(.35rem + var(--row-indent, 0rem));min-height:1.75rem}.structra-report-tree-skeleton__row-icon{flex-shrink:0}.structra-report-tree-skeleton__row-label{min-width:0}\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 }); }
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 }); }
43488
43594
  }
43489
43595
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StructraReportTreeSkeletonComponent, decorators: [{
43490
43596
  type: Component,
43491
- 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 (index of skeletonRows; track index) {\n <li\n class=\"structra-report-tree-skeleton__row\"\n [style.--row-indent]=\"(index % 3) * 0.85 + 'rem'\">\n <app-skeleton-block\n class=\"structra-report-tree-skeleton__row-icon\"\n width=\"0.85rem\"\n height=\"0.85rem\"\n radius=\"3px\" />\n <app-skeleton-block\n class=\"structra-report-tree-skeleton__row-label\"\n [width]=\"rowWidths[index % rowWidths.length]\"\n height=\"0.75rem\"\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{padding:.55rem .75rem .35rem}.structra-report-tree-skeleton__rows{list-style:none;margin:0;padding:.25rem .5rem .75rem;display:flex;flex-direction:column;gap:.35rem}.structra-report-tree-skeleton__row{display:flex;align-items:center;gap:.45rem;padding:.35rem .35rem .35rem calc(.35rem + var(--row-indent, 0rem));min-height:1.75rem}.structra-report-tree-skeleton__row-icon{flex-shrink:0}.structra-report-tree-skeleton__row-label{min-width:0}\n"] }]
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"] }]
43492
43598
  }], propDecorators: { rows: [{
43493
43599
  type: Input
43494
43600
  }] } });
@@ -44018,5 +44124,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
44018
44124
  * Generated bundle index. Do not edit.
44019
44125
  */
44020
44126
 
44021
- 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, 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 };
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 };
44022
44128
  //# sourceMappingURL=structra-ui.mjs.map