@praxisui/crud 10.0.0-rc.37 → 10.0.0-rc.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/component-registry.json +11 -7
- package/fesm2022/praxisui-crud.mjs +990 -171
- package/package.json +7 -7
- package/types/praxisui-crud.d.ts +38 -2
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
1
3
|
import * as i0 from '@angular/core';
|
|
2
4
|
import { inject, DestroyRef, signal, HostListener, ViewChild, Inject, ViewEncapsulation, Component, EventEmitter, ChangeDetectorRef, Output, Input, ChangeDetectionStrategy, Injectable, InjectionToken, input, ElementRef, computed, linkedSignal, effect, output, Injector, booleanAttribute, Optional, ENVIRONMENT_INITIALIZER } from '@angular/core';
|
|
3
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -10,10 +12,8 @@ import { MatSnackBar } from '@angular/material/snack-bar';
|
|
|
10
12
|
import { Subscription, firstValueFrom, BehaviorSubject, forkJoin, of } from 'rxjs';
|
|
11
13
|
import { take, filter, catchError } from 'rxjs/operators';
|
|
12
14
|
import * as i2$2 from '@praxisui/core';
|
|
13
|
-
import { PraxisBulkClientService, PraxisI18nService, generateBulkIdempotencyKey, isBulkExecutionTerminal, API_URL, SafeExpressionEvaluator, buildApiUrl, isUnresolvedTemplateToken, applyDeclarativeValuePipe, ASYNC_CONFIG_STORAGE, GlobalConfigService, CrudOperationResolutionService, LoggerService, SurfaceNavigationError, fillUndefined, GenericCrudService, ResourceDiscoveryService, SETTINGS_PANEL_DATA, FieldControlType, buildBaseColumnFromDef, mapFieldDefinitionsToMetadata, PraxisIconDirective, ResourceQuickConnectComponent, providePraxisI18nConfig, SchemaNormalizerService, PraxisWidgetEventBus, EnterpriseRuntimeContextService, GLOBAL_SURFACE_SERVICE, SurfaceOutletRegistryService, ComponentKeyService, ResourceActionOpenAdapterService, ResourceSurfaceOpenAdapterService, composeHeadersWithVersion, normalizeSurfaceOperationContext, createDefaultTableConfig, SURFACE_DRAWER_REF, translateUnavailableWorkflowMessage, isSurfaceNavigationError, translateSurfaceNavigationRejected, normalizeUnknownError, EmptyStateCardComponent, RESOURCE_DISCOVERY_I18N_CONFIG, PraxisCustomizationModeService, SURFACE_DRAWER_CONTENT_DATA, PraxisIconButtonComponent, PraxisResourceIdentityComponent, ComponentMetadataRegistry } from '@praxisui/core';
|
|
15
|
+
import { PraxisBulkClientService, PraxisI18nService, generateBulkIdempotencyKey, isBulkExecutionTerminal, API_URL, SafeExpressionEvaluator, buildApiUrl, isUnresolvedTemplateToken, applyDeclarativeValuePipe, ASYNC_CONFIG_STORAGE, GlobalConfigService, CrudOperationResolutionService, LoggerService, SurfaceNavigationError, fillUndefined, GenericCrudService, ResourceDiscoveryService, SETTINGS_PANEL_DATA, mapCatalogFieldsToMetadata, FieldControlType, humanizeCatalogFieldName, inferDomainSemanticTone, buildBaseColumnFromDef, mapFieldDefinitionsToMetadata, PraxisIconDirective, ResourceQuickConnectComponent, providePraxisI18nConfig, SchemaNormalizerService, PraxisWidgetEventBus, EnterpriseRuntimeContextService, GLOBAL_SURFACE_SERVICE, SurfaceOutletRegistryService, ComponentKeyService, ResourceActionOpenAdapterService, ResourceSurfaceOpenAdapterService, composeHeadersWithVersion, normalizeSurfaceOperationContext, createDefaultTableConfig, SURFACE_DRAWER_REF, translateUnavailableWorkflowMessage, isSurfaceNavigationError, translateSurfaceNavigationRejected, normalizeUnknownError, EmptyStateCardComponent, RESOURCE_DISCOVERY_I18N_CONFIG, PraxisCustomizationModeService, SURFACE_DRAWER_CONTENT_DATA, PraxisIconButtonComponent, PraxisResourceIdentityComponent, ComponentMetadataRegistry } from '@praxisui/core';
|
|
14
16
|
export { createDynamicRecord, extractRecordId, isDynamicDataRecord, resolveDataField } from '@praxisui/core';
|
|
15
|
-
import * as i1 from '@angular/common';
|
|
16
|
-
import { CommonModule } from '@angular/common';
|
|
17
17
|
import * as i3 from '@angular/material/button';
|
|
18
18
|
import { MatButtonModule } from '@angular/material/button';
|
|
19
19
|
import * as i4 from '@angular/material/icon';
|
|
@@ -23,7 +23,7 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
|
23
23
|
import * as i2 from '@angular/forms';
|
|
24
24
|
import { FormsModule } from '@angular/forms';
|
|
25
25
|
import { PraxisDynamicForm } from '@praxisui/dynamic-form';
|
|
26
|
-
import * as
|
|
26
|
+
import * as i3$1 from '@angular/material/select';
|
|
27
27
|
import { MatSelectModule } from '@angular/material/select';
|
|
28
28
|
import * as i7 from '@angular/material/input';
|
|
29
29
|
import { MatInputModule } from '@angular/material/input';
|
|
@@ -37,7 +37,7 @@ import * as i2$1 from '@angular/material/autocomplete';
|
|
|
37
37
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
38
38
|
import * as i5 from '@angular/material/card';
|
|
39
39
|
import { MatCardModule } from '@angular/material/card';
|
|
40
|
-
import * as i6
|
|
40
|
+
import * as i6 from '@angular/material/expansion';
|
|
41
41
|
import { MatExpansionModule } from '@angular/material/expansion';
|
|
42
42
|
import * as i9 from '@angular/material/slide-toggle';
|
|
43
43
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
@@ -57,9 +57,9 @@ const PRAXIS_CRUD_RUNTIME_I18N_CONFIG = {
|
|
|
57
57
|
'crud.bulk.cancelRequest': 'Solicitar cancelamento',
|
|
58
58
|
'crud.bulk.requestingCancel': 'Solicitando cancelamento...',
|
|
59
59
|
'crud.bulk.cancelRequested': 'Cancelamento solicitado. Aguardando confirmação do servidor.',
|
|
60
|
-
'crud.emptyState.title': 'Conecte o
|
|
61
|
-
'crud.emptyState.description': '
|
|
62
|
-
'crud.emptyState.primaryAction': 'Configurar
|
|
60
|
+
'crud.emptyState.title': 'Conecte o Workspace a um recurso',
|
|
61
|
+
'crud.emptyState.description': 'Selecione um recurso do catálogo da API para projetar automaticamente colunas, filtros, indicadores, dossiês e capacidades governadas.',
|
|
62
|
+
'crud.emptyState.primaryAction': 'Configurar Workspace',
|
|
63
63
|
'crud.table.emptyState.initial.title': 'Sem registros em {label}',
|
|
64
64
|
'crud.table.emptyState.initial.titleFallback': 'Nenhum registro disponível.',
|
|
65
65
|
'crud.table.emptyState.initial.descriptionWithToolbarAction': 'Use "{action}" na barra da tabela para adicionar o primeiro registro quando houver informações para cadastrar.',
|
|
@@ -88,9 +88,9 @@ const PRAXIS_CRUD_RUNTIME_I18N_CONFIG = {
|
|
|
88
88
|
'crud.bulk.cancelRequest': 'Request cancellation',
|
|
89
89
|
'crud.bulk.requestingCancel': 'Requesting cancellation...',
|
|
90
90
|
'crud.bulk.cancelRequested': 'Cancellation requested. Waiting for server confirmation.',
|
|
91
|
-
'crud.emptyState.title': 'Connect
|
|
92
|
-
'crud.emptyState.description': '
|
|
93
|
-
'crud.emptyState.primaryAction': 'Configure
|
|
91
|
+
'crud.emptyState.title': 'Connect Workspace to a resource',
|
|
92
|
+
'crud.emptyState.description': 'Select an API catalog resource to automatically project columns, filters, indicators, dossiers, and governed capabilities.',
|
|
93
|
+
'crud.emptyState.primaryAction': 'Configure Workspace',
|
|
94
94
|
'crud.table.emptyState.initial.title': 'No records in {label}',
|
|
95
95
|
'crud.table.emptyState.initial.titleFallback': 'No records available.',
|
|
96
96
|
'crud.table.emptyState.initial.descriptionWithToolbarAction': 'Use "{action}" in the table toolbar to add the first record when there is information to register.',
|
|
@@ -876,7 +876,7 @@ class PraxisBulkOperationDialogComponent {
|
|
|
876
876
|
(click)="loadProposalResults(proposalNextCursor()!)"
|
|
877
877
|
[disabled]="loadingProposalResults()"
|
|
878
878
|
>
|
|
879
|
-
{{ loadingProposalResults() ? 'Carregando...' : 'Carregar mais resultados' }}
|
|
879
|
+
<span [class.praxis-bulk-dialog__loading-label]="loadingProposalResults()">{{ loadingProposalResults() ? 'Carregando...' : 'Carregar mais resultados' }}</span>
|
|
880
880
|
</button>
|
|
881
881
|
}
|
|
882
882
|
</div>
|
|
@@ -975,7 +975,7 @@ class PraxisBulkOperationDialogComponent {
|
|
|
975
975
|
(click)="loadExecutionResults(executionNextCursor()!)"
|
|
976
976
|
[disabled]="loadingExecutionResults()"
|
|
977
977
|
>
|
|
978
|
-
{{ loadingExecutionResults() ? 'Carregando...' : 'Carregar mais resultados' }}
|
|
978
|
+
<span [class.praxis-bulk-dialog__loading-label]="loadingExecutionResults()">{{ loadingExecutionResults() ? 'Carregando...' : 'Carregar mais resultados' }}</span>
|
|
979
979
|
</button>
|
|
980
980
|
}
|
|
981
981
|
</div>
|
|
@@ -1026,7 +1026,7 @@ class PraxisBulkOperationDialogComponent {
|
|
|
1026
1026
|
}
|
|
1027
1027
|
</div>
|
|
1028
1028
|
</div>
|
|
1029
|
-
`, isInline: true, styles: [".cdk-global-overlay-wrapper:has(.praxis-bulk-dialog-panel){display:flex!important;justify-content:center!important;align-items:center!important;padding:24px!important;box-sizing:border-box!important}.cdk-overlay-pane.praxis-bulk-dialog-panel{--mat-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mdc-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mat-dialog-container-shape: 16px;position:relative!important;inset:auto!important;margin:auto!important;display:flex!important;justify-content:center!important;align-items:center!important}.cdk-overlay-pane.praxis-bulk-dialog-panel .mat-mdc-dialog-surface{border-radius:16px;border:1px solid var(--border, var(--praxis-border-subtle, rgba(148, 163, 184, .2)));box-shadow:0 24px 64px #0000008c;background-color:var(--card, var(--praxis-color-surface, #1e293b))!important;color:var(--foreground, #f8fafc)!important;overflow:hidden;width:100%}.praxis-bulk-dialog{display:flex;flex-direction:column;max-height:85vh;width:100%;min-width:600px;max-width:680px;margin:0 auto;color:var(--foreground, var(--praxis-text-primary, #f8fafc));background:transparent;box-sizing:border-box}.praxis-bulk-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 18px;border-bottom:1px solid var(--border, rgba(148, 163, 184, .15))}.praxis-bulk-dialog__title-group{display:flex;align-items:flex-start;gap:14px}.praxis-bulk-dialog__header-icon{color:var(--primary, var(--praxis-primary, #0284c7));font-size:28px;width:28px;height:28px;margin-top:2px}.praxis-bulk-dialog__title{font-size:1.25rem;font-weight:600;margin:0;line-height:1.3;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__subtitle{font-size:.875rem;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin:4px 0 0;line-height:1.45}.praxis-bulk-dialog__content{padding:22px 26px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.praxis-bulk-dialog__targets-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;font-size:.875rem;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__targets-badge mat-icon{font-size:18px;width:18px;height:18px;color:var(--primary, var(--praxis-primary, #0284c7))}.praxis-bulk-dialog__section{display:flex;flex-direction:column;gap:20px}.praxis-bulk-dialog__section-title{font-size:1rem;font-weight:600;margin:0;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__totals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 12px}.praxis-bulk-dialog__total-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:104px;padding:20px 22px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:14px;transition:background .2s ease,border-color .2s ease;box-sizing:border-box;gap:8px}.praxis-bulk-dialog__total-card .total-label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground, rgba(148, 163, 184, .85));font-weight:600;margin-bottom:2px}.praxis-bulk-dialog__total-card .total-value{font-size:2rem;font-weight:700;color:var(--foreground, #f8fafc);line-height:1;margin:0;letter-spacing:-.02em}.total-card--executable{border-color:color-mix(in srgb,var(--praxis-success, #10b981) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b))!important}.total-card--executable .total-value{color:var(--praxis-success, #10b981)}.total-card--blocked{border-color:color-mix(in srgb,var(--praxis-error, #ef4444) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b))!important}.total-card--blocked .total-value{color:var(--praxis-error, #ef4444)}.praxis-bulk-dialog__alert{display:flex;align-items:flex-start;gap:14px;padding:18px 22px;border-radius:12px;font-size:.875rem;line-height:1.5}.praxis-bulk-dialog__alert mat-icon{font-size:22px;width:22px;height:22px;flex-shrink:0;margin-top:1px}.praxis-bulk-dialog__alert .alert-content{display:flex;flex-direction:column;gap:4px}.praxis-bulk-dialog__alert .alert-content strong{font-size:.9375rem;font-weight:600;color:inherit}.praxis-bulk-dialog__alert .alert-content p{margin:0;font-size:.8125rem;opacity:.9}.praxis-bulk-dialog__alert--error{background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-error, #ef4444) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--error mat-icon{color:var(--praxis-error, #ef4444)}.praxis-bulk-dialog__alert--warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--warning mat-icon{color:var(--praxis-warning, #d97706)}.praxis-bulk-dialog__alert--success{background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-success, #10b981) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--success mat-icon{color:var(--praxis-success, #10b981)}.praxis-bulk-dialog__notice-box{display:flex;align-items:center;gap:12px;padding:16px 20px;background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-info, #0284c7) 40%,transparent);border-radius:10px;color:var(--foreground, #f8fafc);font-size:.875rem}.praxis-bulk-dialog__notice-box mat-icon{color:var(--praxis-info, #0284c7)}.praxis-bulk-dialog__diagnostics{margin-top:12px;border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;padding:14px 18px;background:color-mix(in srgb,var(--foreground, #f8fafc) 4%,var(--card, #1e293b))}.diagnostics-title{font-size:.875rem;font-weight:600;margin:0 0 8px;color:var(--praxis-text-primary, var(--foreground, inherit))}.diagnostics-list{display:flex;flex-direction:column;gap:6px;max-height:160px;overflow-y:auto}.diagnostic-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.diagnostic-item mat-icon{font-size:16px;width:16px;height:16px;color:var(--praxis-primary, var(--primary, var(--md-sys-color-primary, #0284c7)))}.diagnostic-item--error{color:var(--praxis-error, #dc2626)}.diagnostic-item--error mat-icon{color:var(--praxis-error, #dc2626)}.diagnostic-target{font-weight:600;margin-right:4px;color:var(--praxis-text-primary, var(--foreground, inherit))}.praxis-bulk-dialog__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:16px;color:var(--praxis-text-muted, var(--muted-foreground, inherit));font-size:.9375rem}.praxis-bulk-dialog__actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px 20px;border-top:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: PraxisDynamicForm, selector: "praxis-dynamic-form", inputs: ["resourcePath", "resourceId", "initialValue", "emptyState", "editorialContext", "mode", "config", "actions", "schemaSource", "schemaUrl", "readUrl", "submitUrl", "submitMethod", "submitIdempotencyKey", "submitCorrelationId", "submitResourceVersion", "submitResourceVersionTargetResourceKey", "submitResourceVersionTargetIdField", "responseSchemaUrl", "apiEndpointKey", "apiUrlEntry", "enableCustomization", "showAiAssistant", "formId", "componentInstanceId", "configPersistenceStrategy", "layout", "layoutMode", "formLayout", "generatedLayoutPreset", "layoutPolicy", "backConfig", "hooks", "removeEmptyContainersOnSave", "reactiveValidation", "reactiveValidationDebounceMs", "notifyIfOutdated", "snoozeMs", "autoOpenSettingsOnOutdated", "readonlyModeGlobal", "disabledModeGlobal", "presentationModeGlobal", "presentation", "presentationPreset", "sectionDefaultAppearance", "sectionDivider", "visibleGlobal", "fieldIconPolicy", "domainRules", "customEndpoints"], outputs: ["formSubmit", "formCancel", "formReset", "configChange", "configPatchChange", "formReady", "valueChange", "payloadPreviewChange", "syncCompleted", "initializationError", "loadingStateChange", "enableCustomizationChange", "customAction", "actionConfirmation", "schemaStatusChange", "fieldRenderError", "ruleDiagnosticsChange", "reactiveDeterminationExecuted", "reactiveDeterminationPendingChange", "tabChange", "tabSelected"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
1029
|
+
`, isInline: true, styles: [".cdk-global-overlay-wrapper:has(.praxis-bulk-dialog-panel){display:flex!important;justify-content:center!important;align-items:center!important;padding:24px!important;box-sizing:border-box!important}.cdk-overlay-pane.praxis-bulk-dialog-panel{--mat-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mdc-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mat-dialog-container-shape: 16px;position:relative!important;inset:auto!important;margin:auto!important;display:flex!important;justify-content:center!important;align-items:center!important}.cdk-overlay-pane.praxis-bulk-dialog-panel .mat-mdc-dialog-surface{border-radius:16px;border:1px solid var(--border, var(--praxis-border-subtle, rgba(148, 163, 184, .2)));box-shadow:0 24px 64px #0000008c;background-color:var(--card, var(--praxis-color-surface, #1e293b))!important;color:var(--foreground, #f8fafc)!important;overflow:hidden;width:100%}.praxis-bulk-dialog{display:flex;flex-direction:column;max-height:85vh;width:100%;min-width:600px;max-width:680px;margin:0 auto;color:var(--foreground, var(--praxis-text-primary, #f8fafc));background:transparent;box-sizing:border-box}.praxis-bulk-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 18px;border-bottom:1px solid var(--border, rgba(148, 163, 184, .15))}.praxis-bulk-dialog__title-group{display:flex;align-items:flex-start;gap:14px}.praxis-bulk-dialog__header-icon{color:var(--primary, var(--praxis-primary, #0284c7));font-size:28px;width:28px;height:28px;margin-top:2px}.praxis-bulk-dialog__title{font-size:1.25rem;font-weight:600;margin:0;line-height:1.3;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__subtitle{font-size:.875rem;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin:4px 0 0;line-height:1.45}.praxis-bulk-dialog__content{padding:22px 26px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.praxis-bulk-dialog__targets-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;font-size:.875rem;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__targets-badge mat-icon{font-size:18px;width:18px;height:18px;color:var(--primary, var(--praxis-primary, #0284c7))}.praxis-bulk-dialog__section{display:flex;flex-direction:column;gap:20px}.praxis-bulk-dialog__section-title{font-size:1rem;font-weight:600;margin:0;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__totals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 12px}.praxis-bulk-dialog__total-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:104px;padding:20px 22px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:14px;transition:background .2s ease,border-color .2s ease;box-sizing:border-box;gap:8px}.praxis-bulk-dialog__total-card .total-label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground, rgba(148, 163, 184, .85));font-weight:600;margin-bottom:2px}.praxis-bulk-dialog__total-card .total-value{font-size:2rem;font-weight:700;color:var(--foreground, #f8fafc);line-height:1;margin:0;letter-spacing:-.02em}.total-card--executable{border-color:color-mix(in srgb,var(--praxis-success, #10b981) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b))!important}.total-card--executable .total-value{color:var(--praxis-success, #10b981)}.total-card--blocked{border-color:color-mix(in srgb,var(--praxis-error, #ef4444) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b))!important}.total-card--blocked .total-value{color:var(--praxis-error, #ef4444)}.praxis-bulk-dialog__alert{display:flex;align-items:flex-start;gap:14px;padding:18px 22px;border-radius:12px;font-size:.875rem;line-height:1.5}.praxis-bulk-dialog__alert mat-icon{font-size:22px;width:22px;height:22px;flex-shrink:0;margin-top:1px}.praxis-bulk-dialog__alert .alert-content{display:flex;flex-direction:column;gap:4px}.praxis-bulk-dialog__alert .alert-content strong{font-size:.9375rem;font-weight:600;color:inherit}.praxis-bulk-dialog__alert .alert-content p{margin:0;font-size:.8125rem;opacity:.9}.praxis-bulk-dialog__alert--error{background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-error, #ef4444) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--error mat-icon{color:var(--praxis-error, #ef4444)}.praxis-bulk-dialog__alert--warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--warning mat-icon{color:var(--praxis-warning, #d97706)}.praxis-bulk-dialog__alert--success{background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-success, #10b981) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--success mat-icon{color:var(--praxis-success, #10b981)}.praxis-bulk-dialog__notice-box{display:flex;align-items:center;gap:12px;padding:16px 20px;background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-info, #0284c7) 40%,transparent);border-radius:10px;color:var(--foreground, #f8fafc);font-size:.875rem}.praxis-bulk-dialog__notice-box mat-icon{color:var(--praxis-info, #0284c7)}.praxis-bulk-dialog__diagnostics{margin-top:12px;border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;padding:14px 18px;background:color-mix(in srgb,var(--foreground, #f8fafc) 4%,var(--card, #1e293b))}.diagnostics-title{font-size:.875rem;font-weight:600;margin:0 0 8px;color:var(--praxis-text-primary, var(--foreground, inherit))}.diagnostics-list{display:flex;flex-direction:column;gap:6px;max-height:160px;overflow-y:auto}.diagnostic-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.diagnostic-item mat-icon{font-size:16px;width:16px;height:16px;color:var(--praxis-primary, var(--primary, var(--md-sys-color-primary, #0284c7)))}.diagnostic-item--error{color:var(--praxis-error, #dc2626)}.diagnostic-item--error mat-icon{color:var(--praxis-error, #dc2626)}.diagnostic-target{font-weight:600;margin-right:4px;color:var(--praxis-text-primary, var(--foreground, inherit))}.praxis-bulk-dialog__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:16px;color:var(--praxis-text-muted, var(--muted-foreground, inherit));font-size:.9375rem}.praxis-bulk-dialog__loading>p,.praxis-bulk-dialog__loading-label{font-weight:600;background-image:var( --pdx-text-shimmer-gradient, linear-gradient( 105deg, var(--md-sys-color-on-surface-variant, #64748b) 0%, var(--md-sys-color-on-surface-variant, #64748b) 28%, var(--md-sys-color-primary, #4f46e5) 44%, var(--md-sys-color-tertiary, #7c3aed) 56%, var(--md-sys-color-on-surface-variant, #64748b) 72%, var(--md-sys-color-on-surface-variant, #64748b) 100% ) );background-size:260% 100%;background-position:200% 50%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:praxis-bulk-dialog-loading-shimmer var(--pdx-text-shimmer-duration, 2.4s) linear infinite}@keyframes praxis-bulk-dialog-loading-shimmer{0%{background-position:200% 50%}to{background-position:-60% 50%}}@media(prefers-reduced-motion:reduce),(forced-colors:active),print{.praxis-bulk-dialog__loading>p,.praxis-bulk-dialog__loading-label{animation:none;background-image:none;color:var( --pdx-text-shimmer-fallback-color, var(--praxis-text-primary, var(--md-sys-color-on-surface, inherit)) );-webkit-text-fill-color:currentColor}}@media(forced-colors:active){.praxis-bulk-dialog__loading>p,.praxis-bulk-dialog__loading-label{color:CanvasText!important;-webkit-text-fill-color:CanvasText!important}}.praxis-bulk-dialog__actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px 20px;border-top:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: PraxisDynamicForm, selector: "praxis-dynamic-form", inputs: ["resourcePath", "resourceId", "initialValue", "emptyState", "editorialContext", "mode", "config", "actions", "schemaSource", "schemaUrl", "readUrl", "submitUrl", "submitMethod", "submitIdempotencyKey", "submitCorrelationId", "submitResourceVersion", "submitResourceVersionTargetResourceKey", "submitResourceVersionTargetIdField", "responseSchemaUrl", "apiEndpointKey", "apiUrlEntry", "enableCustomization", "showAiAssistant", "formId", "componentInstanceId", "configPersistenceStrategy", "layout", "layoutMode", "formLayout", "generatedLayoutPreset", "layoutPolicy", "backConfig", "hooks", "removeEmptyContainersOnSave", "reactiveValidation", "reactiveValidationDebounceMs", "notifyIfOutdated", "snoozeMs", "autoOpenSettingsOnOutdated", "readonlyModeGlobal", "disabledModeGlobal", "presentationModeGlobal", "presentation", "presentationPreset", "sectionDefaultAppearance", "sectionDivider", "visibleGlobal", "fieldIconPolicy", "domainRules", "customEndpoints"], outputs: ["formSubmit", "formCancel", "formReset", "configChange", "configPatchChange", "formReady", "valueChange", "payloadPreviewChange", "syncCompleted", "initializationError", "loadingStateChange", "enableCustomizationChange", "customAction", "actionConfirmation", "schemaStatusChange", "fieldRenderError", "ruleDiagnosticsChange", "reactiveDeterminationExecuted", "reactiveDeterminationPendingChange", "tabChange", "tabSelected"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
1030
1030
|
}
|
|
1031
1031
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisBulkOperationDialogComponent, decorators: [{
|
|
1032
1032
|
type: Component,
|
|
@@ -1200,7 +1200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
1200
1200
|
(click)="loadProposalResults(proposalNextCursor()!)"
|
|
1201
1201
|
[disabled]="loadingProposalResults()"
|
|
1202
1202
|
>
|
|
1203
|
-
{{ loadingProposalResults() ? 'Carregando...' : 'Carregar mais resultados' }}
|
|
1203
|
+
<span [class.praxis-bulk-dialog__loading-label]="loadingProposalResults()">{{ loadingProposalResults() ? 'Carregando...' : 'Carregar mais resultados' }}</span>
|
|
1204
1204
|
</button>
|
|
1205
1205
|
}
|
|
1206
1206
|
</div>
|
|
@@ -1299,7 +1299,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
1299
1299
|
(click)="loadExecutionResults(executionNextCursor()!)"
|
|
1300
1300
|
[disabled]="loadingExecutionResults()"
|
|
1301
1301
|
>
|
|
1302
|
-
{{ loadingExecutionResults() ? 'Carregando...' : 'Carregar mais resultados' }}
|
|
1302
|
+
<span [class.praxis-bulk-dialog__loading-label]="loadingExecutionResults()">{{ loadingExecutionResults() ? 'Carregando...' : 'Carregar mais resultados' }}</span>
|
|
1303
1303
|
</button>
|
|
1304
1304
|
}
|
|
1305
1305
|
</div>
|
|
@@ -1350,7 +1350,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
1350
1350
|
}
|
|
1351
1351
|
</div>
|
|
1352
1352
|
</div>
|
|
1353
|
-
`, styles: [".cdk-global-overlay-wrapper:has(.praxis-bulk-dialog-panel){display:flex!important;justify-content:center!important;align-items:center!important;padding:24px!important;box-sizing:border-box!important}.cdk-overlay-pane.praxis-bulk-dialog-panel{--mat-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mdc-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mat-dialog-container-shape: 16px;position:relative!important;inset:auto!important;margin:auto!important;display:flex!important;justify-content:center!important;align-items:center!important}.cdk-overlay-pane.praxis-bulk-dialog-panel .mat-mdc-dialog-surface{border-radius:16px;border:1px solid var(--border, var(--praxis-border-subtle, rgba(148, 163, 184, .2)));box-shadow:0 24px 64px #0000008c;background-color:var(--card, var(--praxis-color-surface, #1e293b))!important;color:var(--foreground, #f8fafc)!important;overflow:hidden;width:100%}.praxis-bulk-dialog{display:flex;flex-direction:column;max-height:85vh;width:100%;min-width:600px;max-width:680px;margin:0 auto;color:var(--foreground, var(--praxis-text-primary, #f8fafc));background:transparent;box-sizing:border-box}.praxis-bulk-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 18px;border-bottom:1px solid var(--border, rgba(148, 163, 184, .15))}.praxis-bulk-dialog__title-group{display:flex;align-items:flex-start;gap:14px}.praxis-bulk-dialog__header-icon{color:var(--primary, var(--praxis-primary, #0284c7));font-size:28px;width:28px;height:28px;margin-top:2px}.praxis-bulk-dialog__title{font-size:1.25rem;font-weight:600;margin:0;line-height:1.3;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__subtitle{font-size:.875rem;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin:4px 0 0;line-height:1.45}.praxis-bulk-dialog__content{padding:22px 26px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.praxis-bulk-dialog__targets-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;font-size:.875rem;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__targets-badge mat-icon{font-size:18px;width:18px;height:18px;color:var(--primary, var(--praxis-primary, #0284c7))}.praxis-bulk-dialog__section{display:flex;flex-direction:column;gap:20px}.praxis-bulk-dialog__section-title{font-size:1rem;font-weight:600;margin:0;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__totals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 12px}.praxis-bulk-dialog__total-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:104px;padding:20px 22px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:14px;transition:background .2s ease,border-color .2s ease;box-sizing:border-box;gap:8px}.praxis-bulk-dialog__total-card .total-label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground, rgba(148, 163, 184, .85));font-weight:600;margin-bottom:2px}.praxis-bulk-dialog__total-card .total-value{font-size:2rem;font-weight:700;color:var(--foreground, #f8fafc);line-height:1;margin:0;letter-spacing:-.02em}.total-card--executable{border-color:color-mix(in srgb,var(--praxis-success, #10b981) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b))!important}.total-card--executable .total-value{color:var(--praxis-success, #10b981)}.total-card--blocked{border-color:color-mix(in srgb,var(--praxis-error, #ef4444) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b))!important}.total-card--blocked .total-value{color:var(--praxis-error, #ef4444)}.praxis-bulk-dialog__alert{display:flex;align-items:flex-start;gap:14px;padding:18px 22px;border-radius:12px;font-size:.875rem;line-height:1.5}.praxis-bulk-dialog__alert mat-icon{font-size:22px;width:22px;height:22px;flex-shrink:0;margin-top:1px}.praxis-bulk-dialog__alert .alert-content{display:flex;flex-direction:column;gap:4px}.praxis-bulk-dialog__alert .alert-content strong{font-size:.9375rem;font-weight:600;color:inherit}.praxis-bulk-dialog__alert .alert-content p{margin:0;font-size:.8125rem;opacity:.9}.praxis-bulk-dialog__alert--error{background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-error, #ef4444) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--error mat-icon{color:var(--praxis-error, #ef4444)}.praxis-bulk-dialog__alert--warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--warning mat-icon{color:var(--praxis-warning, #d97706)}.praxis-bulk-dialog__alert--success{background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-success, #10b981) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--success mat-icon{color:var(--praxis-success, #10b981)}.praxis-bulk-dialog__notice-box{display:flex;align-items:center;gap:12px;padding:16px 20px;background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-info, #0284c7) 40%,transparent);border-radius:10px;color:var(--foreground, #f8fafc);font-size:.875rem}.praxis-bulk-dialog__notice-box mat-icon{color:var(--praxis-info, #0284c7)}.praxis-bulk-dialog__diagnostics{margin-top:12px;border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;padding:14px 18px;background:color-mix(in srgb,var(--foreground, #f8fafc) 4%,var(--card, #1e293b))}.diagnostics-title{font-size:.875rem;font-weight:600;margin:0 0 8px;color:var(--praxis-text-primary, var(--foreground, inherit))}.diagnostics-list{display:flex;flex-direction:column;gap:6px;max-height:160px;overflow-y:auto}.diagnostic-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.diagnostic-item mat-icon{font-size:16px;width:16px;height:16px;color:var(--praxis-primary, var(--primary, var(--md-sys-color-primary, #0284c7)))}.diagnostic-item--error{color:var(--praxis-error, #dc2626)}.diagnostic-item--error mat-icon{color:var(--praxis-error, #dc2626)}.diagnostic-target{font-weight:600;margin-right:4px;color:var(--praxis-text-primary, var(--foreground, inherit))}.praxis-bulk-dialog__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:16px;color:var(--praxis-text-muted, var(--muted-foreground, inherit));font-size:.9375rem}.praxis-bulk-dialog__actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px 20px;border-top:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))))}\n"] }]
|
|
1353
|
+
`, styles: [".cdk-global-overlay-wrapper:has(.praxis-bulk-dialog-panel){display:flex!important;justify-content:center!important;align-items:center!important;padding:24px!important;box-sizing:border-box!important}.cdk-overlay-pane.praxis-bulk-dialog-panel{--mat-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mdc-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mat-dialog-container-shape: 16px;position:relative!important;inset:auto!important;margin:auto!important;display:flex!important;justify-content:center!important;align-items:center!important}.cdk-overlay-pane.praxis-bulk-dialog-panel .mat-mdc-dialog-surface{border-radius:16px;border:1px solid var(--border, var(--praxis-border-subtle, rgba(148, 163, 184, .2)));box-shadow:0 24px 64px #0000008c;background-color:var(--card, var(--praxis-color-surface, #1e293b))!important;color:var(--foreground, #f8fafc)!important;overflow:hidden;width:100%}.praxis-bulk-dialog{display:flex;flex-direction:column;max-height:85vh;width:100%;min-width:600px;max-width:680px;margin:0 auto;color:var(--foreground, var(--praxis-text-primary, #f8fafc));background:transparent;box-sizing:border-box}.praxis-bulk-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 18px;border-bottom:1px solid var(--border, rgba(148, 163, 184, .15))}.praxis-bulk-dialog__title-group{display:flex;align-items:flex-start;gap:14px}.praxis-bulk-dialog__header-icon{color:var(--primary, var(--praxis-primary, #0284c7));font-size:28px;width:28px;height:28px;margin-top:2px}.praxis-bulk-dialog__title{font-size:1.25rem;font-weight:600;margin:0;line-height:1.3;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__subtitle{font-size:.875rem;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin:4px 0 0;line-height:1.45}.praxis-bulk-dialog__content{padding:22px 26px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.praxis-bulk-dialog__targets-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;font-size:.875rem;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__targets-badge mat-icon{font-size:18px;width:18px;height:18px;color:var(--primary, var(--praxis-primary, #0284c7))}.praxis-bulk-dialog__section{display:flex;flex-direction:column;gap:20px}.praxis-bulk-dialog__section-title{font-size:1rem;font-weight:600;margin:0;color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__totals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 12px}.praxis-bulk-dialog__total-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:104px;padding:20px 22px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:14px;transition:background .2s ease,border-color .2s ease;box-sizing:border-box;gap:8px}.praxis-bulk-dialog__total-card .total-label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground, rgba(148, 163, 184, .85));font-weight:600;margin-bottom:2px}.praxis-bulk-dialog__total-card .total-value{font-size:2rem;font-weight:700;color:var(--foreground, #f8fafc);line-height:1;margin:0;letter-spacing:-.02em}.total-card--executable{border-color:color-mix(in srgb,var(--praxis-success, #10b981) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b))!important}.total-card--executable .total-value{color:var(--praxis-success, #10b981)}.total-card--blocked{border-color:color-mix(in srgb,var(--praxis-error, #ef4444) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b))!important}.total-card--blocked .total-value{color:var(--praxis-error, #ef4444)}.praxis-bulk-dialog__alert{display:flex;align-items:flex-start;gap:14px;padding:18px 22px;border-radius:12px;font-size:.875rem;line-height:1.5}.praxis-bulk-dialog__alert mat-icon{font-size:22px;width:22px;height:22px;flex-shrink:0;margin-top:1px}.praxis-bulk-dialog__alert .alert-content{display:flex;flex-direction:column;gap:4px}.praxis-bulk-dialog__alert .alert-content strong{font-size:.9375rem;font-weight:600;color:inherit}.praxis-bulk-dialog__alert .alert-content p{margin:0;font-size:.8125rem;opacity:.9}.praxis-bulk-dialog__alert--error{background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-error, #ef4444) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--error mat-icon{color:var(--praxis-error, #ef4444)}.praxis-bulk-dialog__alert--warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--warning mat-icon{color:var(--praxis-warning, #d97706)}.praxis-bulk-dialog__alert--success{background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-success, #10b981) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-dialog__alert--success mat-icon{color:var(--praxis-success, #10b981)}.praxis-bulk-dialog__notice-box{display:flex;align-items:center;gap:12px;padding:16px 20px;background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-info, #0284c7) 40%,transparent);border-radius:10px;color:var(--foreground, #f8fafc);font-size:.875rem}.praxis-bulk-dialog__notice-box mat-icon{color:var(--praxis-info, #0284c7)}.praxis-bulk-dialog__diagnostics{margin-top:12px;border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;padding:14px 18px;background:color-mix(in srgb,var(--foreground, #f8fafc) 4%,var(--card, #1e293b))}.diagnostics-title{font-size:.875rem;font-weight:600;margin:0 0 8px;color:var(--praxis-text-primary, var(--foreground, inherit))}.diagnostics-list{display:flex;flex-direction:column;gap:6px;max-height:160px;overflow-y:auto}.diagnostic-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.diagnostic-item mat-icon{font-size:16px;width:16px;height:16px;color:var(--praxis-primary, var(--primary, var(--md-sys-color-primary, #0284c7)))}.diagnostic-item--error{color:var(--praxis-error, #dc2626)}.diagnostic-item--error mat-icon{color:var(--praxis-error, #dc2626)}.diagnostic-target{font-weight:600;margin-right:4px;color:var(--praxis-text-primary, var(--foreground, inherit))}.praxis-bulk-dialog__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:16px;color:var(--praxis-text-muted, var(--muted-foreground, inherit));font-size:.9375rem}.praxis-bulk-dialog__loading>p,.praxis-bulk-dialog__loading-label{font-weight:600;background-image:var( --pdx-text-shimmer-gradient, linear-gradient( 105deg, var(--md-sys-color-on-surface-variant, #64748b) 0%, var(--md-sys-color-on-surface-variant, #64748b) 28%, var(--md-sys-color-primary, #4f46e5) 44%, var(--md-sys-color-tertiary, #7c3aed) 56%, var(--md-sys-color-on-surface-variant, #64748b) 72%, var(--md-sys-color-on-surface-variant, #64748b) 100% ) );background-size:260% 100%;background-position:200% 50%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:praxis-bulk-dialog-loading-shimmer var(--pdx-text-shimmer-duration, 2.4s) linear infinite}@keyframes praxis-bulk-dialog-loading-shimmer{0%{background-position:200% 50%}to{background-position:-60% 50%}}@media(prefers-reduced-motion:reduce),(forced-colors:active),print{.praxis-bulk-dialog__loading>p,.praxis-bulk-dialog__loading-label{animation:none;background-image:none;color:var( --pdx-text-shimmer-fallback-color, var(--praxis-text-primary, var(--md-sys-color-on-surface, inherit)) );-webkit-text-fill-color:currentColor}}@media(forced-colors:active){.praxis-bulk-dialog__loading>p,.praxis-bulk-dialog__loading-label{color:CanvasText!important;-webkit-text-fill-color:CanvasText!important}}.praxis-bulk-dialog__actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px 20px;border-top:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))))}\n"] }]
|
|
1354
1354
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1355
1355
|
type: Inject,
|
|
1356
1356
|
args: [MAT_DIALOG_DATA]
|
|
@@ -2305,7 +2305,7 @@ class PraxisBulkEditDialogComponent {
|
|
|
2305
2305
|
(click)="loadProposalResults(proposalNextCursor()!)"
|
|
2306
2306
|
[disabled]="loadingProposalResults()"
|
|
2307
2307
|
>
|
|
2308
|
-
{{ loadingProposalResults() ? 'Carregando...' : 'Carregar mais resultados' }}
|
|
2308
|
+
<span [class.praxis-bulk-edit-dialog__loading-label]="loadingProposalResults()">{{ loadingProposalResults() ? 'Carregando...' : 'Carregar mais resultados' }}</span>
|
|
2309
2309
|
</button>
|
|
2310
2310
|
}
|
|
2311
2311
|
</div>
|
|
@@ -2400,7 +2400,7 @@ class PraxisBulkEditDialogComponent {
|
|
|
2400
2400
|
(click)="loadExecutionResults(executionNextCursor()!)"
|
|
2401
2401
|
[disabled]="loadingExecutionResults()"
|
|
2402
2402
|
>
|
|
2403
|
-
{{ loadingExecutionResults() ? 'Carregando...' : 'Carregar mais resultados' }}
|
|
2403
|
+
<span [class.praxis-bulk-edit-dialog__loading-label]="loadingExecutionResults()">{{ loadingExecutionResults() ? 'Carregando...' : 'Carregar mais resultados' }}</span>
|
|
2404
2404
|
</button>
|
|
2405
2405
|
}
|
|
2406
2406
|
</div>
|
|
@@ -2451,7 +2451,7 @@ class PraxisBulkEditDialogComponent {
|
|
|
2451
2451
|
}
|
|
2452
2452
|
</div>
|
|
2453
2453
|
</div>
|
|
2454
|
-
`, isInline: true, styles: [".cdk-global-overlay-wrapper:has(.praxis-bulk-dialog-panel){display:flex!important;justify-content:center!important;align-items:center!important;padding:24px!important;box-sizing:border-box!important}.cdk-overlay-pane.praxis-bulk-dialog-panel{--mat-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mdc-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mat-dialog-container-shape: 16px;position:relative!important;inset:auto!important;margin:auto!important;display:flex!important;justify-content:center!important;align-items:center!important}.cdk-overlay-pane.praxis-bulk-dialog-panel .mat-mdc-dialog-surface{border-radius:16px;border:1px solid var(--border, var(--praxis-border-subtle, rgba(148, 163, 184, .2)));box-shadow:0 24px 64px #0000008c;background-color:var(--card, var(--praxis-color-surface, #1e293b))!important;color:var(--foreground, #f8fafc)!important;overflow:hidden;width:100%}.praxis-bulk-edit-dialog{display:flex;flex-direction:column;max-height:85vh;width:100%;min-width:600px;max-width:680px;margin:0 auto;color:var(--foreground, var(--praxis-text-primary, #f8fafc));background:transparent;box-sizing:border-box}.praxis-bulk-edit-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 18px;border-bottom:1px solid var(--border, rgba(148, 163, 184, .15))}.praxis-bulk-edit-dialog__title-group{display:flex;align-items:flex-start;gap:14px}.praxis-bulk-edit-dialog__header-icon{color:var(--primary, var(--praxis-primary, #0284c7));font-size:28px;width:28px;height:28px;margin-top:2px}.praxis-bulk-edit-dialog__title{font-size:1.25rem;font-weight:600;margin:0;line-height:1.3;color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__subtitle{font-size:.875rem;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin:4px 0 0;line-height:1.45}.praxis-bulk-edit-dialog__content{padding:22px 26px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.praxis-bulk-edit-dialog__targets-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;font-size:.875rem;color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__targets-badge mat-icon{font-size:18px;width:18px;height:18px;color:var(--primary, var(--praxis-primary, #0284c7))}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-title{font-size:1rem;font-weight:600;margin:0;color:var(--praxis-text-primary, var(--foreground, var(--md-sys-color-on-surface, inherit)))}.praxis-bulk-edit-dialog__empty-box{display:flex;flex-direction:column;align-items:center;padding:32px 16px;background:color-mix(in srgb,var(--praxis-text-primary, var(--foreground, currentColor)) 2%,transparent);border:1px dashed var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .25))));border-radius:8px;color:var(--praxis-text-muted, var(--muted-foreground, var(--md-sys-color-on-surface-variant, inherit)));gap:8px}.praxis-bulk-edit-dialog__empty-box mat-icon{font-size:32px;width:32px;height:32px;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.field-rows-container{display:flex;flex-direction:column;gap:12px}.field-row{display:flex;align-items:center;gap:12px}.field-select{flex:1.3}.field-tech-name{font-size:.75rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit));margin-left:6px;opacity:.75}.operator-select{flex:.9}.value-input{flex:1.4}.clear-notice{flex:1.4;display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--praxis-warning, #d97706);background:color-mix(in srgb,var(--praxis-warning, #d97706) 12%,transparent);border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent);padding:8px 12px;border-radius:6px}.clear-notice mat-icon{font-size:16px;width:16px;height:16px}.praxis-bulk-edit-dialog__section{display:flex;flex-direction:column;gap:20px}.praxis-bulk-edit-dialog__totals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 12px}.total-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:104px;padding:20px 22px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:14px;transition:background .2s ease,border-color .2s ease;box-sizing:border-box;gap:8px}.total-card .total-label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin-bottom:2px}.total-card .total-value{font-size:2rem;font-weight:700;color:var(--foreground, #f8fafc);line-height:1;margin:0;letter-spacing:-.02em}.total-card--executable{border-color:color-mix(in srgb,var(--praxis-success, #10b981) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b))!important}.total-card--executable .total-value{color:var(--praxis-success, #10b981)}.total-card--blocked{border-color:color-mix(in srgb,var(--praxis-error, #ef4444) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b))!important}.total-card--blocked .total-value{color:var(--praxis-error, #ef4444)}.praxis-bulk-edit-dialog__alert{display:flex;align-items:flex-start;gap:14px;padding:18px 22px;border-radius:12px;font-size:.875rem;line-height:1.5}.praxis-bulk-edit-dialog__alert mat-icon{font-size:22px;width:22px;height:22px;flex-shrink:0;margin-top:1px}.praxis-bulk-edit-dialog__alert .alert-content{display:flex;flex-direction:column;gap:4px}.praxis-bulk-edit-dialog__alert .alert-content strong{font-size:.9375rem;font-weight:600;color:inherit}.praxis-bulk-edit-dialog__alert .alert-content p{margin:0;font-size:.8125rem;opacity:.9}.praxis-bulk-edit-dialog__alert--error{background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-error, #ef4444) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--error mat-icon{color:var(--praxis-error, #ef4444)}.praxis-bulk-edit-dialog__alert--warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--warning mat-icon{color:var(--praxis-warning, #d97706)}.praxis-bulk-edit-dialog__alert--success{background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-success, #10b981) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--success mat-icon{color:var(--praxis-success, #10b981)}.praxis-bulk-edit-dialog__diagnostics{margin-top:12px;padding:12px 16px;background:color-mix(in srgb,var(--praxis-text-primary, var(--foreground, currentColor)) 3%,transparent);border:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))));border-radius:8px;display:flex;flex-direction:column;gap:8px}.diagnostics-title{font-size:.875rem;font-weight:600;margin:0 0 4px;color:var(--praxis-text-primary, var(--foreground, inherit))}.diagnostic-item{display:flex;align-items:flex-start;gap:8px;font-size:.8125rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.diagnostic-item mat-icon{font-size:16px;width:16px;height:16px;margin-top:2px;flex-shrink:0;color:var(--praxis-primary, var(--primary, var(--md-sys-color-primary, #0284c7)))}.diagnostic-item--error{color:var(--praxis-error, #ef4444)}.diagnostic-item--error mat-icon{color:var(--praxis-error, #ef4444)}.diagnostic-content{display:flex;flex-wrap:wrap;gap:4px}.diagnostic-target{font-weight:600;color:var(--praxis-text-primary, var(--foreground, inherit))}.praxis-bulk-edit-dialog__loading{display:flex;flex-direction:column;align-items:center;padding:40px;gap:16px;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.praxis-bulk-edit-dialog__actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:18px 24px 22px;border-top:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatFormFieldModule }], encapsulation: i0.ViewEncapsulation.None });
|
|
2454
|
+
`, isInline: true, styles: [".cdk-global-overlay-wrapper:has(.praxis-bulk-dialog-panel){display:flex!important;justify-content:center!important;align-items:center!important;padding:24px!important;box-sizing:border-box!important}.cdk-overlay-pane.praxis-bulk-dialog-panel{--mat-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mdc-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mat-dialog-container-shape: 16px;position:relative!important;inset:auto!important;margin:auto!important;display:flex!important;justify-content:center!important;align-items:center!important}.cdk-overlay-pane.praxis-bulk-dialog-panel .mat-mdc-dialog-surface{border-radius:16px;border:1px solid var(--border, var(--praxis-border-subtle, rgba(148, 163, 184, .2)));box-shadow:0 24px 64px #0000008c;background-color:var(--card, var(--praxis-color-surface, #1e293b))!important;color:var(--foreground, #f8fafc)!important;overflow:hidden;width:100%}.praxis-bulk-edit-dialog{display:flex;flex-direction:column;max-height:85vh;width:100%;min-width:600px;max-width:680px;margin:0 auto;color:var(--foreground, var(--praxis-text-primary, #f8fafc));background:transparent;box-sizing:border-box}.praxis-bulk-edit-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 18px;border-bottom:1px solid var(--border, rgba(148, 163, 184, .15))}.praxis-bulk-edit-dialog__title-group{display:flex;align-items:flex-start;gap:14px}.praxis-bulk-edit-dialog__header-icon{color:var(--primary, var(--praxis-primary, #0284c7));font-size:28px;width:28px;height:28px;margin-top:2px}.praxis-bulk-edit-dialog__title{font-size:1.25rem;font-weight:600;margin:0;line-height:1.3;color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__subtitle{font-size:.875rem;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin:4px 0 0;line-height:1.45}.praxis-bulk-edit-dialog__content{padding:22px 26px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.praxis-bulk-edit-dialog__targets-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;font-size:.875rem;color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__targets-badge mat-icon{font-size:18px;width:18px;height:18px;color:var(--primary, var(--praxis-primary, #0284c7))}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-title{font-size:1rem;font-weight:600;margin:0;color:var(--praxis-text-primary, var(--foreground, var(--md-sys-color-on-surface, inherit)))}.praxis-bulk-edit-dialog__empty-box{display:flex;flex-direction:column;align-items:center;padding:32px 16px;background:color-mix(in srgb,var(--praxis-text-primary, var(--foreground, currentColor)) 2%,transparent);border:1px dashed var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .25))));border-radius:8px;color:var(--praxis-text-muted, var(--muted-foreground, var(--md-sys-color-on-surface-variant, inherit)));gap:8px}.praxis-bulk-edit-dialog__empty-box mat-icon{font-size:32px;width:32px;height:32px;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.field-rows-container{display:flex;flex-direction:column;gap:12px}.field-row{display:flex;align-items:center;gap:12px}.field-select{flex:1.3}.field-tech-name{font-size:.75rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit));margin-left:6px;opacity:.75}.operator-select{flex:.9}.value-input{flex:1.4}.clear-notice{flex:1.4;display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--praxis-warning, #d97706);background:color-mix(in srgb,var(--praxis-warning, #d97706) 12%,transparent);border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent);padding:8px 12px;border-radius:6px}.clear-notice mat-icon{font-size:16px;width:16px;height:16px}.praxis-bulk-edit-dialog__section{display:flex;flex-direction:column;gap:20px}.praxis-bulk-edit-dialog__totals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 12px}.total-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:104px;padding:20px 22px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:14px;transition:background .2s ease,border-color .2s ease;box-sizing:border-box;gap:8px}.total-card .total-label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin-bottom:2px}.total-card .total-value{font-size:2rem;font-weight:700;color:var(--foreground, #f8fafc);line-height:1;margin:0;letter-spacing:-.02em}.total-card--executable{border-color:color-mix(in srgb,var(--praxis-success, #10b981) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b))!important}.total-card--executable .total-value{color:var(--praxis-success, #10b981)}.total-card--blocked{border-color:color-mix(in srgb,var(--praxis-error, #ef4444) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b))!important}.total-card--blocked .total-value{color:var(--praxis-error, #ef4444)}.praxis-bulk-edit-dialog__alert{display:flex;align-items:flex-start;gap:14px;padding:18px 22px;border-radius:12px;font-size:.875rem;line-height:1.5}.praxis-bulk-edit-dialog__alert mat-icon{font-size:22px;width:22px;height:22px;flex-shrink:0;margin-top:1px}.praxis-bulk-edit-dialog__alert .alert-content{display:flex;flex-direction:column;gap:4px}.praxis-bulk-edit-dialog__alert .alert-content strong{font-size:.9375rem;font-weight:600;color:inherit}.praxis-bulk-edit-dialog__alert .alert-content p{margin:0;font-size:.8125rem;opacity:.9}.praxis-bulk-edit-dialog__alert--error{background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-error, #ef4444) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--error mat-icon{color:var(--praxis-error, #ef4444)}.praxis-bulk-edit-dialog__alert--warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--warning mat-icon{color:var(--praxis-warning, #d97706)}.praxis-bulk-edit-dialog__alert--success{background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-success, #10b981) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--success mat-icon{color:var(--praxis-success, #10b981)}.praxis-bulk-edit-dialog__diagnostics{margin-top:12px;padding:12px 16px;background:color-mix(in srgb,var(--praxis-text-primary, var(--foreground, currentColor)) 3%,transparent);border:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))));border-radius:8px;display:flex;flex-direction:column;gap:8px}.diagnostics-title{font-size:.875rem;font-weight:600;margin:0 0 4px;color:var(--praxis-text-primary, var(--foreground, inherit))}.diagnostic-item{display:flex;align-items:flex-start;gap:8px;font-size:.8125rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.diagnostic-item mat-icon{font-size:16px;width:16px;height:16px;margin-top:2px;flex-shrink:0;color:var(--praxis-primary, var(--primary, var(--md-sys-color-primary, #0284c7)))}.diagnostic-item--error{color:var(--praxis-error, #ef4444)}.diagnostic-item--error mat-icon{color:var(--praxis-error, #ef4444)}.diagnostic-content{display:flex;flex-wrap:wrap;gap:4px}.diagnostic-target{font-weight:600;color:var(--praxis-text-primary, var(--foreground, inherit))}.praxis-bulk-edit-dialog__loading{display:flex;flex-direction:column;align-items:center;padding:40px;gap:16px;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.praxis-bulk-edit-dialog__loading>p,.praxis-bulk-edit-dialog__loading-label{font-weight:600;background-image:var( --pdx-text-shimmer-gradient, linear-gradient( 105deg, var(--md-sys-color-on-surface-variant, #64748b) 0%, var(--md-sys-color-on-surface-variant, #64748b) 28%, var(--md-sys-color-primary, #4f46e5) 44%, var(--md-sys-color-tertiary, #7c3aed) 56%, var(--md-sys-color-on-surface-variant, #64748b) 72%, var(--md-sys-color-on-surface-variant, #64748b) 100% ) );background-size:260% 100%;background-position:200% 50%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:praxis-bulk-edit-loading-shimmer var(--pdx-text-shimmer-duration, 2.4s) linear infinite}@keyframes praxis-bulk-edit-loading-shimmer{0%{background-position:200% 50%}to{background-position:-60% 50%}}@media(prefers-reduced-motion:reduce),(forced-colors:active),print{.praxis-bulk-edit-dialog__loading>p,.praxis-bulk-edit-dialog__loading-label{animation:none;background-image:none;color:var( --pdx-text-shimmer-fallback-color, var(--praxis-text-primary, var(--md-sys-color-on-surface, inherit)) );-webkit-text-fill-color:currentColor}}@media(forced-colors:active){.praxis-bulk-edit-dialog__loading>p,.praxis-bulk-edit-dialog__loading-label{color:CanvasText!important;-webkit-text-fill-color:CanvasText!important}}.praxis-bulk-edit-dialog__actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:18px 24px 22px;border-top:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i3$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatFormFieldModule }], encapsulation: i0.ViewEncapsulation.None });
|
|
2455
2455
|
}
|
|
2456
2456
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisBulkEditDialogComponent, decorators: [{
|
|
2457
2457
|
type: Component,
|
|
@@ -2701,7 +2701,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
2701
2701
|
(click)="loadProposalResults(proposalNextCursor()!)"
|
|
2702
2702
|
[disabled]="loadingProposalResults()"
|
|
2703
2703
|
>
|
|
2704
|
-
{{ loadingProposalResults() ? 'Carregando...' : 'Carregar mais resultados' }}
|
|
2704
|
+
<span [class.praxis-bulk-edit-dialog__loading-label]="loadingProposalResults()">{{ loadingProposalResults() ? 'Carregando...' : 'Carregar mais resultados' }}</span>
|
|
2705
2705
|
</button>
|
|
2706
2706
|
}
|
|
2707
2707
|
</div>
|
|
@@ -2796,7 +2796,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
2796
2796
|
(click)="loadExecutionResults(executionNextCursor()!)"
|
|
2797
2797
|
[disabled]="loadingExecutionResults()"
|
|
2798
2798
|
>
|
|
2799
|
-
{{ loadingExecutionResults() ? 'Carregando...' : 'Carregar mais resultados' }}
|
|
2799
|
+
<span [class.praxis-bulk-edit-dialog__loading-label]="loadingExecutionResults()">{{ loadingExecutionResults() ? 'Carregando...' : 'Carregar mais resultados' }}</span>
|
|
2800
2800
|
</button>
|
|
2801
2801
|
}
|
|
2802
2802
|
</div>
|
|
@@ -2847,7 +2847,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
2847
2847
|
}
|
|
2848
2848
|
</div>
|
|
2849
2849
|
</div>
|
|
2850
|
-
`, styles: [".cdk-global-overlay-wrapper:has(.praxis-bulk-dialog-panel){display:flex!important;justify-content:center!important;align-items:center!important;padding:24px!important;box-sizing:border-box!important}.cdk-overlay-pane.praxis-bulk-dialog-panel{--mat-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mdc-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mat-dialog-container-shape: 16px;position:relative!important;inset:auto!important;margin:auto!important;display:flex!important;justify-content:center!important;align-items:center!important}.cdk-overlay-pane.praxis-bulk-dialog-panel .mat-mdc-dialog-surface{border-radius:16px;border:1px solid var(--border, var(--praxis-border-subtle, rgba(148, 163, 184, .2)));box-shadow:0 24px 64px #0000008c;background-color:var(--card, var(--praxis-color-surface, #1e293b))!important;color:var(--foreground, #f8fafc)!important;overflow:hidden;width:100%}.praxis-bulk-edit-dialog{display:flex;flex-direction:column;max-height:85vh;width:100%;min-width:600px;max-width:680px;margin:0 auto;color:var(--foreground, var(--praxis-text-primary, #f8fafc));background:transparent;box-sizing:border-box}.praxis-bulk-edit-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 18px;border-bottom:1px solid var(--border, rgba(148, 163, 184, .15))}.praxis-bulk-edit-dialog__title-group{display:flex;align-items:flex-start;gap:14px}.praxis-bulk-edit-dialog__header-icon{color:var(--primary, var(--praxis-primary, #0284c7));font-size:28px;width:28px;height:28px;margin-top:2px}.praxis-bulk-edit-dialog__title{font-size:1.25rem;font-weight:600;margin:0;line-height:1.3;color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__subtitle{font-size:.875rem;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin:4px 0 0;line-height:1.45}.praxis-bulk-edit-dialog__content{padding:22px 26px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.praxis-bulk-edit-dialog__targets-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;font-size:.875rem;color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__targets-badge mat-icon{font-size:18px;width:18px;height:18px;color:var(--primary, var(--praxis-primary, #0284c7))}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-title{font-size:1rem;font-weight:600;margin:0;color:var(--praxis-text-primary, var(--foreground, var(--md-sys-color-on-surface, inherit)))}.praxis-bulk-edit-dialog__empty-box{display:flex;flex-direction:column;align-items:center;padding:32px 16px;background:color-mix(in srgb,var(--praxis-text-primary, var(--foreground, currentColor)) 2%,transparent);border:1px dashed var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .25))));border-radius:8px;color:var(--praxis-text-muted, var(--muted-foreground, var(--md-sys-color-on-surface-variant, inherit)));gap:8px}.praxis-bulk-edit-dialog__empty-box mat-icon{font-size:32px;width:32px;height:32px;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.field-rows-container{display:flex;flex-direction:column;gap:12px}.field-row{display:flex;align-items:center;gap:12px}.field-select{flex:1.3}.field-tech-name{font-size:.75rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit));margin-left:6px;opacity:.75}.operator-select{flex:.9}.value-input{flex:1.4}.clear-notice{flex:1.4;display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--praxis-warning, #d97706);background:color-mix(in srgb,var(--praxis-warning, #d97706) 12%,transparent);border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent);padding:8px 12px;border-radius:6px}.clear-notice mat-icon{font-size:16px;width:16px;height:16px}.praxis-bulk-edit-dialog__section{display:flex;flex-direction:column;gap:20px}.praxis-bulk-edit-dialog__totals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 12px}.total-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:104px;padding:20px 22px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:14px;transition:background .2s ease,border-color .2s ease;box-sizing:border-box;gap:8px}.total-card .total-label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin-bottom:2px}.total-card .total-value{font-size:2rem;font-weight:700;color:var(--foreground, #f8fafc);line-height:1;margin:0;letter-spacing:-.02em}.total-card--executable{border-color:color-mix(in srgb,var(--praxis-success, #10b981) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b))!important}.total-card--executable .total-value{color:var(--praxis-success, #10b981)}.total-card--blocked{border-color:color-mix(in srgb,var(--praxis-error, #ef4444) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b))!important}.total-card--blocked .total-value{color:var(--praxis-error, #ef4444)}.praxis-bulk-edit-dialog__alert{display:flex;align-items:flex-start;gap:14px;padding:18px 22px;border-radius:12px;font-size:.875rem;line-height:1.5}.praxis-bulk-edit-dialog__alert mat-icon{font-size:22px;width:22px;height:22px;flex-shrink:0;margin-top:1px}.praxis-bulk-edit-dialog__alert .alert-content{display:flex;flex-direction:column;gap:4px}.praxis-bulk-edit-dialog__alert .alert-content strong{font-size:.9375rem;font-weight:600;color:inherit}.praxis-bulk-edit-dialog__alert .alert-content p{margin:0;font-size:.8125rem;opacity:.9}.praxis-bulk-edit-dialog__alert--error{background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-error, #ef4444) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--error mat-icon{color:var(--praxis-error, #ef4444)}.praxis-bulk-edit-dialog__alert--warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--warning mat-icon{color:var(--praxis-warning, #d97706)}.praxis-bulk-edit-dialog__alert--success{background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-success, #10b981) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--success mat-icon{color:var(--praxis-success, #10b981)}.praxis-bulk-edit-dialog__diagnostics{margin-top:12px;padding:12px 16px;background:color-mix(in srgb,var(--praxis-text-primary, var(--foreground, currentColor)) 3%,transparent);border:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))));border-radius:8px;display:flex;flex-direction:column;gap:8px}.diagnostics-title{font-size:.875rem;font-weight:600;margin:0 0 4px;color:var(--praxis-text-primary, var(--foreground, inherit))}.diagnostic-item{display:flex;align-items:flex-start;gap:8px;font-size:.8125rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.diagnostic-item mat-icon{font-size:16px;width:16px;height:16px;margin-top:2px;flex-shrink:0;color:var(--praxis-primary, var(--primary, var(--md-sys-color-primary, #0284c7)))}.diagnostic-item--error{color:var(--praxis-error, #ef4444)}.diagnostic-item--error mat-icon{color:var(--praxis-error, #ef4444)}.diagnostic-content{display:flex;flex-wrap:wrap;gap:4px}.diagnostic-target{font-weight:600;color:var(--praxis-text-primary, var(--foreground, inherit))}.praxis-bulk-edit-dialog__loading{display:flex;flex-direction:column;align-items:center;padding:40px;gap:16px;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.praxis-bulk-edit-dialog__actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:18px 24px 22px;border-top:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))))}\n"] }]
|
|
2850
|
+
`, styles: [".cdk-global-overlay-wrapper:has(.praxis-bulk-dialog-panel){display:flex!important;justify-content:center!important;align-items:center!important;padding:24px!important;box-sizing:border-box!important}.cdk-overlay-pane.praxis-bulk-dialog-panel{--mat-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mdc-dialog-container-color: var(--card, var(--praxis-color-surface, #1e293b)) !important;--mat-dialog-container-shape: 16px;position:relative!important;inset:auto!important;margin:auto!important;display:flex!important;justify-content:center!important;align-items:center!important}.cdk-overlay-pane.praxis-bulk-dialog-panel .mat-mdc-dialog-surface{border-radius:16px;border:1px solid var(--border, var(--praxis-border-subtle, rgba(148, 163, 184, .2)));box-shadow:0 24px 64px #0000008c;background-color:var(--card, var(--praxis-color-surface, #1e293b))!important;color:var(--foreground, #f8fafc)!important;overflow:hidden;width:100%}.praxis-bulk-edit-dialog{display:flex;flex-direction:column;max-height:85vh;width:100%;min-width:600px;max-width:680px;margin:0 auto;color:var(--foreground, var(--praxis-text-primary, #f8fafc));background:transparent;box-sizing:border-box}.praxis-bulk-edit-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 18px;border-bottom:1px solid var(--border, rgba(148, 163, 184, .15))}.praxis-bulk-edit-dialog__title-group{display:flex;align-items:flex-start;gap:14px}.praxis-bulk-edit-dialog__header-icon{color:var(--primary, var(--praxis-primary, #0284c7));font-size:28px;width:28px;height:28px;margin-top:2px}.praxis-bulk-edit-dialog__title{font-size:1.25rem;font-weight:600;margin:0;line-height:1.3;color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__subtitle{font-size:.875rem;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin:4px 0 0;line-height:1.45}.praxis-bulk-edit-dialog__content{padding:22px 26px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.praxis-bulk-edit-dialog__targets-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:10px;font-size:.875rem;color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__targets-badge mat-icon{font-size:18px;width:18px;height:18px;color:var(--primary, var(--praxis-primary, #0284c7))}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-title{font-size:1rem;font-weight:600;margin:0;color:var(--praxis-text-primary, var(--foreground, var(--md-sys-color-on-surface, inherit)))}.praxis-bulk-edit-dialog__empty-box{display:flex;flex-direction:column;align-items:center;padding:32px 16px;background:color-mix(in srgb,var(--praxis-text-primary, var(--foreground, currentColor)) 2%,transparent);border:1px dashed var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .25))));border-radius:8px;color:var(--praxis-text-muted, var(--muted-foreground, var(--md-sys-color-on-surface-variant, inherit)));gap:8px}.praxis-bulk-edit-dialog__empty-box mat-icon{font-size:32px;width:32px;height:32px;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.field-rows-container{display:flex;flex-direction:column;gap:12px}.field-row{display:flex;align-items:center;gap:12px}.field-select{flex:1.3}.field-tech-name{font-size:.75rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit));margin-left:6px;opacity:.75}.operator-select{flex:.9}.value-input{flex:1.4}.clear-notice{flex:1.4;display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--praxis-warning, #d97706);background:color-mix(in srgb,var(--praxis-warning, #d97706) 12%,transparent);border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent);padding:8px 12px;border-radius:6px}.clear-notice mat-icon{font-size:16px;width:16px;height:16px}.praxis-bulk-edit-dialog__section{display:flex;flex-direction:column;gap:20px}.praxis-bulk-edit-dialog__totals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 12px}.total-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:104px;padding:20px 22px;background:color-mix(in srgb,var(--foreground, #f8fafc) 6%,var(--card, #1e293b));border:1px solid var(--border, rgba(148, 163, 184, .2));border-radius:14px;transition:background .2s ease,border-color .2s ease;box-sizing:border-box;gap:8px}.total-card .total-label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--muted-foreground, rgba(148, 163, 184, .85));margin-bottom:2px}.total-card .total-value{font-size:2rem;font-weight:700;color:var(--foreground, #f8fafc);line-height:1;margin:0;letter-spacing:-.02em}.total-card--executable{border-color:color-mix(in srgb,var(--praxis-success, #10b981) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b))!important}.total-card--executable .total-value{color:var(--praxis-success, #10b981)}.total-card--blocked{border-color:color-mix(in srgb,var(--praxis-error, #ef4444) 50%,transparent)!important;background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b))!important}.total-card--blocked .total-value{color:var(--praxis-error, #ef4444)}.praxis-bulk-edit-dialog__alert{display:flex;align-items:flex-start;gap:14px;padding:18px 22px;border-radius:12px;font-size:.875rem;line-height:1.5}.praxis-bulk-edit-dialog__alert mat-icon{font-size:22px;width:22px;height:22px;flex-shrink:0;margin-top:1px}.praxis-bulk-edit-dialog__alert .alert-content{display:flex;flex-direction:column;gap:4px}.praxis-bulk-edit-dialog__alert .alert-content strong{font-size:.9375rem;font-weight:600;color:inherit}.praxis-bulk-edit-dialog__alert .alert-content p{margin:0;font-size:.8125rem;opacity:.9}.praxis-bulk-edit-dialog__alert--error{background:color-mix(in srgb,var(--praxis-error, #ef4444) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-error, #ef4444) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--error mat-icon{color:var(--praxis-error, #ef4444)}.praxis-bulk-edit-dialog__alert--warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-warning, #d97706) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--warning mat-icon{color:var(--praxis-warning, #d97706)}.praxis-bulk-edit-dialog__alert--success{background:color-mix(in srgb,var(--praxis-success, #10b981) 16%,var(--card, #1e293b));border:1px solid color-mix(in srgb,var(--praxis-success, #10b981) 45%,transparent);color:var(--foreground, #f8fafc)}.praxis-bulk-edit-dialog__alert--success mat-icon{color:var(--praxis-success, #10b981)}.praxis-bulk-edit-dialog__diagnostics{margin-top:12px;padding:12px 16px;background:color-mix(in srgb,var(--praxis-text-primary, var(--foreground, currentColor)) 3%,transparent);border:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))));border-radius:8px;display:flex;flex-direction:column;gap:8px}.diagnostics-title{font-size:.875rem;font-weight:600;margin:0 0 4px;color:var(--praxis-text-primary, var(--foreground, inherit))}.diagnostic-item{display:flex;align-items:flex-start;gap:8px;font-size:.8125rem;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.diagnostic-item mat-icon{font-size:16px;width:16px;height:16px;margin-top:2px;flex-shrink:0;color:var(--praxis-primary, var(--primary, var(--md-sys-color-primary, #0284c7)))}.diagnostic-item--error{color:var(--praxis-error, #ef4444)}.diagnostic-item--error mat-icon{color:var(--praxis-error, #ef4444)}.diagnostic-content{display:flex;flex-wrap:wrap;gap:4px}.diagnostic-target{font-weight:600;color:var(--praxis-text-primary, var(--foreground, inherit))}.praxis-bulk-edit-dialog__loading{display:flex;flex-direction:column;align-items:center;padding:40px;gap:16px;color:var(--praxis-text-muted, var(--muted-foreground, inherit))}.praxis-bulk-edit-dialog__loading>p,.praxis-bulk-edit-dialog__loading-label{font-weight:600;background-image:var( --pdx-text-shimmer-gradient, linear-gradient( 105deg, var(--md-sys-color-on-surface-variant, #64748b) 0%, var(--md-sys-color-on-surface-variant, #64748b) 28%, var(--md-sys-color-primary, #4f46e5) 44%, var(--md-sys-color-tertiary, #7c3aed) 56%, var(--md-sys-color-on-surface-variant, #64748b) 72%, var(--md-sys-color-on-surface-variant, #64748b) 100% ) );background-size:260% 100%;background-position:200% 50%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:praxis-bulk-edit-loading-shimmer var(--pdx-text-shimmer-duration, 2.4s) linear infinite}@keyframes praxis-bulk-edit-loading-shimmer{0%{background-position:200% 50%}to{background-position:-60% 50%}}@media(prefers-reduced-motion:reduce),(forced-colors:active),print{.praxis-bulk-edit-dialog__loading>p,.praxis-bulk-edit-dialog__loading-label{animation:none;background-image:none;color:var( --pdx-text-shimmer-fallback-color, var(--praxis-text-primary, var(--md-sys-color-on-surface, inherit)) );-webkit-text-fill-color:currentColor}}@media(forced-colors:active){.praxis-bulk-edit-dialog__loading>p,.praxis-bulk-edit-dialog__loading-label{color:CanvasText!important;-webkit-text-fill-color:CanvasText!important}}.praxis-bulk-edit-dialog__actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:18px 24px 22px;border-top:1px solid var(--praxis-border-subtle, var(--border, var(--md-sys-color-outline-variant, rgba(148, 163, 184, .2))))}\n"] }]
|
|
2851
2851
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2852
2852
|
type: Inject,
|
|
2853
2853
|
args: [MAT_DIALOG_DATA]
|
|
@@ -5140,6 +5140,7 @@ const PRAXIS_CRUD_AUTHORING_I18N_CONFIG = {
|
|
|
5140
5140
|
'crud.authoring.filters.inlineFieldInput': 'Adicionar campo inline',
|
|
5141
5141
|
'crud.authoring.filters.inlineFieldPlaceholder': 'ex.: status, prioridade',
|
|
5142
5142
|
'crud.authoring.filters.inlineAdd': 'Adicionar campo',
|
|
5143
|
+
'crud.authoring.filters.suggestInlineFields': 'Sugerir campos principais',
|
|
5143
5144
|
'crud.authoring.filters.inlineEmpty': 'Nenhum campo inline fixado. O runtime usará a configuração padrão do schema.',
|
|
5144
5145
|
'crud.authoring.filters.availableFields': 'Sugestões de campos disponíveis',
|
|
5145
5146
|
'crud.authoring.filters.quickGroup': 'Atalhos de filtro rápido (Quick Filters)',
|
|
@@ -5148,6 +5149,10 @@ const PRAXIS_CRUD_AUTHORING_I18N_CONFIG = {
|
|
|
5148
5149
|
'crud.authoring.filters.quickMode.disabled': 'Ocultar filtros rápidos',
|
|
5149
5150
|
'crud.authoring.filters.quickMode.custom': 'Personalizar chips de filtro rápido',
|
|
5150
5151
|
'crud.authoring.filters.addQuickFilter': 'Adicionar filtro rápido',
|
|
5152
|
+
'crud.authoring.filters.generateQuickFromOptions': 'Gerar chips pelas opções de status',
|
|
5153
|
+
'crud.authoring.filters.generatedAllLabel': 'Todos',
|
|
5154
|
+
'crud.authoring.filters.generatedActiveLabel': 'Ativos',
|
|
5155
|
+
'crud.authoring.filters.generatedInactiveLabel': 'Inativos',
|
|
5151
5156
|
'crud.authoring.filters.removeQuickFilter': 'Remover filtro rápido',
|
|
5152
5157
|
'crud.authoring.filters.quickEmpty': 'Nenhum filtro rápido configurado.',
|
|
5153
5158
|
'crud.authoring.filters.quickId': 'Identificador',
|
|
@@ -5499,6 +5504,7 @@ const PRAXIS_CRUD_AUTHORING_I18N_CONFIG = {
|
|
|
5499
5504
|
'crud.authoring.filters.inlineFieldInput': 'Add inline field',
|
|
5500
5505
|
'crud.authoring.filters.inlineFieldPlaceholder': 'e.g. status, priority',
|
|
5501
5506
|
'crud.authoring.filters.inlineAdd': 'Add field',
|
|
5507
|
+
'crud.authoring.filters.suggestInlineFields': 'Suggest main filter fields',
|
|
5502
5508
|
'crud.authoring.filters.inlineEmpty': 'No pinned inline fields. Runtime will use the default schema configuration.',
|
|
5503
5509
|
'crud.authoring.filters.availableFields': 'Available field suggestions',
|
|
5504
5510
|
'crud.authoring.filters.quickGroup': 'Quick filter shortcuts (Quick Filters)',
|
|
@@ -5507,6 +5513,10 @@ const PRAXIS_CRUD_AUTHORING_I18N_CONFIG = {
|
|
|
5507
5513
|
'crud.authoring.filters.quickMode.disabled': 'Hide quick filters',
|
|
5508
5514
|
'crud.authoring.filters.quickMode.custom': 'Customize quick filter chips',
|
|
5509
5515
|
'crud.authoring.filters.addQuickFilter': 'Add quick filter',
|
|
5516
|
+
'crud.authoring.filters.generateQuickFromOptions': 'Generate chips from status options',
|
|
5517
|
+
'crud.authoring.filters.generatedAllLabel': 'All',
|
|
5518
|
+
'crud.authoring.filters.generatedActiveLabel': 'Active',
|
|
5519
|
+
'crud.authoring.filters.generatedInactiveLabel': 'Inactive',
|
|
5510
5520
|
'crud.authoring.filters.removeQuickFilter': 'Remove quick filter',
|
|
5511
5521
|
'crud.authoring.filters.quickEmpty': 'No quick filters configured.',
|
|
5512
5522
|
'crud.authoring.filters.quickId': 'Identifier',
|
|
@@ -5652,6 +5662,7 @@ class CrudMetadataEditorComponent {
|
|
|
5652
5662
|
initialDocument = signal(createCrudAuthoringDocument({}), ...(ngDevMode ? [{ debugName: "initialDocument" }] : /* istanbul ignore next */ []));
|
|
5653
5663
|
lastExternalSignature = null;
|
|
5654
5664
|
lastLoadedResourceSignature = '';
|
|
5665
|
+
lastNonEmptyResourcePath = '';
|
|
5655
5666
|
lastCatalogEndpointSignature = null;
|
|
5656
5667
|
schemaSub;
|
|
5657
5668
|
filterSchemaSub;
|
|
@@ -5783,6 +5794,25 @@ class CrudMetadataEditorComponent {
|
|
|
5783
5794
|
merged.set(name, meta);
|
|
5784
5795
|
}
|
|
5785
5796
|
}
|
|
5797
|
+
const catalogRes = this.currentCatalogResource();
|
|
5798
|
+
const catalogMetas = mapCatalogFieldsToMetadata([
|
|
5799
|
+
...(catalogRes?.responseFields ?? []),
|
|
5800
|
+
...(catalogRes?.filterFields ?? []),
|
|
5801
|
+
]);
|
|
5802
|
+
for (const catMeta of catalogMetas) {
|
|
5803
|
+
const name = String(catMeta?.name || '').trim();
|
|
5804
|
+
if (!name)
|
|
5805
|
+
continue;
|
|
5806
|
+
const existing = merged.get(name);
|
|
5807
|
+
if (!existing) {
|
|
5808
|
+
merged.set(name, catMeta);
|
|
5809
|
+
}
|
|
5810
|
+
else if ((!Array.isArray(existing.options) || existing.options.length === 0) &&
|
|
5811
|
+
Array.isArray(catMeta.options) &&
|
|
5812
|
+
catMeta.options.length > 0) {
|
|
5813
|
+
merged.set(name, { ...existing, options: catMeta.options });
|
|
5814
|
+
}
|
|
5815
|
+
}
|
|
5786
5816
|
for (const column of this.resolvedInheritedColumns()) {
|
|
5787
5817
|
const name = String(column?.field || '').trim();
|
|
5788
5818
|
if (name && !merged.has(name)) {
|
|
@@ -5790,6 +5820,7 @@ class CrudMetadataEditorComponent {
|
|
|
5790
5820
|
name,
|
|
5791
5821
|
label: String(column.header || name).trim() || name,
|
|
5792
5822
|
controlType: FieldControlType.INPUT,
|
|
5823
|
+
...(column.type ? { type: column.type } : {}),
|
|
5793
5824
|
});
|
|
5794
5825
|
}
|
|
5795
5826
|
}
|
|
@@ -5800,10 +5831,27 @@ class CrudMetadataEditorComponent {
|
|
|
5800
5831
|
name,
|
|
5801
5832
|
label: String(column.header || name).trim() || name,
|
|
5802
5833
|
controlType: FieldControlType.INPUT,
|
|
5834
|
+
...(column.type ? { type: column.type } : {}),
|
|
5803
5835
|
});
|
|
5804
5836
|
}
|
|
5805
5837
|
}
|
|
5806
|
-
return Array.from(merged.values())
|
|
5838
|
+
return Array.from(merged.values()).map((meta) => {
|
|
5839
|
+
if (Array.isArray(meta.options) && meta.options.length > 0) {
|
|
5840
|
+
return meta;
|
|
5841
|
+
}
|
|
5842
|
+
const domainVals = this.availableFieldDomainValues(meta.name);
|
|
5843
|
+
if (domainVals.length === 0) {
|
|
5844
|
+
return meta;
|
|
5845
|
+
}
|
|
5846
|
+
return {
|
|
5847
|
+
...meta,
|
|
5848
|
+
options: domainVals.map((opt) => ({
|
|
5849
|
+
value: opt.key,
|
|
5850
|
+
text: opt.label,
|
|
5851
|
+
label: opt.label,
|
|
5852
|
+
})),
|
|
5853
|
+
};
|
|
5854
|
+
});
|
|
5807
5855
|
}, ...(ngDevMode ? [{ debugName: "inlineTableFieldMetadata" }] : /* istanbul ignore next */ []));
|
|
5808
5856
|
availableResourceFieldOptions = computed(() => {
|
|
5809
5857
|
const seen = new Set();
|
|
@@ -5920,12 +5968,16 @@ class CrudMetadataEditorComponent {
|
|
|
5920
5968
|
}
|
|
5921
5969
|
extractCatalogFieldEntry(entry) {
|
|
5922
5970
|
if (typeof entry === 'string') {
|
|
5923
|
-
|
|
5971
|
+
const name = entry.trim();
|
|
5972
|
+
return { name, label: humanizeCatalogFieldName(name) || name };
|
|
5924
5973
|
}
|
|
5925
5974
|
if (entry && typeof entry === 'object') {
|
|
5926
5975
|
const record = entry;
|
|
5927
5976
|
const name = String(record.name ?? '').trim();
|
|
5928
|
-
const
|
|
5977
|
+
const rawLabel = String(record.label ?? '').trim();
|
|
5978
|
+
const label = rawLabel && rawLabel !== name
|
|
5979
|
+
? rawLabel
|
|
5980
|
+
: humanizeCatalogFieldName(name) || name;
|
|
5929
5981
|
return { name, label };
|
|
5930
5982
|
}
|
|
5931
5983
|
return { name: '', label: '' };
|
|
@@ -6231,6 +6283,11 @@ class CrudMetadataEditorComponent {
|
|
|
6231
6283
|
const parsed = parseLegacyOrCrudDocument(seed);
|
|
6232
6284
|
this.initialDocument.set(parsed);
|
|
6233
6285
|
this.currentDocument.set(parsed);
|
|
6286
|
+
this.lastNonEmptyResourcePath = String(parsed.metadata.resource?.path || '')
|
|
6287
|
+
.trim()
|
|
6288
|
+
.replace(/^\/+|\/+$/g, '')
|
|
6289
|
+
.replace(/^api\//i, '')
|
|
6290
|
+
.toLowerCase();
|
|
6234
6291
|
// Observe the supplied snapshot with its external resource, before local edits.
|
|
6235
6292
|
this.providedSnapshotOwner();
|
|
6236
6293
|
this.synchronizeSchemaScope();
|
|
@@ -6281,7 +6338,12 @@ class CrudMetadataEditorComponent {
|
|
|
6281
6338
|
return this.buildPayload();
|
|
6282
6339
|
}
|
|
6283
6340
|
reset() {
|
|
6284
|
-
this.
|
|
6341
|
+
const initial = this.initialDocument();
|
|
6342
|
+
this.currentDocument.set(initial);
|
|
6343
|
+
this.lastNonEmptyResourcePath = String(initial.metadata.resource?.path || '')
|
|
6344
|
+
.trim()
|
|
6345
|
+
.replace(/^\/+|\/+$/g, '')
|
|
6346
|
+
.toLowerCase();
|
|
6285
6347
|
this.synchronizeSchemaScope();
|
|
6286
6348
|
this.initialValueDrafts.set({});
|
|
6287
6349
|
this.userExpandedActionPanels.set({});
|
|
@@ -8180,7 +8242,7 @@ class CrudMetadataEditorComponent {
|
|
|
8180
8242
|
if (!k || seen.has(k))
|
|
8181
8243
|
continue;
|
|
8182
8244
|
seen.add(k);
|
|
8183
|
-
opts.push({ key: k, label: k });
|
|
8245
|
+
opts.push({ key: k, label: humanizeCatalogFieldName(k) || k });
|
|
8184
8246
|
}
|
|
8185
8247
|
if (opts.length > 0) {
|
|
8186
8248
|
return opts;
|
|
@@ -8249,7 +8311,7 @@ class CrudMetadataEditorComponent {
|
|
|
8249
8311
|
if (alreadyMapped) {
|
|
8250
8312
|
return;
|
|
8251
8313
|
}
|
|
8252
|
-
const variant =
|
|
8314
|
+
const variant = this.inferKpiCardVariantForDomainKey(opt.key, opt.label, idx, toneCycle);
|
|
8253
8315
|
const mappedTone = variant === 'primary'
|
|
8254
8316
|
? 'info'
|
|
8255
8317
|
: variant === 'default'
|
|
@@ -8272,6 +8334,13 @@ class CrudMetadataEditorComponent {
|
|
|
8272
8334
|
};
|
|
8273
8335
|
});
|
|
8274
8336
|
}
|
|
8337
|
+
inferKpiCardVariantForDomainKey(key, label, fallbackIndex, fallbackCycle) {
|
|
8338
|
+
const inferred = inferDomainSemanticTone(key, label);
|
|
8339
|
+
if (inferred !== 'default') {
|
|
8340
|
+
return inferred;
|
|
8341
|
+
}
|
|
8342
|
+
return fallbackCycle[fallbackIndex % fallbackCycle.length] ?? 'default';
|
|
8343
|
+
}
|
|
8275
8344
|
formatByKeyAccessor(key) {
|
|
8276
8345
|
const trimmed = String(key ?? '').trim();
|
|
8277
8346
|
if (/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(trimmed)) {
|
|
@@ -8402,6 +8471,173 @@ class CrudMetadataEditorComponent {
|
|
|
8402
8471
|
this.addInlineFilterField(field);
|
|
8403
8472
|
}
|
|
8404
8473
|
}
|
|
8474
|
+
/**
|
|
8475
|
+
* Recomenda até 4 campos de alta utilidade operacional para a barra de filtros inline
|
|
8476
|
+
* (busca textual/identificador, status/situação, categoria/tipo/opções de domínio e data/período),
|
|
8477
|
+
* excluindo chaves técnicas primárias e campos de texto longo/observação.
|
|
8478
|
+
*/
|
|
8479
|
+
recommendedInlineFilterFields() {
|
|
8480
|
+
const candidates = this.availableFilterFieldOptions();
|
|
8481
|
+
if (candidates.length === 0) {
|
|
8482
|
+
return [];
|
|
8483
|
+
}
|
|
8484
|
+
const idFieldLower = (this.resourceIdField().trim() || 'id').toLowerCase();
|
|
8485
|
+
const metaByName = new Map();
|
|
8486
|
+
for (const meta of this.inlineTableFieldMetadata()) {
|
|
8487
|
+
const key = String(meta?.name || '').trim().toLowerCase();
|
|
8488
|
+
if (key) {
|
|
8489
|
+
metaByName.set(key, meta);
|
|
8490
|
+
}
|
|
8491
|
+
}
|
|
8492
|
+
const explicitFilterFields = new Set(this.schemaResolvedFilterFieldsSignal().map((f) => f.field.toLowerCase()));
|
|
8493
|
+
for (const catField of this.currentCatalogResource()?.filterFields ?? []) {
|
|
8494
|
+
const { name } = this.extractCatalogFieldEntry(catField);
|
|
8495
|
+
if (name) {
|
|
8496
|
+
explicitFilterFields.add(name.toLowerCase());
|
|
8497
|
+
}
|
|
8498
|
+
}
|
|
8499
|
+
const scored = [];
|
|
8500
|
+
candidates.forEach((opt, index) => {
|
|
8501
|
+
const field = String(opt.field || '').trim();
|
|
8502
|
+
if (!field) {
|
|
8503
|
+
return;
|
|
8504
|
+
}
|
|
8505
|
+
const lower = field.toLowerCase();
|
|
8506
|
+
const fieldTokens = field
|
|
8507
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1_$2')
|
|
8508
|
+
.normalize('NFD')
|
|
8509
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
8510
|
+
.toLowerCase()
|
|
8511
|
+
.replace(/[^a-z0-9]+/g, '_')
|
|
8512
|
+
.split('_')
|
|
8513
|
+
.filter(Boolean);
|
|
8514
|
+
const hasFieldToken = (...candidates) => candidates.some((c) => fieldTokens.includes(c));
|
|
8515
|
+
if (lower === 'id' ||
|
|
8516
|
+
lower === idFieldLower ||
|
|
8517
|
+
lower === 'uuid' ||
|
|
8518
|
+
lower === 'guid' ||
|
|
8519
|
+
hasFieldToken('password', 'senha', 'token', 'secret', 'hash', 'avatar', 'foto', 'imagem', 'image', 'thumbnail', 'tenant', 'version', 'versao', 'rowversion', 'etag', 'deleted')) {
|
|
8520
|
+
return;
|
|
8521
|
+
}
|
|
8522
|
+
const meta = metaByName.get(lower);
|
|
8523
|
+
const controlType = String(meta?.controlType || '').toLowerCase();
|
|
8524
|
+
const rawType = String(meta?.type || '').toLowerCase();
|
|
8525
|
+
const tokens = `${field} ${opt.header || ''}`
|
|
8526
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1 $2')
|
|
8527
|
+
.normalize('NFD')
|
|
8528
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
8529
|
+
.toLowerCase();
|
|
8530
|
+
if (controlType === 'textarea' ||
|
|
8531
|
+
/\b(observac\w*|descric\w*|description|comentari\w*|notes?|detalh\w*|historic\w*|justificativa|resumo|biografia|conteudo|mensagem)\b/.test(tokens)) {
|
|
8532
|
+
return;
|
|
8533
|
+
}
|
|
8534
|
+
const hasDomainOptions = this.availableFieldDomainValues(field).length > 0 ||
|
|
8535
|
+
(Array.isArray(meta?.options) && meta.options.length > 0);
|
|
8536
|
+
const isForeignKeyIdWithoutOptions = fieldTokens.length > 1 &&
|
|
8537
|
+
fieldTokens[fieldTokens.length - 1] === 'id' &&
|
|
8538
|
+
!hasDomainOptions &&
|
|
8539
|
+
controlType !== 'select' &&
|
|
8540
|
+
controlType !== 'autocomplete' &&
|
|
8541
|
+
controlType !== 'entitylookup';
|
|
8542
|
+
if (isForeignKeyIdWithoutOptions) {
|
|
8543
|
+
return;
|
|
8544
|
+
}
|
|
8545
|
+
const isExplicitFilter = explicitFilterFields.has(lower);
|
|
8546
|
+
let role = 'other';
|
|
8547
|
+
let score = isExplicitFilter ? 45 : 30;
|
|
8548
|
+
if (/\b(nome|name|titulo|title|razao\s*social|busca|search|query|codigo|code|protocolo|matricula|sku|cpf|cnpj|documento|email)\b/.test(tokens)) {
|
|
8549
|
+
role = 'search';
|
|
8550
|
+
score = 95 + (isExplicitFilter ? 10 : 0);
|
|
8551
|
+
}
|
|
8552
|
+
else if (/\b(status|situacao|state|estado|ativo|active|enabled|stage|etapa|fase|prioridade|priority|severidade|severity)\b/.test(tokens)) {
|
|
8553
|
+
role = 'status';
|
|
8554
|
+
score = 90 + (hasDomainOptions ? 8 : 0) + (isExplicitFilter ? 5 : 0);
|
|
8555
|
+
}
|
|
8556
|
+
else if (hasDomainOptions ||
|
|
8557
|
+
controlType === 'select' ||
|
|
8558
|
+
controlType === 'multiselect' ||
|
|
8559
|
+
controlType === 'radio' ||
|
|
8560
|
+
controlType === 'toggle' ||
|
|
8561
|
+
controlType === 'checkbox' ||
|
|
8562
|
+
rawType === 'boolean' ||
|
|
8563
|
+
/\b(tipo|type|categoria|category|setor|departamento|department|uf|perfil|role|origem|source|canal|channel|grupo|group|classificac\w*|modalidade)\b/.test(tokens)) {
|
|
8564
|
+
role = 'category';
|
|
8565
|
+
score = 80 + (hasDomainOptions ? 8 : 0) + (isExplicitFilter ? 5 : 0);
|
|
8566
|
+
}
|
|
8567
|
+
else if (controlType.includes('date') ||
|
|
8568
|
+
rawType.includes('date') ||
|
|
8569
|
+
/\b(data|date|competencia|periodo|vencimento|emissao|criacao|created|updated|atualizacao|vigencia|inicio|fim)\b/.test(tokens)) {
|
|
8570
|
+
role = 'date';
|
|
8571
|
+
score = 70 + (isExplicitFilter ? 5 : 0);
|
|
8572
|
+
}
|
|
8573
|
+
scored.push({ field, role, score, index });
|
|
8574
|
+
});
|
|
8575
|
+
if (scored.length === 0) {
|
|
8576
|
+
return [];
|
|
8577
|
+
}
|
|
8578
|
+
const usedRoles = new Set();
|
|
8579
|
+
const ranked = scored
|
|
8580
|
+
.map((item) => {
|
|
8581
|
+
return item;
|
|
8582
|
+
})
|
|
8583
|
+
.sort((a, b) => b.score - a.score || a.index - b.index);
|
|
8584
|
+
const selected = [];
|
|
8585
|
+
// Pass 1: pick top candidate for each primary role to ensure balanced filter bar
|
|
8586
|
+
for (const item of ranked) {
|
|
8587
|
+
if (selected.length >= 4)
|
|
8588
|
+
break;
|
|
8589
|
+
if (item.role !== 'other' && !usedRoles.has(item.role)) {
|
|
8590
|
+
usedRoles.add(item.role);
|
|
8591
|
+
selected.push(item.field);
|
|
8592
|
+
}
|
|
8593
|
+
}
|
|
8594
|
+
// Pass 2: fill remaining slots up to 4 by highest score
|
|
8595
|
+
for (const item of ranked) {
|
|
8596
|
+
if (selected.length >= 4)
|
|
8597
|
+
break;
|
|
8598
|
+
if (!selected.includes(item.field)) {
|
|
8599
|
+
selected.push(item.field);
|
|
8600
|
+
}
|
|
8601
|
+
}
|
|
8602
|
+
return selected;
|
|
8603
|
+
}
|
|
8604
|
+
canSuggestInlineFilterFields() {
|
|
8605
|
+
if (this.isReadonly()) {
|
|
8606
|
+
return false;
|
|
8607
|
+
}
|
|
8608
|
+
const existing = this.filterBarInlineFields();
|
|
8609
|
+
if (existing.length >= 4) {
|
|
8610
|
+
return false;
|
|
8611
|
+
}
|
|
8612
|
+
const existingLower = new Set(existing.map((f) => f.toLowerCase()));
|
|
8613
|
+
const recommended = this.recommendedInlineFilterFields();
|
|
8614
|
+
if (recommended.length === 0) {
|
|
8615
|
+
return false;
|
|
8616
|
+
}
|
|
8617
|
+
return recommended.some((field) => !existingLower.has(field.toLowerCase()));
|
|
8618
|
+
}
|
|
8619
|
+
applyRecommendedInlineFilterFields() {
|
|
8620
|
+
const recommended = this.recommendedInlineFilterFields();
|
|
8621
|
+
if (recommended.length === 0) {
|
|
8622
|
+
return;
|
|
8623
|
+
}
|
|
8624
|
+
const existing = this.filterBarInlineFields();
|
|
8625
|
+
const existingLower = new Set(existing.map((f) => f.toLowerCase()));
|
|
8626
|
+
const merged = [...existing];
|
|
8627
|
+
for (const field of recommended) {
|
|
8628
|
+
if (merged.length >= 4) {
|
|
8629
|
+
break;
|
|
8630
|
+
}
|
|
8631
|
+
if (!existingLower.has(field.toLowerCase())) {
|
|
8632
|
+
existingLower.add(field.toLowerCase());
|
|
8633
|
+
merged.push(field);
|
|
8634
|
+
}
|
|
8635
|
+
}
|
|
8636
|
+
this.updateFilterBar((current) => ({
|
|
8637
|
+
...current,
|
|
8638
|
+
inlineFields: merged,
|
|
8639
|
+
}));
|
|
8640
|
+
}
|
|
8405
8641
|
setFilterBarQuickMode(mode) {
|
|
8406
8642
|
this.quickFilterExpressionDrafts.set({});
|
|
8407
8643
|
if (mode === 'inherit') {
|
|
@@ -8424,6 +8660,147 @@ class CrudMetadataEditorComponent {
|
|
|
8424
8660
|
quickFilters: [...existing],
|
|
8425
8661
|
}));
|
|
8426
8662
|
}
|
|
8663
|
+
quickFilterDomainPresetField() {
|
|
8664
|
+
const kpiField = this.kpiBandGroupByField().trim();
|
|
8665
|
+
const filterFields = this.availableFilterFieldOptions();
|
|
8666
|
+
const entityFields = this.availableEntityFieldOptions();
|
|
8667
|
+
const candidateNames = Array.from(new Set([
|
|
8668
|
+
...filterFields.map((f) => f.field),
|
|
8669
|
+
...entityFields.map((f) => f.field),
|
|
8670
|
+
]));
|
|
8671
|
+
if (kpiField &&
|
|
8672
|
+
candidateNames.some((n) => n.toLowerCase() === kpiField.toLowerCase()) &&
|
|
8673
|
+
this.availableFieldDomainValues(kpiField).length > 0) {
|
|
8674
|
+
return kpiField;
|
|
8675
|
+
}
|
|
8676
|
+
const preferredOrder = [
|
|
8677
|
+
'status',
|
|
8678
|
+
'situacao',
|
|
8679
|
+
'situacaofuncional',
|
|
8680
|
+
'ativo',
|
|
8681
|
+
'active',
|
|
8682
|
+
'enabled',
|
|
8683
|
+
'stage',
|
|
8684
|
+
'phase',
|
|
8685
|
+
'prioridade',
|
|
8686
|
+
'priority',
|
|
8687
|
+
'severidade',
|
|
8688
|
+
'severity',
|
|
8689
|
+
'tipo',
|
|
8690
|
+
'type',
|
|
8691
|
+
'categoria',
|
|
8692
|
+
'category',
|
|
8693
|
+
];
|
|
8694
|
+
for (const preferred of preferredOrder) {
|
|
8695
|
+
const matched = candidateNames.find((n) => n.toLowerCase() === preferred);
|
|
8696
|
+
if (matched && this.availableFieldDomainValues(matched).length > 0) {
|
|
8697
|
+
return matched;
|
|
8698
|
+
}
|
|
8699
|
+
}
|
|
8700
|
+
for (const name of candidateNames) {
|
|
8701
|
+
if (this.availableFieldDomainValues(name).length > 0) {
|
|
8702
|
+
return name;
|
|
8703
|
+
}
|
|
8704
|
+
}
|
|
8705
|
+
return '';
|
|
8706
|
+
}
|
|
8707
|
+
quickFilterDomainPresetOptions(preferredField) {
|
|
8708
|
+
const field = (preferredField?.trim() || this.quickFilterDomainPresetField()).trim();
|
|
8709
|
+
if (!field) {
|
|
8710
|
+
return [];
|
|
8711
|
+
}
|
|
8712
|
+
return this.availableFieldDomainValues(field);
|
|
8713
|
+
}
|
|
8714
|
+
/**
|
|
8715
|
+
* Gera atalhos de filtro rápido (`filterBar.quickFilters`) a partir das opções de domínio
|
|
8716
|
+
* (enum/status ou boolean) do campo principal de status/filtro do recurso, preservando
|
|
8717
|
+
* chips já customizados pelo autor.
|
|
8718
|
+
*/
|
|
8719
|
+
generateQuickFiltersFromDomainOptions(preferredField) {
|
|
8720
|
+
const targetField = (preferredField?.trim() || this.quickFilterDomainPresetField()).trim();
|
|
8721
|
+
const domainOptions = this.quickFilterDomainPresetOptions(targetField);
|
|
8722
|
+
if (!targetField || domainOptions.length === 0) {
|
|
8723
|
+
return;
|
|
8724
|
+
}
|
|
8725
|
+
this.quickFilterExpressionDrafts.set({});
|
|
8726
|
+
this.updateFilterBar((current) => {
|
|
8727
|
+
const existing = Array.isArray(current.quickFilters)
|
|
8728
|
+
? [...current.quickFilters]
|
|
8729
|
+
: [];
|
|
8730
|
+
const hasClearChip = existing.some((qf) => qf.id === 'all' ||
|
|
8731
|
+
(qf.filter &&
|
|
8732
|
+
typeof qf.filter === 'object' &&
|
|
8733
|
+
!Array.isArray(qf.filter) &&
|
|
8734
|
+
Object.keys(qf.filter).length === 0));
|
|
8735
|
+
const nextList = hasClearChip
|
|
8736
|
+
? [...existing]
|
|
8737
|
+
: [
|
|
8738
|
+
{
|
|
8739
|
+
id: 'all',
|
|
8740
|
+
label: this.tx('crud.authoring.filters.generatedAllLabel', 'All'),
|
|
8741
|
+
filter: {},
|
|
8742
|
+
},
|
|
8743
|
+
...existing,
|
|
8744
|
+
];
|
|
8745
|
+
const isBooleanPair = domainOptions.length === 2 &&
|
|
8746
|
+
domainOptions.every((opt) => /^(true|false)$/i.test(opt.key));
|
|
8747
|
+
const itemsToGenerate = isBooleanPair
|
|
8748
|
+
? [
|
|
8749
|
+
{
|
|
8750
|
+
id: 'active',
|
|
8751
|
+
label: this.tx('crud.authoring.filters.generatedActiveLabel', 'Active'),
|
|
8752
|
+
rawVal: 'true',
|
|
8753
|
+
},
|
|
8754
|
+
{
|
|
8755
|
+
id: 'inactive',
|
|
8756
|
+
label: this.tx('crud.authoring.filters.generatedInactiveLabel', 'Inactive'),
|
|
8757
|
+
rawVal: 'false',
|
|
8758
|
+
},
|
|
8759
|
+
]
|
|
8760
|
+
: domainOptions.map((opt) => ({
|
|
8761
|
+
id: opt.key
|
|
8762
|
+
.toLowerCase()
|
|
8763
|
+
.normalize('NFD')
|
|
8764
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
8765
|
+
.replace(/[^a-z0-9_-]+/g, '-')
|
|
8766
|
+
.replace(/^-+|-+$/g, ''),
|
|
8767
|
+
label: opt.label && opt.label !== opt.key
|
|
8768
|
+
? opt.label
|
|
8769
|
+
: humanizeCatalogFieldName(opt.key) || opt.key,
|
|
8770
|
+
rawVal: opt.key,
|
|
8771
|
+
}));
|
|
8772
|
+
for (const item of itemsToGenerate) {
|
|
8773
|
+
const coercedVal = coerceFilterScalarValue(item.rawVal);
|
|
8774
|
+
const alreadyMapped = nextList.some((qf) => {
|
|
8775
|
+
if (qf.id === item.id || qf.id === `qf-${item.id}`) {
|
|
8776
|
+
return true;
|
|
8777
|
+
}
|
|
8778
|
+
if (qf.filter &&
|
|
8779
|
+
typeof qf.filter === 'object' &&
|
|
8780
|
+
!Array.isArray(qf.filter)) {
|
|
8781
|
+
const filterRecord = qf.filter;
|
|
8782
|
+
if (Object.prototype.hasOwnProperty.call(filterRecord, targetField) &&
|
|
8783
|
+
String(filterRecord[targetField]) === String(coercedVal)) {
|
|
8784
|
+
return true;
|
|
8785
|
+
}
|
|
8786
|
+
}
|
|
8787
|
+
return false;
|
|
8788
|
+
});
|
|
8789
|
+
if (alreadyMapped) {
|
|
8790
|
+
continue;
|
|
8791
|
+
}
|
|
8792
|
+
nextList.push({
|
|
8793
|
+
id: item.id || `qf-${nextList.length + 1}`,
|
|
8794
|
+
label: item.label,
|
|
8795
|
+
filter: { [targetField]: coercedVal },
|
|
8796
|
+
});
|
|
8797
|
+
}
|
|
8798
|
+
return {
|
|
8799
|
+
...current,
|
|
8800
|
+
quickFilters: nextList,
|
|
8801
|
+
};
|
|
8802
|
+
});
|
|
8803
|
+
}
|
|
8427
8804
|
addQuickFilter() {
|
|
8428
8805
|
const list = [...this.filterBarQuickFilters()];
|
|
8429
8806
|
list.push({
|
|
@@ -8624,13 +9001,114 @@ class CrudMetadataEditorComponent {
|
|
|
8624
9001
|
return fallback;
|
|
8625
9002
|
}
|
|
8626
9003
|
setResourceField(field, value) {
|
|
8627
|
-
this.updateMetadata((metadata) =>
|
|
8628
|
-
|
|
8629
|
-
resource
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
9004
|
+
this.updateMetadata((metadata) => {
|
|
9005
|
+
const nextValue = typeof value === 'string' ? value : value ?? undefined;
|
|
9006
|
+
const currentMetadataPath = String(metadata.resource?.path || '')
|
|
9007
|
+
.trim()
|
|
9008
|
+
.replace(/^\/+|\/+$/g, '')
|
|
9009
|
+
.replace(/^api\//i, '')
|
|
9010
|
+
.toLowerCase();
|
|
9011
|
+
const prevPath = currentMetadataPath || this.lastNonEmptyResourcePath;
|
|
9012
|
+
const nextPath = field === 'path'
|
|
9013
|
+
? String(nextValue || '')
|
|
9014
|
+
.trim()
|
|
9015
|
+
.replace(/^\/+|\/+$/g, '')
|
|
9016
|
+
.replace(/^api\//i, '')
|
|
9017
|
+
.toLowerCase()
|
|
9018
|
+
: prevPath;
|
|
9019
|
+
const isSwitchingResourcePath = field === 'path' && prevPath.length > 0 && nextPath.length > 0 && prevPath !== nextPath;
|
|
9020
|
+
if (field === 'path' && nextPath.length > 0) {
|
|
9021
|
+
this.lastNonEmptyResourcePath = nextPath;
|
|
9022
|
+
}
|
|
9023
|
+
return {
|
|
9024
|
+
...metadata,
|
|
9025
|
+
resource: {
|
|
9026
|
+
...(metadata.resource || { path: '' }),
|
|
9027
|
+
...(isSwitchingResourcePath ? { schemaPath: undefined } : {}),
|
|
9028
|
+
[field]: nextValue,
|
|
9029
|
+
},
|
|
9030
|
+
...(isSwitchingResourcePath
|
|
9031
|
+
? {
|
|
9032
|
+
filterCriteria: undefined,
|
|
9033
|
+
queryContext: undefined,
|
|
9034
|
+
...(metadata.filterBar
|
|
9035
|
+
? {
|
|
9036
|
+
filterBar: {
|
|
9037
|
+
...metadata.filterBar,
|
|
9038
|
+
inlineFields: [],
|
|
9039
|
+
quickFilters: undefined,
|
|
9040
|
+
},
|
|
9041
|
+
}
|
|
9042
|
+
: {}),
|
|
9043
|
+
table: metadata.table
|
|
9044
|
+
? {
|
|
9045
|
+
...metadata.table,
|
|
9046
|
+
columns: [],
|
|
9047
|
+
columnProjection: undefined,
|
|
9048
|
+
...(metadata.table.toolbar?.filters
|
|
9049
|
+
? {
|
|
9050
|
+
toolbar: {
|
|
9051
|
+
...metadata.table.toolbar,
|
|
9052
|
+
filters: {
|
|
9053
|
+
...metadata.table.toolbar.filters,
|
|
9054
|
+
quickFilters: undefined,
|
|
9055
|
+
},
|
|
9056
|
+
},
|
|
9057
|
+
}
|
|
9058
|
+
: {}),
|
|
9059
|
+
...(metadata.table.behavior
|
|
9060
|
+
? {
|
|
9061
|
+
behavior: {
|
|
9062
|
+
...metadata.table.behavior,
|
|
9063
|
+
...(metadata.table.behavior.sorting
|
|
9064
|
+
? {
|
|
9065
|
+
sorting: {
|
|
9066
|
+
...metadata.table.behavior.sorting,
|
|
9067
|
+
defaultSort: undefined,
|
|
9068
|
+
},
|
|
9069
|
+
}
|
|
9070
|
+
: {}),
|
|
9071
|
+
...(metadata.table.behavior.filtering?.advancedFilters
|
|
9072
|
+
? {
|
|
9073
|
+
filtering: {
|
|
9074
|
+
...metadata.table.behavior.filtering,
|
|
9075
|
+
advancedFilters: {
|
|
9076
|
+
...metadata.table.behavior.filtering.advancedFilters,
|
|
9077
|
+
schemaUrl: undefined,
|
|
9078
|
+
...(metadata.table.behavior.filtering.advancedFilters.settings
|
|
9079
|
+
? {
|
|
9080
|
+
settings: {
|
|
9081
|
+
...metadata.table.behavior.filtering.advancedFilters.settings,
|
|
9082
|
+
alwaysVisibleFields: undefined,
|
|
9083
|
+
selectedFieldIds: undefined,
|
|
9084
|
+
alwaysVisibleFieldMetadataOverrides: undefined,
|
|
9085
|
+
},
|
|
9086
|
+
}
|
|
9087
|
+
: {}),
|
|
9088
|
+
},
|
|
9089
|
+
},
|
|
9090
|
+
}
|
|
9091
|
+
: {}),
|
|
9092
|
+
},
|
|
9093
|
+
}
|
|
9094
|
+
: {}),
|
|
9095
|
+
...(metadata.table.meta
|
|
9096
|
+
? {
|
|
9097
|
+
meta: {
|
|
9098
|
+
...metadata.table.meta,
|
|
9099
|
+
idField: undefined,
|
|
9100
|
+
schemaId: undefined,
|
|
9101
|
+
serverHash: undefined,
|
|
9102
|
+
resourcePath: undefined,
|
|
9103
|
+
},
|
|
9104
|
+
}
|
|
9105
|
+
: {}),
|
|
9106
|
+
}
|
|
9107
|
+
: { columns: [] },
|
|
9108
|
+
}
|
|
9109
|
+
: {}),
|
|
9110
|
+
};
|
|
9111
|
+
});
|
|
8634
9112
|
}
|
|
8635
9113
|
setPageHeaderField(field, value) {
|
|
8636
9114
|
const strVal = typeof value === 'string' ? value : String(value ?? '');
|
|
@@ -9030,8 +9508,11 @@ class CrudMetadataEditorComponent {
|
|
|
9030
9508
|
if (!rawKey || seen.has(rawKey))
|
|
9031
9509
|
continue;
|
|
9032
9510
|
seen.add(rawKey);
|
|
9033
|
-
const rawLabel = String(opt?.value ?? opt?.label ??
|
|
9034
|
-
|
|
9511
|
+
const rawLabel = String(opt?.value ?? opt?.label ?? '').trim();
|
|
9512
|
+
const label = rawLabel && rawLabel !== rawKey
|
|
9513
|
+
? rawLabel
|
|
9514
|
+
: humanizeCatalogFieldName(rawKey) || rawKey;
|
|
9515
|
+
opts.push({ key: rawKey, label });
|
|
9035
9516
|
}
|
|
9036
9517
|
if (opts.length > 0) {
|
|
9037
9518
|
map[name] = opts;
|
|
@@ -9464,62 +9945,63 @@ class CrudMetadataEditorComponent {
|
|
|
9464
9945
|
{{ sectionStatusLabel('connection') }}
|
|
9465
9946
|
</span>
|
|
9466
9947
|
</div>
|
|
9467
|
-
<
|
|
9468
|
-
|
|
9469
|
-
|
|
9470
|
-
|
|
9471
|
-
|
|
9472
|
-
|
|
9473
|
-
|
|
9474
|
-
|
|
9475
|
-
|
|
9476
|
-
|
|
9477
|
-
|
|
9478
|
-
|
|
9479
|
-
|
|
9480
|
-
|
|
9481
|
-
|
|
9482
|
-
|
|
9483
|
-
|
|
9484
|
-
|
|
9485
|
-
|
|
9486
|
-
|
|
9487
|
-
|
|
9488
|
-
|
|
9489
|
-
|
|
9490
|
-
|
|
9491
|
-
|
|
9492
|
-
|
|
9493
|
-
|
|
9494
|
-
|
|
9495
|
-
|
|
9496
|
-
|
|
9497
|
-
|
|
9498
|
-
|
|
9499
|
-
|
|
9948
|
+
<praxis-resource-quick-connect
|
|
9949
|
+
class="editor-field--full"
|
|
9950
|
+
data-testid="crud-editor-resource-path"
|
|
9951
|
+
[resourcePath]="resourcePath()"
|
|
9952
|
+
(resourcePathChange)="setResourceField('path', $event)"
|
|
9953
|
+
(resourceSelected)="onCatalogResourceSelected($event)"
|
|
9954
|
+
[endpointKey]="resourceEndpointKeyValue()"
|
|
9955
|
+
[apiUrlEntry]="resourceApiUrlEntry()"
|
|
9956
|
+
intent="crud"
|
|
9957
|
+
[label]="tx('crud.authoring.connection.resourcePath', 'Resource')"
|
|
9958
|
+
[disabled]="isReadonly()"
|
|
9959
|
+
>
|
|
9960
|
+
<div class="editor-grid editor-grid--2col">
|
|
9961
|
+
<mat-form-field appearance="outline">
|
|
9962
|
+
<mat-label>{{ tx('crud.authoring.connection.idField', 'Identifier field') }}</mat-label>
|
|
9963
|
+
<input
|
|
9964
|
+
matInput
|
|
9965
|
+
data-testid="crud-editor-resource-idField"
|
|
9966
|
+
[matAutocomplete]="idFieldAuto"
|
|
9967
|
+
[ngModel]="resourceIdField()"
|
|
9968
|
+
(ngModelChange)="setResourceField('idField', $event)"
|
|
9969
|
+
(focus)="ensureCatalogResourcesLoaded()"
|
|
9970
|
+
[disabled]="isReadonly()"
|
|
9971
|
+
/>
|
|
9972
|
+
<mat-autocomplete #idFieldAuto="matAutocomplete">
|
|
9973
|
+
@for (item of filteredIdFieldOptions(); track item.field) {
|
|
9974
|
+
<mat-option [value]="item.field">
|
|
9975
|
+
<div class="endpoint-option-row">
|
|
9976
|
+
<div class="endpoint-option-copy">
|
|
9977
|
+
<span class="endpoint-option-path">{{ item.field }}</span>
|
|
9978
|
+
@if (item.header && item.header !== item.field) {
|
|
9979
|
+
<span class="endpoint-option-meta">{{ item.header }}</span>
|
|
9980
|
+
}
|
|
9981
|
+
</div>
|
|
9500
9982
|
</div>
|
|
9501
|
-
</
|
|
9502
|
-
|
|
9503
|
-
|
|
9504
|
-
</mat-
|
|
9505
|
-
|
|
9506
|
-
|
|
9507
|
-
|
|
9508
|
-
|
|
9509
|
-
|
|
9510
|
-
|
|
9511
|
-
|
|
9512
|
-
|
|
9513
|
-
|
|
9514
|
-
|
|
9515
|
-
|
|
9516
|
-
|
|
9517
|
-
|
|
9518
|
-
|
|
9519
|
-
|
|
9520
|
-
</mat-
|
|
9521
|
-
</
|
|
9522
|
-
</
|
|
9983
|
+
</mat-option>
|
|
9984
|
+
}
|
|
9985
|
+
</mat-autocomplete>
|
|
9986
|
+
</mat-form-field>
|
|
9987
|
+
<mat-form-field appearance="outline">
|
|
9988
|
+
<mat-label>{{ tx('crud.authoring.connection.endpointKey', 'Endpoint/API') }}</mat-label>
|
|
9989
|
+
<input
|
|
9990
|
+
matInput
|
|
9991
|
+
data-testid="crud-editor-resource-endpointKey"
|
|
9992
|
+
[matAutocomplete]="endpointKeyAuto"
|
|
9993
|
+
[ngModel]="resourceEndpointKey()"
|
|
9994
|
+
(ngModelChange)="setResourceField('endpointKey', $event)"
|
|
9995
|
+
[disabled]="isReadonly()"
|
|
9996
|
+
/>
|
|
9997
|
+
<mat-autocomplete #endpointKeyAuto="matAutocomplete">
|
|
9998
|
+
@for (key of filteredResourceEndpointKeys(); track key) {
|
|
9999
|
+
<mat-option [value]="key">{{ key }}</mat-option>
|
|
10000
|
+
}
|
|
10001
|
+
</mat-autocomplete>
|
|
10002
|
+
</mat-form-field>
|
|
10003
|
+
</div>
|
|
10004
|
+
</praxis-resource-quick-connect>
|
|
9523
10005
|
|
|
9524
10006
|
@if (hasReadOnlyMutatingActionsWarning()) {
|
|
9525
10007
|
<div class="editor-focus" data-testid="crud-editor-readonly-warning">
|
|
@@ -9563,7 +10045,8 @@ class CrudMetadataEditorComponent {
|
|
|
9563
10045
|
</mat-form-field>
|
|
9564
10046
|
<mat-form-field appearance="outline">
|
|
9565
10047
|
<mat-label>{{ tx('crud.authoring.connection.pageDomainIcon', 'Ícone do domínio') }}</mat-label>
|
|
9566
|
-
<
|
|
10048
|
+
<mat-icon matPrefix [praxisIcon]="pageHeaderDomainIcon() || currentCatalogResource()?.icon || 'domain'"></mat-icon>
|
|
10049
|
+
<input matInput data-testid="crud-editor-page-domain-icon" [placeholder]="currentCatalogResource()?.icon || ''" [ngModel]="pageHeaderDomainIcon()" (ngModelChange)="setPageHeaderField('domainIcon', $event)" [disabled]="isReadonly()" />
|
|
9567
10050
|
</mat-form-field>
|
|
9568
10051
|
<mat-form-field appearance="outline">
|
|
9569
10052
|
<mat-label>{{ tx('crud.authoring.connection.pageDomainTone', 'Tom do badge') }}</mat-label>
|
|
@@ -10489,6 +10972,17 @@ class CrudMetadataEditorComponent {
|
|
|
10489
10972
|
>
|
|
10490
10973
|
{{ tx('crud.authoring.filters.inlineAdd', 'Add field') }}
|
|
10491
10974
|
</button>
|
|
10975
|
+
@if (canSuggestInlineFilterFields()) {
|
|
10976
|
+
<button
|
|
10977
|
+
mat-stroked-button
|
|
10978
|
+
type="button"
|
|
10979
|
+
data-testid="crud-filterbar-smart-suggest-inline-btn"
|
|
10980
|
+
(click)="applyRecommendedInlineFilterFields()"
|
|
10981
|
+
[disabled]="isReadonly()"
|
|
10982
|
+
>
|
|
10983
|
+
{{ tx('crud.authoring.filters.suggestInlineFields', 'Suggest main filter fields') }}
|
|
10984
|
+
</button>
|
|
10985
|
+
}
|
|
10492
10986
|
</div>
|
|
10493
10987
|
|
|
10494
10988
|
@if (filterBarInlineFields().length === 0) {
|
|
@@ -10555,6 +11049,18 @@ class CrudMetadataEditorComponent {
|
|
|
10555
11049
|
</mat-select>
|
|
10556
11050
|
</mat-form-field>
|
|
10557
11051
|
|
|
11052
|
+
@if (quickFilterDomainPresetOptions().length > 0) {
|
|
11053
|
+
<button
|
|
11054
|
+
mat-stroked-button
|
|
11055
|
+
type="button"
|
|
11056
|
+
data-testid="crud-filterbar-generate-quick-btn"
|
|
11057
|
+
(click)="generateQuickFiltersFromDomainOptions()"
|
|
11058
|
+
[disabled]="isReadonly()"
|
|
11059
|
+
>
|
|
11060
|
+
{{ tx('crud.authoring.filters.generateQuickFromOptions', 'Generate chips from status options') }}
|
|
11061
|
+
</button>
|
|
11062
|
+
}
|
|
11063
|
+
|
|
10558
11064
|
@if (filterBarQuickMode() === 'custom') {
|
|
10559
11065
|
<button
|
|
10560
11066
|
mat-stroked-button
|
|
@@ -10867,7 +11373,7 @@ class CrudMetadataEditorComponent {
|
|
|
10867
11373
|
</mat-tab>
|
|
10868
11374
|
</mat-tab-group>
|
|
10869
11375
|
</section>
|
|
10870
|
-
`, isInline: true, styles: [":host{display:block;container-type:inline-size;min-width:0;color:var(--pfx-settings-panel-fg, var(--md-sys-color-on-surface,#1a1b20))}.editor-shell{display:grid;gap:10px}.editor-header{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.editor-header__titles{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}:host-context(.settings-panel) .editor-header h2{display:none}.editor-diagnostics-disclosure{border:1px solid var(--pfx-settings-panel-border, color-mix(in srgb,var(--md-sys-color-outline,#c5c7ce) 60%, transparent));border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low,#fafbfd) 92%,transparent);padding:8px 12px}.editor-diagnostics-summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--pfx-settings-panel-fg, var(--md-sys-color-on-surface,#1a1b20))}.editor-diagnostics-summary::-webkit-details-marker{display:none}.editor-diagnostics-summary__hint{color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67));margin-left:auto}.editor-diagnostics-summary:after{content:\"\\25b8\";font-size:13px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67));transition:transform .14s ease;flex:0 0 auto}.editor-diagnostics-disclosure[open] .editor-diagnostics-summary:after{transform:rotate(90deg)}.editor-diagnostics-disclosure__body{display:grid;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--pfx-settings-panel-border, color-mix(in srgb,var(--md-sys-color-outline,#c5c7ce) 50%, transparent))}.editor-overview{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.editor-health-map{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.editor-health-card{display:grid;gap:4px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}.editor-health-card--warn{background:color-mix(in srgb,var(--md-sys-color-tertiary-container,#f8e08e) 78%,transparent);color:var(--md-sys-color-on-tertiary-container,#261900)}.editor-health-card--error{background:color-mix(in srgb,var(--md-sys-color-error-container,#f9dedc) 82%,transparent);color:var(--md-sys-color-on-error-container,#410e0b)}.editor-focus{display:flex;gap:10px;align-items:center;padding:8px 12px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}.editor-focus--success{background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 70%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38)}.editor-focus-chip{padding:4px 10px;border-radius:999px;font-size:12px;background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 70%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38);white-space:nowrap}.editor-focus-chip--warn{background:color-mix(in srgb,var(--md-sys-color-tertiary-container,#f8e08e) 78%,transparent);color:var(--md-sys-color-on-tertiary-container,#261900)}.editor-focus-chip--error{background:color-mix(in srgb,var(--md-sys-color-error-container,#f9dedc) 82%,transparent);color:var(--md-sys-color-on-error-container,#410e0b)}.editor-focus-copy{display:grid;gap:2px;font-size:13px}.editor-focus-copy p{margin:0;font-size:12px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67))}.editor-tabs{display:flex;flex-direction:column;min-width:0}.editor-tabs .mat-mdc-tab{min-width:104px}.editor-tabs ::ng-deep .mdc-tab__content{gap:8px}.editor-tabs ::ng-deep .mdc-tab__text-label{display:inline-flex;align-items:center;gap:8px}.editor-tabs ::ng-deep .mat-mdc-tab-body-wrapper,.editor-tabs ::ng-deep .mat-mdc-tab-group-container{flex:1 1 auto;min-height:0}.editor-tabs ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}.tab-status-dot{width:8px;height:8px;border-radius:999px;background:var(--md-sys-color-primary,#1263b4);flex:0 0 auto}.tab-status-dot--warn{background:var(--md-sys-color-tertiary,#7d5700)}.tab-status-dot--error{background:var(--md-sys-color-error,#b3261e)}.tab-content{display:grid;gap:14px;min-width:0;padding:12px 2px 4px;box-sizing:border-box}.editor-overview-card{display:grid;gap:3px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}.editor-overview-card--warn{background:color-mix(in srgb,var(--md-sys-color-tertiary-container,#f8e08e) 78%,transparent);color:var(--md-sys-color-on-tertiary-container,#261900)}.editor-overview-card--error{background:color-mix(in srgb,var(--md-sys-color-error-container,#f9dedc) 82%,transparent);color:var(--md-sys-color-on-error-container,#410e0b)}.editor-overview-label{font-size:11px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67))}.editor-overview-value{font-size:13px;line-height:1.25;overflow-wrap:anywhere}.editor-overview-note{margin:0;font-size:11px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67))}.editor-header h2,.editor-card h3{margin:0;font-size:1.05rem}.editor-header p{margin:0;font-size:12px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67))}.editor-chip{padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-primary,#1263b4) 12%,transparent);font-size:12px}.editor-card{display:grid;gap:14px;padding:16px;border-radius:16px;border:1px solid var(--pfx-settings-panel-border, color-mix(in srgb,var(--md-sys-color-outline,#c5c7ce) 70%, transparent));background:var(--pfx-settings-panel-surface, var(--md-sys-color-surface))}.editor-section-header{display:flex;justify-content:space-between;gap:12px;align-items:start;flex-wrap:wrap}.editor-toolbar-row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.editor-inline-grow{flex:1 1 240px}.inline-actions-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-chip{display:inline-flex;align-items:center;gap:6px}.chip-remove-btn{border:0;background:transparent;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;color:inherit}.kpi-cards-list{display:grid;gap:12px}.field-suggestions-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:2px}.field-suggestion-chip{appearance:none;display:inline-flex;align-items:center;min-height:26px;padding:3px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant,#c5c7ce) 80%,transparent);background:color-mix(in srgb,var(--md-sys-color-surface-container-low,#fafbfd) 88%,transparent);color:var(--md-sys-color-on-surface,#1a1b20);font-family:var(--md-sys-typescale-code-font, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);font-size:11.5px;line-height:1.2;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.field-suggestion-chip:hover:not(:disabled){border-color:color-mix(in srgb,var(--md-sys-color-primary,#1263b4) 52%,transparent);background:color-mix(in srgb,var(--md-sys-color-primary,#1263b4) 12%,var(--md-sys-color-surface-container-low,#fafbfd));color:var(--md-sys-color-primary,#1263b4)}.field-suggestion-chip:disabled{opacity:.5;cursor:not-allowed}.inherited-columns-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 55%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38)}.inherited-columns-banner__copy{display:grid;gap:4px}.inherited-columns-banner__title-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.editor-grid{display:grid;gap:12px;align-items:start;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.editor-grid--compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.editor-grid--2col{grid-template-columns:repeat(2,minmax(240px,1fr))}.editor-grid--3col{grid-template-columns:repeat(3,minmax(200px,1fr))}.editor-grid--4col{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.editor-grid--1-2{grid-template-columns:minmax(180px,1fr) minmax(320px,2fr)}.editor-field--full{grid-column:1 / -1}.editor-toggles{display:grid;gap:10px;align-items:start;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}@container (max-width: 720px){.editor-focus{flex-direction:column;align-items:flex-start}.editor-grid,.editor-grid--compact,.editor-grid--2col,.editor-grid--3col,.editor-grid--4col,.editor-grid--1-2,.editor-toggles{grid-template-columns:1fr}}.editor-actions,.action-grid{display:grid;gap:14px}.action-summary-strip{display:flex;flex-wrap:wrap;gap:8px}.action-summary-chip{padding:6px 10px;border-radius:999px;font-size:12px;background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 70%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38)}.action-summary-chip--warn{background:color-mix(in srgb,var(--md-sys-color-tertiary-container,#f8e08e) 78%,transparent);color:var(--md-sys-color-on-tertiary-container,#261900)}.action-summary-chip--error{background:color-mix(in srgb,var(--md-sys-color-error-container,#f9dedc) 82%,transparent);color:var(--md-sys-color-on-error-container,#410e0b)}.action-group{display:grid;gap:10px;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 88%,transparent)}.action-group--advanced{background:color-mix(in srgb,var(--md-sys-color-surface-container,#f5f7fb) 90%,transparent)}.action-group__header{display:grid;gap:4px}.action-subgroup{display:grid;gap:10px;padding:10px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low,#fafbfd) 92%,transparent)}.action-subgroup__header{display:grid;gap:4px}.action-param-list{display:grid;gap:12px}.action-param-row{display:grid;gap:8px}.action-advanced-panel{border:1px solid color-mix(in srgb,var(--md-sys-color-outline,#c5c7ce) 65%,transparent);border-radius:16px}.editor-section-note{margin:0;color:var(--md-sys-color-on-surface-variant,#5a5d67)}.diagnostics-groups{display:grid;gap:12px}.diagnostics-group{display:grid;gap:10px;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}.diagnostics{display:grid;gap:8px;margin:0;padding-left:18px}.diagnostics .error{color:var(--md-sys-color-error,#b3261e)}.endpoint-option-row{display:flex;align-items:center;gap:10px;padding:2px 0;line-height:1.25}.endpoint-option-method{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:6px;background:color-mix(in srgb,var(--md-sys-color-primary,#1263b4) 14%,transparent);color:var(--md-sys-color-primary,#1263b4);flex-shrink:0}.endpoint-option-copy{display:flex;flex-direction:column;min-width:0;flex:1}.endpoint-option-path{font-size:12.5px;font-weight:600;font-family:var(--praxis-font-mono, monospace);color:var(--md-sys-color-on-surface,#1a1c1e);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.endpoint-option-meta{font-size:11px;color:var(--md-sys-color-on-surface-variant,#5a5d67);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.endpoint-option-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 75%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38);flex-shrink:0}pre{margin:0;overflow:auto;max-height:320px;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i6$1.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i6$1.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i6$1.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i6$1.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i9.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "directive", type: i10.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i10.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i10.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: PraxisKpiBandComponent, selector: "praxis-kpi-band", inputs: ["config", "dataContext", "isInteractiveHost", "activeFilter", "endpointKey", "apiUrlEntry"], outputs: ["cardClick", "statsLoaded", "statsError", "refreshClick"] }, { kind: "component", type: PraxisTableInlineAuthoringEditorComponent, selector: "praxis-table-inline-authoring-editor", inputs: ["config", "fieldMetadata", "readonly"], outputs: ["configChange"] }, { kind: "component", type: ResourceQuickConnectComponent, selector: "praxis-resource-quick-connect", inputs: ["resourcePath", "endpointKey", "apiUrlEntry", "intent", "resources", "label", "placeholder", "hint", "disabled"], outputs: ["resourcePathChange", "resourceSelected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11376
|
+
`, isInline: true, styles: [":host{display:block;container-type:inline-size;min-width:0;color:var(--pfx-settings-panel-fg, var(--md-sys-color-on-surface,#1a1b20))}.editor-shell{display:grid;gap:10px}.editor-header{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.editor-header__titles{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}:host-context(.settings-panel) .editor-header h2{display:none}.editor-diagnostics-disclosure{border:1px solid var(--pfx-settings-panel-border, color-mix(in srgb,var(--md-sys-color-outline,#c5c7ce) 60%, transparent));border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low,#fafbfd) 92%,transparent);padding:8px 12px}.editor-diagnostics-summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--pfx-settings-panel-fg, var(--md-sys-color-on-surface,#1a1b20))}.editor-diagnostics-summary::-webkit-details-marker{display:none}.editor-diagnostics-summary__hint{color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67));margin-left:auto}.editor-diagnostics-summary:after{content:\"\\25b8\";font-size:13px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67));transition:transform .14s ease;flex:0 0 auto}.editor-diagnostics-disclosure[open] .editor-diagnostics-summary:after{transform:rotate(90deg)}.editor-diagnostics-disclosure__body{display:grid;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--pfx-settings-panel-border, color-mix(in srgb,var(--md-sys-color-outline,#c5c7ce) 50%, transparent))}.editor-overview{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.editor-health-map{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.editor-health-card{display:grid;gap:4px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}.editor-health-card--warn{background:color-mix(in srgb,var(--md-sys-color-tertiary-container,#f8e08e) 78%,transparent);color:var(--md-sys-color-on-tertiary-container,#261900)}.editor-health-card--error{background:color-mix(in srgb,var(--md-sys-color-error-container,#f9dedc) 82%,transparent);color:var(--md-sys-color-on-error-container,#410e0b)}.editor-focus{display:flex;gap:10px;align-items:center;padding:8px 12px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}.editor-focus--success{background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 70%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38)}.editor-focus-chip{padding:4px 10px;border-radius:999px;font-size:12px;background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 70%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38);white-space:nowrap}.editor-focus-chip--warn{background:color-mix(in srgb,var(--md-sys-color-tertiary-container,#f8e08e) 78%,transparent);color:var(--md-sys-color-on-tertiary-container,#261900)}.editor-focus-chip--error{background:color-mix(in srgb,var(--md-sys-color-error-container,#f9dedc) 82%,transparent);color:var(--md-sys-color-on-error-container,#410e0b)}.editor-focus-copy{display:grid;gap:2px;font-size:13px}.editor-focus-copy p{margin:0;font-size:12px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67))}.editor-tabs{display:flex;flex-direction:column;min-width:0}.editor-tabs .mat-mdc-tab{min-width:104px}.editor-tabs ::ng-deep .mdc-tab__content{gap:8px}.editor-tabs ::ng-deep .mdc-tab__text-label{display:inline-flex;align-items:center;gap:8px}.editor-tabs ::ng-deep .mat-mdc-tab-body-wrapper,.editor-tabs ::ng-deep .mat-mdc-tab-group-container{flex:1 1 auto;min-height:0}.editor-tabs ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}.tab-status-dot{width:8px;height:8px;border-radius:999px;background:var(--md-sys-color-primary,#1263b4);flex:0 0 auto}.tab-status-dot--warn{background:var(--md-sys-color-tertiary,#7d5700)}.tab-status-dot--error{background:var(--md-sys-color-error,#b3261e)}.tab-content{display:grid;gap:14px;min-width:0;padding:12px 2px 4px;box-sizing:border-box}.editor-overview-card{display:grid;gap:3px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}.editor-overview-card--warn{background:color-mix(in srgb,var(--md-sys-color-tertiary-container,#f8e08e) 78%,transparent);color:var(--md-sys-color-on-tertiary-container,#261900)}.editor-overview-card--error{background:color-mix(in srgb,var(--md-sys-color-error-container,#f9dedc) 82%,transparent);color:var(--md-sys-color-on-error-container,#410e0b)}.editor-overview-label{font-size:11px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67))}.editor-overview-value{font-size:13px;line-height:1.25;overflow-wrap:anywhere}.editor-overview-note{margin:0;font-size:11px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67))}.editor-header h2,.editor-card h3{margin:0;font-size:1.05rem}.editor-header p{margin:0;font-size:12px;color:var(--pfx-settings-panel-muted, var(--md-sys-color-on-surface-variant,#5a5d67))}.editor-chip{padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-primary,#1263b4) 12%,transparent);font-size:12px}.editor-card{display:grid;gap:14px;padding:16px;border-radius:16px;border:1px solid var(--pfx-settings-panel-border, color-mix(in srgb,var(--md-sys-color-outline,#c5c7ce) 70%, transparent));background:var(--pfx-settings-panel-surface, var(--md-sys-color-surface))}.editor-section-header{display:flex;justify-content:space-between;gap:12px;align-items:start;flex-wrap:wrap}.editor-toolbar-row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.editor-inline-grow{flex:1 1 240px}.inline-actions-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-chip{display:inline-flex;align-items:center;gap:6px}.chip-remove-btn{border:0;background:transparent;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;color:inherit}.kpi-cards-list{display:grid;gap:12px}.field-suggestions-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:2px}.field-suggestion-chip{appearance:none;display:inline-flex;align-items:center;min-height:26px;padding:3px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant,#c5c7ce) 80%,transparent);background:color-mix(in srgb,var(--md-sys-color-surface-container-low,#fafbfd) 88%,transparent);color:var(--md-sys-color-on-surface,#1a1b20);font-family:var(--md-sys-typescale-code-font, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);font-size:11.5px;line-height:1.2;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.field-suggestion-chip:hover:not(:disabled){border-color:color-mix(in srgb,var(--md-sys-color-primary,#1263b4) 52%,transparent);background:color-mix(in srgb,var(--md-sys-color-primary,#1263b4) 12%,var(--md-sys-color-surface-container-low,#fafbfd));color:var(--md-sys-color-primary,#1263b4)}.field-suggestion-chip:disabled{opacity:.5;cursor:not-allowed}.inherited-columns-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 55%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38)}.inherited-columns-banner__copy{display:grid;gap:4px}.inherited-columns-banner__title-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.editor-grid{display:grid;gap:12px;align-items:start;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.editor-grid--compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.editor-grid--2col{grid-template-columns:repeat(2,minmax(240px,1fr))}.editor-grid--3col{grid-template-columns:repeat(3,minmax(200px,1fr))}.editor-grid--4col{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.editor-grid--1-2{grid-template-columns:minmax(180px,1fr) minmax(320px,2fr)}.editor-field--full{grid-column:1 / -1}.editor-toggles{display:grid;gap:10px;align-items:start;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}@container (max-width: 720px){.editor-focus{flex-direction:column;align-items:flex-start}.editor-grid,.editor-grid--compact,.editor-grid--2col,.editor-grid--3col,.editor-grid--4col,.editor-grid--1-2,.editor-toggles{grid-template-columns:1fr}}.editor-actions,.action-grid{display:grid;gap:14px}.action-summary-strip{display:flex;flex-wrap:wrap;gap:8px}.action-summary-chip{padding:6px 10px;border-radius:999px;font-size:12px;background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 70%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38)}.action-summary-chip--warn{background:color-mix(in srgb,var(--md-sys-color-tertiary-container,#f8e08e) 78%,transparent);color:var(--md-sys-color-on-tertiary-container,#261900)}.action-summary-chip--error{background:color-mix(in srgb,var(--md-sys-color-error-container,#f9dedc) 82%,transparent);color:var(--md-sys-color-on-error-container,#410e0b)}.action-group{display:grid;gap:10px;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 88%,transparent)}.action-group--advanced{background:color-mix(in srgb,var(--md-sys-color-surface-container,#f5f7fb) 90%,transparent)}.action-group__header{display:grid;gap:4px}.action-subgroup{display:grid;gap:10px;padding:10px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low,#fafbfd) 92%,transparent)}.action-subgroup__header{display:grid;gap:4px}.action-param-list{display:grid;gap:12px}.action-param-row{display:grid;gap:8px}.action-advanced-panel{border:1px solid color-mix(in srgb,var(--md-sys-color-outline,#c5c7ce) 65%,transparent);border-radius:16px}.editor-section-note{margin:0;color:var(--md-sys-color-on-surface-variant,#5a5d67)}.diagnostics-groups{display:grid;gap:12px}.diagnostics-group{display:grid;gap:10px;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}.diagnostics{display:grid;gap:8px;margin:0;padding-left:18px}.diagnostics .error{color:var(--md-sys-color-error,#b3261e)}.endpoint-option-row{display:flex;align-items:center;gap:10px;padding:2px 0;line-height:1.25}.endpoint-option-method{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:6px;background:color-mix(in srgb,var(--md-sys-color-primary,#1263b4) 14%,transparent);color:var(--md-sys-color-primary,#1263b4);flex-shrink:0}.endpoint-option-copy{display:flex;flex-direction:column;min-width:0;flex:1}.endpoint-option-path{font-size:12.5px;font-weight:600;font-family:var(--praxis-font-mono, monospace);color:var(--md-sys-color-on-surface,#1a1c1e);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.endpoint-option-meta{font-size:11px;color:var(--md-sys-color-on-surface-variant,#5a5d67);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.endpoint-option-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-secondary-container,#d7e3ff) 75%,transparent);color:var(--md-sys-color-on-secondary-container,#001c38);flex-shrink:0}pre{margin:0;overflow:auto;max-height:320px;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high,#eef1f6) 92%,transparent)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i6.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i6.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i6.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i6.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i9.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "directive", type: i10.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i10.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i10.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: PraxisKpiBandComponent, selector: "praxis-kpi-band", inputs: ["config", "dataContext", "isInteractiveHost", "activeFilter", "endpointKey", "apiUrlEntry"], outputs: ["cardClick", "statsLoaded", "statsError", "refreshClick"] }, { kind: "component", type: PraxisTableInlineAuthoringEditorComponent, selector: "praxis-table-inline-authoring-editor", inputs: ["config", "fieldMetadata", "readonly"], outputs: ["configChange"] }, { kind: "component", type: ResourceQuickConnectComponent, selector: "praxis-resource-quick-connect", inputs: ["resourcePath", "endpointKey", "apiUrlEntry", "intent", "resources", "label", "placeholder", "hint", "disabled"], outputs: ["resourcePathChange", "resourceSelected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10871
11377
|
}
|
|
10872
11378
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: CrudMetadataEditorComponent, decorators: [{
|
|
10873
11379
|
type: Component,
|
|
@@ -11016,62 +11522,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
11016
11522
|
{{ sectionStatusLabel('connection') }}
|
|
11017
11523
|
</span>
|
|
11018
11524
|
</div>
|
|
11019
|
-
<
|
|
11020
|
-
|
|
11021
|
-
|
|
11022
|
-
|
|
11023
|
-
|
|
11024
|
-
|
|
11025
|
-
|
|
11026
|
-
|
|
11027
|
-
|
|
11028
|
-
|
|
11029
|
-
|
|
11030
|
-
|
|
11031
|
-
|
|
11032
|
-
|
|
11033
|
-
|
|
11034
|
-
|
|
11035
|
-
|
|
11036
|
-
|
|
11037
|
-
|
|
11038
|
-
|
|
11039
|
-
|
|
11040
|
-
|
|
11041
|
-
|
|
11042
|
-
|
|
11043
|
-
|
|
11044
|
-
|
|
11045
|
-
|
|
11046
|
-
|
|
11047
|
-
|
|
11048
|
-
|
|
11049
|
-
|
|
11050
|
-
|
|
11051
|
-
|
|
11525
|
+
<praxis-resource-quick-connect
|
|
11526
|
+
class="editor-field--full"
|
|
11527
|
+
data-testid="crud-editor-resource-path"
|
|
11528
|
+
[resourcePath]="resourcePath()"
|
|
11529
|
+
(resourcePathChange)="setResourceField('path', $event)"
|
|
11530
|
+
(resourceSelected)="onCatalogResourceSelected($event)"
|
|
11531
|
+
[endpointKey]="resourceEndpointKeyValue()"
|
|
11532
|
+
[apiUrlEntry]="resourceApiUrlEntry()"
|
|
11533
|
+
intent="crud"
|
|
11534
|
+
[label]="tx('crud.authoring.connection.resourcePath', 'Resource')"
|
|
11535
|
+
[disabled]="isReadonly()"
|
|
11536
|
+
>
|
|
11537
|
+
<div class="editor-grid editor-grid--2col">
|
|
11538
|
+
<mat-form-field appearance="outline">
|
|
11539
|
+
<mat-label>{{ tx('crud.authoring.connection.idField', 'Identifier field') }}</mat-label>
|
|
11540
|
+
<input
|
|
11541
|
+
matInput
|
|
11542
|
+
data-testid="crud-editor-resource-idField"
|
|
11543
|
+
[matAutocomplete]="idFieldAuto"
|
|
11544
|
+
[ngModel]="resourceIdField()"
|
|
11545
|
+
(ngModelChange)="setResourceField('idField', $event)"
|
|
11546
|
+
(focus)="ensureCatalogResourcesLoaded()"
|
|
11547
|
+
[disabled]="isReadonly()"
|
|
11548
|
+
/>
|
|
11549
|
+
<mat-autocomplete #idFieldAuto="matAutocomplete">
|
|
11550
|
+
@for (item of filteredIdFieldOptions(); track item.field) {
|
|
11551
|
+
<mat-option [value]="item.field">
|
|
11552
|
+
<div class="endpoint-option-row">
|
|
11553
|
+
<div class="endpoint-option-copy">
|
|
11554
|
+
<span class="endpoint-option-path">{{ item.field }}</span>
|
|
11555
|
+
@if (item.header && item.header !== item.field) {
|
|
11556
|
+
<span class="endpoint-option-meta">{{ item.header }}</span>
|
|
11557
|
+
}
|
|
11558
|
+
</div>
|
|
11052
11559
|
</div>
|
|
11053
|
-
</
|
|
11054
|
-
|
|
11055
|
-
|
|
11056
|
-
</mat-
|
|
11057
|
-
|
|
11058
|
-
|
|
11059
|
-
|
|
11060
|
-
|
|
11061
|
-
|
|
11062
|
-
|
|
11063
|
-
|
|
11064
|
-
|
|
11065
|
-
|
|
11066
|
-
|
|
11067
|
-
|
|
11068
|
-
|
|
11069
|
-
|
|
11070
|
-
|
|
11071
|
-
|
|
11072
|
-
</mat-
|
|
11073
|
-
</
|
|
11074
|
-
</
|
|
11560
|
+
</mat-option>
|
|
11561
|
+
}
|
|
11562
|
+
</mat-autocomplete>
|
|
11563
|
+
</mat-form-field>
|
|
11564
|
+
<mat-form-field appearance="outline">
|
|
11565
|
+
<mat-label>{{ tx('crud.authoring.connection.endpointKey', 'Endpoint/API') }}</mat-label>
|
|
11566
|
+
<input
|
|
11567
|
+
matInput
|
|
11568
|
+
data-testid="crud-editor-resource-endpointKey"
|
|
11569
|
+
[matAutocomplete]="endpointKeyAuto"
|
|
11570
|
+
[ngModel]="resourceEndpointKey()"
|
|
11571
|
+
(ngModelChange)="setResourceField('endpointKey', $event)"
|
|
11572
|
+
[disabled]="isReadonly()"
|
|
11573
|
+
/>
|
|
11574
|
+
<mat-autocomplete #endpointKeyAuto="matAutocomplete">
|
|
11575
|
+
@for (key of filteredResourceEndpointKeys(); track key) {
|
|
11576
|
+
<mat-option [value]="key">{{ key }}</mat-option>
|
|
11577
|
+
}
|
|
11578
|
+
</mat-autocomplete>
|
|
11579
|
+
</mat-form-field>
|
|
11580
|
+
</div>
|
|
11581
|
+
</praxis-resource-quick-connect>
|
|
11075
11582
|
|
|
11076
11583
|
@if (hasReadOnlyMutatingActionsWarning()) {
|
|
11077
11584
|
<div class="editor-focus" data-testid="crud-editor-readonly-warning">
|
|
@@ -11115,7 +11622,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
11115
11622
|
</mat-form-field>
|
|
11116
11623
|
<mat-form-field appearance="outline">
|
|
11117
11624
|
<mat-label>{{ tx('crud.authoring.connection.pageDomainIcon', 'Ícone do domínio') }}</mat-label>
|
|
11118
|
-
<
|
|
11625
|
+
<mat-icon matPrefix [praxisIcon]="pageHeaderDomainIcon() || currentCatalogResource()?.icon || 'domain'"></mat-icon>
|
|
11626
|
+
<input matInput data-testid="crud-editor-page-domain-icon" [placeholder]="currentCatalogResource()?.icon || ''" [ngModel]="pageHeaderDomainIcon()" (ngModelChange)="setPageHeaderField('domainIcon', $event)" [disabled]="isReadonly()" />
|
|
11119
11627
|
</mat-form-field>
|
|
11120
11628
|
<mat-form-field appearance="outline">
|
|
11121
11629
|
<mat-label>{{ tx('crud.authoring.connection.pageDomainTone', 'Tom do badge') }}</mat-label>
|
|
@@ -12041,6 +12549,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
12041
12549
|
>
|
|
12042
12550
|
{{ tx('crud.authoring.filters.inlineAdd', 'Add field') }}
|
|
12043
12551
|
</button>
|
|
12552
|
+
@if (canSuggestInlineFilterFields()) {
|
|
12553
|
+
<button
|
|
12554
|
+
mat-stroked-button
|
|
12555
|
+
type="button"
|
|
12556
|
+
data-testid="crud-filterbar-smart-suggest-inline-btn"
|
|
12557
|
+
(click)="applyRecommendedInlineFilterFields()"
|
|
12558
|
+
[disabled]="isReadonly()"
|
|
12559
|
+
>
|
|
12560
|
+
{{ tx('crud.authoring.filters.suggestInlineFields', 'Suggest main filter fields') }}
|
|
12561
|
+
</button>
|
|
12562
|
+
}
|
|
12044
12563
|
</div>
|
|
12045
12564
|
|
|
12046
12565
|
@if (filterBarInlineFields().length === 0) {
|
|
@@ -12107,6 +12626,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
12107
12626
|
</mat-select>
|
|
12108
12627
|
</mat-form-field>
|
|
12109
12628
|
|
|
12629
|
+
@if (quickFilterDomainPresetOptions().length > 0) {
|
|
12630
|
+
<button
|
|
12631
|
+
mat-stroked-button
|
|
12632
|
+
type="button"
|
|
12633
|
+
data-testid="crud-filterbar-generate-quick-btn"
|
|
12634
|
+
(click)="generateQuickFiltersFromDomainOptions()"
|
|
12635
|
+
[disabled]="isReadonly()"
|
|
12636
|
+
>
|
|
12637
|
+
{{ tx('crud.authoring.filters.generateQuickFromOptions', 'Generate chips from status options') }}
|
|
12638
|
+
</button>
|
|
12639
|
+
}
|
|
12640
|
+
|
|
12110
12641
|
@if (filterBarQuickMode() === 'custom') {
|
|
12111
12642
|
<button
|
|
12112
12643
|
mat-stroked-button
|
|
@@ -12612,6 +13143,8 @@ class PraxisCrudComponent {
|
|
|
12612
13143
|
filterTeleport = false;
|
|
12613
13144
|
/** Desabilita auto-abertura da gaveta analítica no clique de linha (Issue #39) */
|
|
12614
13145
|
disableAutoDrawer = false;
|
|
13146
|
+
/** Indica que um host superior (como PraxisResourcePage) já renderiza pageHeader e scopeBar */
|
|
13147
|
+
hostManagedChrome = false;
|
|
12615
13148
|
tableSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "tableSignal" }] : /* istanbul ignore next */ []));
|
|
12616
13149
|
/** Signal reativo do TemplateRef de filtro da tabela interna (usado por PraxisFilterOutlet) */
|
|
12617
13150
|
filterTemplateSignal = computed(() => {
|
|
@@ -12655,6 +13188,95 @@ class PraxisCrudComponent {
|
|
|
12655
13188
|
filterCriteriaChange = new EventEmitter();
|
|
12656
13189
|
/** Evento emitido ao clicar em um card da faixa declarativa de KPIs (Issue #33) */
|
|
12657
13190
|
kpiCardClick = new EventEmitter();
|
|
13191
|
+
get resolvedPageHeader() {
|
|
13192
|
+
if (this.hostManagedChrome || this.isInspectOnly()) {
|
|
13193
|
+
return null;
|
|
13194
|
+
}
|
|
13195
|
+
const ph = this.resolvedMetadata?.pageHeader;
|
|
13196
|
+
if (!ph) {
|
|
13197
|
+
return null;
|
|
13198
|
+
}
|
|
13199
|
+
const hasTitle = !!ph.title?.trim();
|
|
13200
|
+
const hasSubtitle = !!ph.subtitle?.trim();
|
|
13201
|
+
const hasDomain = !!ph.domain?.label?.trim();
|
|
13202
|
+
if (!hasTitle && !hasSubtitle && !hasDomain) {
|
|
13203
|
+
return null;
|
|
13204
|
+
}
|
|
13205
|
+
if (ph.domain?.icon) {
|
|
13206
|
+
return {
|
|
13207
|
+
...ph,
|
|
13208
|
+
domain: {
|
|
13209
|
+
...ph.domain,
|
|
13210
|
+
icon: ph.domain.icon.trim().replace(/-/g, '_'),
|
|
13211
|
+
},
|
|
13212
|
+
};
|
|
13213
|
+
}
|
|
13214
|
+
return ph;
|
|
13215
|
+
}
|
|
13216
|
+
get resolvedStandaloneScopeBarItems() {
|
|
13217
|
+
if (this.hostManagedChrome || this.isInspectOnly()) {
|
|
13218
|
+
return null;
|
|
13219
|
+
}
|
|
13220
|
+
const fb = this.resolvedMetadata?.filterBar;
|
|
13221
|
+
if (!fb || !Array.isArray(fb.quickFilters) || fb.quickFilters.length === 0) {
|
|
13222
|
+
return null;
|
|
13223
|
+
}
|
|
13224
|
+
if (fb.placement === 'table-toolbar') {
|
|
13225
|
+
return null;
|
|
13226
|
+
}
|
|
13227
|
+
return fb.quickFilters.map((qf) => ({
|
|
13228
|
+
id: qf.id,
|
|
13229
|
+
label: qf.label,
|
|
13230
|
+
filter: qf.filter,
|
|
13231
|
+
icon: qf.icon ? qf.icon.trim().replace(/-/g, '_') : undefined,
|
|
13232
|
+
tone: qf.tone,
|
|
13233
|
+
badge: qf.badge,
|
|
13234
|
+
count: qf.count,
|
|
13235
|
+
isDefault: qf.isDefault,
|
|
13236
|
+
}));
|
|
13237
|
+
}
|
|
13238
|
+
get activeStandaloneScopeId() {
|
|
13239
|
+
const items = this.resolvedStandaloneScopeBarItems;
|
|
13240
|
+
if (!items?.length) {
|
|
13241
|
+
return 'all';
|
|
13242
|
+
}
|
|
13243
|
+
const current = this.tableFilterCriteria || {};
|
|
13244
|
+
const currentKeys = Object.keys(current).filter((k) => current[k] !== undefined && current[k] !== null && current[k] !== '');
|
|
13245
|
+
if (currentKeys.length === 0) {
|
|
13246
|
+
const defaultItem = items.find((i) => i.isDefault) || items.find((i) => i.id === 'all');
|
|
13247
|
+
return defaultItem?.id || 'all';
|
|
13248
|
+
}
|
|
13249
|
+
const matched = items.find((item) => {
|
|
13250
|
+
const f = item.filter && typeof item.filter === 'object' && !Array.isArray(item.filter)
|
|
13251
|
+
? item.filter
|
|
13252
|
+
: null;
|
|
13253
|
+
if (!f)
|
|
13254
|
+
return false;
|
|
13255
|
+
return this.areFilterCriteriaEquivalent(f, current);
|
|
13256
|
+
});
|
|
13257
|
+
return matched?.id || '';
|
|
13258
|
+
}
|
|
13259
|
+
onStandaloneScopeChange(item) {
|
|
13260
|
+
const filter = item.filter && typeof item.filter === 'object' && !Array.isArray(item.filter)
|
|
13261
|
+
? item.filter
|
|
13262
|
+
: {};
|
|
13263
|
+
if (Object.keys(filter).length === 0) {
|
|
13264
|
+
this.clearFilterCriteria();
|
|
13265
|
+
return;
|
|
13266
|
+
}
|
|
13267
|
+
this.tableFilterCriteria = {
|
|
13268
|
+
...this.resolveFilterCriteria(this.resolvedMetadata),
|
|
13269
|
+
...filter,
|
|
13270
|
+
};
|
|
13271
|
+
if (this.table) {
|
|
13272
|
+
this.table.applyAdvancedFilterCriteria(this.tableFilterCriteria);
|
|
13273
|
+
}
|
|
13274
|
+
this.filterCriteriaChange.emit({ ...this.tableFilterCriteria });
|
|
13275
|
+
this.cdr.markForCheck();
|
|
13276
|
+
}
|
|
13277
|
+
onStandaloneScopeClear() {
|
|
13278
|
+
this.clearFilterCriteria();
|
|
13279
|
+
}
|
|
12658
13280
|
get resolvedKpiBandConfig() {
|
|
12659
13281
|
const meta = this.resolvedMetadata;
|
|
12660
13282
|
const band = meta?.kpiBand || meta?.table?.kpiBand || meta?.table?.behavior?.kpiBand;
|
|
@@ -13338,9 +13960,11 @@ class PraxisCrudComponent {
|
|
|
13338
13960
|
this.tableQueryContext = this.resolveQueryContext(this.resolvedMetadata);
|
|
13339
13961
|
this.tableFilterCriteria = this.resolveFilterCriteria(this.resolvedMetadata);
|
|
13340
13962
|
const nextResourceIdentity = this.resolveCrudResourceIdentity(this.resolvedMetadata);
|
|
13341
|
-
|
|
13963
|
+
const resourceChanged = nextResourceIdentity !== this.lastAppliedResourceIdentity ||
|
|
13342
13964
|
!nextResourceIdentity ||
|
|
13343
|
-
this.isInspectOnly(this.resolvedMetadata)
|
|
13965
|
+
this.isInspectOnly(this.resolvedMetadata);
|
|
13966
|
+
if (resourceChanged) {
|
|
13967
|
+
this.selectedRow = null;
|
|
13344
13968
|
this.tableCollectionLinks = null;
|
|
13345
13969
|
this.collectionCapabilities = null;
|
|
13346
13970
|
this.collectionCapabilitiesRequestHref = null;
|
|
@@ -13348,6 +13972,20 @@ class PraxisCrudComponent {
|
|
|
13348
13972
|
this.collectionCapabilitiesRequestSeq += 1;
|
|
13349
13973
|
}
|
|
13350
13974
|
this.applyResolvedCrudState(this.resolvedMetadata);
|
|
13975
|
+
const metadataInputChanged = changes['metadata'] && !changes['metadata'].firstChange;
|
|
13976
|
+
if (metadataInputChanged &&
|
|
13977
|
+
resourceChanged &&
|
|
13978
|
+
nextResourceIdentity &&
|
|
13979
|
+
this.resolvedTableConfigPersistenceStrategy === 'local-first') {
|
|
13980
|
+
const keyId = this.componentKeyId();
|
|
13981
|
+
if (keyId) {
|
|
13982
|
+
this.hydratedAuthoringKeyId = keyId;
|
|
13983
|
+
void firstValueFrom(this.storage.saveConfig(`crud-authoring:${keyId}`, this.currentAuthoringDocument)).catch(() => { });
|
|
13984
|
+
}
|
|
13985
|
+
if (this.crudId && this.crudId !== keyId) {
|
|
13986
|
+
void firstValueFrom(this.storage.saveConfig(`crud-authoring:${this.crudId}`, this.currentAuthoringDocument)).catch(() => { });
|
|
13987
|
+
}
|
|
13988
|
+
}
|
|
13351
13989
|
if (!externalAuthoringSeed && this.resolvedTableConfigPersistenceStrategy === 'local-first') {
|
|
13352
13990
|
this.tryHydrateStoredAuthoringDocument();
|
|
13353
13991
|
}
|
|
@@ -13552,7 +14190,10 @@ class PraxisCrudComponent {
|
|
|
13552
14190
|
String(action.form?.submitUrl || '').trim());
|
|
13553
14191
|
}
|
|
13554
14192
|
getCurrentTableConfigSnapshot() {
|
|
13555
|
-
const
|
|
14193
|
+
const tableConfigCandidate = this.isTableComponentCompatibleWithResource(this.resolvedMetadata)
|
|
14194
|
+
? this.table?.config
|
|
14195
|
+
: undefined;
|
|
14196
|
+
const current = tableConfigCandidate || this.tableConfigForBinding || this.effectiveTableConfig;
|
|
13556
14197
|
if (!current)
|
|
13557
14198
|
return null;
|
|
13558
14199
|
try {
|
|
@@ -14649,7 +15290,8 @@ class PraxisCrudComponent {
|
|
|
14649
15290
|
if (nextResourceIdentity !== null &&
|
|
14650
15291
|
nextResourceIdentity === this.lastAppliedResourceIdentity &&
|
|
14651
15292
|
(cfg.columns?.length ?? 0) === 0 &&
|
|
14652
|
-
(current?.columns?.length ?? 0) > 0
|
|
15293
|
+
(current?.columns?.length ?? 0) > 0 &&
|
|
15294
|
+
this.isTableSnapshotCompatibleWithResource(current, meta)) {
|
|
14653
15295
|
cfg.columns = JSON.parse(JSON.stringify(current.columns));
|
|
14654
15296
|
changed = true;
|
|
14655
15297
|
}
|
|
@@ -14682,6 +15324,10 @@ class PraxisCrudComponent {
|
|
|
14682
15324
|
if (fb.showAdvanced !== undefined) {
|
|
14683
15325
|
toolbar.filters.showAdvancedButton = fb.showAdvanced;
|
|
14684
15326
|
}
|
|
15327
|
+
const standaloneScopeBarRendered = !this.hostManagedChrome &&
|
|
15328
|
+
Array.isArray(fb.quickFilters) &&
|
|
15329
|
+
fb.quickFilters.length > 0 &&
|
|
15330
|
+
fb.placement !== 'table-toolbar';
|
|
14685
15331
|
if (Array.isArray(fb.quickFilters)) {
|
|
14686
15332
|
toolbar.filters.quickFilters = [...fb.quickFilters];
|
|
14687
15333
|
}
|
|
@@ -14691,6 +15337,9 @@ class PraxisCrudComponent {
|
|
|
14691
15337
|
else if (fb.quickFilters === undefined) {
|
|
14692
15338
|
delete toolbar.filters.quickFilters;
|
|
14693
15339
|
}
|
|
15340
|
+
if (standaloneScopeBarRendered) {
|
|
15341
|
+
toolbar.filters.showQuickFilters = false;
|
|
15342
|
+
}
|
|
14694
15343
|
if (Array.isArray(fb.inlineFields) && fb.inlineFields.length > 0) {
|
|
14695
15344
|
const behavior = (cfg.behavior = cfg.behavior || {});
|
|
14696
15345
|
const filtering = (behavior.filtering =
|
|
@@ -15129,6 +15778,23 @@ class PraxisCrudComponent {
|
|
|
15129
15778
|
if (!resolvedStored || this.isInspectOnly()) {
|
|
15130
15779
|
return;
|
|
15131
15780
|
}
|
|
15781
|
+
try {
|
|
15782
|
+
const storedDoc = parseLegacyOrCrudDocument(resolvedStored);
|
|
15783
|
+
const currentPath = String(this.resolvedMetadata?.resource?.path || '')
|
|
15784
|
+
.trim()
|
|
15785
|
+
.replace(/^\/+|\/+$/g, '')
|
|
15786
|
+
.toLowerCase();
|
|
15787
|
+
const storedPath = String(storedDoc?.metadata?.resource?.path || '')
|
|
15788
|
+
.trim()
|
|
15789
|
+
.replace(/^\/+|\/+$/g, '')
|
|
15790
|
+
.toLowerCase();
|
|
15791
|
+
if (currentPath.length > 0 && storedPath.length > 0 && currentPath !== storedPath) {
|
|
15792
|
+
return;
|
|
15793
|
+
}
|
|
15794
|
+
}
|
|
15795
|
+
catch {
|
|
15796
|
+
return;
|
|
15797
|
+
}
|
|
15132
15798
|
this.applyCrudAuthoringPayload(resolvedStored, 'applied');
|
|
15133
15799
|
})
|
|
15134
15800
|
.catch(() => { });
|
|
@@ -15137,9 +15803,24 @@ class PraxisCrudComponent {
|
|
|
15137
15803
|
const next = parseLegacyOrCrudDocument(payload);
|
|
15138
15804
|
this.currentAuthoringDocument = next;
|
|
15139
15805
|
this.resolvedMetadata = next.metadata;
|
|
15140
|
-
|
|
15141
|
-
|
|
15142
|
-
|
|
15806
|
+
const nextResourceIdentity = this.resolveCrudResourceIdentity(this.resolvedMetadata);
|
|
15807
|
+
if (nextResourceIdentity !== this.lastAppliedResourceIdentity ||
|
|
15808
|
+
!nextResourceIdentity ||
|
|
15809
|
+
this.isInspectOnly(this.resolvedMetadata)) {
|
|
15810
|
+
this.selectedRow = null;
|
|
15811
|
+
this.tableCollectionLinks = null;
|
|
15812
|
+
this.collectionCapabilities = null;
|
|
15813
|
+
this.collectionCapabilitiesRequestHref = null;
|
|
15814
|
+
this.collectionCapabilitiesResolvedHref = null;
|
|
15815
|
+
this.collectionCapabilitiesRequestSeq += 1;
|
|
15816
|
+
this.lastTableRuntimeConfigSnapshot = null;
|
|
15817
|
+
this.lastEmittedTableRuntimeConfigJson = '';
|
|
15818
|
+
}
|
|
15819
|
+
else {
|
|
15820
|
+
this.lastTableRuntimeConfigSnapshot = next.metadata.table
|
|
15821
|
+
? this.cloneTableConfigSnapshot(next.metadata.table)
|
|
15822
|
+
: null;
|
|
15823
|
+
}
|
|
15143
15824
|
this.tableQueryContext = this.resolveQueryContext(this.resolvedMetadata);
|
|
15144
15825
|
this.tableFilterCriteria = this.resolveFilterCriteria(this.resolvedMetadata);
|
|
15145
15826
|
this.applyResolvedCrudState(this.resolvedMetadata);
|
|
@@ -15421,6 +16102,42 @@ class PraxisCrudComponent {
|
|
|
15421
16102
|
const endpointKey = String(meta?.resource?.endpointKey || '').trim().toLowerCase();
|
|
15422
16103
|
return `${resourcePath.toLowerCase()}|${endpointKey}`;
|
|
15423
16104
|
}
|
|
16105
|
+
normalizeComparableResourcePath(path) {
|
|
16106
|
+
return String(path || '')
|
|
16107
|
+
.trim()
|
|
16108
|
+
.replace(/^\/+|\/+$/g, '')
|
|
16109
|
+
.replace(/^api\//i, '')
|
|
16110
|
+
.toLowerCase();
|
|
16111
|
+
}
|
|
16112
|
+
isTableComponentCompatibleWithResource(meta) {
|
|
16113
|
+
const targetResourcePath = this.normalizeComparableResourcePath(meta ? this.resolveResourcePath(meta) : '');
|
|
16114
|
+
if (!targetResourcePath) {
|
|
16115
|
+
return true;
|
|
16116
|
+
}
|
|
16117
|
+
const tableResourcePath = this.normalizeComparableResourcePath(this.table?.resourcePath);
|
|
16118
|
+
if (tableResourcePath && tableResourcePath !== targetResourcePath) {
|
|
16119
|
+
return false;
|
|
16120
|
+
}
|
|
16121
|
+
const tableMetaResourcePath = this.normalizeComparableResourcePath(this.table?.config?.meta?.resourcePath);
|
|
16122
|
+
if (tableMetaResourcePath && tableMetaResourcePath !== targetResourcePath) {
|
|
16123
|
+
return false;
|
|
16124
|
+
}
|
|
16125
|
+
return true;
|
|
16126
|
+
}
|
|
16127
|
+
isTableSnapshotCompatibleWithResource(snapshot, meta) {
|
|
16128
|
+
if (!this.isTableComponentCompatibleWithResource(meta)) {
|
|
16129
|
+
return false;
|
|
16130
|
+
}
|
|
16131
|
+
const targetResourcePath = this.normalizeComparableResourcePath(meta ? this.resolveResourcePath(meta) : '');
|
|
16132
|
+
if (!targetResourcePath) {
|
|
16133
|
+
return true;
|
|
16134
|
+
}
|
|
16135
|
+
const snapshotMetaResourcePath = this.normalizeComparableResourcePath(snapshot?.meta?.resourcePath);
|
|
16136
|
+
if (snapshotMetaResourcePath && snapshotMetaResourcePath !== targetResourcePath) {
|
|
16137
|
+
return false;
|
|
16138
|
+
}
|
|
16139
|
+
return true;
|
|
16140
|
+
}
|
|
15424
16141
|
buildDiscoveryOptions() {
|
|
15425
16142
|
const endpointKey = this.resolvedMetadata?.resource?.endpointKey;
|
|
15426
16143
|
return endpointKey ? { endpointKey: endpointKey } : undefined;
|
|
@@ -15534,7 +16251,7 @@ class PraxisCrudComponent {
|
|
|
15534
16251
|
return Object.entries(params).reduce((current, [name, value]) => current.split(`{${name}}`).join(value), text);
|
|
15535
16252
|
}
|
|
15536
16253
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisCrudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15537
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisCrudComponent, isStandalone: true, selector: "praxis-crud", inputs: { metadata: "metadata", crudId: "crudId", resource: "resource", componentInstanceId: "componentInstanceId", tableConfigPersistenceStrategy: "tableConfigPersistenceStrategy", context: "context", enableCustomization: "enableCustomization", showResourceIdentityKey: "showResourceIdentityKey", authoringCapability: "authoringCapability", filterCriteria: "filterCriteria", filterTeleport: ["filterTeleport", "filterTeleport", booleanAttribute], disableAutoDrawer: ["disableAutoDrawer", "disableAutoDrawer", booleanAttribute] }, outputs: { configureRequested: "configureRequested", afterOpen: "afterOpen", afterClose: "afterClose", afterSave: "afterSave", afterDelete: "afterDelete", reactiveDeterminationExecuted: "reactiveDeterminationExecuted", reactiveDeterminationPendingChange: "reactiveDeterminationPendingChange", reactiveDeterminationStabilityChange: "reactiveDeterminationStabilityChange", error: "error", rowClick: "rowClick", rowAction: "rowAction", selectionChange: "selectionChange", resourceEvent: "resourceEvent", tableRuntimeConfigChange: "tableRuntimeConfigChange", drawerOpen: "drawerOpen", drawerClose: "drawerClose", crudAuthoringDocumentApplied: "crudAuthoringDocumentApplied", crudAuthoringDocumentSaved: "crudAuthoringDocumentSaved", filterCriteriaChange: "filterCriteriaChange", kpiCardClick: "kpiCardClick" }, providers: [
|
|
16254
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisCrudComponent, isStandalone: true, selector: "praxis-crud", inputs: { metadata: "metadata", crudId: "crudId", resource: "resource", componentInstanceId: "componentInstanceId", tableConfigPersistenceStrategy: "tableConfigPersistenceStrategy", context: "context", enableCustomization: "enableCustomization", showResourceIdentityKey: "showResourceIdentityKey", authoringCapability: "authoringCapability", filterCriteria: "filterCriteria", filterTeleport: ["filterTeleport", "filterTeleport", booleanAttribute], disableAutoDrawer: ["disableAutoDrawer", "disableAutoDrawer", booleanAttribute], hostManagedChrome: ["hostManagedChrome", "hostManagedChrome", booleanAttribute] }, outputs: { configureRequested: "configureRequested", afterOpen: "afterOpen", afterClose: "afterClose", afterSave: "afterSave", afterDelete: "afterDelete", reactiveDeterminationExecuted: "reactiveDeterminationExecuted", reactiveDeterminationPendingChange: "reactiveDeterminationPendingChange", reactiveDeterminationStabilityChange: "reactiveDeterminationStabilityChange", error: "error", rowClick: "rowClick", rowAction: "rowAction", selectionChange: "selectionChange", resourceEvent: "resourceEvent", tableRuntimeConfigChange: "tableRuntimeConfigChange", drawerOpen: "drawerOpen", drawerClose: "drawerClose", crudAuthoringDocumentApplied: "crudAuthoringDocumentApplied", crudAuthoringDocumentSaved: "crudAuthoringDocumentSaved", filterCriteriaChange: "filterCriteriaChange", kpiCardClick: "kpiCardClick" }, providers: [
|
|
15538
16255
|
providePraxisI18nConfig(RESOURCE_DISCOVERY_I18N_CONFIG),
|
|
15539
16256
|
providePraxisI18nConfig(PRAXIS_CRUD_RUNTIME_I18N_CONFIG),
|
|
15540
16257
|
], viewQueries: [{ propertyName: "kpiBand", first: true, predicate: PraxisKpiBandComponent, descendants: true }, { propertyName: "table", first: true, predicate: PraxisTable, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
@@ -15545,6 +16262,29 @@ class PraxisCrudComponent {
|
|
|
15545
16262
|
<span>{{ getOpeningActionStatus(actionLabel) }}</span>
|
|
15546
16263
|
</div>
|
|
15547
16264
|
}
|
|
16265
|
+
@if (resolvedPageHeader; as ph) {
|
|
16266
|
+
<header class="praxis-crud-runtime__header section-header" data-testid="praxis-crud-page-header">
|
|
16267
|
+
<div class="praxis-crud-runtime__header-main">
|
|
16268
|
+
@if (ph.domain?.label?.trim(); as domLabel) {
|
|
16269
|
+
<div
|
|
16270
|
+
class="praxis-crud-runtime__domain-badge domain-tag"
|
|
16271
|
+
[ngClass]="ph.domain?.tone ? 'tone-' + ph.domain?.tone : ''"
|
|
16272
|
+
>
|
|
16273
|
+
@if (ph.domain?.icon) {
|
|
16274
|
+
<span class="material-symbols-outlined" aria-hidden="true">{{ ph.domain?.icon }}</span>
|
|
16275
|
+
}
|
|
16276
|
+
<span>{{ domLabel }}</span>
|
|
16277
|
+
</div>
|
|
16278
|
+
}
|
|
16279
|
+
@if (ph.title?.trim(); as headerTitle) {
|
|
16280
|
+
<h2 class="praxis-crud-runtime__title page-title title-gradient">{{ headerTitle }}</h2>
|
|
16281
|
+
}
|
|
16282
|
+
@if (ph.subtitle?.trim(); as headerSubtitle) {
|
|
16283
|
+
<p class="praxis-crud-runtime__subtitle page-subtitle">{{ headerSubtitle }}</p>
|
|
16284
|
+
}
|
|
16285
|
+
</div>
|
|
16286
|
+
</header>
|
|
16287
|
+
}
|
|
15548
16288
|
@if (resolvedKpiBandConfig) {
|
|
15549
16289
|
<praxis-kpi-band
|
|
15550
16290
|
[config]="resolvedKpiBandConfig"
|
|
@@ -15556,6 +16296,18 @@ class PraxisCrudComponent {
|
|
|
15556
16296
|
(cardClick)="onKpiCardClick($event)"
|
|
15557
16297
|
/>
|
|
15558
16298
|
}
|
|
16299
|
+
@if (resolvedStandaloneScopeBarItems; as scopeItems) {
|
|
16300
|
+
<praxis-scope-bar
|
|
16301
|
+
leadLabel="Filtro:"
|
|
16302
|
+
leadIcon="tune"
|
|
16303
|
+
[items]="scopeItems"
|
|
16304
|
+
[activeId]="activeStandaloneScopeId"
|
|
16305
|
+
[showClearButton]="true"
|
|
16306
|
+
clearLabel="Limpar Filtro"
|
|
16307
|
+
(scopeChange)="onStandaloneScopeChange($event)"
|
|
16308
|
+
(clear)="onStandaloneScopeClear()"
|
|
16309
|
+
/>
|
|
16310
|
+
}
|
|
15559
16311
|
@if (shouldRenderTable(resolvedMetadata)) {
|
|
15560
16312
|
<praxis-table
|
|
15561
16313
|
[config]="tableConfigForBinding"
|
|
@@ -15595,11 +16347,17 @@ class PraxisCrudComponent {
|
|
|
15595
16347
|
}
|
|
15596
16348
|
}
|
|
15597
16349
|
</div>
|
|
15598
|
-
`, isInline: true, styles: [":host{display:block;width:100%;min-width:0;max-width:100%}.praxis-crud-runtime{position:relative;min-width:0}.praxis-crud-opening-status{position:absolute;z-index:6;top:.7rem;right:.7rem;display:inline-flex;align-items:center;gap:.55rem;min-height:2.25rem;max-width:min(24rem,calc(100% - 1.4rem));padding:.48rem .72rem;border:1px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 32%,transparent);border-radius:999px;color:var(--md-sys-color-on-surface, currentColor);background:color-mix(in srgb,var(--md-sys-color-surface-container-high, var(--md-sys-color-surface)) 94%,transparent);box-shadow:0 10px 28px #0f172a29;font-size:.82rem;font-weight:650;line-height:1.25;pointer-events:none}.praxis-crud-opening-status__spinner{width:.95rem;height:.95rem;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 26%,transparent);border-top-color:var(--md-sys-color-primary, #3f51b5);border-radius:50%;animation:praxis-crud-opening-spin .72s linear infinite}@keyframes praxis-crud-opening-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-crud-opening-status__spinner{animation:none;border-top-color:currentColor}}\n"], dependencies: [{ kind: "component", type: PraxisTable, selector: "praxis-table", inputs: ["config", "resourcePath", "data", "tableId", "componentInstanceId", "configPersistenceStrategy", "title", "subtitle", "icon", "autoDelete", "notifyIfOutdated", "snoozeMs", "autoOpenSettingsOnOutdated", "crudContext", "filterCriteria", "filterTeleport", "widgetId", "queryContext", "aiContext", "aiAssistantVoiceInputMode", "aiAssistantVoiceLanguage", "horizontalScroll", "enableCustomization", "authoringCapability", "dense"], outputs: ["filterCriteriaChange", "queryContextClear", "queryContextChange", "rowClick", "widgetEvent", "resourceEvent", "rowDoubleClick", "rowExpansionChange", "rowAction", "toolbarAction", "bulkAction", "exportAction", "columnReorder", "columnReorderAttempt", "columnResize", "beforeDelete", "afterDelete", "deleteError", "beforeBulkDelete", "afterBulkDelete", "bulkDeleteError", "schemaStatusChange", "configChange", "metadataChange", "loadingStateChange", "collectionLinksChange", "selectionChange", "drawerOpen", "drawerClose", "drawerTabChange"] }, { kind: "component", type: EmptyStateCardComponent, selector: "praxis-empty-state-card", inputs: ["icon", "title", "description", "primaryAction", "secondaryActions", "inline", "tone", "variant", "alignment", "density", "iconContainer"] }, { kind: "component", type: PraxisKpiBandComponent, selector: "praxis-kpi-band", inputs: ["config", "dataContext", "isInteractiveHost", "activeFilter", "endpointKey", "apiUrlEntry"], outputs: ["cardClick", "statsLoaded", "statsError", "refreshClick"] }] });
|
|
16350
|
+
`, isInline: true, styles: [":host{display:block;width:100%;min-width:0;max-width:100%}.praxis-crud-runtime{position:relative;min-width:0;display:flex;flex-direction:column;gap:16px}.praxis-crud-runtime__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.praxis-crud-runtime__header-main{min-width:0;display:flex;flex-direction:column}.praxis-crud-runtime__domain-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;align-self:flex-start;background:var(--praxis-domain-badge-bg, rgba(255, 255, 255, .08));color:var(--praxis-domain-badge-color, inherit);border:1px solid var(--praxis-domain-badge-border, rgba(255, 255, 255, .1))}.praxis-crud-runtime__domain-badge.tone-primary,.praxis-crud-runtime__domain-badge.tone-info{background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,transparent);color:var(--praxis-info, #38bdf8);border-color:color-mix(in srgb,var(--praxis-info, #0284c7) 30%,transparent)}.praxis-crud-runtime__domain-badge.tone-accent{background:color-mix(in srgb,var(--praxis-primary, #6366f1) 14%,transparent);color:var(--praxis-primary, #818cf8);border-color:color-mix(in srgb,var(--praxis-primary, #6366f1) 30%,transparent)}.praxis-crud-runtime__domain-badge.tone-success{background:color-mix(in srgb,var(--praxis-success, #059669) 14%,transparent);color:var(--praxis-success, #34d399);border-color:color-mix(in srgb,var(--praxis-success, #059669) 30%,transparent)}.praxis-crud-runtime__domain-badge.tone-warning,.praxis-crud-runtime__domain-badge.tone-warn{background:color-mix(in srgb,var(--praxis-warning, #d97706) 14%,transparent);color:var(--praxis-warning, #fbbf24);border-color:color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent)}.praxis-crud-runtime__domain-badge.tone-danger,.praxis-crud-runtime__domain-badge.tone-error{background:color-mix(in srgb,var(--praxis-error, #dc2626) 14%,transparent);color:var(--praxis-error, #f87171);border-color:color-mix(in srgb,var(--praxis-error, #dc2626) 30%,transparent)}.praxis-crud-runtime__domain-badge span.material-symbols-outlined{font-size:14px}.praxis-crud-runtime__title{margin:0 0 6px;font-size:var(--praxis-page-title-size, 1.75rem);font-weight:800;letter-spacing:-.02em;color:var(--praxis-page-title-color, var(--foreground, inherit));line-height:1.2}.praxis-crud-runtime__subtitle{margin:0;font-size:var(--praxis-page-subtitle-size, .9rem);color:var(--muted-foreground, #94a3b8);max-width:800px;line-height:1.5}.praxis-crud-opening-status{position:absolute;z-index:6;top:.7rem;right:.7rem;display:inline-flex;align-items:center;gap:.55rem;min-height:2.25rem;max-width:min(24rem,calc(100% - 1.4rem));padding:.48rem .72rem;border:1px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 32%,transparent);border-radius:999px;color:var(--md-sys-color-on-surface, currentColor);background:color-mix(in srgb,var(--md-sys-color-surface-container-high, var(--md-sys-color-surface)) 94%,transparent);box-shadow:0 10px 28px #0f172a29;font-size:.82rem;font-weight:650;line-height:1.25;pointer-events:none}.praxis-crud-opening-status__spinner{width:.95rem;height:.95rem;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 26%,transparent);border-top-color:var(--md-sys-color-primary, #3f51b5);border-radius:50%;animation:praxis-crud-opening-spin .72s linear infinite}@keyframes praxis-crud-opening-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-crud-opening-status__spinner{animation:none;border-top-color:currentColor}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PraxisTable, selector: "praxis-table", inputs: ["config", "resourcePath", "data", "tableId", "componentInstanceId", "configPersistenceStrategy", "title", "subtitle", "icon", "autoDelete", "notifyIfOutdated", "snoozeMs", "autoOpenSettingsOnOutdated", "crudContext", "filterCriteria", "filterTeleport", "widgetId", "queryContext", "aiContext", "aiAssistantVoiceInputMode", "aiAssistantVoiceLanguage", "horizontalScroll", "enableCustomization", "authoringCapability", "dense"], outputs: ["filterCriteriaChange", "queryContextClear", "queryContextChange", "rowClick", "widgetEvent", "resourceEvent", "rowDoubleClick", "rowExpansionChange", "rowAction", "toolbarAction", "bulkAction", "exportAction", "columnReorder", "columnReorderAttempt", "columnResize", "beforeDelete", "afterDelete", "deleteError", "beforeBulkDelete", "afterBulkDelete", "bulkDeleteError", "schemaStatusChange", "configChange", "metadataChange", "loadingStateChange", "collectionLinksChange", "selectionChange", "drawerOpen", "drawerClose", "drawerTabChange"] }, { kind: "component", type: EmptyStateCardComponent, selector: "praxis-empty-state-card", inputs: ["icon", "title", "description", "primaryAction", "secondaryActions", "inline", "tone", "variant", "alignment", "density", "iconContainer"] }, { kind: "component", type: PraxisKpiBandComponent, selector: "praxis-kpi-band", inputs: ["config", "dataContext", "isInteractiveHost", "activeFilter", "endpointKey", "apiUrlEntry"], outputs: ["cardClick", "statsLoaded", "statsError", "refreshClick"] }, { kind: "component", type: PraxisScopeBarComponent, selector: "praxis-scope-bar", inputs: ["config", "items", "activeId", "showOmnibox", "omniboxPlaceholder", "omniboxValue", "omniboxDebounceMs", "leadIcon", "leadLabel", "showClearButton", "clearLabel", "showActiveFilterSummary", "activeFilters", "filterLabels", "target", "targetWidgetId", "targetWidgetIds", "scopeBarId", "searchField"], outputs: ["activeIdChange", "omniboxValueChange", "activeFiltersChange", "scopeChange", "searchChange", "filterCriteriaChange", "clear"] }] });
|
|
15599
16351
|
}
|
|
15600
16352
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisCrudComponent, decorators: [{
|
|
15601
16353
|
type: Component,
|
|
15602
|
-
args: [{ selector: 'praxis-crud', standalone: true, imports: [
|
|
16354
|
+
args: [{ selector: 'praxis-crud', standalone: true, imports: [
|
|
16355
|
+
CommonModule,
|
|
16356
|
+
PraxisTable,
|
|
16357
|
+
EmptyStateCardComponent,
|
|
16358
|
+
PraxisKpiBandComponent,
|
|
16359
|
+
PraxisScopeBarComponent,
|
|
16360
|
+
], providers: [
|
|
15603
16361
|
providePraxisI18nConfig(RESOURCE_DISCOVERY_I18N_CONFIG),
|
|
15604
16362
|
providePraxisI18nConfig(PRAXIS_CRUD_RUNTIME_I18N_CONFIG),
|
|
15605
16363
|
], template: `
|
|
@@ -15610,6 +16368,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
15610
16368
|
<span>{{ getOpeningActionStatus(actionLabel) }}</span>
|
|
15611
16369
|
</div>
|
|
15612
16370
|
}
|
|
16371
|
+
@if (resolvedPageHeader; as ph) {
|
|
16372
|
+
<header class="praxis-crud-runtime__header section-header" data-testid="praxis-crud-page-header">
|
|
16373
|
+
<div class="praxis-crud-runtime__header-main">
|
|
16374
|
+
@if (ph.domain?.label?.trim(); as domLabel) {
|
|
16375
|
+
<div
|
|
16376
|
+
class="praxis-crud-runtime__domain-badge domain-tag"
|
|
16377
|
+
[ngClass]="ph.domain?.tone ? 'tone-' + ph.domain?.tone : ''"
|
|
16378
|
+
>
|
|
16379
|
+
@if (ph.domain?.icon) {
|
|
16380
|
+
<span class="material-symbols-outlined" aria-hidden="true">{{ ph.domain?.icon }}</span>
|
|
16381
|
+
}
|
|
16382
|
+
<span>{{ domLabel }}</span>
|
|
16383
|
+
</div>
|
|
16384
|
+
}
|
|
16385
|
+
@if (ph.title?.trim(); as headerTitle) {
|
|
16386
|
+
<h2 class="praxis-crud-runtime__title page-title title-gradient">{{ headerTitle }}</h2>
|
|
16387
|
+
}
|
|
16388
|
+
@if (ph.subtitle?.trim(); as headerSubtitle) {
|
|
16389
|
+
<p class="praxis-crud-runtime__subtitle page-subtitle">{{ headerSubtitle }}</p>
|
|
16390
|
+
}
|
|
16391
|
+
</div>
|
|
16392
|
+
</header>
|
|
16393
|
+
}
|
|
15613
16394
|
@if (resolvedKpiBandConfig) {
|
|
15614
16395
|
<praxis-kpi-band
|
|
15615
16396
|
[config]="resolvedKpiBandConfig"
|
|
@@ -15621,6 +16402,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
15621
16402
|
(cardClick)="onKpiCardClick($event)"
|
|
15622
16403
|
/>
|
|
15623
16404
|
}
|
|
16405
|
+
@if (resolvedStandaloneScopeBarItems; as scopeItems) {
|
|
16406
|
+
<praxis-scope-bar
|
|
16407
|
+
leadLabel="Filtro:"
|
|
16408
|
+
leadIcon="tune"
|
|
16409
|
+
[items]="scopeItems"
|
|
16410
|
+
[activeId]="activeStandaloneScopeId"
|
|
16411
|
+
[showClearButton]="true"
|
|
16412
|
+
clearLabel="Limpar Filtro"
|
|
16413
|
+
(scopeChange)="onStandaloneScopeChange($event)"
|
|
16414
|
+
(clear)="onStandaloneScopeClear()"
|
|
16415
|
+
/>
|
|
16416
|
+
}
|
|
15624
16417
|
@if (shouldRenderTable(resolvedMetadata)) {
|
|
15625
16418
|
<praxis-table
|
|
15626
16419
|
[config]="tableConfigForBinding"
|
|
@@ -15660,7 +16453,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
15660
16453
|
}
|
|
15661
16454
|
}
|
|
15662
16455
|
</div>
|
|
15663
|
-
`, styles: [":host{display:block;width:100%;min-width:0;max-width:100%}.praxis-crud-runtime{position:relative;min-width:0}.praxis-crud-opening-status{position:absolute;z-index:6;top:.7rem;right:.7rem;display:inline-flex;align-items:center;gap:.55rem;min-height:2.25rem;max-width:min(24rem,calc(100% - 1.4rem));padding:.48rem .72rem;border:1px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 32%,transparent);border-radius:999px;color:var(--md-sys-color-on-surface, currentColor);background:color-mix(in srgb,var(--md-sys-color-surface-container-high, var(--md-sys-color-surface)) 94%,transparent);box-shadow:0 10px 28px #0f172a29;font-size:.82rem;font-weight:650;line-height:1.25;pointer-events:none}.praxis-crud-opening-status__spinner{width:.95rem;height:.95rem;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 26%,transparent);border-top-color:var(--md-sys-color-primary, #3f51b5);border-radius:50%;animation:praxis-crud-opening-spin .72s linear infinite}@keyframes praxis-crud-opening-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-crud-opening-status__spinner{animation:none;border-top-color:currentColor}}\n"] }]
|
|
16456
|
+
`, styles: [":host{display:block;width:100%;min-width:0;max-width:100%}.praxis-crud-runtime{position:relative;min-width:0;display:flex;flex-direction:column;gap:16px}.praxis-crud-runtime__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.praxis-crud-runtime__header-main{min-width:0;display:flex;flex-direction:column}.praxis-crud-runtime__domain-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;align-self:flex-start;background:var(--praxis-domain-badge-bg, rgba(255, 255, 255, .08));color:var(--praxis-domain-badge-color, inherit);border:1px solid var(--praxis-domain-badge-border, rgba(255, 255, 255, .1))}.praxis-crud-runtime__domain-badge.tone-primary,.praxis-crud-runtime__domain-badge.tone-info{background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,transparent);color:var(--praxis-info, #38bdf8);border-color:color-mix(in srgb,var(--praxis-info, #0284c7) 30%,transparent)}.praxis-crud-runtime__domain-badge.tone-accent{background:color-mix(in srgb,var(--praxis-primary, #6366f1) 14%,transparent);color:var(--praxis-primary, #818cf8);border-color:color-mix(in srgb,var(--praxis-primary, #6366f1) 30%,transparent)}.praxis-crud-runtime__domain-badge.tone-success{background:color-mix(in srgb,var(--praxis-success, #059669) 14%,transparent);color:var(--praxis-success, #34d399);border-color:color-mix(in srgb,var(--praxis-success, #059669) 30%,transparent)}.praxis-crud-runtime__domain-badge.tone-warning,.praxis-crud-runtime__domain-badge.tone-warn{background:color-mix(in srgb,var(--praxis-warning, #d97706) 14%,transparent);color:var(--praxis-warning, #fbbf24);border-color:color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent)}.praxis-crud-runtime__domain-badge.tone-danger,.praxis-crud-runtime__domain-badge.tone-error{background:color-mix(in srgb,var(--praxis-error, #dc2626) 14%,transparent);color:var(--praxis-error, #f87171);border-color:color-mix(in srgb,var(--praxis-error, #dc2626) 30%,transparent)}.praxis-crud-runtime__domain-badge span.material-symbols-outlined{font-size:14px}.praxis-crud-runtime__title{margin:0 0 6px;font-size:var(--praxis-page-title-size, 1.75rem);font-weight:800;letter-spacing:-.02em;color:var(--praxis-page-title-color, var(--foreground, inherit));line-height:1.2}.praxis-crud-runtime__subtitle{margin:0;font-size:var(--praxis-page-subtitle-size, .9rem);color:var(--muted-foreground, #94a3b8);max-width:800px;line-height:1.5}.praxis-crud-opening-status{position:absolute;z-index:6;top:.7rem;right:.7rem;display:inline-flex;align-items:center;gap:.55rem;min-height:2.25rem;max-width:min(24rem,calc(100% - 1.4rem));padding:.48rem .72rem;border:1px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 32%,transparent);border-radius:999px;color:var(--md-sys-color-on-surface, currentColor);background:color-mix(in srgb,var(--md-sys-color-surface-container-high, var(--md-sys-color-surface)) 94%,transparent);box-shadow:0 10px 28px #0f172a29;font-size:.82rem;font-weight:650;line-height:1.25;pointer-events:none}.praxis-crud-opening-status__spinner{width:.95rem;height:.95rem;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 26%,transparent);border-top-color:var(--md-sys-color-primary, #3f51b5);border-radius:50%;animation:praxis-crud-opening-spin .72s linear infinite}@keyframes praxis-crud-opening-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-crud-opening-status__spinner{animation:none;border-top-color:currentColor}}\n"] }]
|
|
15664
16457
|
}], ctorParameters: () => [], propDecorators: { metadata: [{
|
|
15665
16458
|
type: Input
|
|
15666
16459
|
}], crudId: [{
|
|
@@ -15687,6 +16480,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
15687
16480
|
}], disableAutoDrawer: [{
|
|
15688
16481
|
type: Input,
|
|
15689
16482
|
args: [{ transform: booleanAttribute }]
|
|
16483
|
+
}], hostManagedChrome: [{
|
|
16484
|
+
type: Input,
|
|
16485
|
+
args: [{ transform: booleanAttribute }]
|
|
15690
16486
|
}], configureRequested: [{
|
|
15691
16487
|
type: Output
|
|
15692
16488
|
}], afterOpen: [{
|
|
@@ -17007,16 +17803,25 @@ class PraxisCrudWidgetConfigEditor {
|
|
|
17007
17803
|
return undefined;
|
|
17008
17804
|
}
|
|
17009
17805
|
if (!('effectiveMetadata' in context) &&
|
|
17010
|
-
!('effectiveTableConfig' in context)
|
|
17806
|
+
!('effectiveTableConfig' in context) &&
|
|
17807
|
+
!('authoringDocument' in context) &&
|
|
17808
|
+
!('authoringMetadata' in context)) {
|
|
17011
17809
|
return context;
|
|
17012
17810
|
}
|
|
17013
17811
|
const rest = { ...context };
|
|
17014
17812
|
delete rest['effectiveMetadata'];
|
|
17015
17813
|
delete rest['effectiveTableConfig'];
|
|
17814
|
+
delete rest['authoringDocument'];
|
|
17815
|
+
delete rest['authoringMetadata'];
|
|
17016
17816
|
return Object.keys(rest).length > 0 ? rest : undefined;
|
|
17017
17817
|
}
|
|
17018
17818
|
createDocumentFromInputs() {
|
|
17019
|
-
|
|
17819
|
+
const rawContext = this.inputs?.context ?? null;
|
|
17820
|
+
const contextSeed = rawContext && typeof rawContext === 'object'
|
|
17821
|
+
? (rawContext['authoringDocument'] ?? rawContext['authoringMetadata'])
|
|
17822
|
+
: undefined;
|
|
17823
|
+
return parseLegacyOrCrudDocument(this.inputs?.metadata ??
|
|
17824
|
+
contextSeed ?? {
|
|
17020
17825
|
component: 'praxis-crud',
|
|
17021
17826
|
table: { columns: [] },
|
|
17022
17827
|
});
|
|
@@ -17159,9 +17964,13 @@ const PRAXIS_CRUD_COMPONENT_METADATA = {
|
|
|
17159
17964
|
id: 'praxis-crud',
|
|
17160
17965
|
selector: 'praxis-crud',
|
|
17161
17966
|
component: PraxisCrudComponent,
|
|
17162
|
-
friendlyName: '
|
|
17163
|
-
description: '
|
|
17967
|
+
friendlyName: 'Workspace de Recurso',
|
|
17968
|
+
description: 'Superfície operacional completa guiada por contrato: listagem semântica, KPIs, escopo, dossiês e ações de negócio.',
|
|
17164
17969
|
icon: 'table_chart',
|
|
17970
|
+
layoutHints: {
|
|
17971
|
+
recommendedCols: 12,
|
|
17972
|
+
recommendedRows: 6,
|
|
17973
|
+
},
|
|
17165
17974
|
runtimeProfiles: [
|
|
17166
17975
|
{
|
|
17167
17976
|
id: 'public-local-inspect-only',
|
|
@@ -17315,7 +18124,7 @@ const PRAXIS_CRUD_COMPONENT_METADATA = {
|
|
|
17315
18124
|
},
|
|
17316
18125
|
configEditor: {
|
|
17317
18126
|
component: PraxisCrudWidgetConfigEditor,
|
|
17318
|
-
title: '
|
|
18127
|
+
title: 'Configurações do Workspace de Recurso',
|
|
17319
18128
|
contextResolver: ({ materializedInputs }) => ({
|
|
17320
18129
|
context: {
|
|
17321
18130
|
effectiveMetadata: materializedInputs?.['metadata'],
|
|
@@ -18520,10 +19329,14 @@ class PraxisResourcePage {
|
|
|
18520
19329
|
}, ...(ngDevMode ? [{ debugName: "hasCrudSeed" }] : /* istanbul ignore next */ []));
|
|
18521
19330
|
effectiveResource = computed(() => {
|
|
18522
19331
|
this.inputsVersion();
|
|
19332
|
+
const authoredResource = this.extractResourcePathFromMetadata(this.authoredMetadataSignal());
|
|
19333
|
+
if (authoredResource) {
|
|
19334
|
+
return authoredResource;
|
|
19335
|
+
}
|
|
18523
19336
|
return (this.resource ||
|
|
18524
19337
|
this.resourcePath ||
|
|
18525
19338
|
this.routeResourceSignal() ||
|
|
18526
|
-
this.extractResourcePathFromMetadata(this.
|
|
19339
|
+
this.extractResourcePathFromMetadata(this.metadata || this.routeMetadataSignal()));
|
|
18527
19340
|
}, ...(ngDevMode ? [{ debugName: "effectiveResource" }] : /* istanbul ignore next */ []));
|
|
18528
19341
|
effectiveTitle = computed(() => {
|
|
18529
19342
|
this.inputsVersion();
|
|
@@ -18661,8 +19474,12 @@ class PraxisResourcePage {
|
|
|
18661
19474
|
const routeCrudId = this.routeCrudIdSignal();
|
|
18662
19475
|
if (routeCrudId)
|
|
18663
19476
|
return routeCrudId;
|
|
18664
|
-
const
|
|
18665
|
-
|
|
19477
|
+
const initialRes = this.resource ||
|
|
19478
|
+
this.resourcePath ||
|
|
19479
|
+
this.routeResourceSignal() ||
|
|
19480
|
+
this.extractResourcePathFromMetadata(this.metadata || this.routeMetadataSignal()) ||
|
|
19481
|
+
this.effectiveResource();
|
|
19482
|
+
return initialRes ? `crud-${initialRes.replace(/\//g, '-')}` : 'praxis-crud-auto';
|
|
18666
19483
|
}, ...(ngDevMode ? [{ debugName: "resolvedCrudId" }] : /* istanbul ignore next */ []));
|
|
18667
19484
|
effectiveFilterCriteria = computed(() => {
|
|
18668
19485
|
this.inputsVersion();
|
|
@@ -19234,6 +20051,7 @@ class PraxisResourcePage {
|
|
|
19234
20051
|
[filterTeleport]="effectiveIncludeInlineFilters()"
|
|
19235
20052
|
[enableCustomization]="effectiveEnableCustomization()"
|
|
19236
20053
|
[disableAutoDrawer]="disableAutoDrawer"
|
|
20054
|
+
[hostManagedChrome]="true"
|
|
19237
20055
|
[tableConfigPersistenceStrategy]="tableConfigPersistenceStrategy"
|
|
19238
20056
|
[context]="context"
|
|
19239
20057
|
(crudAuthoringDocumentApplied)="onCrudAuthoringDocumentChanged($event)"
|
|
@@ -19255,7 +20073,7 @@ class PraxisResourcePage {
|
|
|
19255
20073
|
}
|
|
19256
20074
|
}
|
|
19257
20075
|
</div>
|
|
19258
|
-
`, isInline: true, styles: [":host{display:block;width:100%;min-height:100%;box-sizing:border-box}.praxis-resource-page{width:100%;display:flex;flex-direction:column;gap:20px;padding:var(--praxis-page-padding, 24px);box-sizing:border-box;max-width:1540px;margin:0 auto}.praxis-resource-page__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.praxis-resource-page__header-main{min-width:0;display:flex;flex-direction:column}.praxis-resource-page__domain-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;align-self:flex-start;background:var(--praxis-domain-badge-bg, rgba(255, 255, 255, .08));color:var(--praxis-domain-badge-color, inherit);border:1px solid var(--praxis-domain-badge-border, rgba(255, 255, 255, .1))}.praxis-resource-page__domain-badge.tone-primary,.praxis-resource-page__domain-badge.tone-info{background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,transparent);color:var(--praxis-info, #38bdf8);border-color:color-mix(in srgb,var(--praxis-info, #0284c7) 30%,transparent)}.praxis-resource-page__domain-badge.tone-accent{background:color-mix(in srgb,var(--praxis-primary, #6366f1) 14%,transparent);color:var(--praxis-primary, #818cf8);border-color:color-mix(in srgb,var(--praxis-primary, #6366f1) 30%,transparent)}.praxis-resource-page__domain-badge.tone-success{background:color-mix(in srgb,var(--praxis-success, #059669) 14%,transparent);color:var(--praxis-success, #34d399);border-color:color-mix(in srgb,var(--praxis-success, #059669) 30%,transparent)}.praxis-resource-page__domain-badge.tone-warning,.praxis-resource-page__domain-badge.tone-warn{background:color-mix(in srgb,var(--praxis-warning, #d97706) 14%,transparent);color:var(--praxis-warning, #fbbf24);border-color:color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent)}.praxis-resource-page__domain-badge.tone-danger,.praxis-resource-page__domain-badge.tone-error{background:color-mix(in srgb,var(--praxis-error, #dc2626) 14%,transparent);color:var(--praxis-error, #f87171);border-color:color-mix(in srgb,var(--praxis-error, #dc2626) 30%,transparent)}.praxis-resource-page__domain-badge span.material-symbols-outlined{font-size:14px}.praxis-resource-page__title{margin:0 0 6px;font-size:var(--praxis-page-title-size, 2rem);font-weight:800;letter-spacing:-.02em;color:var(--praxis-page-title-color, var(--foreground, inherit));line-height:1.2}.praxis-resource-page__subtitle{margin:0;font-size:var(--praxis-page-subtitle-size, .9rem);color:var(--muted-foreground, #94a3b8);max-width:800px;line-height:1.5}.praxis-resource-page__header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.praxis-resource-page__configure-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--praxis-primary, #6366f1) 35%,transparent);background:color-mix(in srgb,var(--praxis-primary, #6366f1) 14%,transparent);color:var(--praxis-primary, #818cf8);font-size:13px;font-weight:600;cursor:pointer;transition:all .16s ease}.praxis-resource-page__configure-btn:hover{background:color-mix(in srgb,var(--praxis-primary, #6366f1) 22%,transparent)}.praxis-resource-page__configure-btn .material-symbols-outlined{font-size:18px}.praxis-resource-page__crud-surface{width:100%;border-radius:var(--praxis-surface-radius, 16px);overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PraxisCrudComponent, selector: "praxis-crud", inputs: ["metadata", "crudId", "resource", "componentInstanceId", "tableConfigPersistenceStrategy", "context", "enableCustomization", "showResourceIdentityKey", "authoringCapability", "filterCriteria", "filterTeleport", "disableAutoDrawer"], outputs: ["configureRequested", "afterOpen", "afterClose", "afterSave", "afterDelete", "reactiveDeterminationExecuted", "reactiveDeterminationPendingChange", "reactiveDeterminationStabilityChange", "error", "rowClick", "rowAction", "selectionChange", "resourceEvent", "tableRuntimeConfigChange", "drawerOpen", "drawerClose", "crudAuthoringDocumentApplied", "crudAuthoringDocumentSaved", "filterCriteriaChange", "kpiCardClick"] }, { kind: "component", type: PraxisScopeBarComponent, selector: "praxis-scope-bar", inputs: ["config", "items", "activeId", "showOmnibox", "omniboxPlaceholder", "omniboxValue", "omniboxDebounceMs", "leadIcon", "leadLabel", "showClearButton", "clearLabel", "showActiveFilterSummary", "activeFilters", "filterLabels", "target", "targetWidgetId", "targetWidgetIds", "scopeBarId", "searchField"], outputs: ["activeIdChange", "omniboxValueChange", "activeFiltersChange", "scopeChange", "searchChange", "filterCriteriaChange", "clear"] }, { kind: "component", type: PraxisFilterOutletComponent, selector: "praxis-filter-outlet", inputs: ["target"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20076
|
+
`, isInline: true, styles: [":host{display:block;width:100%;min-height:100%;box-sizing:border-box}.praxis-resource-page{width:100%;display:flex;flex-direction:column;gap:20px;padding:var(--praxis-page-padding, 24px);box-sizing:border-box;max-width:1540px;margin:0 auto}.praxis-resource-page__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.praxis-resource-page__header-main{min-width:0;display:flex;flex-direction:column}.praxis-resource-page__domain-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;align-self:flex-start;background:var(--praxis-domain-badge-bg, rgba(255, 255, 255, .08));color:var(--praxis-domain-badge-color, inherit);border:1px solid var(--praxis-domain-badge-border, rgba(255, 255, 255, .1))}.praxis-resource-page__domain-badge.tone-primary,.praxis-resource-page__domain-badge.tone-info{background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,transparent);color:var(--praxis-info, #38bdf8);border-color:color-mix(in srgb,var(--praxis-info, #0284c7) 30%,transparent)}.praxis-resource-page__domain-badge.tone-accent{background:color-mix(in srgb,var(--praxis-primary, #6366f1) 14%,transparent);color:var(--praxis-primary, #818cf8);border-color:color-mix(in srgb,var(--praxis-primary, #6366f1) 30%,transparent)}.praxis-resource-page__domain-badge.tone-success{background:color-mix(in srgb,var(--praxis-success, #059669) 14%,transparent);color:var(--praxis-success, #34d399);border-color:color-mix(in srgb,var(--praxis-success, #059669) 30%,transparent)}.praxis-resource-page__domain-badge.tone-warning,.praxis-resource-page__domain-badge.tone-warn{background:color-mix(in srgb,var(--praxis-warning, #d97706) 14%,transparent);color:var(--praxis-warning, #fbbf24);border-color:color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent)}.praxis-resource-page__domain-badge.tone-danger,.praxis-resource-page__domain-badge.tone-error{background:color-mix(in srgb,var(--praxis-error, #dc2626) 14%,transparent);color:var(--praxis-error, #f87171);border-color:color-mix(in srgb,var(--praxis-error, #dc2626) 30%,transparent)}.praxis-resource-page__domain-badge span.material-symbols-outlined{font-size:14px}.praxis-resource-page__title{margin:0 0 6px;font-size:var(--praxis-page-title-size, 2rem);font-weight:800;letter-spacing:-.02em;color:var(--praxis-page-title-color, var(--foreground, inherit));line-height:1.2}.praxis-resource-page__subtitle{margin:0;font-size:var(--praxis-page-subtitle-size, .9rem);color:var(--muted-foreground, #94a3b8);max-width:800px;line-height:1.5}.praxis-resource-page__header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.praxis-resource-page__configure-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--praxis-primary, #6366f1) 35%,transparent);background:color-mix(in srgb,var(--praxis-primary, #6366f1) 14%,transparent);color:var(--praxis-primary, #818cf8);font-size:13px;font-weight:600;cursor:pointer;transition:all .16s ease}.praxis-resource-page__configure-btn:hover{background:color-mix(in srgb,var(--praxis-primary, #6366f1) 22%,transparent)}.praxis-resource-page__configure-btn .material-symbols-outlined{font-size:18px}.praxis-resource-page__crud-surface{width:100%;border-radius:var(--praxis-surface-radius, 16px);overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PraxisCrudComponent, selector: "praxis-crud", inputs: ["metadata", "crudId", "resource", "componentInstanceId", "tableConfigPersistenceStrategy", "context", "enableCustomization", "showResourceIdentityKey", "authoringCapability", "filterCriteria", "filterTeleport", "disableAutoDrawer", "hostManagedChrome"], outputs: ["configureRequested", "afterOpen", "afterClose", "afterSave", "afterDelete", "reactiveDeterminationExecuted", "reactiveDeterminationPendingChange", "reactiveDeterminationStabilityChange", "error", "rowClick", "rowAction", "selectionChange", "resourceEvent", "tableRuntimeConfigChange", "drawerOpen", "drawerClose", "crudAuthoringDocumentApplied", "crudAuthoringDocumentSaved", "filterCriteriaChange", "kpiCardClick"] }, { kind: "component", type: PraxisScopeBarComponent, selector: "praxis-scope-bar", inputs: ["config", "items", "activeId", "showOmnibox", "omniboxPlaceholder", "omniboxValue", "omniboxDebounceMs", "leadIcon", "leadLabel", "showClearButton", "clearLabel", "showActiveFilterSummary", "activeFilters", "filterLabels", "target", "targetWidgetId", "targetWidgetIds", "scopeBarId", "searchField"], outputs: ["activeIdChange", "omniboxValueChange", "activeFiltersChange", "scopeChange", "searchChange", "filterCriteriaChange", "clear"] }, { kind: "component", type: PraxisFilterOutletComponent, selector: "praxis-filter-outlet", inputs: ["target"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19259
20077
|
}
|
|
19260
20078
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisResourcePage, decorators: [{
|
|
19261
20079
|
type: Component,
|
|
@@ -19349,6 +20167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
19349
20167
|
[filterTeleport]="effectiveIncludeInlineFilters()"
|
|
19350
20168
|
[enableCustomization]="effectiveEnableCustomization()"
|
|
19351
20169
|
[disableAutoDrawer]="disableAutoDrawer"
|
|
20170
|
+
[hostManagedChrome]="true"
|
|
19352
20171
|
[tableConfigPersistenceStrategy]="tableConfigPersistenceStrategy"
|
|
19353
20172
|
[context]="context"
|
|
19354
20173
|
(crudAuthoringDocumentApplied)="onCrudAuthoringDocumentChanged($event)"
|