@praxisui/table 9.0.0-beta.69 → 9.0.0-beta.70
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 +2 -2
- package/fesm2022/{praxisui-table-praxisui-table-BCyWwK7j.mjs → praxisui-table-praxisui-table-O-dD2rsX.mjs} +135 -63
- package/fesm2022/{praxisui-table-table-ai.adapter-Rr3hpEjl.mjs → praxisui-table-table-ai.adapter-BLhlF2o3.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/types/praxisui-table.d.ts +26 -4
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-07-
|
|
3
|
+
"generatedAt": "2026-07-10T23:38:40.443Z",
|
|
4
4
|
"packageName": "@praxisui/table",
|
|
5
|
-
"packageVersion": "9.0.0-beta.
|
|
5
|
+
"packageVersion": "9.0.0-beta.70",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -36,7 +36,7 @@ import * as i13 from '@angular/cdk/drag-drop';
|
|
|
36
36
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
37
37
|
import { Subject, debounceTime, takeUntil, firstValueFrom, of, BehaviorSubject, Subscription, take as take$1 } from 'rxjs';
|
|
38
38
|
import * as i1 from '@praxisui/core';
|
|
39
|
-
import { LoggerService, createCorporateLoggerConfig, ConsoleLoggerSink, PraxisJsonLogicService, PraxisIconDirective, PraxisI18nService, isTableConfigV2, providePraxisI18nConfig, PRAXIS_GLOBAL_ACTION_CATALOG, SURFACE_OPEN_I18N_NAMESPACE, isRequiredGlobalActionPayloadMissing, getGlobalActionUiSchema, getRequiredGlobalActionPayloadKeys, hasMeaningfulGlobalActionPayloadValue, SurfaceOpenActionEditorComponent, SURFACE_OPEN_I18N_CONFIG, ASYNC_CONFIG_STORAGE, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_VALUES, FieldControlType, normalizeControlTypeToken, resolveControlTypeAlias, mapFieldDefinitionsToMetadata, PraxisJsonLogicError, GLOBAL_ACTION_CATALOG, GenericCrudService, validateGlobalActionRefs, getGlobalActionCatalog, TableConfigService, createDefaultTableConfig, fillUndefined, deepMerge, INLINE_FILTER_ALIAS_TOKENS, GlobalConfigService, buildSchemaId, MemoryCacheAdapter, LocalStorageCacheAdapter, SchemaMetadataClient, resolveInlineFilterControlType, fetchWithETag, serializeEntityLookupValueForPayload, ComponentMetadataRegistry, AnalyticsStatsRequestBuilderService, buildApiUrl, normalizePraxisDataQueryContext, API_URL, PraxisRuntimeComponentObservationRegistryService, PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, PraxisCollectionExportService, SchemaNormalizerService, translateResourceAvailabilityReason, ResourceDiscoveryService, ResourceSurfaceOpenAdapterService, CrudOperationResolutionService, ResourceQuickConnectComponent, assertPraxisCollectionExportArtifact, PRAXIS_LOADING_CTX, resolveColumnTypeFromFieldDefinition, isPraxisPresentationVisualizationTableSafe, resolveTextMaskFormatFromFieldDefinition, translateResourceDiscoveryText, supportsImplicitValuePresentation, resolveValuePresentation, renderPraxisPresentationVisualizationHtml, translateUnavailableWorkflowMessage, CONNECTION_STORAGE, PRAXIS_LOADING_RENDERER, EmptyStateCardComponent, RESOURCE_DISCOVERY_I18N_CONFIG } from '@praxisui/core';
|
|
39
|
+
import { LoggerService, createCorporateLoggerConfig, ConsoleLoggerSink, PraxisJsonLogicService, PraxisIconDirective, PraxisI18nService, isTableConfigV2, providePraxisI18nConfig, PRAXIS_GLOBAL_ACTION_CATALOG, SURFACE_OPEN_I18N_NAMESPACE, isRequiredGlobalActionPayloadMissing, getGlobalActionUiSchema, getRequiredGlobalActionPayloadKeys, hasMeaningfulGlobalActionPayloadValue, SurfaceOpenActionEditorComponent, SURFACE_OPEN_I18N_CONFIG, ASYNC_CONFIG_STORAGE, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_VALUES, FieldControlType, normalizeControlTypeToken, resolveControlTypeAlias, mapFieldDefinitionsToMetadata, PraxisJsonLogicError, GLOBAL_ACTION_CATALOG, GenericCrudService, validateGlobalActionRefs, getGlobalActionCatalog, TableConfigService, createDefaultTableConfig, fillUndefined, deepMerge, INLINE_FILTER_ALIAS_TOKENS, GlobalConfigService, buildSchemaId, MemoryCacheAdapter, LocalStorageCacheAdapter, SchemaMetadataClient, resolveInlineFilterControlType, fetchWithETag, serializeEntityLookupValueForPayload, ComponentMetadataRegistry, AnalyticsStatsRequestBuilderService, buildApiUrl, normalizePraxisDataQueryContext, API_URL, PraxisRuntimeComponentObservationRegistryService, PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, PraxisCollectionExportService, SchemaNormalizerService, translateResourceAvailabilityReason, ResourceDiscoveryService, ResourceSurfaceOpenAdapterService, CrudOperationResolutionService, ResourceQuickConnectComponent, assertPraxisCollectionExportArtifact, PRAXIS_LOADING_CTX, resolveColumnTypeFromFieldDefinition, isPraxisPresentationVisualizationTableSafe, resolveTextMaskFormatFromFieldDefinition, translateResourceDiscoveryText, supportsImplicitValuePresentation, resolveValuePresentation, renderPraxisPresentationVisualizationHtml, materializeResourceIdentity, translateUnavailableWorkflowMessage, CONNECTION_STORAGE, PRAXIS_LOADING_RENDERER, EmptyStateCardComponent, RESOURCE_DISCOVERY_I18N_CONFIG } from '@praxisui/core';
|
|
40
40
|
import { PraxisRichContent } from '@praxisui/rich-content';
|
|
41
41
|
import * as i2 from '@angular/material/toolbar';
|
|
42
42
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
@@ -70,7 +70,7 @@ import { MatDialogModule } from '@angular/material/dialog';
|
|
|
70
70
|
import { distinctUntilChanged, debounceTime as debounceTime$1, take, map, startWith, takeUntil as takeUntil$1 } from 'rxjs/operators';
|
|
71
71
|
import * as i15$2 from '@angular/material/datepicker';
|
|
72
72
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
73
|
-
import { MatNativeDateModule
|
|
73
|
+
import { MatNativeDateModule } from '@angular/material/core';
|
|
74
74
|
import { toCellClassAndStyle, RuleEffectsPanelComponent } from '@praxisui/table-rule-builder';
|
|
75
75
|
import { DynamicFieldLoaderDirective, supportsClearButtonControlType } from '@praxisui/dynamic-fields';
|
|
76
76
|
import * as i14$1 from '@angular/material/progress-bar';
|
|
@@ -79,6 +79,7 @@ import * as i15$3 from '@angular/material/progress-spinner';
|
|
|
79
79
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
80
80
|
import * as i12 from '@angular/cdk/overlay';
|
|
81
81
|
import { OverlayModule, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
82
|
+
import * as i19 from '@angular/cdk/a11y';
|
|
82
83
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
83
84
|
import * as i6$1 from '@angular/router';
|
|
84
85
|
import * as i11$1 from '@angular/cdk/scrolling';
|
|
@@ -34362,8 +34363,6 @@ function getFilterDrawerAdapterToken() {
|
|
|
34362
34363
|
}
|
|
34363
34364
|
const FILTER_DRAWER_ADAPTER = getFilterDrawerAdapterToken();
|
|
34364
34365
|
|
|
34365
|
-
const ADD_FILTER_SEARCH_OPTION_ID = '__praxis_filter_add_search__';
|
|
34366
|
-
const ADD_FILTER_SELECT_ALL_OPTION_ID = '__praxis_filter_add_select_all__';
|
|
34367
34366
|
const DEFAULT_I18N = {
|
|
34368
34367
|
searchPlaceholder: 'Buscar',
|
|
34369
34368
|
advanced: 'Avançado',
|
|
@@ -34376,6 +34375,16 @@ const DEFAULT_I18N = {
|
|
|
34376
34375
|
filtersAdd: 'Adicionar filtro',
|
|
34377
34376
|
filtersSearch: 'Buscar filtros',
|
|
34378
34377
|
addCount: 'Gerenciar campos de filtro ({count} exibidos)',
|
|
34378
|
+
addCountSingular: 'Gerenciar campos de filtro ({count} exibido)',
|
|
34379
|
+
manageFieldsTitle: 'Gerenciar campos de filtro',
|
|
34380
|
+
manageFieldsDescription: 'Escolha os campos exibidos na barra de filtros.',
|
|
34381
|
+
close: 'Fechar',
|
|
34382
|
+
clearSearch: 'Limpar busca',
|
|
34383
|
+
selectedFieldsSuffix: 'campos exibidos',
|
|
34384
|
+
selectAllResults: 'Selecionar todos os resultados',
|
|
34385
|
+
noFilterFieldsFound: 'Nenhum campo encontrado.',
|
|
34386
|
+
fieldSelectionConflict: 'A seleção de campos foi atualizada externamente. Feche e abra novamente para continuar.',
|
|
34387
|
+
removingActiveFields: 'Ao aplicar, os valores destes filtros serão removidos:',
|
|
34379
34388
|
addUnavailable: 'Todos os campos já estão visíveis',
|
|
34380
34389
|
pendingCount: '{count} selecionado(s)',
|
|
34381
34390
|
activeFiltersCount: '{count} filtros ativos',
|
|
@@ -34498,6 +34507,7 @@ class PraxisFilter {
|
|
|
34498
34507
|
componentKeys;
|
|
34499
34508
|
route;
|
|
34500
34509
|
logger;
|
|
34510
|
+
addManagerOrigin;
|
|
34501
34511
|
resourcePath;
|
|
34502
34512
|
/** Resolved API entry carried by detached hosts when route-scoped API_URL is not inherited. */
|
|
34503
34513
|
apiUrlEntry;
|
|
@@ -34659,8 +34669,15 @@ class PraxisFilter {
|
|
|
34659
34669
|
// Add popover a11y ids
|
|
34660
34670
|
addQuery = '';
|
|
34661
34671
|
addItems = [];
|
|
34662
|
-
|
|
34663
|
-
|
|
34672
|
+
addDraftSelectedFieldIds = [];
|
|
34673
|
+
addManagerOpen = false;
|
|
34674
|
+
addManagerConflict = false;
|
|
34675
|
+
addManagerTitleId = `praxis-filter-fields-title-${Math.random().toString(36).slice(2)}`;
|
|
34676
|
+
addManagerDescriptionId = `praxis-filter-fields-description-${Math.random().toString(36).slice(2)}`;
|
|
34677
|
+
addOverlayPositions = [
|
|
34678
|
+
{ originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 8 },
|
|
34679
|
+
{ originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -8 },
|
|
34680
|
+
];
|
|
34664
34681
|
applySchemaQueued = false;
|
|
34665
34682
|
fallbackLogger;
|
|
34666
34683
|
fallbackLoggerEnvironment = null;
|
|
@@ -35395,6 +35412,12 @@ class PraxisFilter {
|
|
|
35395
35412
|
}
|
|
35396
35413
|
if (changes['selectedFieldIds'] && !changes['selectedFieldIds'].firstChange) {
|
|
35397
35414
|
this.selectedFieldIds = this.normalizeFieldIdList(this.selectedFieldIds);
|
|
35415
|
+
if (this.addManagerOpen && this.isAddManagerDirty()) {
|
|
35416
|
+
this.addManagerConflict = true;
|
|
35417
|
+
}
|
|
35418
|
+
else if (this.addManagerOpen) {
|
|
35419
|
+
this.addDraftSelectedFieldIds = [...this.selectedFieldIds];
|
|
35420
|
+
}
|
|
35398
35421
|
this.logFilterDebug('[PFILTER] ngOnChanges: selectedFieldIds changed', {
|
|
35399
35422
|
selectedFieldIds: this.selectedFieldIds,
|
|
35400
35423
|
hasSchema: !!this.schemaMetas,
|
|
@@ -37454,9 +37477,12 @@ class PraxisFilter {
|
|
|
37454
37477
|
onAdvancedValidityChange(valid) {
|
|
37455
37478
|
this.advancedValid = valid;
|
|
37456
37479
|
}
|
|
37457
|
-
// ===== Add Filter
|
|
37480
|
+
// ===== Add Filter manager state and helpers =====
|
|
37458
37481
|
onAddOpened(opened) {
|
|
37482
|
+
this.addManagerOpen = opened;
|
|
37459
37483
|
if (opened) {
|
|
37484
|
+
this.addDraftSelectedFieldIds = [...(this.selectedFieldIds || [])];
|
|
37485
|
+
this.addManagerConflict = false;
|
|
37460
37486
|
if (!this.schemaMetas && !this.schemaLoading) {
|
|
37461
37487
|
if (this.usesProvidedFieldMetadata())
|
|
37462
37488
|
this.applyProvidedFieldMetadata();
|
|
@@ -37469,32 +37495,77 @@ class PraxisFilter {
|
|
|
37469
37495
|
}
|
|
37470
37496
|
this.updateAddItems();
|
|
37471
37497
|
}
|
|
37472
|
-
setTimeout(() => {
|
|
37473
|
-
try {
|
|
37474
|
-
const el = document.querySelector('.praxis-add-select-panel .add-search input');
|
|
37475
|
-
el?.focus?.();
|
|
37476
|
-
// Fallback for browsers without :has support: relax overlay pane width
|
|
37477
|
-
const pane = document.querySelector('.cdk-overlay-pane .praxis-add-select-panel')?.closest('.cdk-overlay-pane');
|
|
37478
|
-
if (pane) {
|
|
37479
|
-
pane.style.width = 'auto';
|
|
37480
|
-
// Mirror clamp(360px, 50vw, 640px)
|
|
37481
|
-
const w = Math.min(640, Math.max(360, Math.round(globalThis?.innerWidth ? globalThis.innerWidth * 0.5 : 480)));
|
|
37482
|
-
pane.style.minWidth = w + 'px';
|
|
37483
|
-
}
|
|
37484
|
-
}
|
|
37485
|
-
catch { }
|
|
37486
|
-
});
|
|
37487
37498
|
}
|
|
37499
|
+
else {
|
|
37500
|
+
this.addQuery = '';
|
|
37501
|
+
this.addDraftSelectedFieldIds = [...(this.selectedFieldIds || [])];
|
|
37502
|
+
this.addManagerConflict = false;
|
|
37503
|
+
this.updateAddItems();
|
|
37504
|
+
}
|
|
37505
|
+
}
|
|
37506
|
+
toggleAddManager() {
|
|
37507
|
+
if (!this.hasAddableFields())
|
|
37508
|
+
return;
|
|
37509
|
+
this.onAddOpened(!this.addManagerOpen);
|
|
37510
|
+
}
|
|
37511
|
+
closeAddManager() {
|
|
37512
|
+
if (!this.addManagerOpen)
|
|
37513
|
+
return;
|
|
37514
|
+
this.onAddOpened(false);
|
|
37515
|
+
setTimeout(() => this.addManagerOrigin?.nativeElement.focus());
|
|
37516
|
+
}
|
|
37517
|
+
toggleManagedField(fieldId, checked) {
|
|
37518
|
+
const current = new Set(this.addDraftSelectedFieldIds || []);
|
|
37519
|
+
checked ? current.add(fieldId) : current.delete(fieldId);
|
|
37520
|
+
this.addDraftSelectedFieldIds = [...current];
|
|
37521
|
+
}
|
|
37522
|
+
applyAddManager() {
|
|
37523
|
+
if (this.addManagerConflict)
|
|
37524
|
+
return;
|
|
37525
|
+
if (!this.isAddManagerDirty()) {
|
|
37526
|
+
this.closeAddManager();
|
|
37527
|
+
return;
|
|
37528
|
+
}
|
|
37529
|
+
this.onAddSelectionChange(this.addDraftSelectedFieldIds);
|
|
37530
|
+
this.closeAddManager();
|
|
37531
|
+
}
|
|
37532
|
+
isAddManagerDirty() {
|
|
37533
|
+
const current = this.normalizeFieldIdList(this.selectedFieldIds).sort();
|
|
37534
|
+
const draft = this.normalizeFieldIdList(this.addDraftSelectedFieldIds).sort();
|
|
37535
|
+
return current.length !== draft.length || current.some((id, index) => id !== draft[index]);
|
|
37536
|
+
}
|
|
37537
|
+
getAddManagerChangeCount() {
|
|
37538
|
+
const current = new Set(this.normalizeFieldIdList(this.selectedFieldIds));
|
|
37539
|
+
const draft = new Set(this.normalizeFieldIdList(this.addDraftSelectedFieldIds));
|
|
37540
|
+
let count = 0;
|
|
37541
|
+
for (const id of current)
|
|
37542
|
+
if (!draft.has(id))
|
|
37543
|
+
count += 1;
|
|
37544
|
+
for (const id of draft)
|
|
37545
|
+
if (!current.has(id))
|
|
37546
|
+
count += 1;
|
|
37547
|
+
return count;
|
|
37548
|
+
}
|
|
37549
|
+
getRemovedActiveFieldLabels() {
|
|
37550
|
+
const draft = new Set(this.normalizeFieldIdList(this.addDraftSelectedFieldIds));
|
|
37551
|
+
const labels = new Map(this.getManageableFilterItems('').map((item) => [item.id, item.label]));
|
|
37552
|
+
return this.normalizeFieldIdList(this.selectedFieldIds)
|
|
37553
|
+
.filter((id) => !draft.has(id) && this.hasMeaningfulFilterValue(this.dto?.[id]))
|
|
37554
|
+
.map((id) => labels.get(id) || id);
|
|
37555
|
+
}
|
|
37556
|
+
hasMeaningfulFilterValue(value) {
|
|
37557
|
+
if (value === null || value === undefined || value === '')
|
|
37558
|
+
return false;
|
|
37559
|
+
if (Array.isArray(value))
|
|
37560
|
+
return value.length > 0;
|
|
37561
|
+
if (typeof value === 'object')
|
|
37562
|
+
return Object.keys(value).length > 0;
|
|
37563
|
+
return true;
|
|
37488
37564
|
}
|
|
37489
37565
|
onAddQuery(q) {
|
|
37490
37566
|
this.addQuery = (q || '').trim();
|
|
37491
37567
|
this.updateAddItems();
|
|
37492
37568
|
}
|
|
37493
|
-
openAddSelect(select) {
|
|
37494
|
-
if (!this.hasManageableFilterFields())
|
|
37495
|
-
return;
|
|
37496
|
-
select.open();
|
|
37497
|
-
}
|
|
37498
37569
|
hasAddableFields() {
|
|
37499
37570
|
return this.hasManageableFilterFields();
|
|
37500
37571
|
}
|
|
@@ -37532,13 +37603,7 @@ class PraxisFilter {
|
|
|
37532
37603
|
xUi.hidden === 'true';
|
|
37533
37604
|
}
|
|
37534
37605
|
onAddSelectionChange(values) {
|
|
37535
|
-
|
|
37536
|
-
values.some((value) => value === ADD_FILTER_SEARCH_OPTION_ID ||
|
|
37537
|
-
value === ADD_FILTER_SELECT_ALL_OPTION_ID)) {
|
|
37538
|
-
return;
|
|
37539
|
-
}
|
|
37540
|
-
const arr = this.normalizeFieldIdList(values).filter((value) => value !== ADD_FILTER_SEARCH_OPTION_ID &&
|
|
37541
|
-
value !== ADD_FILTER_SELECT_ALL_OPTION_ID);
|
|
37606
|
+
const arr = this.normalizeFieldIdList(values);
|
|
37542
37607
|
const current = this.normalizeFieldIdList(this.selectedFieldIds);
|
|
37543
37608
|
const next = this.schemaMetas
|
|
37544
37609
|
? this.normalizeManagedFieldSelection(arr)
|
|
@@ -37573,7 +37638,9 @@ class PraxisFilter {
|
|
|
37573
37638
|
}
|
|
37574
37639
|
const c = this.selectedFieldIds?.length || 0;
|
|
37575
37640
|
if (c > 0)
|
|
37576
|
-
return this.formatWithCount(
|
|
37641
|
+
return this.formatWithCount(c === 1
|
|
37642
|
+
? (this.i18nLabels.addCountSingular || 'Gerenciar campos de filtro ({count} exibido)')
|
|
37643
|
+
: (this.i18nLabels.addCount || 'Gerenciar campos de filtro ({count} exibidos)'), c);
|
|
37577
37644
|
return this.i18nLabels.add || this.i18nLabels.filtersAdd || 'Adicionar filtro';
|
|
37578
37645
|
}
|
|
37579
37646
|
getAddTriggerLabel() {
|
|
@@ -37586,7 +37653,9 @@ class PraxisFilter {
|
|
|
37586
37653
|
}
|
|
37587
37654
|
const c = this.selectedFieldIds?.length || 0;
|
|
37588
37655
|
if (c > 0) {
|
|
37589
|
-
return this.formatWithCount(
|
|
37656
|
+
return this.formatWithCount(c === 1
|
|
37657
|
+
? (this.i18nLabels.addCountSingular || 'Gerenciar campos de filtro ({count} exibido)')
|
|
37658
|
+
: (this.i18nLabels.addCount || 'Gerenciar campos de filtro ({count} exibidos)'), c);
|
|
37590
37659
|
}
|
|
37591
37660
|
return 'Adicionar campos aos filtros';
|
|
37592
37661
|
}
|
|
@@ -37598,29 +37667,23 @@ class PraxisFilter {
|
|
|
37598
37667
|
}
|
|
37599
37668
|
isAllSelected() {
|
|
37600
37669
|
const ids = this.addItems.map(i => i.id);
|
|
37601
|
-
const sel = new Set(this.
|
|
37670
|
+
const sel = new Set(this.addDraftSelectedFieldIds || []);
|
|
37602
37671
|
return ids.length > 0 && ids.every(id => sel.has(id));
|
|
37603
37672
|
}
|
|
37604
37673
|
isSomeSelected() {
|
|
37605
37674
|
const ids = this.addItems.map(i => i.id);
|
|
37606
|
-
const sel = new Set(this.
|
|
37675
|
+
const sel = new Set(this.addDraftSelectedFieldIds || []);
|
|
37607
37676
|
const count = ids.filter(id => sel.has(id)).length;
|
|
37608
37677
|
return count > 0 && count < ids.length;
|
|
37609
37678
|
}
|
|
37610
37679
|
toggleSelectAll() {
|
|
37611
37680
|
const all = this.addItems.map((i) => i.id);
|
|
37612
|
-
const current = this.
|
|
37681
|
+
const current = this.addDraftSelectedFieldIds || [];
|
|
37613
37682
|
const allSelected = all.length > 0 && all.every((id) => current.includes(id));
|
|
37614
37683
|
const next = allSelected
|
|
37615
37684
|
? current.filter((id) => !all.includes(id))
|
|
37616
37685
|
: this.mergeSelectedFieldIds(current, all);
|
|
37617
|
-
|
|
37618
|
-
this.selectedFieldIds = next;
|
|
37619
|
-
this.selectedFieldIdsChange.emit([...this.selectedFieldIds]);
|
|
37620
|
-
this.clearRemovedSelectedFieldValues(removed);
|
|
37621
|
-
this.applySchemaMetas();
|
|
37622
|
-
this.updateAddItems();
|
|
37623
|
-
this.saveConfig();
|
|
37686
|
+
this.addDraftSelectedFieldIds = next;
|
|
37624
37687
|
}
|
|
37625
37688
|
clearRemovedSelectedFieldValues(fieldIds) {
|
|
37626
37689
|
const removed = this.normalizeFieldIdList(fieldIds);
|
|
@@ -38506,14 +38569,7 @@ class PraxisFilter {
|
|
|
38506
38569
|
event.preventDefault();
|
|
38507
38570
|
if (!this.hasAddableFields())
|
|
38508
38571
|
return;
|
|
38509
|
-
|
|
38510
|
-
const sel = document.querySelector('mat-select[panelclass="praxis-add-select-panel"]');
|
|
38511
|
-
if ((sel?.panelOpen))
|
|
38512
|
-
sel?.close?.();
|
|
38513
|
-
else
|
|
38514
|
-
sel?.open?.();
|
|
38515
|
-
}
|
|
38516
|
-
catch { }
|
|
38572
|
+
this.toggleAddManager();
|
|
38517
38573
|
return;
|
|
38518
38574
|
}
|
|
38519
38575
|
}
|
|
@@ -38550,7 +38606,7 @@ class PraxisFilter {
|
|
|
38550
38606
|
}
|
|
38551
38607
|
}
|
|
38552
38608
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisFilter, deps: [{ token: i1.GenericCrudService }, { token: ASYNC_CONFIG_STORAGE }, { token: i0.DestroyRef }, { token: FilterConfigService }, { token: i3$3.SettingsPanelService }, { token: i2$2.MatSnackBar }, { token: i1$2.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.DynamicFormService }, { token: i1.SchemaNormalizerService }, { token: i1.ComponentKeyService }, { token: i6$1.ActivatedRoute, optional: true }, { token: i1.LoggerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
38553
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisFilter, isStandalone: true, selector: "praxis-filter", inputs: { resourcePath: "resourcePath", apiUrlEntry: "apiUrlEntry", fieldMetadata: "fieldMetadata", filterId: "filterId", formId: "formId", componentInstanceId: "componentInstanceId", mode: "mode", notifyIfOutdated: "notifyIfOutdated", snoozeMs: "snoozeMs", autoOpenSettingsOnOutdated: "autoOpenSettingsOnOutdated", enableCustomization: "enableCustomization", value: "value", alwaysVisibleFields: "alwaysVisibleFields", alwaysVisibleFieldMetadataOverrides: "alwaysVisibleFieldMetadataOverrides", selectedFieldIds: "selectedFieldIds", tags: "tags", allowSaveTags: "allowSaveTags", persistenceKey: "persistenceKey", disablePersistence: "disablePersistence", i18n: "i18n", changeDebounceMs: "changeDebounceMs", showFilterSettings: "showFilterSettings", showAdvancedButton: "showAdvancedButton", showAddButton: "showAddButton", showClearButton: "showClearButton", showSearchButton: "showSearchButton", confirmTagDelete: "confirmTagDelete", placeBooleansInActions: "placeBooleansInActions", showToggleLabels: "showToggleLabels", useInlineSelectVariant: "useInlineSelectVariant", useInlineSearchableSelectVariant: "useInlineSearchableSelectVariant", useInlineMultiSelectVariant: "useInlineMultiSelectVariant", useInlineInputVariant: "useInlineInputVariant", useInlineToggleVariant: "useInlineToggleVariant", useInlineRangeVariant: "useInlineRangeVariant", useInlineDateVariant: "useInlineDateVariant", useInlineDateRangeVariant: "useInlineDateRangeVariant", useInlineTimeVariant: "useInlineTimeVariant", useInlineTimeRangeVariant: "useInlineTimeRangeVariant", useInlineTreeSelectVariant: "useInlineTreeSelectVariant", alwaysMinWidth: "alwaysMinWidth", alwaysColsMd: "alwaysColsMd", alwaysColsLg: "alwaysColsLg", tagColor: "tagColor", tagVariant: "tagVariant", tagButtonColor: "tagButtonColor", actionsButtonColor: "actionsButtonColor", actionsVariant: "actionsVariant", overlayVariant: "overlayVariant", overlayBackdrop: "overlayBackdrop", advancedOpenMode: "advancedOpenMode", advancedClearButtonsEnabled: "advancedClearButtonsEnabled" }, outputs: { submit: "submit", change: "change", clear: "clear", modeChange: "modeChange", requestSearch: "requestSearch", tagsChange: "tagsChange", selectedFieldIdsChange: "selectedFieldIdsChange", metaChanged: "metaChanged", schemaStatusChange: "schemaStatusChange" }, host: { listeners: { "window:resize": "onWindowResize()", "document:keydown": "onGlobalKeydown($event)" }, properties: { "style.--pfx-always-min": "alwaysMinWidth + \"px\"", "style.--pfx-always-cols-md": "alwaysColsMd", "style.--pfx-always-cols-lg": "alwaysColsLg" } }, viewQueries: [{ propertyName: "anchorRef", first: true, predicate: ["anchorRef"], descendants: true, read: CdkOverlayOrigin }, { propertyName: "addAnchor", first: true, predicate: ["addAnchor"], descendants: true, read: CdkOverlayOrigin }, { propertyName: "advancedButton", first: true, predicate: ["advancedButton"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "@if (saving) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n}\n@if (schemaError) {\n <div class=\"schema-error-banner\" role=\"alert\" aria-live=\"polite\">\n <mat-icon [praxisIcon]=\"'error_outline'\" aria-hidden=\"true\"></mat-icon>\n <span class=\"schema-error-message\">{{ i18nLabels.errorLoadingFilters || 'Erro ao carregar filtros.' }}</span>\n <button\n mat-stroked-button\n class=\"schema-error-retry\"\n type=\"button\"\n (click)=\"retrySchemaLoad()\"\n [attr.aria-label]=\"i18nLabels.retry || 'Tentar novamente'\"\n >\n {{ i18nLabels.retry || 'Tentar novamente' }}\n </button>\n </div>\n}\n\n<form class=\"praxis-filter-bar\" [class.is-open]=\"advancedOpen\"\n [class.has-compact]=\"compactSelectedMetas.length || compactAlwaysVisibleMetas.length\"\n [class.tag-variant-filled]=\"tagVariant === 'filled'\"\n [class.tag-variant-outlined]=\"tagVariant === 'outlined'\"\n [class.tag-color-basic]=\"tagColor === 'basic'\"\n [class.tag-color-primary]=\"tagColor === 'primary'\"\n [class.tag-color-accent]=\"tagColor === 'accent'\"\n [class.tag-color-warn]=\"tagColor === 'warn'\"\n (click)=\"onFieldInteraction($event)\"\n (focusin)=\"onFieldInteraction($event)\"\n (change)=\"$event.stopPropagation()\"\n (submit)=\"onSubmit(); $event.preventDefault(); $event.stopPropagation()\">\n <div class=\"inline-actions\" [class.actions-outlined]=\"actionsVariant==='outlined'\">\n <div class=\"actions-anchor\" #anchorRef=\"cdkOverlayOrigin\" cdkOverlayOrigin></div>\n @if (toggleMetas.length) {\n <div class=\"inline-toggles\">\n <ng-container dynamicFieldLoader [fields]=\"toggleMetas\" [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onToggleComponents($event)\"></ng-container>\n </div>\n }\n\n @if (showAdvancedButton || showAddButton || showFilterSettings || isFieldAuthoringEnabled()) {\n <div class=\"action-cluster action-cluster--manage\">\n @if (showAdvancedButton) {\n <button #advancedButton mat-icon-button class=\"cluster-btn\"\n [class.is-opening]=\"advancedOpening\" [class.is-disabled]=\"!hasAdvancedFields()\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\" type=\"button\"\n [matBadge]=\"activeFiltersCount\" [matBadgeHidden]=\"!activeFiltersCount || !hasAdvancedFields()\" matBadgeSize=\"small\"\n matBadgeColor=\"primary\" [matBadgeOverlap]=\"false\" (click)=\"toggleAdvanced()\"\n [attr.aria-label]=\"getAdvancedAriaLabel()\" [attr.aria-expanded]=\"advancedOpen\"\n [attr.aria-disabled]=\"!hasAdvancedFields()\"\n [attr.aria-busy]=\"advancedOpening ? 'true' : null\"\n [matTooltip]=\"getAdvancedTooltip()\"\n matTooltipPosition=\"below\"\n [attr.aria-controls]=\"advancedPanelId\">\n @if (advancedOpening) {\n <mat-progress-spinner\n class=\"cluster-btn-spinner\"\n mode=\"indeterminate\"\n diameter=\"18\"\n strokeWidth=\"3\"\n aria-hidden=\"true\"\n ></mat-progress-spinner>\n } @else {\n <mat-icon [praxisIcon]=\"'filter_list'\"></mat-icon>\n }\n </button>\n }\n @if (showAddButton) {\n <button mat-icon-button class=\"cluster-btn\" [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\" [attr.aria-label]=\"getAddAriaLabel()\" [matTooltip]=\"getAddTooltip()\"\n matTooltipPosition=\"below\" [class.is-disabled]=\"!hasAddableFields()\"\n [attr.aria-disabled]=\"!hasAddableFields()\" (click)=\"openAddSelect(addSelect)\">\n <mat-icon [praxisIcon]=\"'add'\"></mat-icon>\n </button>\n <mat-select #addSelect multiple panelClass=\"praxis-add-select-panel\" panelWidth=\"min(340px, calc(100vw - 24px))\" [value]=\"selectedFieldIds\"\n class=\"cluster-select cluster-select--hidden\"\n [aria-label]=\"getAddAriaLabel()\" (openedChange)=\"onAddOpened($event)\"\n (selectionChange)=\"onAddSelectionChange(addSelect.value)\">\n @if (hasAddableFields()) {\n <mat-option\n class=\"add-search\"\n [value]=\"addSearchFieldId\"\n (mousedown)=\"$event.stopPropagation()\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <mat-form-field\n appearance=\"outline\"\n class=\"add-search-field\"\n subscriptSizing=\"dynamic\"\n >\n <input\n matInput\n [attr.aria-label]=\"i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\"\n [placeholder]=\"i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\"\n (mousedown)=\"$event.stopPropagation()\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n (input)=\"onAddQuery(($any($event.target)).value)\"\n />\n </mat-form-field>\n </mat-option>\n }\n @if (hasAddableFields()) {\n <mat-option\n class=\"add-select-all\"\n [value]=\"addSelectAllFieldId\"\n (mousedown)=\"$event.stopPropagation()\"\n (click)=\"$event.stopPropagation(); toggleSelectAll()\"\n (keydown)=\"$event.stopPropagation()\"\n [class.partial]=\"isSomeSelected() && !isAllSelected()\">\n {{ i18nLabels.selectAll || 'Selecionar todos' }}@if (isSomeSelected() && !isAllSelected()) {\n <span class=\"select-all-partial\">\n {{ i18nLabels.selectAllPartial || '(parcial)' }}</span>\n }\n </mat-option>\n }\n @for (it of addItems; track trackById($index, it)) {\n <mat-option [value]=\"it.id\">\n {{ it.label }}\n </mat-option>\n }\n @if (!hasAddableFields()) {\n <mat-option class=\"add-empty\" disabled>\n {{ i18nLabels.addUnavailable || 'Todos os campos j\u00E1 est\u00E3o vis\u00EDveis' }}\n </mat-option>\n }\n </mat-select>\n }\n @if (showFilterSettings) {\n <button mat-icon-button class=\"cluster-btn separator-before\" [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\" (click)=\"openSettings()\" [matBadge]=\"schemaOutdated ? '!' : ''\"\n [matBadgeHidden]=\"!schemaOutdated\" matBadgeColor=\"warn\" matBadgeSize=\"small\" matBadgePosition=\"above after\"\n [matTooltip]=\"getSettingsTooltip()\"\n matTooltipPosition=\"below\" [attr.aria-label]=\"getSettingsAriaLabel()\">\n <mat-icon [praxisIcon]=\"'settings'\"></mat-icon>\n </button>\n }\n @if (isFieldAuthoringEnabled() && activeEditableFieldMeta) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\"\n data-testid=\"filter-field-settings-trigger\"\n [attr.aria-label]=\"activeEditableFieldLabel\"\n (click)=\"openSelectedFieldEditor()\"\n >\n <mat-icon [praxisIcon]=\"'tune'\"></mat-icon>\n </button>\n }\n </div>\n }\n\n @if ((showClearButton && activeFiltersCount > 0) || showSearchButton) {\n <div class=\"action-cluster action-cluster--query\">\n @if (showClearButton && activeFiltersCount > 0) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\"\n data-testid=\"filter-clear-trigger\"\n (click)=\"onClear()\"\n [attr.aria-label]=\"i18nLabels.clear\"\n [matTooltip]=\"i18nLabels.clear\"\n matTooltipPosition=\"below\"\n >\n <mat-icon [praxisIcon]=\"'filter_alt_off'\"></mat-icon>\n </button>\n }\n @if (showSearchButton) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"submit\"\n [attr.aria-label]=\"i18nLabels.apply\"\n [matTooltip]=\"i18nLabels.apply\"\n matTooltipPosition=\"below\"\n >\n <mat-icon [praxisIcon]=\"'search'\"></mat-icon>\n </button>\n }\n </div>\n }\n\n <span class=\"sr-only\" aria-live=\"polite\">{{ advancedOpening ? (i18nLabels.advancedOpening || 'Abrindo filtro avan\u00E7ado...') : getAddAriaLabel() }}</span>\n</div>\n\n@if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <div class=\"compact-fields\">\n @if (compactSelectedMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"compactSelectedMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onSelectedComponents($event)\"></ng-container>\n }\n @if (compactAlwaysVisibleMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"compactAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onAlwaysComponents($event)\"></ng-container>\n }\n </div>\n}\n\n@if (gridSelectedMetas.length || gridAlwaysVisibleMetas.length) {\n <div class=\"fields-grid\">\n @if (gridSelectedMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"gridSelectedMetas\" [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"></ng-container>\n }\n @if (gridAlwaysVisibleMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"gridAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onAlwaysComponents($event)\"></ng-container>\n }\n </div>\n}\n\n<span class=\"sr-only\" aria-live=\"polite\">\n {{ activeFiltersCount ? (activeFiltersCount + ' filtros ativos') : '' }}\n</span>\n<button type=\"submit\" class=\"hidden-submit\" aria-hidden=\"true\" tabindex=\"-1\"></button>\n</form>\n\n@if (displayedTags.length) {\n <div\n class=\"praxis-filter-tags\"\n [class.outlined]=\"tagVariant==='outlined'\"\n [class.tag-color-basic]=\"tagColor === 'basic'\"\n [class.tag-color-primary]=\"tagColor === 'primary'\"\n [class.tag-color-accent]=\"tagColor === 'accent'\"\n [class.tag-color-warn]=\"tagColor === 'warn'\"\n >\n <mat-chip-set [attr.aria-label]=\"i18nLabels.shortcutsLabel || 'Atalhos'\">\n @for (tag of displayedTags; track trackById($index, tag)) {\n <mat-chip [class.active]=\"isActiveTag(tag)\"\n [color]=\"tagVariant === 'outlined' || tagColor === 'basic' ? null : tagColor\"\n [highlighted]=\"tagVariant === 'filled' && tagColor !== 'basic'\" (click)=\"applyTag(tag)\"\n (keydown.enter)=\"applyTag(tag)\" (keydown.space)=\"applyTag(tag)\" tabindex=\"0\" role=\"button\"\n [attr.aria-pressed]=\"isActiveTag(tag)\">\n @if (editingTagId !== tag.id) {\n @if (isActiveTag(tag)) {\n <span class=\"chip-leading\">\n <mat-icon class=\"leading-check\">check</mat-icon>\n </span>\n }\n <span class=\"chip-label\">{{ tag.label }}</span>\n @if (isUserTag(tag)) {\n <span class=\"chip-trailing\">\n <button mat-icon-button [color]=\"tagButtonColor === 'basic' ? null : tagButtonColor\"\n [matMenuTriggerFor]=\"tagMenu\" (click)=\"$event.stopPropagation()\" [attr.aria-label]=\"getTagActionsAriaLabel(tag)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #tagMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"startEditTag(tag, $event)\">\n <mat-icon>edit</mat-icon>\n <span>{{ i18nLabels.renameShortcut }}</span>\n </button>\n <button mat-menu-item (click)=\"deleteTag(tag)\">\n <mat-icon>delete</mat-icon>\n <span>{{ i18nLabels.removeShortcut }}</span>\n </button>\n </mat-menu>\n </span>\n } @else {\n <span class=\"chip-readonly\" [matTooltip]=\"i18nLabels.readonlyShortcut\">\n <mat-icon>lock</mat-icon>\n </span>\n }\n } @else {\n <input matInput class=\"chip-editor\" [formControl]=\"editingTagLabel\" autofocus\n [matTooltip]=\"'Enter para salvar, Esc para cancelar'\" matTooltipPosition=\"below\"\n (keydown.enter)=\"commitEditTag(tag, $event)\" (keydown.escape)=\"cancelEditTag($event)\"\n (blur)=\"commitEditTag(tag, $event)\" (click)=\"$event.stopPropagation()\" />\n }\n </mat-chip>\n }\n </mat-chip-set>\n </div>\n}\n", styles: ["@charset \"UTF-8\";:root{--pfx-filter-h: 42px;--pfx-filter-align-offset: 2px;--pfx-gap-x: 12px;--pfx-gap-y: 8px;--pfx-always-max-desktop: 380px;--pfx-slider-span-desktop: 2;--pfx-advanced-pad-x: 24px;--pfx-field-min: 280px;--pfx-overlay-margin-y: 16px;--pfx-overlay-margin-x: 16px}:host-context(.theme-light){--pfx-surface-border: var(--md-sys-color-outline)}:host{--border-color: var(--md-sys-color-outline-variant);--border-color-hover: var(--md-sys-color-outline);--pfx-overlay-surface: var(--md-sys-color-surface-container);--pfx-overlay-surface-elev: var(--md-sys-color-surface-container-high);--pfx-overlay-surface-variant: var(--md-sys-color-surface-variant);--pfx-overlay-on-surface: var(--md-sys-color-on-surface);--pfx-overlay-on-surface-variant: var(--md-sys-color-on-surface-variant);display:block;width:100%;min-width:0;flex:1 1 auto}.schema-error-banner{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,var(--md-sys-color-error) 50%,transparent);background:color-mix(in srgb,var(--md-sys-color-error-container) 85%,transparent);color:var(--md-sys-color-on-error-container)}.schema-error-message{min-width:0;flex:1 1 auto;font-size:.8125rem}:host ::ng-deep .schema-error-retry.mat-mdc-outlined-button{--mdc-outlined-button-outline-color: color-mix( in srgb, var(--md-sys-color-error) 55%, var(--md-sys-color-outline) )}.praxis-filter-bar{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;column-gap:6px;row-gap:6px;align-items:center}.inline-actions .actions-anchor{width:0;height:0;overflow:hidden}.inline-actions{grid-column:2;grid-row:1;flex:0 0 auto;display:flex;gap:6px;justify-self:end;align-self:center;width:fit-content;white-space:nowrap;height:var(--pfx-filter-h);align-items:center;padding:0 2px}.action-cluster{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;min-height:36px;padding:2px;border-radius:999px;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-highest)}.action-cluster--manage{position:relative;border-color:color-mix(in srgb,var(--md-sys-color-primary) 35%,var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-high)}:host ::ng-deep .action-cluster .mat-mdc-icon-button,:host ::ng-deep .action-cluster .cluster-btn.mat-mdc-icon-button{width:32px;height:32px;padding:0;display:inline-grid;place-items:center;--mat-icon-button-state-layer-size: 32px}.action-cluster .cluster-btn.is-opening{pointer-events:none}.action-cluster .cluster-btn.is-disabled{color:color-mix(in srgb,var(--md-sys-color-on-surface) 38%,transparent);cursor:default;opacity:.56}.action-cluster .cluster-btn-spinner{width:18px!important;height:18px!important;display:block;grid-area:1/1;--mdc-circular-progress-active-indicator-color: currentColor}.inline-actions.actions-outlined button.mat-mdc-icon-button{border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:50%}.inline-actions.actions-outlined .action-cluster button.mat-mdc-icon-button{border-color:transparent}.separator-before{position:relative;margin-left:10px}.separator-before:before{content:\"\";position:absolute;left:-7px;top:50%;width:1px;height:18px;transform:translateY(-50%);background:color-mix(in srgb,var(--md-sys-color-outline) 72%,transparent)}.inline-actions mat-icon{width:20px;height:20px;font-size:20px}.fields-grid{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--pfx-always-min, 220px),1fr));grid-auto-flow:row dense;gap:6px}.compact-fields{grid-column:1;grid-row:1;display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:center;align-items:center;gap:6px;min-width:0;min-height:var(--pfx-filter-h)}:host ::ng-deep .compact-fields .pfx-field-shell,:host ::ng-deep .compact-fields .pfx-field-shell-wrapper,:host ::ng-deep .compact-fields .pfx-field-shell-host{--pfx-field-shell-width: fit-content;--pfx-field-shell-field-width: auto;width:fit-content!important;max-width:100%;min-width:0;flex:0 1 auto!important}:host ::ng-deep .compact-fields>.pfx-field-shell,:host ::ng-deep .compact-fields>praxis-field-shell{flex:0 1 auto!important;width:fit-content!important;max-width:100%;min-width:0}:host ::ng-deep .compact-fields .pfx-field-shell .mat-mdc-form-field{width:auto!important;max-width:100%;margin-bottom:0}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{width:var(--pdx-inline-time-field-w, auto)!important;inline-size:var(--pdx-inline-time-field-w, auto)!important;max-width:min(var(--pdx-inline-time-max-w, 280px),100vw - 48px)!important}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineDateRange] .mat-mdc-form-field{width:var(--pdx-inline-date-range-shell-width, auto)!important;max-width:100%!important}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1}.praxis-filter-bar.has-compact .fields-grid{grid-column:1/-1;grid-row:2}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider] mat-slider,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] mat-slider,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] mat-slider{width:100%;display:block}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider] .pdx-slider-wrapper,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-slider-wrapper,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-slider-wrapper{padding-top:2px}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-range-slider-container,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-range-slider-container{padding:2px 0 0}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-slider-label,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-slider-label{margin-bottom:4px;line-height:1.15}:host ::ng-deep .fields-grid .mat-mdc-text-field-wrapper.mdc-text-field--outlined{min-height:var(--pfx-filter-h);align-items:center}:host ::ng-deep .fields-grid .mat-mdc-form-field-infix{min-height:var(--pfx-filter-h)}:host ::ng-deep .fields-grid .mat-mdc-select-trigger{height:var(--pfx-filter-h);align-items:center}:host ::ng-deep .fields-grid .mat-mdc-form-field{width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSearchableSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSearchableSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineMultiSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineMultiSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineInput]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineInput] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlinePhone]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlinePhone] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineToggle]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineToggle] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineRange]{justify-self:start}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineRange]{max-width:min(340px,100%)}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDate]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDate] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDateRange]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDateRange] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .mat-mdc-form-field-subscript-wrapper{min-height:0;margin-top:0}:host ::ng-deep .fields-grid .mat-mdc-form-field{margin-bottom:0}.praxis-filter-bar.has-compact{--pfx-filter-tag-color: var(--md-sys-color-primary-container);--pfx-filter-tag-on-color: var(--md-sys-color-on-primary-container);--pfx-filter-tag-outline-color: var(--md-sys-color-primary);--pdx-inline-control-height: var(--pfx-filter-inline-control-height, 42px);--pdx-inline-control-height-mobile: var(--pfx-filter-inline-control-height-mobile, 40px);--pdx-inline-control-padding-x: var(--pfx-filter-inline-control-padding-x, 12px);--pdx-inline-control-padding-x-mobile: var(--pfx-filter-inline-control-padding-x-mobile, 12px);--pdx-inline-clear-size: var(--pfx-filter-inline-clear-size, 22px);--pdx-inline-chip-radius: var(--pfx-filter-inline-chip-radius, var(--md-sys-shape-corner-full, 999px));--pdx-inline-chip-active-bg: var(--pfx-filter-tag-color);--pdx-inline-chip-active-fg: var(--pfx-filter-tag-on-color);--pdx-inline-chip-active-clear-color: var(--pfx-filter-tag-on-color);--pdx-inline-field-focus-outline: var(--pfx-filter-tag-outline-color)}.praxis-filter-bar.has-compact.tag-color-accent{--pfx-filter-tag-color: var(--md-sys-color-tertiary-container, var(--md-sys-color-secondary-container));--pfx-filter-tag-on-color: var(--md-sys-color-on-tertiary-container, var(--md-sys-color-on-secondary-container));--pfx-filter-tag-outline-color: var(--md-sys-color-tertiary, var(--md-sys-color-secondary))}.praxis-filter-bar.has-compact.tag-color-warn{--pfx-filter-tag-color: var(--md-sys-color-error-container);--pfx-filter-tag-on-color: var(--md-sys-color-on-error-container);--pfx-filter-tag-outline-color: var(--md-sys-color-error)}.praxis-filter-bar.has-compact.tag-color-basic{--pfx-filter-tag-color: color-mix(in srgb, var(--md-sys-color-on-surface) 10%, transparent);--pfx-filter-tag-on-color: var(--md-sys-color-on-surface);--pfx-filter-tag-outline-color: var(--md-sys-color-outline-variant)}:host ::ng-deep .praxis-filter-bar.has-compact{--pfx-filter-inline-chip-padding-x: var(--pdx-inline-control-padding-x);--pfx-filter-inline-icon-gap: 4px}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-inline:var(--pfx-filter-inline-chip-padding-x)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-prefix{align-items:center;display:inline-flex;flex:0 0 auto;margin-right:var(--pfx-filter-inline-icon-gap)!important;padding:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-suffix{align-items:center;display:inline-flex;flex:0 0 auto;gap:var(--pfx-filter-inline-icon-gap)!important;margin-left:var(--pfx-filter-inline-icon-gap)!important;padding:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-prefix>.mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-suffix>.mat-icon{flex:0 0 16px!important;font-size:16px!important;height:16px!important;line-height:16px!important;margin:0!important;padding:0!important;width:16px!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-infix{padding-inline:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select) .pdx-chip-trigger{gap:var(--pfx-filter-inline-icon-gap)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-currency-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-searchable-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-async-select.pdx-has-selection .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-value .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-both .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-entity-lookup.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-multi-select.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-distance-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-score-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-relative-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-relative-period-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-rating-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-pipeline-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-sentiment-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-color-label-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-time-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active{--pdx-inline-currency-symbol-color: var(--pfx-filter-tag-on-color);background:var(--pfx-filter-tag-color)!important;border-color:transparent!important;color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-currency-range-chip.is-active :where(.mat-icon,.pdx-inline-currency-range-value,.pdx-inline-currency-range-text,.pdx-inline-currency-range-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear) :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear,.pdx-inline-number-suffix),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-select,.pdx-inline-searchable-select) .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active) :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-async-select.pdx-has-selection :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-value :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-both :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-entity-lookup.pdx-has-selection,.pdx-inline-multi-select.pdx-has-selection) .pdx-chip-trigger :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active) :where(.mat-icon,button,span),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-time-range-chip.is-active :where(.pdx-inline-time-range-icon,.pdx-inline-time-range-text,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active :where(.pdx-inline-toggle-label,.mat-icon){color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-currency-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-searchable-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-async-select.pdx-has-selection .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-value .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-both .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-entity-lookup.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-multi-select.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-distance-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-score-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-relative-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-relative-period-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-rating-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-pipeline-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-sentiment-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-color-label-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-time-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active{--pdx-inline-currency-symbol-color: var(--pfx-filter-tag-outline-color);background:transparent!important;border-color:var(--pfx-filter-tag-outline-color)!important;box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-outline-color);color:var(--pfx-filter-tag-outline-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-currency-range-chip.is-active :where(.mat-icon,.pdx-inline-currency-range-value,.pdx-inline-currency-range-text,.pdx-inline-currency-range-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear) :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear,.pdx-inline-number-suffix),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-select,.pdx-inline-searchable-select) .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active) :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-async-select.pdx-has-selection :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-value :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-both :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-entity-lookup.pdx-has-selection,.pdx-inline-multi-select.pdx-has-selection) .pdx-chip-trigger :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active) :where(.mat-icon,button,span),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-time-range-chip.is-active :where(.pdx-inline-time-range-icon,.pdx-inline-time-range-text,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active :where(.pdx-inline-toggle-label,.mat-icon){color:var(--pfx-filter-tag-outline-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear){background:color-mix(in srgb,currentColor 16%,transparent)!important;border-radius:50%!important;color:inherit!important;display:inline-grid!important;flex:0 0 var(--pdx-inline-clear-size, 22px)!important;height:var(--pdx-inline-clear-size, 22px)!important;min-width:var(--pdx-inline-clear-size, 22px)!important;place-items:center!important;width:var(--pdx-inline-clear-size, 22px)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear):hover{background:color-mix(in srgb,currentColor 24%,transparent)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear) .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper:has(.pdx-inline-clear) .pdx-inline-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper:has(.pdx-inline-clear) .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active .pdx-inline-toggle-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active .pdx-inline-toggle-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active .pdx-chip-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active .pdx-chip-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}.praxis-filter-tags.outlined .mat-mdc-chip{background:transparent!important;--mat-chip-outline-width: 1px;--mat-chip-outline-color: var(--md-sys-color-outline-variant);box-shadow:inset 0 0 0 var(--mat-chip-outline-width) var(--mat-chip-outline-color)}.praxis-filter-tags.outlined.tag-color-primary .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-primary)}.praxis-filter-tags.outlined.tag-color-accent .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-tertiary)}.praxis-filter-tags.outlined.tag-color-warn .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-error)}.praxis-filter-tags.outlined mat-chip.active .mat-mdc-chip,.praxis-filter-tags.outlined .mat-mdc-chip.mat-mdc-chip-highlighted{--mat-chip-outline-width: 2px;box-shadow:inset 0 0 0 var(--mat-chip-outline-width) var(--mat-chip-outline-color)!important}.praxis-filter-tags.outlined.tag-color-basic mat-chip.active .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-primary)}.praxis-filter-tags .mat-mdc-standard-chip .mdc-evolution-chip__text-label{display:flex;align-items:center;justify-content:center;gap:4px;line-height:1.2;font-size:.875rem}.praxis-filter-tags .chip-leading,.praxis-filter-tags .chip-trailing{display:inline-flex;align-items:center}.praxis-filter-tags .leading-check{width:18px;height:18px;font-size:18px;line-height:1}.praxis-filter-tags .chip-label{position:relative;top:-6px}.praxis-filter-tags .chip-trailing .mat-mdc-icon-button{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;line-height:28px}.praxis-filter-tags .mat-mdc-standard-chip{--mat-chip-container-height: 36px}.praxis-filter-advanced{display:flex;flex-direction:column;min-width:400px;max-width:90vw;min-height:260px;max-height:min(80vh,720px);margin:var(--pfx-overlay-margin-y) var(--pfx-overlay-margin-x);background-color:var(--pfx-overlay-surface)!important;background:var(--pfx-overlay-surface)!important;color:var(--pfx-overlay-on-surface);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--md-sys-elevation-level3)}.advanced-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px var(--pfx-advanced-pad-x) 10px;border-bottom:1px solid var(--border-color);background:var(--pfx-overlay-surface)}.advanced-title-block{display:flex;flex-direction:column;gap:2px}.advanced-title{font-size:1rem;font-weight:600;color:var(--pfx-overlay-on-surface)}.advanced-subtitle{font-size:.85rem;color:var(--pfx-overlay-on-surface-variant)}.advanced-close{align-self:flex-start}.praxis-filter-overlay.mobile .praxis-filter-advanced{height:100vh;max-height:100vh;margin:0;border-radius:0}:host ::ng-deep .praxis-overlay-backdrop{background:var(--md-sys-color-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}:host ::ng-deep .praxis-filter-overlay.frosted .praxis-filter-advanced{background:var(--pfx-overlay-surface-variant)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:var(--border-color)}:host ::ng-deep .praxis-filter-overlay.frosted .advanced-header,:host ::ng-deep .praxis-filter-overlay.frosted .advanced-actions{background:var(--pfx-overlay-surface-variant)!important}.advanced-body{padding:12px var(--pfx-advanced-pad-x) 72px;overflow:auto;flex:1 1 auto;overscroll-behavior:contain}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-row{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(var(--pfx-field-min),1fr));gap:var(--pfx-gap-y) var(--pfx-gap-x)}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-column{min-width:0}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-column .mat-mdc-form-field{width:100%}.advanced-actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:8px;padding:var(--pfx-gap-y) var(--pfx-advanced-pad-x);background-color:var(--pfx-overlay-surface)!important;background:var(--pfx-overlay-surface)!important;border-top:1px solid var(--border-color);box-shadow:0 -1px 0 var(--md-sys-color-outline-variant)}.advanced-actions .mat-mdc-button-base{height:40px}.advanced-actions .mat-mdc-raised-button.mat-primary{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}:host ::ng-deep .praxis-filter-advanced .mat-mdc-text-field-wrapper.mdc-text-field--outlined{--mdc-outlined-text-field-outline-color: var(--border-color);--mdc-outlined-text-field-hover-outline-color: var(--border-color-hover);--mdc-outlined-text-field-focus-outline-color: var(--md-sys-color-primary);--mdc-outlined-text-field-label-text-color: var(--pfx-overlay-on-surface-variant);--mdc-outlined-text-field-input-text-color: var(--pfx-overlay-on-surface);--mdc-outlined-text-field-container-color: var(--pfx-overlay-surface)}:host ::ng-deep .praxis-filter-advanced .mat-mdc-select-trigger,:host ::ng-deep .praxis-filter-advanced .mat-mdc-form-field-subscript-wrapper,:host ::ng-deep .praxis-filter-advanced .mat-mdc-form-field-infix{color:var(--pfx-overlay-on-surface)}@media(min-width:600px){.fields-grid{gap:6px 8px}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.praxis-filter-bar.has-compact{grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:start;justify-items:stretch;width:100%}.praxis-filter-bar.has-compact .inline-actions{grid-column:1;grid-row:2;justify-self:start;width:100%;height:auto}.praxis-filter-bar.has-compact .inline-actions .action-cluster{max-width:100%}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>.pfx-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>praxis-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-host{--pfx-field-shell-width: auto;--pfx-field-shell-field-width: auto;width:100%!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .mat-mdc-form-field,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-currency-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-distance-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-score-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-relative-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-relative-period-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-rating-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-pipeline-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-sentiment-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-color-label-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-time-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-toggle-pill{width:100%!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :where(.pdx-chip-label,.pdx-chip-trigger,.pdx-inline-range-text,.pdx-inline-currency-range-text,.pdx-inline-distance-text,.pdx-inline-score-text,.pdx-inline-relative-text,.pdx-inline-relative-period-text,.pdx-inline-rating-text,.pdx-inline-pipeline-text,.pdx-inline-sentiment-text,.pdx-inline-color-label-text,.pdx-inline-time-range-text,.pdx-inline-toggle-label){min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime],:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .pfx-field-shell-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .pfx-field-shell-host{--pfx-field-shell-width: fit-content;--pfx-field-shell-field-width: var(--pdx-inline-time-field-w, auto);justify-self:start;width:fit-content!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{width:var(--pdx-inline-time-field-w, auto)!important;inline-size:var(--pdx-inline-time-field-w, auto)!important;max-width:min(var(--pdx-inline-time-max-w, 280px),100vw - 48px)!important}}@media(min-width:960px){.fields-grid{gap:6px 10px}}@media(min-width:1200px){.fields-grid{grid-template-columns:repeat(auto-fit,minmax(var(--pfx-always-min, 220px),var(--pfx-always-max-desktop, 380px)));justify-content:start;align-content:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeslider]{grid-column:span var(--pfx-slider-span-desktop, 2)}}.inline-toggles{display:flex;align-items:center;gap:8px;margin:0 4px 0 6px}:host ::ng-deep .inline-actions .mat-mdc-slide-toggle{height:var(--pfx-filter-h);display:flex;align-items:center}:host ::ng-deep .inline-actions .mat-mdc-slide-toggle .mdc-form-field{align-items:center}::ng-deep .praxis-filter-overlay .praxis-filter-advanced .praxis-filter-form .filter-row{display:grid!important;gap:var(--pfx-gap-y, 1px) var(--pfx-gap-x, 6px)}@media(min-width:600px){::ng-deep .praxis-filter-overlay .praxis-filter-advanced .praxis-filter-form .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}.hidden-submit{position:absolute!important;width:0!important;height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;overflow:hidden!important}:host ::ng-deep .inline-actions [matBadge] .mat-badge-content{top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:10px;font-weight:700;line-height:16px;letter-spacing:0;text-indent:0;color:var(--md-sys-color-on-primary, #fff)}:host ::ng-deep .inline-actions [matBadge][matbadgecolor=warn] .mat-badge-content,:host ::ng-deep .inline-actions [matBadge].mat-badge-warn .mat-badge-content{color:var(--md-sys-color-on-error, #fff)}.praxis-filter-bar :where(.mat-mdc-slide-toggle .mdc-switch__icons){display:none!important}.praxis-filter-bar{--mdc-switch-unselected-icon-size: 0px;--mdc-switch-selected-icon-size: 0px;--pfx-always-min: 220px}.praxis-filter-card{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-radius:12px;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface)}:host ::ng-deep .praxis-add-select-panel{width:min(340px,100vw - 24px)!important;min-width:min(280px,100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:min(56vh,420px);margin-top:8px;padding:6px 0;border-radius:14px;overflow:auto;background:var(--md-sys-color-surface-container-highest);border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));box-shadow:var(--md-sys-elevation-level3)}:host ::ng-deep .cdk-overlay-pane:has(.praxis-add-select-panel){width:auto!important;min-width:0!important;max-width:calc(100vw - 24px)!important}:host ::ng-deep .praxis-add-select-panel .mat-mdc-option{min-height:36px}:host ::ng-deep .praxis-add-select-panel .add-empty{color:var(--md-sys-color-on-surface-variant);min-height:44px}:host ::ng-deep .praxis-add-select-panel .add-search{position:sticky;top:0;height:auto;min-height:64px;overflow:visible;background:var(--md-sys-color-surface-container-highest);z-index:1;padding:8px 8px 6px;cursor:default}:host ::ng-deep .praxis-add-select-panel .add-search .mdc-list-item__primary-text{width:100%;overflow:visible}:host ::ng-deep .praxis-add-select-panel .add-search .mat-mdc-form-field{width:100%}:host ::ng-deep .praxis-add-select-panel .add-search .mat-mdc-text-field-wrapper{min-height:56px}:host ::ng-deep .praxis-add-select-panel .add-search .mat-mdc-form-field-subscript-wrapper{display:none}.inline-actions .add-trigger{display:inline-flex;align-items:center;gap:6px;height:32px;width:100%;max-width:100%;min-width:0;padding:0 10px;border-radius:0;border:0;background:transparent;overflow:visible}.inline-actions .add-trigger--icon{justify-content:center;width:32px;min-width:32px;padding:0}:host ::ng-deep .inline-actions .add-trigger mat-icon{width:18px;height:18px;font-size:18px;flex:0 0 auto}.inline-actions .add-trigger-label{display:inline-block;flex:1 1 auto;min-width:0;max-width:100%;text-align:left;direction:ltr;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;line-height:1}:host ::ng-deep .action-cluster--manage .mat-mdc-select{flex:0 0 auto;width:180px;min-width:0;max-width:180px}:host ::ng-deep .action-cluster--manage .cluster-select--hidden.mat-mdc-select{position:absolute;width:1px;min-width:1px;max-width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}:host ::ng-deep .action-cluster--manage .mat-mdc-select-trigger{min-height:32px;padding:0}:host ::ng-deep .action-cluster--manage .mat-mdc-select-value,:host ::ng-deep .action-cluster--manage .mat-mdc-select-value-text,:host ::ng-deep .action-cluster--manage .mat-mdc-select-min-line{width:auto;min-width:0;max-width:100%;display:inline-flex;align-items:center;justify-content:flex-start;overflow:visible}.praxis-filter-card .summary-header{display:flex;align-items:center;gap:10px}.praxis-filter-card .summary-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.praxis-filter-card .summary-title{font-weight:600}.praxis-filter-card .summary-subtitle{opacity:.8;font-size:.875rem}.praxis-filter-card .summary-badges{display:flex;flex-wrap:wrap;gap:6px}.praxis-filter-card .summary-badges span{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--md-sys-color-primary-container);border:1px solid var(--md-sys-color-outline-variant);color:var(--md-sys-color-on-primary-container);font-size:12px}.praxis-filter-card .card-actions{display:flex;gap:8px}:host ::ng-deep .inline-actions .mat-mdc-select-arrow-wrapper{display:none}.inline-actions .add-filter-btn{height:36px;border-radius:18px;padding:0 16px 0 12px}.inline-actions .add-filter-btn mat-icon{margin-right:8px;margin-left:-4px}:host ::ng-deep .praxis-add-select-panel .add-select-all.partial .select-all-partial{opacity:.7;font-style:italic}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3$1.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: 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: MatChipsModule }, { kind: "component", type: i15.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i15.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i15$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i14$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i15$3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: DynamicFieldLoaderDirective, selector: "[dynamicFieldLoader]", inputs: ["fields", "formGroup", "enableExternalControlBinding", "itemTemplate", "debugTrace", "debugTraceLabel", "readonlyMode", "disabledMode", "presentationMode", "visible", "canvasMode"], outputs: ["componentsCreated", "fieldCreated", "fieldDestroyed", "renderError", "canvasMouseEnter", "canvasMouseLeave", "canvasClick", "canvasFocus"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i12.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4$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: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }] });
|
|
38609
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisFilter, isStandalone: true, selector: "praxis-filter", inputs: { resourcePath: "resourcePath", apiUrlEntry: "apiUrlEntry", fieldMetadata: "fieldMetadata", filterId: "filterId", formId: "formId", componentInstanceId: "componentInstanceId", mode: "mode", notifyIfOutdated: "notifyIfOutdated", snoozeMs: "snoozeMs", autoOpenSettingsOnOutdated: "autoOpenSettingsOnOutdated", enableCustomization: "enableCustomization", value: "value", alwaysVisibleFields: "alwaysVisibleFields", alwaysVisibleFieldMetadataOverrides: "alwaysVisibleFieldMetadataOverrides", selectedFieldIds: "selectedFieldIds", tags: "tags", allowSaveTags: "allowSaveTags", persistenceKey: "persistenceKey", disablePersistence: "disablePersistence", i18n: "i18n", changeDebounceMs: "changeDebounceMs", showFilterSettings: "showFilterSettings", showAdvancedButton: "showAdvancedButton", showAddButton: "showAddButton", showClearButton: "showClearButton", showSearchButton: "showSearchButton", confirmTagDelete: "confirmTagDelete", placeBooleansInActions: "placeBooleansInActions", showToggleLabels: "showToggleLabels", useInlineSelectVariant: "useInlineSelectVariant", useInlineSearchableSelectVariant: "useInlineSearchableSelectVariant", useInlineMultiSelectVariant: "useInlineMultiSelectVariant", useInlineInputVariant: "useInlineInputVariant", useInlineToggleVariant: "useInlineToggleVariant", useInlineRangeVariant: "useInlineRangeVariant", useInlineDateVariant: "useInlineDateVariant", useInlineDateRangeVariant: "useInlineDateRangeVariant", useInlineTimeVariant: "useInlineTimeVariant", useInlineTimeRangeVariant: "useInlineTimeRangeVariant", useInlineTreeSelectVariant: "useInlineTreeSelectVariant", alwaysMinWidth: "alwaysMinWidth", alwaysColsMd: "alwaysColsMd", alwaysColsLg: "alwaysColsLg", tagColor: "tagColor", tagVariant: "tagVariant", tagButtonColor: "tagButtonColor", actionsButtonColor: "actionsButtonColor", actionsVariant: "actionsVariant", overlayVariant: "overlayVariant", overlayBackdrop: "overlayBackdrop", advancedOpenMode: "advancedOpenMode", advancedClearButtonsEnabled: "advancedClearButtonsEnabled" }, outputs: { submit: "submit", change: "change", clear: "clear", modeChange: "modeChange", requestSearch: "requestSearch", tagsChange: "tagsChange", selectedFieldIdsChange: "selectedFieldIdsChange", metaChanged: "metaChanged", schemaStatusChange: "schemaStatusChange" }, host: { listeners: { "window:resize": "onWindowResize()", "document:keydown": "onGlobalKeydown($event)" }, properties: { "style.--pfx-always-min": "alwaysMinWidth + \"px\"", "style.--pfx-always-cols-md": "alwaysColsMd", "style.--pfx-always-cols-lg": "alwaysColsLg" } }, viewQueries: [{ propertyName: "addManagerOrigin", first: true, predicate: ["addManagerOrigin"], descendants: true, read: ElementRef }, { propertyName: "anchorRef", first: true, predicate: ["anchorRef"], descendants: true, read: CdkOverlayOrigin }, { propertyName: "addAnchor", first: true, predicate: ["addAnchor"], descendants: true, read: CdkOverlayOrigin }, { propertyName: "advancedButton", first: true, predicate: ["advancedButton"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "@if (saving) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n}\n@if (schemaError) {\n <div class=\"schema-error-banner\" role=\"alert\" aria-live=\"polite\">\n <mat-icon [praxisIcon]=\"'error_outline'\" aria-hidden=\"true\"></mat-icon>\n <span class=\"schema-error-message\">{{ i18nLabels.errorLoadingFilters || 'Erro ao carregar filtros.' }}</span>\n <button\n mat-stroked-button\n class=\"schema-error-retry\"\n type=\"button\"\n (click)=\"retrySchemaLoad()\"\n [attr.aria-label]=\"i18nLabels.retry || 'Tentar novamente'\"\n >\n {{ i18nLabels.retry || 'Tentar novamente' }}\n </button>\n </div>\n}\n\n<form class=\"praxis-filter-bar\" [class.is-open]=\"advancedOpen\"\n [class.has-compact]=\"compactSelectedMetas.length || compactAlwaysVisibleMetas.length\"\n [class.tag-variant-filled]=\"tagVariant === 'filled'\"\n [class.tag-variant-outlined]=\"tagVariant === 'outlined'\"\n [class.tag-color-basic]=\"tagColor === 'basic'\"\n [class.tag-color-primary]=\"tagColor === 'primary'\"\n [class.tag-color-accent]=\"tagColor === 'accent'\"\n [class.tag-color-warn]=\"tagColor === 'warn'\"\n (click)=\"onFieldInteraction($event)\"\n (focusin)=\"onFieldInteraction($event)\"\n (change)=\"$event.stopPropagation()\"\n (submit)=\"onSubmit(); $event.preventDefault(); $event.stopPropagation()\">\n <div class=\"inline-actions\" [class.actions-outlined]=\"actionsVariant==='outlined'\">\n <div class=\"actions-anchor\" #anchorRef=\"cdkOverlayOrigin\" cdkOverlayOrigin></div>\n @if (toggleMetas.length) {\n <div class=\"inline-toggles\">\n <ng-container dynamicFieldLoader [fields]=\"toggleMetas\" [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onToggleComponents($event)\"></ng-container>\n </div>\n }\n\n @if (showAdvancedButton || showAddButton || showFilterSettings || isFieldAuthoringEnabled()) {\n <div class=\"action-cluster action-cluster--manage\">\n @if (showAdvancedButton) {\n <button #advancedButton mat-icon-button class=\"cluster-btn\"\n [class.is-opening]=\"advancedOpening\" [class.is-disabled]=\"!hasAdvancedFields()\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\" type=\"button\"\n [matBadge]=\"activeFiltersCount\" [matBadgeHidden]=\"!activeFiltersCount || !hasAdvancedFields()\" matBadgeSize=\"small\"\n matBadgeColor=\"primary\" [matBadgeOverlap]=\"false\" (click)=\"toggleAdvanced()\"\n [attr.aria-label]=\"getAdvancedAriaLabel()\" [attr.aria-expanded]=\"advancedOpen\"\n [attr.aria-disabled]=\"!hasAdvancedFields()\"\n [attr.aria-busy]=\"advancedOpening ? 'true' : null\"\n [matTooltip]=\"getAdvancedTooltip()\"\n matTooltipPosition=\"below\"\n [attr.aria-controls]=\"advancedPanelId\">\n @if (advancedOpening) {\n <mat-progress-spinner\n class=\"cluster-btn-spinner\"\n mode=\"indeterminate\"\n diameter=\"18\"\n strokeWidth=\"3\"\n aria-hidden=\"true\"\n ></mat-progress-spinner>\n } @else {\n <mat-icon [praxisIcon]=\"'filter_list'\"></mat-icon>\n }\n </button>\n }\n @if (showAddButton) {\n <button #addManagerOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin mat-icon-button class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\" [attr.aria-label]=\"getAddAriaLabel()\" [matTooltip]=\"getAddTooltip()\"\n matTooltipPosition=\"below\" [class.is-disabled]=\"!hasAddableFields()\"\n [attr.aria-disabled]=\"!hasAddableFields()\" [attr.aria-expanded]=\"addManagerOpen\"\n aria-haspopup=\"dialog\" [attr.aria-controls]=\"addManagerOpen ? addManagerTitleId : null\"\n (click)=\"toggleAddManager()\">\n <mat-icon [praxisIcon]=\"'add'\"></mat-icon>\n </button>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"addManagerOrigin\"\n [cdkConnectedOverlayOpen]=\"addManagerOpen\" [cdkConnectedOverlayPositions]=\"addOverlayPositions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\" cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAddManager()\" (detach)=\"closeAddManager()\"\n (overlayKeydown)=\"$event.key === 'Escape' && closeAddManager()\">\n <section class=\"add-manager\" role=\"dialog\" [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"addManagerTitleId\" [attr.aria-describedby]=\"addManagerDescriptionId\"\n cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <header class=\"add-manager__header\">\n <div>\n <h2 [id]=\"addManagerTitleId\">{{ i18nLabels.manageFieldsTitle || 'Gerenciar campos de filtro' }}</h2>\n <p [id]=\"addManagerDescriptionId\">{{ i18nLabels.manageFieldsDescription || 'Escolha os campos exibidos na barra de filtros.' }}</p>\n </div>\n <button mat-icon-button type=\"button\" (click)=\"closeAddManager()\"\n [attr.aria-label]=\"i18nLabels.close || 'Fechar'\">\n <mat-icon [praxisIcon]=\"'close'\" aria-hidden=\"true\"></mat-icon>\n </button>\n </header>\n <div class=\"add-manager__search\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>{{ i18nLabels.filtersSearch || i18nLabels.searchPlaceholder }}</mat-label>\n <mat-icon matPrefix [praxisIcon]=\"'search'\" aria-hidden=\"true\"></mat-icon>\n <input #addSearchInput matInput cdkFocusInitial [value]=\"addQuery\"\n (input)=\"onAddQuery(($any($event.target)).value)\" />\n @if (addQuery) {\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onAddQuery(''); addSearchInput.focus()\"\n [attr.aria-label]=\"i18nLabels.clearSearch || 'Limpar busca'\">\n <mat-icon [praxisIcon]=\"'close'\" aria-hidden=\"true\"></mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <div class=\"add-manager__summary\" aria-live=\"polite\">\n {{ addDraftSelectedFieldIds.length }} {{ i18nLabels.selectedFieldsSuffix || 'campos exibidos' }}\n </div>\n <div class=\"add-manager__bulk\">\n <mat-checkbox [checked]=\"isAllSelected()\" [indeterminate]=\"isSomeSelected() && !isAllSelected()\"\n [disabled]=\"!addItems.length || addManagerConflict\"\n (change)=\"toggleSelectAll()\">\n {{ i18nLabels.selectAllResults || i18nLabels.selectAll || 'Selecionar todos os resultados' }}\n </mat-checkbox>\n </div>\n <div class=\"add-manager__list\" role=\"group\" [attr.aria-label]=\"i18nLabels.manageFieldsTitle || 'Gerenciar campos de filtro'\">\n @for (it of addItems; track trackById($index, it)) {\n <mat-checkbox class=\"add-manager__item\" [checked]=\"addDraftSelectedFieldIds.includes(it.id)\"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\">{{ it.label }}</mat-checkbox>\n }\n @if (!addItems.length) {\n <div class=\"add-manager__empty\" role=\"status\">\n <mat-icon [praxisIcon]=\"'search_off'\" aria-hidden=\"true\"></mat-icon>\n <span>{{ addQuery ? (i18nLabels.noFilterFieldsFound || 'Nenhum campo encontrado.') : (i18nLabels.addUnavailable || 'Todos os campos j\u00E1 est\u00E3o vis\u00EDveis') }}</span>\n </div>\n }\n </div>\n @if (addManagerConflict) {\n <div class=\"add-manager__notice add-manager__notice--conflict\" role=\"alert\">\n <mat-icon [praxisIcon]=\"'sync_problem'\" aria-hidden=\"true\"></mat-icon>\n <span>{{ i18nLabels.fieldSelectionConflict }}</span>\n </div>\n } @else if (getRemovedActiveFieldLabels().length) {\n <div class=\"add-manager__notice add-manager__notice--warning\" role=\"status\">\n <mat-icon [praxisIcon]=\"'warning_amber'\" aria-hidden=\"true\"></mat-icon>\n <span>{{ i18nLabels.removingActiveFields }} {{ getRemovedActiveFieldLabels().join(', ') }}</span>\n </div>\n }\n <footer class=\"add-manager__footer\">\n <button mat-button type=\"button\" (click)=\"closeAddManager()\">{{ i18nLabels.cancel }}</button>\n <button mat-flat-button color=\"primary\" type=\"button\"\n [disabled]=\"!isAddManagerDirty() || addManagerConflict\"\n (click)=\"applyAddManager()\">\n {{ i18nLabels.apply }}\n @if (isAddManagerDirty()) { ({{ getAddManagerChangeCount() }}) }\n </button>\n </footer>\n </section>\n </ng-template>\n }\n @if (showFilterSettings) {\n <button mat-icon-button class=\"cluster-btn separator-before\" [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\" (click)=\"openSettings()\" [matBadge]=\"schemaOutdated ? '!' : ''\"\n [matBadgeHidden]=\"!schemaOutdated\" matBadgeColor=\"warn\" matBadgeSize=\"small\" matBadgePosition=\"above after\"\n [matTooltip]=\"getSettingsTooltip()\"\n matTooltipPosition=\"below\" [attr.aria-label]=\"getSettingsAriaLabel()\">\n <mat-icon [praxisIcon]=\"'settings'\"></mat-icon>\n </button>\n }\n @if (isFieldAuthoringEnabled() && activeEditableFieldMeta) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\"\n data-testid=\"filter-field-settings-trigger\"\n [attr.aria-label]=\"activeEditableFieldLabel\"\n (click)=\"openSelectedFieldEditor()\"\n >\n <mat-icon [praxisIcon]=\"'tune'\"></mat-icon>\n </button>\n }\n </div>\n }\n\n @if ((showClearButton && activeFiltersCount > 0) || showSearchButton) {\n <div class=\"action-cluster action-cluster--query\">\n @if (showClearButton && activeFiltersCount > 0) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\"\n data-testid=\"filter-clear-trigger\"\n (click)=\"onClear()\"\n [attr.aria-label]=\"i18nLabels.clear\"\n [matTooltip]=\"i18nLabels.clear\"\n matTooltipPosition=\"below\"\n >\n <mat-icon [praxisIcon]=\"'filter_alt_off'\"></mat-icon>\n </button>\n }\n @if (showSearchButton) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"submit\"\n [attr.aria-label]=\"i18nLabels.apply\"\n [matTooltip]=\"i18nLabels.apply\"\n matTooltipPosition=\"below\"\n >\n <mat-icon [praxisIcon]=\"'search'\"></mat-icon>\n </button>\n }\n </div>\n }\n\n <span class=\"sr-only\" aria-live=\"polite\">{{ advancedOpening ? (i18nLabels.advancedOpening || 'Abrindo filtro avan\u00E7ado...') : getAddAriaLabel() }}</span>\n</div>\n\n@if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <div class=\"compact-fields\">\n @if (compactSelectedMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"compactSelectedMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onSelectedComponents($event)\"></ng-container>\n }\n @if (compactAlwaysVisibleMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"compactAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onAlwaysComponents($event)\"></ng-container>\n }\n </div>\n}\n\n@if (gridSelectedMetas.length || gridAlwaysVisibleMetas.length) {\n <div class=\"fields-grid\">\n @if (gridSelectedMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"gridSelectedMetas\" [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"></ng-container>\n }\n @if (gridAlwaysVisibleMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"gridAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onAlwaysComponents($event)\"></ng-container>\n }\n </div>\n}\n\n<span class=\"sr-only\" aria-live=\"polite\">\n {{ activeFiltersCount ? (activeFiltersCount + ' filtros ativos') : '' }}\n</span>\n<button type=\"submit\" class=\"hidden-submit\" aria-hidden=\"true\" tabindex=\"-1\"></button>\n</form>\n\n@if (displayedTags.length) {\n <div\n class=\"praxis-filter-tags\"\n [class.outlined]=\"tagVariant==='outlined'\"\n [class.tag-color-basic]=\"tagColor === 'basic'\"\n [class.tag-color-primary]=\"tagColor === 'primary'\"\n [class.tag-color-accent]=\"tagColor === 'accent'\"\n [class.tag-color-warn]=\"tagColor === 'warn'\"\n >\n <mat-chip-set [attr.aria-label]=\"i18nLabels.shortcutsLabel || 'Atalhos'\">\n @for (tag of displayedTags; track trackById($index, tag)) {\n <mat-chip [class.active]=\"isActiveTag(tag)\"\n [color]=\"tagVariant === 'outlined' || tagColor === 'basic' ? null : tagColor\"\n [highlighted]=\"tagVariant === 'filled' && tagColor !== 'basic'\" (click)=\"applyTag(tag)\"\n (keydown.enter)=\"applyTag(tag)\" (keydown.space)=\"applyTag(tag)\" tabindex=\"0\" role=\"button\"\n [attr.aria-pressed]=\"isActiveTag(tag)\">\n @if (editingTagId !== tag.id) {\n @if (isActiveTag(tag)) {\n <span class=\"chip-leading\">\n <mat-icon class=\"leading-check\">check</mat-icon>\n </span>\n }\n <span class=\"chip-label\">{{ tag.label }}</span>\n @if (isUserTag(tag)) {\n <span class=\"chip-trailing\">\n <button mat-icon-button [color]=\"tagButtonColor === 'basic' ? null : tagButtonColor\"\n [matMenuTriggerFor]=\"tagMenu\" (click)=\"$event.stopPropagation()\" [attr.aria-label]=\"getTagActionsAriaLabel(tag)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #tagMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"startEditTag(tag, $event)\">\n <mat-icon>edit</mat-icon>\n <span>{{ i18nLabels.renameShortcut }}</span>\n </button>\n <button mat-menu-item (click)=\"deleteTag(tag)\">\n <mat-icon>delete</mat-icon>\n <span>{{ i18nLabels.removeShortcut }}</span>\n </button>\n </mat-menu>\n </span>\n } @else {\n <span class=\"chip-readonly\" [matTooltip]=\"i18nLabels.readonlyShortcut\">\n <mat-icon>lock</mat-icon>\n </span>\n }\n } @else {\n <input matInput class=\"chip-editor\" [formControl]=\"editingTagLabel\" autofocus\n [matTooltip]=\"'Enter para salvar, Esc para cancelar'\" matTooltipPosition=\"below\"\n (keydown.enter)=\"commitEditTag(tag, $event)\" (keydown.escape)=\"cancelEditTag($event)\"\n (blur)=\"commitEditTag(tag, $event)\" (click)=\"$event.stopPropagation()\" />\n }\n </mat-chip>\n }\n </mat-chip-set>\n </div>\n}\n", styles: ["@charset \"UTF-8\";:root{--pfx-filter-h: 42px;--pfx-filter-align-offset: 2px;--pfx-gap-x: 12px;--pfx-gap-y: 8px;--pfx-always-max-desktop: 380px;--pfx-slider-span-desktop: 2;--pfx-advanced-pad-x: 24px;--pfx-field-min: 280px;--pfx-overlay-margin-y: 16px;--pfx-overlay-margin-x: 16px}:host-context(.theme-light){--pfx-surface-border: var(--md-sys-color-outline)}:host{--border-color: var(--md-sys-color-outline-variant);--border-color-hover: var(--md-sys-color-outline);--pfx-overlay-surface: var(--md-sys-color-surface-container);--pfx-overlay-surface-elev: var(--md-sys-color-surface-container-high);--pfx-overlay-surface-variant: var(--md-sys-color-surface-variant);--pfx-overlay-on-surface: var(--md-sys-color-on-surface);--pfx-overlay-on-surface-variant: var(--md-sys-color-on-surface-variant);display:block;width:100%;min-width:0;flex:1 1 auto}.schema-error-banner{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,var(--md-sys-color-error) 50%,transparent);background:color-mix(in srgb,var(--md-sys-color-error-container) 85%,transparent);color:var(--md-sys-color-on-error-container)}.schema-error-message{min-width:0;flex:1 1 auto;font-size:.8125rem}:host ::ng-deep .schema-error-retry.mat-mdc-outlined-button{--mdc-outlined-button-outline-color: color-mix( in srgb, var(--md-sys-color-error) 55%, var(--md-sys-color-outline) )}.praxis-filter-bar{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;column-gap:6px;row-gap:6px;align-items:center}.inline-actions .actions-anchor{width:0;height:0;overflow:hidden}.inline-actions{grid-column:2;grid-row:1;flex:0 0 auto;display:flex;gap:6px;justify-self:end;align-self:center;width:fit-content;white-space:nowrap;height:var(--pfx-filter-h);align-items:center;padding:0 2px}.action-cluster{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;min-height:36px;padding:2px;border-radius:999px;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-highest)}.action-cluster--manage{position:relative;border-color:color-mix(in srgb,var(--md-sys-color-primary) 35%,var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-high)}:host ::ng-deep .action-cluster .mat-mdc-icon-button,:host ::ng-deep .action-cluster .cluster-btn.mat-mdc-icon-button{width:32px;height:32px;padding:0;display:inline-grid;place-items:center;--mat-icon-button-state-layer-size: 32px}.action-cluster .cluster-btn.is-opening{pointer-events:none}.action-cluster .cluster-btn.is-disabled{color:color-mix(in srgb,var(--md-sys-color-on-surface) 38%,transparent);cursor:default;opacity:.56}.action-cluster .cluster-btn-spinner{width:18px!important;height:18px!important;display:block;grid-area:1/1;--mdc-circular-progress-active-indicator-color: currentColor}.inline-actions.actions-outlined button.mat-mdc-icon-button{border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:50%}.inline-actions.actions-outlined .action-cluster button.mat-mdc-icon-button{border-color:transparent}.separator-before{position:relative;margin-left:10px}.separator-before:before{content:\"\";position:absolute;left:-7px;top:50%;width:1px;height:18px;transform:translateY(-50%);background:color-mix(in srgb,var(--md-sys-color-outline) 72%,transparent)}.inline-actions mat-icon{width:20px;height:20px;font-size:20px}.fields-grid{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--pfx-always-min, 220px),1fr));grid-auto-flow:row dense;gap:6px}.compact-fields{grid-column:1;grid-row:1;display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:center;align-items:center;gap:6px;min-width:0;min-height:var(--pfx-filter-h)}:host ::ng-deep .compact-fields .pfx-field-shell,:host ::ng-deep .compact-fields .pfx-field-shell-wrapper,:host ::ng-deep .compact-fields .pfx-field-shell-host{--pfx-field-shell-width: fit-content;--pfx-field-shell-field-width: auto;width:fit-content!important;max-width:100%;min-width:0;flex:0 1 auto!important}:host ::ng-deep .compact-fields>.pfx-field-shell,:host ::ng-deep .compact-fields>praxis-field-shell{flex:0 1 auto!important;width:fit-content!important;max-width:100%;min-width:0}:host ::ng-deep .compact-fields .pfx-field-shell .mat-mdc-form-field{width:auto!important;max-width:100%;margin-bottom:0}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{width:var(--pdx-inline-time-field-w, auto)!important;inline-size:var(--pdx-inline-time-field-w, auto)!important;max-width:min(var(--pdx-inline-time-max-w, 280px),100vw - 48px)!important}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineDateRange] .mat-mdc-form-field{width:var(--pdx-inline-date-range-shell-width, auto)!important;max-width:100%!important}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1}.praxis-filter-bar.has-compact .fields-grid{grid-column:1/-1;grid-row:2}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider] mat-slider,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] mat-slider,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] mat-slider{width:100%;display:block}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider] .pdx-slider-wrapper,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-slider-wrapper,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-slider-wrapper{padding-top:2px}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-range-slider-container,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-range-slider-container{padding:2px 0 0}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-slider-label,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-slider-label{margin-bottom:4px;line-height:1.15}:host ::ng-deep .fields-grid .mat-mdc-text-field-wrapper.mdc-text-field--outlined{min-height:var(--pfx-filter-h);align-items:center}:host ::ng-deep .fields-grid .mat-mdc-form-field-infix{min-height:var(--pfx-filter-h)}:host ::ng-deep .fields-grid .mat-mdc-select-trigger{height:var(--pfx-filter-h);align-items:center}:host ::ng-deep .fields-grid .mat-mdc-form-field{width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSearchableSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSearchableSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineMultiSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineMultiSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineInput]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineInput] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlinePhone]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlinePhone] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineToggle]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineToggle] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineRange]{justify-self:start}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineRange]{max-width:min(340px,100%)}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDate]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDate] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDateRange]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDateRange] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .mat-mdc-form-field-subscript-wrapper{min-height:0;margin-top:0}:host ::ng-deep .fields-grid .mat-mdc-form-field{margin-bottom:0}.praxis-filter-bar.has-compact{--pfx-filter-tag-color: var(--md-sys-color-primary-container);--pfx-filter-tag-on-color: var(--md-sys-color-on-primary-container);--pfx-filter-tag-outline-color: var(--md-sys-color-primary);--pdx-inline-control-height: var(--pfx-filter-inline-control-height, 42px);--pdx-inline-control-height-mobile: var(--pfx-filter-inline-control-height-mobile, 40px);--pdx-inline-control-padding-x: var(--pfx-filter-inline-control-padding-x, 12px);--pdx-inline-control-padding-x-mobile: var(--pfx-filter-inline-control-padding-x-mobile, 12px);--pdx-inline-clear-size: var(--pfx-filter-inline-clear-size, 22px);--pdx-inline-chip-radius: var(--pfx-filter-inline-chip-radius, var(--md-sys-shape-corner-full, 999px));--pdx-inline-chip-active-bg: var(--pfx-filter-tag-color);--pdx-inline-chip-active-fg: var(--pfx-filter-tag-on-color);--pdx-inline-chip-active-clear-color: var(--pfx-filter-tag-on-color);--pdx-inline-field-focus-outline: var(--pfx-filter-tag-outline-color)}.praxis-filter-bar.has-compact.tag-color-accent{--pfx-filter-tag-color: var(--md-sys-color-tertiary-container, var(--md-sys-color-secondary-container));--pfx-filter-tag-on-color: var(--md-sys-color-on-tertiary-container, var(--md-sys-color-on-secondary-container));--pfx-filter-tag-outline-color: var(--md-sys-color-tertiary, var(--md-sys-color-secondary))}.praxis-filter-bar.has-compact.tag-color-warn{--pfx-filter-tag-color: var(--md-sys-color-error-container);--pfx-filter-tag-on-color: var(--md-sys-color-on-error-container);--pfx-filter-tag-outline-color: var(--md-sys-color-error)}.praxis-filter-bar.has-compact.tag-color-basic{--pfx-filter-tag-color: color-mix(in srgb, var(--md-sys-color-on-surface) 10%, transparent);--pfx-filter-tag-on-color: var(--md-sys-color-on-surface);--pfx-filter-tag-outline-color: var(--md-sys-color-outline-variant)}:host ::ng-deep .praxis-filter-bar.has-compact{--pfx-filter-inline-chip-padding-x: var(--pdx-inline-control-padding-x);--pfx-filter-inline-icon-gap: 4px}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-inline:var(--pfx-filter-inline-chip-padding-x)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-prefix{align-items:center;display:inline-flex;flex:0 0 auto;margin-right:var(--pfx-filter-inline-icon-gap)!important;padding:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-suffix{align-items:center;display:inline-flex;flex:0 0 auto;gap:var(--pfx-filter-inline-icon-gap)!important;margin-left:var(--pfx-filter-inline-icon-gap)!important;padding:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-prefix>.mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-suffix>.mat-icon{flex:0 0 16px!important;font-size:16px!important;height:16px!important;line-height:16px!important;margin:0!important;padding:0!important;width:16px!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-infix{padding-inline:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select) .pdx-chip-trigger{gap:var(--pfx-filter-inline-icon-gap)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-currency-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-searchable-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-async-select.pdx-has-selection .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-value .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-both .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-entity-lookup.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-multi-select.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-distance-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-score-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-relative-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-relative-period-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-rating-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-pipeline-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-sentiment-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-color-label-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-time-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active{--pdx-inline-currency-symbol-color: var(--pfx-filter-tag-on-color);background:var(--pfx-filter-tag-color)!important;border-color:transparent!important;color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-currency-range-chip.is-active :where(.mat-icon,.pdx-inline-currency-range-value,.pdx-inline-currency-range-text,.pdx-inline-currency-range-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear) :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear,.pdx-inline-number-suffix),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-select,.pdx-inline-searchable-select) .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active) :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-async-select.pdx-has-selection :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-value :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-both :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-entity-lookup.pdx-has-selection,.pdx-inline-multi-select.pdx-has-selection) .pdx-chip-trigger :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active) :where(.mat-icon,button,span),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-time-range-chip.is-active :where(.pdx-inline-time-range-icon,.pdx-inline-time-range-text,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active :where(.pdx-inline-toggle-label,.mat-icon){color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-currency-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-searchable-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-async-select.pdx-has-selection .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-value .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-both .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-entity-lookup.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-multi-select.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-distance-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-score-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-relative-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-relative-period-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-rating-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-pipeline-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-sentiment-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-color-label-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-time-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active{--pdx-inline-currency-symbol-color: var(--pfx-filter-tag-outline-color);background:transparent!important;border-color:var(--pfx-filter-tag-outline-color)!important;box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-outline-color);color:var(--pfx-filter-tag-outline-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-currency-range-chip.is-active :where(.mat-icon,.pdx-inline-currency-range-value,.pdx-inline-currency-range-text,.pdx-inline-currency-range-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear) :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear,.pdx-inline-number-suffix),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-select,.pdx-inline-searchable-select) .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active) :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-async-select.pdx-has-selection :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-value :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-both :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-entity-lookup.pdx-has-selection,.pdx-inline-multi-select.pdx-has-selection) .pdx-chip-trigger :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active) :where(.mat-icon,button,span),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-time-range-chip.is-active :where(.pdx-inline-time-range-icon,.pdx-inline-time-range-text,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active :where(.pdx-inline-toggle-label,.mat-icon){color:var(--pfx-filter-tag-outline-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear){background:color-mix(in srgb,currentColor 16%,transparent)!important;border-radius:50%!important;color:inherit!important;display:inline-grid!important;flex:0 0 var(--pdx-inline-clear-size, 22px)!important;height:var(--pdx-inline-clear-size, 22px)!important;min-width:var(--pdx-inline-clear-size, 22px)!important;place-items:center!important;width:var(--pdx-inline-clear-size, 22px)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear):hover{background:color-mix(in srgb,currentColor 24%,transparent)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear) .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper:has(.pdx-inline-clear) .pdx-inline-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper:has(.pdx-inline-clear) .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active .pdx-inline-toggle-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active .pdx-inline-toggle-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active .pdx-chip-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active .pdx-chip-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}.praxis-filter-tags.outlined .mat-mdc-chip{background:transparent!important;--mat-chip-outline-width: 1px;--mat-chip-outline-color: var(--md-sys-color-outline-variant);box-shadow:inset 0 0 0 var(--mat-chip-outline-width) var(--mat-chip-outline-color)}.praxis-filter-tags.outlined.tag-color-primary .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-primary)}.praxis-filter-tags.outlined.tag-color-accent .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-tertiary)}.praxis-filter-tags.outlined.tag-color-warn .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-error)}.praxis-filter-tags.outlined mat-chip.active .mat-mdc-chip,.praxis-filter-tags.outlined .mat-mdc-chip.mat-mdc-chip-highlighted{--mat-chip-outline-width: 2px;box-shadow:inset 0 0 0 var(--mat-chip-outline-width) var(--mat-chip-outline-color)!important}.praxis-filter-tags.outlined.tag-color-basic mat-chip.active .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-primary)}.praxis-filter-tags .mat-mdc-standard-chip .mdc-evolution-chip__text-label{display:flex;align-items:center;justify-content:center;gap:4px;line-height:1.2;font-size:.875rem}.praxis-filter-tags .chip-leading,.praxis-filter-tags .chip-trailing{display:inline-flex;align-items:center}.praxis-filter-tags .leading-check{width:18px;height:18px;font-size:18px;line-height:1}.praxis-filter-tags .chip-label{position:relative;top:-6px}.praxis-filter-tags .chip-trailing .mat-mdc-icon-button{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;line-height:28px}.praxis-filter-tags .mat-mdc-standard-chip{--mat-chip-container-height: 36px}.praxis-filter-advanced{display:flex;flex-direction:column;min-width:400px;max-width:90vw;min-height:260px;max-height:min(80vh,720px);margin:var(--pfx-overlay-margin-y) var(--pfx-overlay-margin-x);background-color:var(--pfx-overlay-surface)!important;background:var(--pfx-overlay-surface)!important;color:var(--pfx-overlay-on-surface);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--md-sys-elevation-level3)}.advanced-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px var(--pfx-advanced-pad-x) 10px;border-bottom:1px solid var(--border-color);background:var(--pfx-overlay-surface)}.advanced-title-block{display:flex;flex-direction:column;gap:2px}.advanced-title{font-size:1rem;font-weight:600;color:var(--pfx-overlay-on-surface)}.advanced-subtitle{font-size:.85rem;color:var(--pfx-overlay-on-surface-variant)}.advanced-close{align-self:flex-start}.praxis-filter-overlay.mobile .praxis-filter-advanced{height:100vh;max-height:100vh;margin:0;border-radius:0}:host ::ng-deep .praxis-overlay-backdrop{background:var(--md-sys-color-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}:host ::ng-deep .praxis-filter-overlay.frosted .praxis-filter-advanced{background:var(--pfx-overlay-surface-variant)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:var(--border-color)}:host ::ng-deep .praxis-filter-overlay.frosted .advanced-header,:host ::ng-deep .praxis-filter-overlay.frosted .advanced-actions{background:var(--pfx-overlay-surface-variant)!important}.advanced-body{padding:12px var(--pfx-advanced-pad-x) 72px;overflow:auto;flex:1 1 auto;overscroll-behavior:contain}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-row{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(var(--pfx-field-min),1fr));gap:var(--pfx-gap-y) var(--pfx-gap-x)}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-column{min-width:0}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-column .mat-mdc-form-field{width:100%}.advanced-actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:8px;padding:var(--pfx-gap-y) var(--pfx-advanced-pad-x);background-color:var(--pfx-overlay-surface)!important;background:var(--pfx-overlay-surface)!important;border-top:1px solid var(--border-color);box-shadow:0 -1px 0 var(--md-sys-color-outline-variant)}.advanced-actions .mat-mdc-button-base{height:40px}.advanced-actions .mat-mdc-raised-button.mat-primary{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}:host ::ng-deep .praxis-filter-advanced .mat-mdc-text-field-wrapper.mdc-text-field--outlined{--mdc-outlined-text-field-outline-color: var(--border-color);--mdc-outlined-text-field-hover-outline-color: var(--border-color-hover);--mdc-outlined-text-field-focus-outline-color: var(--md-sys-color-primary);--mdc-outlined-text-field-label-text-color: var(--pfx-overlay-on-surface-variant);--mdc-outlined-text-field-input-text-color: var(--pfx-overlay-on-surface);--mdc-outlined-text-field-container-color: var(--pfx-overlay-surface)}:host ::ng-deep .praxis-filter-advanced .mat-mdc-select-trigger,:host ::ng-deep .praxis-filter-advanced .mat-mdc-form-field-subscript-wrapper,:host ::ng-deep .praxis-filter-advanced .mat-mdc-form-field-infix{color:var(--pfx-overlay-on-surface)}@media(min-width:600px){.fields-grid{gap:6px 8px}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.praxis-filter-bar.has-compact{grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:start;justify-items:stretch;width:100%}.praxis-filter-bar.has-compact .inline-actions{grid-column:1;grid-row:2;justify-self:start;width:100%;height:auto}.praxis-filter-bar.has-compact .inline-actions .action-cluster{max-width:100%}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>.pfx-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>praxis-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-host{--pfx-field-shell-width: auto;--pfx-field-shell-field-width: auto;width:100%!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .mat-mdc-form-field,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-currency-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-distance-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-score-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-relative-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-relative-period-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-rating-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-pipeline-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-sentiment-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-color-label-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-time-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-toggle-pill{width:100%!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :where(.pdx-chip-label,.pdx-chip-trigger,.pdx-inline-range-text,.pdx-inline-currency-range-text,.pdx-inline-distance-text,.pdx-inline-score-text,.pdx-inline-relative-text,.pdx-inline-relative-period-text,.pdx-inline-rating-text,.pdx-inline-pipeline-text,.pdx-inline-sentiment-text,.pdx-inline-color-label-text,.pdx-inline-time-range-text,.pdx-inline-toggle-label){min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime],:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .pfx-field-shell-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .pfx-field-shell-host{--pfx-field-shell-width: fit-content;--pfx-field-shell-field-width: var(--pdx-inline-time-field-w, auto);justify-self:start;width:fit-content!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{width:var(--pdx-inline-time-field-w, auto)!important;inline-size:var(--pdx-inline-time-field-w, auto)!important;max-width:min(var(--pdx-inline-time-max-w, 280px),100vw - 48px)!important}}@media(min-width:960px){.fields-grid{gap:6px 10px}}@media(min-width:1200px){.fields-grid{grid-template-columns:repeat(auto-fit,minmax(var(--pfx-always-min, 220px),var(--pfx-always-max-desktop, 380px)));justify-content:start;align-content:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeslider]{grid-column:span var(--pfx-slider-span-desktop, 2)}}.inline-toggles{display:flex;align-items:center;gap:8px;margin:0 4px 0 6px}:host ::ng-deep .inline-actions .mat-mdc-slide-toggle{height:var(--pfx-filter-h);display:flex;align-items:center}:host ::ng-deep .inline-actions .mat-mdc-slide-toggle .mdc-form-field{align-items:center}::ng-deep .praxis-filter-overlay .praxis-filter-advanced .praxis-filter-form .filter-row{display:grid!important;gap:var(--pfx-gap-y, 1px) var(--pfx-gap-x, 6px)}@media(min-width:600px){::ng-deep .praxis-filter-overlay .praxis-filter-advanced .praxis-filter-form .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}.hidden-submit{position:absolute!important;width:0!important;height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;overflow:hidden!important}:host ::ng-deep .inline-actions [matBadge] .mat-badge-content{top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:10px;font-weight:700;line-height:16px;letter-spacing:0;text-indent:0;color:var(--md-sys-color-on-primary, #fff)}:host ::ng-deep .inline-actions [matBadge][matbadgecolor=warn] .mat-badge-content,:host ::ng-deep .inline-actions [matBadge].mat-badge-warn .mat-badge-content{color:var(--md-sys-color-on-error, #fff)}.praxis-filter-bar :where(.mat-mdc-slide-toggle .mdc-switch__icons){display:none!important}.praxis-filter-bar{--mdc-switch-unselected-icon-size: 0px;--mdc-switch-selected-icon-size: 0px;--pfx-always-min: 220px}.praxis-filter-card{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-radius:12px;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface)}.add-manager{display:flex;flex-direction:column;width:min(400px,100vw - 24px);max-height:min(70vh,560px);overflow:hidden;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:var(--pfx-overlay-radius, 16px);background:var(--md-sys-color-surface-container-highest);color:var(--md-sys-color-on-surface);box-shadow:var(--md-sys-elevation-level3)}.add-manager__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 16px 8px 20px}.add-manager__header h2{margin:0;font:var(--md-sys-typescale-title-medium)}.add-manager__header p{margin:4px 0 0;color:var(--md-sys-color-on-surface-variant);font:var(--md-sys-typescale-body-small)}.add-manager__search{padding:8px 20px}.add-manager__search mat-form-field{width:100%}.add-manager__summary{padding:0 20px 8px;color:var(--md-sys-color-on-surface-variant);font:var(--md-sys-typescale-label-medium)}.add-manager__bulk{padding:8px 20px;border-block:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant))}.add-manager__list{display:flex;flex-direction:column;min-height:80px;overflow:auto;padding:8px 12px 12px}.add-manager__item{min-height:48px;padding-inline:8px;border-radius:var(--pfx-control-radius, 8px)}.add-manager__item:hover{background:var(--md-sys-color-surface-container-high)}.add-manager__empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:96px;padding:16px;color:var(--md-sys-color-on-surface-variant);text-align:center}.add-manager__footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-highest)}.add-manager__notice{display:flex;align-items:flex-start;gap:8px;padding:10px 16px;font:var(--md-sys-typescale-body-small)}.add-manager__notice mat-icon{flex:0 0 auto}.add-manager__notice--warning{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.add-manager__notice--conflict{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}@media(max-width:600px){.add-manager{width:calc(100vw - 16px);max-height:min(78dvh,640px);border-radius:var(--pfx-overlay-radius, 16px)}.add-manager__header,.add-manager__search{padding-inline:16px}}.inline-actions .add-trigger{display:inline-flex;align-items:center;gap:6px;height:32px;width:100%;max-width:100%;min-width:0;padding:0 10px;border-radius:0;border:0;background:transparent;overflow:visible}.inline-actions .add-trigger--icon{justify-content:center;width:32px;min-width:32px;padding:0}:host ::ng-deep .inline-actions .add-trigger mat-icon{width:18px;height:18px;font-size:18px;flex:0 0 auto}.inline-actions .add-trigger-label{display:inline-block;flex:1 1 auto;min-width:0;max-width:100%;text-align:left;direction:ltr;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;line-height:1}:host ::ng-deep .action-cluster--manage .mat-mdc-select{flex:0 0 auto;width:180px;min-width:0;max-width:180px}:host ::ng-deep .action-cluster--manage .cluster-select--hidden.mat-mdc-select{position:absolute;width:1px;min-width:1px;max-width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}:host ::ng-deep .action-cluster--manage .mat-mdc-select-trigger{min-height:32px;padding:0}:host ::ng-deep .action-cluster--manage .mat-mdc-select-value,:host ::ng-deep .action-cluster--manage .mat-mdc-select-value-text,:host ::ng-deep .action-cluster--manage .mat-mdc-select-min-line{width:auto;min-width:0;max-width:100%;display:inline-flex;align-items:center;justify-content:flex-start;overflow:visible}.praxis-filter-card .summary-header{display:flex;align-items:center;gap:10px}.praxis-filter-card .summary-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.praxis-filter-card .summary-title{font-weight:600}.praxis-filter-card .summary-subtitle{opacity:.8;font-size:.875rem}.praxis-filter-card .summary-badges{display:flex;flex-wrap:wrap;gap:6px}.praxis-filter-card .summary-badges span{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--md-sys-color-primary-container);border:1px solid var(--md-sys-color-outline-variant);color:var(--md-sys-color-on-primary-container);font-size:12px}.praxis-filter-card .card-actions{display:flex;gap:8px}:host ::ng-deep .inline-actions .mat-mdc-select-arrow-wrapper{display:none}.inline-actions .add-filter-btn{height:36px;border-radius:18px;padding:0 16px 0 12px}.inline-actions .add-filter-btn mat-icon{margin-right:8px;margin-left:-4px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3$1.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: 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: MatChipsModule }, { kind: "component", type: i15.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i15.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i15$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i14$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i15$3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: DynamicFieldLoaderDirective, selector: "[dynamicFieldLoader]", inputs: ["fields", "formGroup", "enableExternalControlBinding", "itemTemplate", "debugTrace", "debugTraceLabel", "readonlyMode", "disabledMode", "presentationMode", "visible", "canvasMode"], outputs: ["componentsCreated", "fieldCreated", "fieldDestroyed", "renderError", "canvasMouseEnter", "canvasMouseLeave", "canvasClick", "canvasFocus"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i12.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i12.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i19.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] });
|
|
38554
38610
|
}
|
|
38555
38611
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisFilter, decorators: [{
|
|
38556
38612
|
type: Component,
|
|
@@ -38572,13 +38628,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
38572
38628
|
OverlayModule,
|
|
38573
38629
|
MatDialogModule,
|
|
38574
38630
|
A11yModule,
|
|
38575
|
-
|
|
38576
|
-
MatOptionModule
|
|
38631
|
+
MatCheckboxModule
|
|
38577
38632
|
], host: {
|
|
38578
38633
|
'[style.--pfx-always-min]': 'alwaysMinWidth + "px"',
|
|
38579
38634
|
'[style.--pfx-always-cols-md]': 'alwaysColsMd',
|
|
38580
38635
|
'[style.--pfx-always-cols-lg]': 'alwaysColsLg',
|
|
38581
|
-
}, template: "@if (saving) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n}\n@if (schemaError) {\n <div class=\"schema-error-banner\" role=\"alert\" aria-live=\"polite\">\n <mat-icon [praxisIcon]=\"'error_outline'\" aria-hidden=\"true\"></mat-icon>\n <span class=\"schema-error-message\">{{ i18nLabels.errorLoadingFilters || 'Erro ao carregar filtros.' }}</span>\n <button\n mat-stroked-button\n class=\"schema-error-retry\"\n type=\"button\"\n (click)=\"retrySchemaLoad()\"\n [attr.aria-label]=\"i18nLabels.retry || 'Tentar novamente'\"\n >\n {{ i18nLabels.retry || 'Tentar novamente' }}\n </button>\n </div>\n}\n\n<form class=\"praxis-filter-bar\" [class.is-open]=\"advancedOpen\"\n [class.has-compact]=\"compactSelectedMetas.length || compactAlwaysVisibleMetas.length\"\n [class.tag-variant-filled]=\"tagVariant === 'filled'\"\n [class.tag-variant-outlined]=\"tagVariant === 'outlined'\"\n [class.tag-color-basic]=\"tagColor === 'basic'\"\n [class.tag-color-primary]=\"tagColor === 'primary'\"\n [class.tag-color-accent]=\"tagColor === 'accent'\"\n [class.tag-color-warn]=\"tagColor === 'warn'\"\n (click)=\"onFieldInteraction($event)\"\n (focusin)=\"onFieldInteraction($event)\"\n (change)=\"$event.stopPropagation()\"\n (submit)=\"onSubmit(); $event.preventDefault(); $event.stopPropagation()\">\n <div class=\"inline-actions\" [class.actions-outlined]=\"actionsVariant==='outlined'\">\n <div class=\"actions-anchor\" #anchorRef=\"cdkOverlayOrigin\" cdkOverlayOrigin></div>\n @if (toggleMetas.length) {\n <div class=\"inline-toggles\">\n <ng-container dynamicFieldLoader [fields]=\"toggleMetas\" [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onToggleComponents($event)\"></ng-container>\n </div>\n }\n\n @if (showAdvancedButton || showAddButton || showFilterSettings || isFieldAuthoringEnabled()) {\n <div class=\"action-cluster action-cluster--manage\">\n @if (showAdvancedButton) {\n <button #advancedButton mat-icon-button class=\"cluster-btn\"\n [class.is-opening]=\"advancedOpening\" [class.is-disabled]=\"!hasAdvancedFields()\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\" type=\"button\"\n [matBadge]=\"activeFiltersCount\" [matBadgeHidden]=\"!activeFiltersCount || !hasAdvancedFields()\" matBadgeSize=\"small\"\n matBadgeColor=\"primary\" [matBadgeOverlap]=\"false\" (click)=\"toggleAdvanced()\"\n [attr.aria-label]=\"getAdvancedAriaLabel()\" [attr.aria-expanded]=\"advancedOpen\"\n [attr.aria-disabled]=\"!hasAdvancedFields()\"\n [attr.aria-busy]=\"advancedOpening ? 'true' : null\"\n [matTooltip]=\"getAdvancedTooltip()\"\n matTooltipPosition=\"below\"\n [attr.aria-controls]=\"advancedPanelId\">\n @if (advancedOpening) {\n <mat-progress-spinner\n class=\"cluster-btn-spinner\"\n mode=\"indeterminate\"\n diameter=\"18\"\n strokeWidth=\"3\"\n aria-hidden=\"true\"\n ></mat-progress-spinner>\n } @else {\n <mat-icon [praxisIcon]=\"'filter_list'\"></mat-icon>\n }\n </button>\n }\n @if (showAddButton) {\n <button mat-icon-button class=\"cluster-btn\" [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\" [attr.aria-label]=\"getAddAriaLabel()\" [matTooltip]=\"getAddTooltip()\"\n matTooltipPosition=\"below\" [class.is-disabled]=\"!hasAddableFields()\"\n [attr.aria-disabled]=\"!hasAddableFields()\" (click)=\"openAddSelect(addSelect)\">\n <mat-icon [praxisIcon]=\"'add'\"></mat-icon>\n </button>\n <mat-select #addSelect multiple panelClass=\"praxis-add-select-panel\" panelWidth=\"min(340px, calc(100vw - 24px))\" [value]=\"selectedFieldIds\"\n class=\"cluster-select cluster-select--hidden\"\n [aria-label]=\"getAddAriaLabel()\" (openedChange)=\"onAddOpened($event)\"\n (selectionChange)=\"onAddSelectionChange(addSelect.value)\">\n @if (hasAddableFields()) {\n <mat-option\n class=\"add-search\"\n [value]=\"addSearchFieldId\"\n (mousedown)=\"$event.stopPropagation()\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <mat-form-field\n appearance=\"outline\"\n class=\"add-search-field\"\n subscriptSizing=\"dynamic\"\n >\n <input\n matInput\n [attr.aria-label]=\"i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\"\n [placeholder]=\"i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\"\n (mousedown)=\"$event.stopPropagation()\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n (input)=\"onAddQuery(($any($event.target)).value)\"\n />\n </mat-form-field>\n </mat-option>\n }\n @if (hasAddableFields()) {\n <mat-option\n class=\"add-select-all\"\n [value]=\"addSelectAllFieldId\"\n (mousedown)=\"$event.stopPropagation()\"\n (click)=\"$event.stopPropagation(); toggleSelectAll()\"\n (keydown)=\"$event.stopPropagation()\"\n [class.partial]=\"isSomeSelected() && !isAllSelected()\">\n {{ i18nLabels.selectAll || 'Selecionar todos' }}@if (isSomeSelected() && !isAllSelected()) {\n <span class=\"select-all-partial\">\n {{ i18nLabels.selectAllPartial || '(parcial)' }}</span>\n }\n </mat-option>\n }\n @for (it of addItems; track trackById($index, it)) {\n <mat-option [value]=\"it.id\">\n {{ it.label }}\n </mat-option>\n }\n @if (!hasAddableFields()) {\n <mat-option class=\"add-empty\" disabled>\n {{ i18nLabels.addUnavailable || 'Todos os campos j\u00E1 est\u00E3o vis\u00EDveis' }}\n </mat-option>\n }\n </mat-select>\n }\n @if (showFilterSettings) {\n <button mat-icon-button class=\"cluster-btn separator-before\" [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\" (click)=\"openSettings()\" [matBadge]=\"schemaOutdated ? '!' : ''\"\n [matBadgeHidden]=\"!schemaOutdated\" matBadgeColor=\"warn\" matBadgeSize=\"small\" matBadgePosition=\"above after\"\n [matTooltip]=\"getSettingsTooltip()\"\n matTooltipPosition=\"below\" [attr.aria-label]=\"getSettingsAriaLabel()\">\n <mat-icon [praxisIcon]=\"'settings'\"></mat-icon>\n </button>\n }\n @if (isFieldAuthoringEnabled() && activeEditableFieldMeta) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\"\n data-testid=\"filter-field-settings-trigger\"\n [attr.aria-label]=\"activeEditableFieldLabel\"\n (click)=\"openSelectedFieldEditor()\"\n >\n <mat-icon [praxisIcon]=\"'tune'\"></mat-icon>\n </button>\n }\n </div>\n }\n\n @if ((showClearButton && activeFiltersCount > 0) || showSearchButton) {\n <div class=\"action-cluster action-cluster--query\">\n @if (showClearButton && activeFiltersCount > 0) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\"\n data-testid=\"filter-clear-trigger\"\n (click)=\"onClear()\"\n [attr.aria-label]=\"i18nLabels.clear\"\n [matTooltip]=\"i18nLabels.clear\"\n matTooltipPosition=\"below\"\n >\n <mat-icon [praxisIcon]=\"'filter_alt_off'\"></mat-icon>\n </button>\n }\n @if (showSearchButton) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"submit\"\n [attr.aria-label]=\"i18nLabels.apply\"\n [matTooltip]=\"i18nLabels.apply\"\n matTooltipPosition=\"below\"\n >\n <mat-icon [praxisIcon]=\"'search'\"></mat-icon>\n </button>\n }\n </div>\n }\n\n <span class=\"sr-only\" aria-live=\"polite\">{{ advancedOpening ? (i18nLabels.advancedOpening || 'Abrindo filtro avan\u00E7ado...') : getAddAriaLabel() }}</span>\n</div>\n\n@if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <div class=\"compact-fields\">\n @if (compactSelectedMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"compactSelectedMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onSelectedComponents($event)\"></ng-container>\n }\n @if (compactAlwaysVisibleMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"compactAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onAlwaysComponents($event)\"></ng-container>\n }\n </div>\n}\n\n@if (gridSelectedMetas.length || gridAlwaysVisibleMetas.length) {\n <div class=\"fields-grid\">\n @if (gridSelectedMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"gridSelectedMetas\" [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"></ng-container>\n }\n @if (gridAlwaysVisibleMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"gridAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onAlwaysComponents($event)\"></ng-container>\n }\n </div>\n}\n\n<span class=\"sr-only\" aria-live=\"polite\">\n {{ activeFiltersCount ? (activeFiltersCount + ' filtros ativos') : '' }}\n</span>\n<button type=\"submit\" class=\"hidden-submit\" aria-hidden=\"true\" tabindex=\"-1\"></button>\n</form>\n\n@if (displayedTags.length) {\n <div\n class=\"praxis-filter-tags\"\n [class.outlined]=\"tagVariant==='outlined'\"\n [class.tag-color-basic]=\"tagColor === 'basic'\"\n [class.tag-color-primary]=\"tagColor === 'primary'\"\n [class.tag-color-accent]=\"tagColor === 'accent'\"\n [class.tag-color-warn]=\"tagColor === 'warn'\"\n >\n <mat-chip-set [attr.aria-label]=\"i18nLabels.shortcutsLabel || 'Atalhos'\">\n @for (tag of displayedTags; track trackById($index, tag)) {\n <mat-chip [class.active]=\"isActiveTag(tag)\"\n [color]=\"tagVariant === 'outlined' || tagColor === 'basic' ? null : tagColor\"\n [highlighted]=\"tagVariant === 'filled' && tagColor !== 'basic'\" (click)=\"applyTag(tag)\"\n (keydown.enter)=\"applyTag(tag)\" (keydown.space)=\"applyTag(tag)\" tabindex=\"0\" role=\"button\"\n [attr.aria-pressed]=\"isActiveTag(tag)\">\n @if (editingTagId !== tag.id) {\n @if (isActiveTag(tag)) {\n <span class=\"chip-leading\">\n <mat-icon class=\"leading-check\">check</mat-icon>\n </span>\n }\n <span class=\"chip-label\">{{ tag.label }}</span>\n @if (isUserTag(tag)) {\n <span class=\"chip-trailing\">\n <button mat-icon-button [color]=\"tagButtonColor === 'basic' ? null : tagButtonColor\"\n [matMenuTriggerFor]=\"tagMenu\" (click)=\"$event.stopPropagation()\" [attr.aria-label]=\"getTagActionsAriaLabel(tag)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #tagMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"startEditTag(tag, $event)\">\n <mat-icon>edit</mat-icon>\n <span>{{ i18nLabels.renameShortcut }}</span>\n </button>\n <button mat-menu-item (click)=\"deleteTag(tag)\">\n <mat-icon>delete</mat-icon>\n <span>{{ i18nLabels.removeShortcut }}</span>\n </button>\n </mat-menu>\n </span>\n } @else {\n <span class=\"chip-readonly\" [matTooltip]=\"i18nLabels.readonlyShortcut\">\n <mat-icon>lock</mat-icon>\n </span>\n }\n } @else {\n <input matInput class=\"chip-editor\" [formControl]=\"editingTagLabel\" autofocus\n [matTooltip]=\"'Enter para salvar, Esc para cancelar'\" matTooltipPosition=\"below\"\n (keydown.enter)=\"commitEditTag(tag, $event)\" (keydown.escape)=\"cancelEditTag($event)\"\n (blur)=\"commitEditTag(tag, $event)\" (click)=\"$event.stopPropagation()\" />\n }\n </mat-chip>\n }\n </mat-chip-set>\n </div>\n}\n", styles: ["@charset \"UTF-8\";:root{--pfx-filter-h: 42px;--pfx-filter-align-offset: 2px;--pfx-gap-x: 12px;--pfx-gap-y: 8px;--pfx-always-max-desktop: 380px;--pfx-slider-span-desktop: 2;--pfx-advanced-pad-x: 24px;--pfx-field-min: 280px;--pfx-overlay-margin-y: 16px;--pfx-overlay-margin-x: 16px}:host-context(.theme-light){--pfx-surface-border: var(--md-sys-color-outline)}:host{--border-color: var(--md-sys-color-outline-variant);--border-color-hover: var(--md-sys-color-outline);--pfx-overlay-surface: var(--md-sys-color-surface-container);--pfx-overlay-surface-elev: var(--md-sys-color-surface-container-high);--pfx-overlay-surface-variant: var(--md-sys-color-surface-variant);--pfx-overlay-on-surface: var(--md-sys-color-on-surface);--pfx-overlay-on-surface-variant: var(--md-sys-color-on-surface-variant);display:block;width:100%;min-width:0;flex:1 1 auto}.schema-error-banner{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,var(--md-sys-color-error) 50%,transparent);background:color-mix(in srgb,var(--md-sys-color-error-container) 85%,transparent);color:var(--md-sys-color-on-error-container)}.schema-error-message{min-width:0;flex:1 1 auto;font-size:.8125rem}:host ::ng-deep .schema-error-retry.mat-mdc-outlined-button{--mdc-outlined-button-outline-color: color-mix( in srgb, var(--md-sys-color-error) 55%, var(--md-sys-color-outline) )}.praxis-filter-bar{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;column-gap:6px;row-gap:6px;align-items:center}.inline-actions .actions-anchor{width:0;height:0;overflow:hidden}.inline-actions{grid-column:2;grid-row:1;flex:0 0 auto;display:flex;gap:6px;justify-self:end;align-self:center;width:fit-content;white-space:nowrap;height:var(--pfx-filter-h);align-items:center;padding:0 2px}.action-cluster{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;min-height:36px;padding:2px;border-radius:999px;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-highest)}.action-cluster--manage{position:relative;border-color:color-mix(in srgb,var(--md-sys-color-primary) 35%,var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-high)}:host ::ng-deep .action-cluster .mat-mdc-icon-button,:host ::ng-deep .action-cluster .cluster-btn.mat-mdc-icon-button{width:32px;height:32px;padding:0;display:inline-grid;place-items:center;--mat-icon-button-state-layer-size: 32px}.action-cluster .cluster-btn.is-opening{pointer-events:none}.action-cluster .cluster-btn.is-disabled{color:color-mix(in srgb,var(--md-sys-color-on-surface) 38%,transparent);cursor:default;opacity:.56}.action-cluster .cluster-btn-spinner{width:18px!important;height:18px!important;display:block;grid-area:1/1;--mdc-circular-progress-active-indicator-color: currentColor}.inline-actions.actions-outlined button.mat-mdc-icon-button{border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:50%}.inline-actions.actions-outlined .action-cluster button.mat-mdc-icon-button{border-color:transparent}.separator-before{position:relative;margin-left:10px}.separator-before:before{content:\"\";position:absolute;left:-7px;top:50%;width:1px;height:18px;transform:translateY(-50%);background:color-mix(in srgb,var(--md-sys-color-outline) 72%,transparent)}.inline-actions mat-icon{width:20px;height:20px;font-size:20px}.fields-grid{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--pfx-always-min, 220px),1fr));grid-auto-flow:row dense;gap:6px}.compact-fields{grid-column:1;grid-row:1;display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:center;align-items:center;gap:6px;min-width:0;min-height:var(--pfx-filter-h)}:host ::ng-deep .compact-fields .pfx-field-shell,:host ::ng-deep .compact-fields .pfx-field-shell-wrapper,:host ::ng-deep .compact-fields .pfx-field-shell-host{--pfx-field-shell-width: fit-content;--pfx-field-shell-field-width: auto;width:fit-content!important;max-width:100%;min-width:0;flex:0 1 auto!important}:host ::ng-deep .compact-fields>.pfx-field-shell,:host ::ng-deep .compact-fields>praxis-field-shell{flex:0 1 auto!important;width:fit-content!important;max-width:100%;min-width:0}:host ::ng-deep .compact-fields .pfx-field-shell .mat-mdc-form-field{width:auto!important;max-width:100%;margin-bottom:0}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{width:var(--pdx-inline-time-field-w, auto)!important;inline-size:var(--pdx-inline-time-field-w, auto)!important;max-width:min(var(--pdx-inline-time-max-w, 280px),100vw - 48px)!important}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineDateRange] .mat-mdc-form-field{width:var(--pdx-inline-date-range-shell-width, auto)!important;max-width:100%!important}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1}.praxis-filter-bar.has-compact .fields-grid{grid-column:1/-1;grid-row:2}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider] mat-slider,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] mat-slider,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] mat-slider{width:100%;display:block}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider] .pdx-slider-wrapper,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-slider-wrapper,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-slider-wrapper{padding-top:2px}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-range-slider-container,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-range-slider-container{padding:2px 0 0}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-slider-label,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-slider-label{margin-bottom:4px;line-height:1.15}:host ::ng-deep .fields-grid .mat-mdc-text-field-wrapper.mdc-text-field--outlined{min-height:var(--pfx-filter-h);align-items:center}:host ::ng-deep .fields-grid .mat-mdc-form-field-infix{min-height:var(--pfx-filter-h)}:host ::ng-deep .fields-grid .mat-mdc-select-trigger{height:var(--pfx-filter-h);align-items:center}:host ::ng-deep .fields-grid .mat-mdc-form-field{width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSearchableSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSearchableSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineMultiSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineMultiSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineInput]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineInput] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlinePhone]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlinePhone] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineToggle]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineToggle] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineRange]{justify-self:start}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineRange]{max-width:min(340px,100%)}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDate]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDate] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDateRange]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDateRange] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .mat-mdc-form-field-subscript-wrapper{min-height:0;margin-top:0}:host ::ng-deep .fields-grid .mat-mdc-form-field{margin-bottom:0}.praxis-filter-bar.has-compact{--pfx-filter-tag-color: var(--md-sys-color-primary-container);--pfx-filter-tag-on-color: var(--md-sys-color-on-primary-container);--pfx-filter-tag-outline-color: var(--md-sys-color-primary);--pdx-inline-control-height: var(--pfx-filter-inline-control-height, 42px);--pdx-inline-control-height-mobile: var(--pfx-filter-inline-control-height-mobile, 40px);--pdx-inline-control-padding-x: var(--pfx-filter-inline-control-padding-x, 12px);--pdx-inline-control-padding-x-mobile: var(--pfx-filter-inline-control-padding-x-mobile, 12px);--pdx-inline-clear-size: var(--pfx-filter-inline-clear-size, 22px);--pdx-inline-chip-radius: var(--pfx-filter-inline-chip-radius, var(--md-sys-shape-corner-full, 999px));--pdx-inline-chip-active-bg: var(--pfx-filter-tag-color);--pdx-inline-chip-active-fg: var(--pfx-filter-tag-on-color);--pdx-inline-chip-active-clear-color: var(--pfx-filter-tag-on-color);--pdx-inline-field-focus-outline: var(--pfx-filter-tag-outline-color)}.praxis-filter-bar.has-compact.tag-color-accent{--pfx-filter-tag-color: var(--md-sys-color-tertiary-container, var(--md-sys-color-secondary-container));--pfx-filter-tag-on-color: var(--md-sys-color-on-tertiary-container, var(--md-sys-color-on-secondary-container));--pfx-filter-tag-outline-color: var(--md-sys-color-tertiary, var(--md-sys-color-secondary))}.praxis-filter-bar.has-compact.tag-color-warn{--pfx-filter-tag-color: var(--md-sys-color-error-container);--pfx-filter-tag-on-color: var(--md-sys-color-on-error-container);--pfx-filter-tag-outline-color: var(--md-sys-color-error)}.praxis-filter-bar.has-compact.tag-color-basic{--pfx-filter-tag-color: color-mix(in srgb, var(--md-sys-color-on-surface) 10%, transparent);--pfx-filter-tag-on-color: var(--md-sys-color-on-surface);--pfx-filter-tag-outline-color: var(--md-sys-color-outline-variant)}:host ::ng-deep .praxis-filter-bar.has-compact{--pfx-filter-inline-chip-padding-x: var(--pdx-inline-control-padding-x);--pfx-filter-inline-icon-gap: 4px}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-inline:var(--pfx-filter-inline-chip-padding-x)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-prefix{align-items:center;display:inline-flex;flex:0 0 auto;margin-right:var(--pfx-filter-inline-icon-gap)!important;padding:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-suffix{align-items:center;display:inline-flex;flex:0 0 auto;gap:var(--pfx-filter-inline-icon-gap)!important;margin-left:var(--pfx-filter-inline-icon-gap)!important;padding:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-prefix>.mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-suffix>.mat-icon{flex:0 0 16px!important;font-size:16px!important;height:16px!important;line-height:16px!important;margin:0!important;padding:0!important;width:16px!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-infix{padding-inline:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select) .pdx-chip-trigger{gap:var(--pfx-filter-inline-icon-gap)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-currency-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-searchable-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-async-select.pdx-has-selection .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-value .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-both .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-entity-lookup.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-multi-select.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-distance-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-score-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-relative-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-relative-period-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-rating-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-pipeline-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-sentiment-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-color-label-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-time-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active{--pdx-inline-currency-symbol-color: var(--pfx-filter-tag-on-color);background:var(--pfx-filter-tag-color)!important;border-color:transparent!important;color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-currency-range-chip.is-active :where(.mat-icon,.pdx-inline-currency-range-value,.pdx-inline-currency-range-text,.pdx-inline-currency-range-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear) :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear,.pdx-inline-number-suffix),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-select,.pdx-inline-searchable-select) .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active) :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-async-select.pdx-has-selection :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-value :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-both :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-entity-lookup.pdx-has-selection,.pdx-inline-multi-select.pdx-has-selection) .pdx-chip-trigger :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active) :where(.mat-icon,button,span),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-time-range-chip.is-active :where(.pdx-inline-time-range-icon,.pdx-inline-time-range-text,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active :where(.pdx-inline-toggle-label,.mat-icon){color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-currency-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-searchable-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-async-select.pdx-has-selection .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-value .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-both .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-entity-lookup.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-multi-select.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-distance-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-score-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-relative-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-relative-period-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-rating-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-pipeline-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-sentiment-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-color-label-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-time-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active{--pdx-inline-currency-symbol-color: var(--pfx-filter-tag-outline-color);background:transparent!important;border-color:var(--pfx-filter-tag-outline-color)!important;box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-outline-color);color:var(--pfx-filter-tag-outline-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-currency-range-chip.is-active :where(.mat-icon,.pdx-inline-currency-range-value,.pdx-inline-currency-range-text,.pdx-inline-currency-range-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear) :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear,.pdx-inline-number-suffix),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-select,.pdx-inline-searchable-select) .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active) :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-async-select.pdx-has-selection :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-value :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-both :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-entity-lookup.pdx-has-selection,.pdx-inline-multi-select.pdx-has-selection) .pdx-chip-trigger :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active) :where(.mat-icon,button,span),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-time-range-chip.is-active :where(.pdx-inline-time-range-icon,.pdx-inline-time-range-text,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active :where(.pdx-inline-toggle-label,.mat-icon){color:var(--pfx-filter-tag-outline-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear){background:color-mix(in srgb,currentColor 16%,transparent)!important;border-radius:50%!important;color:inherit!important;display:inline-grid!important;flex:0 0 var(--pdx-inline-clear-size, 22px)!important;height:var(--pdx-inline-clear-size, 22px)!important;min-width:var(--pdx-inline-clear-size, 22px)!important;place-items:center!important;width:var(--pdx-inline-clear-size, 22px)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear):hover{background:color-mix(in srgb,currentColor 24%,transparent)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear) .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper:has(.pdx-inline-clear) .pdx-inline-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper:has(.pdx-inline-clear) .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active .pdx-inline-toggle-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active .pdx-inline-toggle-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active .pdx-chip-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active .pdx-chip-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}.praxis-filter-tags.outlined .mat-mdc-chip{background:transparent!important;--mat-chip-outline-width: 1px;--mat-chip-outline-color: var(--md-sys-color-outline-variant);box-shadow:inset 0 0 0 var(--mat-chip-outline-width) var(--mat-chip-outline-color)}.praxis-filter-tags.outlined.tag-color-primary .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-primary)}.praxis-filter-tags.outlined.tag-color-accent .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-tertiary)}.praxis-filter-tags.outlined.tag-color-warn .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-error)}.praxis-filter-tags.outlined mat-chip.active .mat-mdc-chip,.praxis-filter-tags.outlined .mat-mdc-chip.mat-mdc-chip-highlighted{--mat-chip-outline-width: 2px;box-shadow:inset 0 0 0 var(--mat-chip-outline-width) var(--mat-chip-outline-color)!important}.praxis-filter-tags.outlined.tag-color-basic mat-chip.active .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-primary)}.praxis-filter-tags .mat-mdc-standard-chip .mdc-evolution-chip__text-label{display:flex;align-items:center;justify-content:center;gap:4px;line-height:1.2;font-size:.875rem}.praxis-filter-tags .chip-leading,.praxis-filter-tags .chip-trailing{display:inline-flex;align-items:center}.praxis-filter-tags .leading-check{width:18px;height:18px;font-size:18px;line-height:1}.praxis-filter-tags .chip-label{position:relative;top:-6px}.praxis-filter-tags .chip-trailing .mat-mdc-icon-button{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;line-height:28px}.praxis-filter-tags .mat-mdc-standard-chip{--mat-chip-container-height: 36px}.praxis-filter-advanced{display:flex;flex-direction:column;min-width:400px;max-width:90vw;min-height:260px;max-height:min(80vh,720px);margin:var(--pfx-overlay-margin-y) var(--pfx-overlay-margin-x);background-color:var(--pfx-overlay-surface)!important;background:var(--pfx-overlay-surface)!important;color:var(--pfx-overlay-on-surface);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--md-sys-elevation-level3)}.advanced-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px var(--pfx-advanced-pad-x) 10px;border-bottom:1px solid var(--border-color);background:var(--pfx-overlay-surface)}.advanced-title-block{display:flex;flex-direction:column;gap:2px}.advanced-title{font-size:1rem;font-weight:600;color:var(--pfx-overlay-on-surface)}.advanced-subtitle{font-size:.85rem;color:var(--pfx-overlay-on-surface-variant)}.advanced-close{align-self:flex-start}.praxis-filter-overlay.mobile .praxis-filter-advanced{height:100vh;max-height:100vh;margin:0;border-radius:0}:host ::ng-deep .praxis-overlay-backdrop{background:var(--md-sys-color-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}:host ::ng-deep .praxis-filter-overlay.frosted .praxis-filter-advanced{background:var(--pfx-overlay-surface-variant)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:var(--border-color)}:host ::ng-deep .praxis-filter-overlay.frosted .advanced-header,:host ::ng-deep .praxis-filter-overlay.frosted .advanced-actions{background:var(--pfx-overlay-surface-variant)!important}.advanced-body{padding:12px var(--pfx-advanced-pad-x) 72px;overflow:auto;flex:1 1 auto;overscroll-behavior:contain}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-row{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(var(--pfx-field-min),1fr));gap:var(--pfx-gap-y) var(--pfx-gap-x)}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-column{min-width:0}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-column .mat-mdc-form-field{width:100%}.advanced-actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:8px;padding:var(--pfx-gap-y) var(--pfx-advanced-pad-x);background-color:var(--pfx-overlay-surface)!important;background:var(--pfx-overlay-surface)!important;border-top:1px solid var(--border-color);box-shadow:0 -1px 0 var(--md-sys-color-outline-variant)}.advanced-actions .mat-mdc-button-base{height:40px}.advanced-actions .mat-mdc-raised-button.mat-primary{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}:host ::ng-deep .praxis-filter-advanced .mat-mdc-text-field-wrapper.mdc-text-field--outlined{--mdc-outlined-text-field-outline-color: var(--border-color);--mdc-outlined-text-field-hover-outline-color: var(--border-color-hover);--mdc-outlined-text-field-focus-outline-color: var(--md-sys-color-primary);--mdc-outlined-text-field-label-text-color: var(--pfx-overlay-on-surface-variant);--mdc-outlined-text-field-input-text-color: var(--pfx-overlay-on-surface);--mdc-outlined-text-field-container-color: var(--pfx-overlay-surface)}:host ::ng-deep .praxis-filter-advanced .mat-mdc-select-trigger,:host ::ng-deep .praxis-filter-advanced .mat-mdc-form-field-subscript-wrapper,:host ::ng-deep .praxis-filter-advanced .mat-mdc-form-field-infix{color:var(--pfx-overlay-on-surface)}@media(min-width:600px){.fields-grid{gap:6px 8px}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.praxis-filter-bar.has-compact{grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:start;justify-items:stretch;width:100%}.praxis-filter-bar.has-compact .inline-actions{grid-column:1;grid-row:2;justify-self:start;width:100%;height:auto}.praxis-filter-bar.has-compact .inline-actions .action-cluster{max-width:100%}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>.pfx-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>praxis-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-host{--pfx-field-shell-width: auto;--pfx-field-shell-field-width: auto;width:100%!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .mat-mdc-form-field,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-currency-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-distance-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-score-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-relative-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-relative-period-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-rating-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-pipeline-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-sentiment-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-color-label-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-time-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-toggle-pill{width:100%!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :where(.pdx-chip-label,.pdx-chip-trigger,.pdx-inline-range-text,.pdx-inline-currency-range-text,.pdx-inline-distance-text,.pdx-inline-score-text,.pdx-inline-relative-text,.pdx-inline-relative-period-text,.pdx-inline-rating-text,.pdx-inline-pipeline-text,.pdx-inline-sentiment-text,.pdx-inline-color-label-text,.pdx-inline-time-range-text,.pdx-inline-toggle-label){min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime],:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .pfx-field-shell-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .pfx-field-shell-host{--pfx-field-shell-width: fit-content;--pfx-field-shell-field-width: var(--pdx-inline-time-field-w, auto);justify-self:start;width:fit-content!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{width:var(--pdx-inline-time-field-w, auto)!important;inline-size:var(--pdx-inline-time-field-w, auto)!important;max-width:min(var(--pdx-inline-time-max-w, 280px),100vw - 48px)!important}}@media(min-width:960px){.fields-grid{gap:6px 10px}}@media(min-width:1200px){.fields-grid{grid-template-columns:repeat(auto-fit,minmax(var(--pfx-always-min, 220px),var(--pfx-always-max-desktop, 380px)));justify-content:start;align-content:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeslider]{grid-column:span var(--pfx-slider-span-desktop, 2)}}.inline-toggles{display:flex;align-items:center;gap:8px;margin:0 4px 0 6px}:host ::ng-deep .inline-actions .mat-mdc-slide-toggle{height:var(--pfx-filter-h);display:flex;align-items:center}:host ::ng-deep .inline-actions .mat-mdc-slide-toggle .mdc-form-field{align-items:center}::ng-deep .praxis-filter-overlay .praxis-filter-advanced .praxis-filter-form .filter-row{display:grid!important;gap:var(--pfx-gap-y, 1px) var(--pfx-gap-x, 6px)}@media(min-width:600px){::ng-deep .praxis-filter-overlay .praxis-filter-advanced .praxis-filter-form .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}.hidden-submit{position:absolute!important;width:0!important;height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;overflow:hidden!important}:host ::ng-deep .inline-actions [matBadge] .mat-badge-content{top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:10px;font-weight:700;line-height:16px;letter-spacing:0;text-indent:0;color:var(--md-sys-color-on-primary, #fff)}:host ::ng-deep .inline-actions [matBadge][matbadgecolor=warn] .mat-badge-content,:host ::ng-deep .inline-actions [matBadge].mat-badge-warn .mat-badge-content{color:var(--md-sys-color-on-error, #fff)}.praxis-filter-bar :where(.mat-mdc-slide-toggle .mdc-switch__icons){display:none!important}.praxis-filter-bar{--mdc-switch-unselected-icon-size: 0px;--mdc-switch-selected-icon-size: 0px;--pfx-always-min: 220px}.praxis-filter-card{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-radius:12px;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface)}:host ::ng-deep .praxis-add-select-panel{width:min(340px,100vw - 24px)!important;min-width:min(280px,100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:min(56vh,420px);margin-top:8px;padding:6px 0;border-radius:14px;overflow:auto;background:var(--md-sys-color-surface-container-highest);border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));box-shadow:var(--md-sys-elevation-level3)}:host ::ng-deep .cdk-overlay-pane:has(.praxis-add-select-panel){width:auto!important;min-width:0!important;max-width:calc(100vw - 24px)!important}:host ::ng-deep .praxis-add-select-panel .mat-mdc-option{min-height:36px}:host ::ng-deep .praxis-add-select-panel .add-empty{color:var(--md-sys-color-on-surface-variant);min-height:44px}:host ::ng-deep .praxis-add-select-panel .add-search{position:sticky;top:0;height:auto;min-height:64px;overflow:visible;background:var(--md-sys-color-surface-container-highest);z-index:1;padding:8px 8px 6px;cursor:default}:host ::ng-deep .praxis-add-select-panel .add-search .mdc-list-item__primary-text{width:100%;overflow:visible}:host ::ng-deep .praxis-add-select-panel .add-search .mat-mdc-form-field{width:100%}:host ::ng-deep .praxis-add-select-panel .add-search .mat-mdc-text-field-wrapper{min-height:56px}:host ::ng-deep .praxis-add-select-panel .add-search .mat-mdc-form-field-subscript-wrapper{display:none}.inline-actions .add-trigger{display:inline-flex;align-items:center;gap:6px;height:32px;width:100%;max-width:100%;min-width:0;padding:0 10px;border-radius:0;border:0;background:transparent;overflow:visible}.inline-actions .add-trigger--icon{justify-content:center;width:32px;min-width:32px;padding:0}:host ::ng-deep .inline-actions .add-trigger mat-icon{width:18px;height:18px;font-size:18px;flex:0 0 auto}.inline-actions .add-trigger-label{display:inline-block;flex:1 1 auto;min-width:0;max-width:100%;text-align:left;direction:ltr;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;line-height:1}:host ::ng-deep .action-cluster--manage .mat-mdc-select{flex:0 0 auto;width:180px;min-width:0;max-width:180px}:host ::ng-deep .action-cluster--manage .cluster-select--hidden.mat-mdc-select{position:absolute;width:1px;min-width:1px;max-width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}:host ::ng-deep .action-cluster--manage .mat-mdc-select-trigger{min-height:32px;padding:0}:host ::ng-deep .action-cluster--manage .mat-mdc-select-value,:host ::ng-deep .action-cluster--manage .mat-mdc-select-value-text,:host ::ng-deep .action-cluster--manage .mat-mdc-select-min-line{width:auto;min-width:0;max-width:100%;display:inline-flex;align-items:center;justify-content:flex-start;overflow:visible}.praxis-filter-card .summary-header{display:flex;align-items:center;gap:10px}.praxis-filter-card .summary-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.praxis-filter-card .summary-title{font-weight:600}.praxis-filter-card .summary-subtitle{opacity:.8;font-size:.875rem}.praxis-filter-card .summary-badges{display:flex;flex-wrap:wrap;gap:6px}.praxis-filter-card .summary-badges span{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--md-sys-color-primary-container);border:1px solid var(--md-sys-color-outline-variant);color:var(--md-sys-color-on-primary-container);font-size:12px}.praxis-filter-card .card-actions{display:flex;gap:8px}:host ::ng-deep .inline-actions .mat-mdc-select-arrow-wrapper{display:none}.inline-actions .add-filter-btn{height:36px;border-radius:18px;padding:0 16px 0 12px}.inline-actions .add-filter-btn mat-icon{margin-right:8px;margin-left:-4px}:host ::ng-deep .praxis-add-select-panel .add-select-all.partial .select-all-partial{opacity:.7;font-style:italic}\n"] }]
|
|
38636
|
+
}, template: "@if (saving) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n}\n@if (schemaError) {\n <div class=\"schema-error-banner\" role=\"alert\" aria-live=\"polite\">\n <mat-icon [praxisIcon]=\"'error_outline'\" aria-hidden=\"true\"></mat-icon>\n <span class=\"schema-error-message\">{{ i18nLabels.errorLoadingFilters || 'Erro ao carregar filtros.' }}</span>\n <button\n mat-stroked-button\n class=\"schema-error-retry\"\n type=\"button\"\n (click)=\"retrySchemaLoad()\"\n [attr.aria-label]=\"i18nLabels.retry || 'Tentar novamente'\"\n >\n {{ i18nLabels.retry || 'Tentar novamente' }}\n </button>\n </div>\n}\n\n<form class=\"praxis-filter-bar\" [class.is-open]=\"advancedOpen\"\n [class.has-compact]=\"compactSelectedMetas.length || compactAlwaysVisibleMetas.length\"\n [class.tag-variant-filled]=\"tagVariant === 'filled'\"\n [class.tag-variant-outlined]=\"tagVariant === 'outlined'\"\n [class.tag-color-basic]=\"tagColor === 'basic'\"\n [class.tag-color-primary]=\"tagColor === 'primary'\"\n [class.tag-color-accent]=\"tagColor === 'accent'\"\n [class.tag-color-warn]=\"tagColor === 'warn'\"\n (click)=\"onFieldInteraction($event)\"\n (focusin)=\"onFieldInteraction($event)\"\n (change)=\"$event.stopPropagation()\"\n (submit)=\"onSubmit(); $event.preventDefault(); $event.stopPropagation()\">\n <div class=\"inline-actions\" [class.actions-outlined]=\"actionsVariant==='outlined'\">\n <div class=\"actions-anchor\" #anchorRef=\"cdkOverlayOrigin\" cdkOverlayOrigin></div>\n @if (toggleMetas.length) {\n <div class=\"inline-toggles\">\n <ng-container dynamicFieldLoader [fields]=\"toggleMetas\" [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onToggleComponents($event)\"></ng-container>\n </div>\n }\n\n @if (showAdvancedButton || showAddButton || showFilterSettings || isFieldAuthoringEnabled()) {\n <div class=\"action-cluster action-cluster--manage\">\n @if (showAdvancedButton) {\n <button #advancedButton mat-icon-button class=\"cluster-btn\"\n [class.is-opening]=\"advancedOpening\" [class.is-disabled]=\"!hasAdvancedFields()\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\" type=\"button\"\n [matBadge]=\"activeFiltersCount\" [matBadgeHidden]=\"!activeFiltersCount || !hasAdvancedFields()\" matBadgeSize=\"small\"\n matBadgeColor=\"primary\" [matBadgeOverlap]=\"false\" (click)=\"toggleAdvanced()\"\n [attr.aria-label]=\"getAdvancedAriaLabel()\" [attr.aria-expanded]=\"advancedOpen\"\n [attr.aria-disabled]=\"!hasAdvancedFields()\"\n [attr.aria-busy]=\"advancedOpening ? 'true' : null\"\n [matTooltip]=\"getAdvancedTooltip()\"\n matTooltipPosition=\"below\"\n [attr.aria-controls]=\"advancedPanelId\">\n @if (advancedOpening) {\n <mat-progress-spinner\n class=\"cluster-btn-spinner\"\n mode=\"indeterminate\"\n diameter=\"18\"\n strokeWidth=\"3\"\n aria-hidden=\"true\"\n ></mat-progress-spinner>\n } @else {\n <mat-icon [praxisIcon]=\"'filter_list'\"></mat-icon>\n }\n </button>\n }\n @if (showAddButton) {\n <button #addManagerOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin mat-icon-button class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\" [attr.aria-label]=\"getAddAriaLabel()\" [matTooltip]=\"getAddTooltip()\"\n matTooltipPosition=\"below\" [class.is-disabled]=\"!hasAddableFields()\"\n [attr.aria-disabled]=\"!hasAddableFields()\" [attr.aria-expanded]=\"addManagerOpen\"\n aria-haspopup=\"dialog\" [attr.aria-controls]=\"addManagerOpen ? addManagerTitleId : null\"\n (click)=\"toggleAddManager()\">\n <mat-icon [praxisIcon]=\"'add'\"></mat-icon>\n </button>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"addManagerOrigin\"\n [cdkConnectedOverlayOpen]=\"addManagerOpen\" [cdkConnectedOverlayPositions]=\"addOverlayPositions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\" cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAddManager()\" (detach)=\"closeAddManager()\"\n (overlayKeydown)=\"$event.key === 'Escape' && closeAddManager()\">\n <section class=\"add-manager\" role=\"dialog\" [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"addManagerTitleId\" [attr.aria-describedby]=\"addManagerDescriptionId\"\n cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <header class=\"add-manager__header\">\n <div>\n <h2 [id]=\"addManagerTitleId\">{{ i18nLabels.manageFieldsTitle || 'Gerenciar campos de filtro' }}</h2>\n <p [id]=\"addManagerDescriptionId\">{{ i18nLabels.manageFieldsDescription || 'Escolha os campos exibidos na barra de filtros.' }}</p>\n </div>\n <button mat-icon-button type=\"button\" (click)=\"closeAddManager()\"\n [attr.aria-label]=\"i18nLabels.close || 'Fechar'\">\n <mat-icon [praxisIcon]=\"'close'\" aria-hidden=\"true\"></mat-icon>\n </button>\n </header>\n <div class=\"add-manager__search\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>{{ i18nLabels.filtersSearch || i18nLabels.searchPlaceholder }}</mat-label>\n <mat-icon matPrefix [praxisIcon]=\"'search'\" aria-hidden=\"true\"></mat-icon>\n <input #addSearchInput matInput cdkFocusInitial [value]=\"addQuery\"\n (input)=\"onAddQuery(($any($event.target)).value)\" />\n @if (addQuery) {\n <button matSuffix mat-icon-button type=\"button\" (click)=\"onAddQuery(''); addSearchInput.focus()\"\n [attr.aria-label]=\"i18nLabels.clearSearch || 'Limpar busca'\">\n <mat-icon [praxisIcon]=\"'close'\" aria-hidden=\"true\"></mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <div class=\"add-manager__summary\" aria-live=\"polite\">\n {{ addDraftSelectedFieldIds.length }} {{ i18nLabels.selectedFieldsSuffix || 'campos exibidos' }}\n </div>\n <div class=\"add-manager__bulk\">\n <mat-checkbox [checked]=\"isAllSelected()\" [indeterminate]=\"isSomeSelected() && !isAllSelected()\"\n [disabled]=\"!addItems.length || addManagerConflict\"\n (change)=\"toggleSelectAll()\">\n {{ i18nLabels.selectAllResults || i18nLabels.selectAll || 'Selecionar todos os resultados' }}\n </mat-checkbox>\n </div>\n <div class=\"add-manager__list\" role=\"group\" [attr.aria-label]=\"i18nLabels.manageFieldsTitle || 'Gerenciar campos de filtro'\">\n @for (it of addItems; track trackById($index, it)) {\n <mat-checkbox class=\"add-manager__item\" [checked]=\"addDraftSelectedFieldIds.includes(it.id)\"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\">{{ it.label }}</mat-checkbox>\n }\n @if (!addItems.length) {\n <div class=\"add-manager__empty\" role=\"status\">\n <mat-icon [praxisIcon]=\"'search_off'\" aria-hidden=\"true\"></mat-icon>\n <span>{{ addQuery ? (i18nLabels.noFilterFieldsFound || 'Nenhum campo encontrado.') : (i18nLabels.addUnavailable || 'Todos os campos j\u00E1 est\u00E3o vis\u00EDveis') }}</span>\n </div>\n }\n </div>\n @if (addManagerConflict) {\n <div class=\"add-manager__notice add-manager__notice--conflict\" role=\"alert\">\n <mat-icon [praxisIcon]=\"'sync_problem'\" aria-hidden=\"true\"></mat-icon>\n <span>{{ i18nLabels.fieldSelectionConflict }}</span>\n </div>\n } @else if (getRemovedActiveFieldLabels().length) {\n <div class=\"add-manager__notice add-manager__notice--warning\" role=\"status\">\n <mat-icon [praxisIcon]=\"'warning_amber'\" aria-hidden=\"true\"></mat-icon>\n <span>{{ i18nLabels.removingActiveFields }} {{ getRemovedActiveFieldLabels().join(', ') }}</span>\n </div>\n }\n <footer class=\"add-manager__footer\">\n <button mat-button type=\"button\" (click)=\"closeAddManager()\">{{ i18nLabels.cancel }}</button>\n <button mat-flat-button color=\"primary\" type=\"button\"\n [disabled]=\"!isAddManagerDirty() || addManagerConflict\"\n (click)=\"applyAddManager()\">\n {{ i18nLabels.apply }}\n @if (isAddManagerDirty()) { ({{ getAddManagerChangeCount() }}) }\n </button>\n </footer>\n </section>\n </ng-template>\n }\n @if (showFilterSettings) {\n <button mat-icon-button class=\"cluster-btn separator-before\" [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\" (click)=\"openSettings()\" [matBadge]=\"schemaOutdated ? '!' : ''\"\n [matBadgeHidden]=\"!schemaOutdated\" matBadgeColor=\"warn\" matBadgeSize=\"small\" matBadgePosition=\"above after\"\n [matTooltip]=\"getSettingsTooltip()\"\n matTooltipPosition=\"below\" [attr.aria-label]=\"getSettingsAriaLabel()\">\n <mat-icon [praxisIcon]=\"'settings'\"></mat-icon>\n </button>\n }\n @if (isFieldAuthoringEnabled() && activeEditableFieldMeta) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\"\n data-testid=\"filter-field-settings-trigger\"\n [attr.aria-label]=\"activeEditableFieldLabel\"\n (click)=\"openSelectedFieldEditor()\"\n >\n <mat-icon [praxisIcon]=\"'tune'\"></mat-icon>\n </button>\n }\n </div>\n }\n\n @if ((showClearButton && activeFiltersCount > 0) || showSearchButton) {\n <div class=\"action-cluster action-cluster--query\">\n @if (showClearButton && activeFiltersCount > 0) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"button\"\n data-testid=\"filter-clear-trigger\"\n (click)=\"onClear()\"\n [attr.aria-label]=\"i18nLabels.clear\"\n [matTooltip]=\"i18nLabels.clear\"\n matTooltipPosition=\"below\"\n >\n <mat-icon [praxisIcon]=\"'filter_alt_off'\"></mat-icon>\n </button>\n }\n @if (showSearchButton) {\n <button\n mat-icon-button\n class=\"cluster-btn\"\n [color]=\"actionsButtonColor==='basic'? null : actionsButtonColor\"\n type=\"submit\"\n [attr.aria-label]=\"i18nLabels.apply\"\n [matTooltip]=\"i18nLabels.apply\"\n matTooltipPosition=\"below\"\n >\n <mat-icon [praxisIcon]=\"'search'\"></mat-icon>\n </button>\n }\n </div>\n }\n\n <span class=\"sr-only\" aria-live=\"polite\">{{ advancedOpening ? (i18nLabels.advancedOpening || 'Abrindo filtro avan\u00E7ado...') : getAddAriaLabel() }}</span>\n</div>\n\n@if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <div class=\"compact-fields\">\n @if (compactSelectedMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"compactSelectedMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onSelectedComponents($event)\"></ng-container>\n }\n @if (compactAlwaysVisibleMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"compactAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onAlwaysComponents($event)\"></ng-container>\n }\n </div>\n}\n\n@if (gridSelectedMetas.length || gridAlwaysVisibleMetas.length) {\n <div class=\"fields-grid\">\n @if (gridSelectedMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"gridSelectedMetas\" [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"></ng-container>\n }\n @if (gridAlwaysVisibleMetas.length) {\n <ng-container dynamicFieldLoader [fields]=\"gridAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\" (componentsCreated)=\"onAlwaysComponents($event)\"></ng-container>\n }\n </div>\n}\n\n<span class=\"sr-only\" aria-live=\"polite\">\n {{ activeFiltersCount ? (activeFiltersCount + ' filtros ativos') : '' }}\n</span>\n<button type=\"submit\" class=\"hidden-submit\" aria-hidden=\"true\" tabindex=\"-1\"></button>\n</form>\n\n@if (displayedTags.length) {\n <div\n class=\"praxis-filter-tags\"\n [class.outlined]=\"tagVariant==='outlined'\"\n [class.tag-color-basic]=\"tagColor === 'basic'\"\n [class.tag-color-primary]=\"tagColor === 'primary'\"\n [class.tag-color-accent]=\"tagColor === 'accent'\"\n [class.tag-color-warn]=\"tagColor === 'warn'\"\n >\n <mat-chip-set [attr.aria-label]=\"i18nLabels.shortcutsLabel || 'Atalhos'\">\n @for (tag of displayedTags; track trackById($index, tag)) {\n <mat-chip [class.active]=\"isActiveTag(tag)\"\n [color]=\"tagVariant === 'outlined' || tagColor === 'basic' ? null : tagColor\"\n [highlighted]=\"tagVariant === 'filled' && tagColor !== 'basic'\" (click)=\"applyTag(tag)\"\n (keydown.enter)=\"applyTag(tag)\" (keydown.space)=\"applyTag(tag)\" tabindex=\"0\" role=\"button\"\n [attr.aria-pressed]=\"isActiveTag(tag)\">\n @if (editingTagId !== tag.id) {\n @if (isActiveTag(tag)) {\n <span class=\"chip-leading\">\n <mat-icon class=\"leading-check\">check</mat-icon>\n </span>\n }\n <span class=\"chip-label\">{{ tag.label }}</span>\n @if (isUserTag(tag)) {\n <span class=\"chip-trailing\">\n <button mat-icon-button [color]=\"tagButtonColor === 'basic' ? null : tagButtonColor\"\n [matMenuTriggerFor]=\"tagMenu\" (click)=\"$event.stopPropagation()\" [attr.aria-label]=\"getTagActionsAriaLabel(tag)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #tagMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"startEditTag(tag, $event)\">\n <mat-icon>edit</mat-icon>\n <span>{{ i18nLabels.renameShortcut }}</span>\n </button>\n <button mat-menu-item (click)=\"deleteTag(tag)\">\n <mat-icon>delete</mat-icon>\n <span>{{ i18nLabels.removeShortcut }}</span>\n </button>\n </mat-menu>\n </span>\n } @else {\n <span class=\"chip-readonly\" [matTooltip]=\"i18nLabels.readonlyShortcut\">\n <mat-icon>lock</mat-icon>\n </span>\n }\n } @else {\n <input matInput class=\"chip-editor\" [formControl]=\"editingTagLabel\" autofocus\n [matTooltip]=\"'Enter para salvar, Esc para cancelar'\" matTooltipPosition=\"below\"\n (keydown.enter)=\"commitEditTag(tag, $event)\" (keydown.escape)=\"cancelEditTag($event)\"\n (blur)=\"commitEditTag(tag, $event)\" (click)=\"$event.stopPropagation()\" />\n }\n </mat-chip>\n }\n </mat-chip-set>\n </div>\n}\n", styles: ["@charset \"UTF-8\";:root{--pfx-filter-h: 42px;--pfx-filter-align-offset: 2px;--pfx-gap-x: 12px;--pfx-gap-y: 8px;--pfx-always-max-desktop: 380px;--pfx-slider-span-desktop: 2;--pfx-advanced-pad-x: 24px;--pfx-field-min: 280px;--pfx-overlay-margin-y: 16px;--pfx-overlay-margin-x: 16px}:host-context(.theme-light){--pfx-surface-border: var(--md-sys-color-outline)}:host{--border-color: var(--md-sys-color-outline-variant);--border-color-hover: var(--md-sys-color-outline);--pfx-overlay-surface: var(--md-sys-color-surface-container);--pfx-overlay-surface-elev: var(--md-sys-color-surface-container-high);--pfx-overlay-surface-variant: var(--md-sys-color-surface-variant);--pfx-overlay-on-surface: var(--md-sys-color-on-surface);--pfx-overlay-on-surface-variant: var(--md-sys-color-on-surface-variant);display:block;width:100%;min-width:0;flex:1 1 auto}.schema-error-banner{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,var(--md-sys-color-error) 50%,transparent);background:color-mix(in srgb,var(--md-sys-color-error-container) 85%,transparent);color:var(--md-sys-color-on-error-container)}.schema-error-message{min-width:0;flex:1 1 auto;font-size:.8125rem}:host ::ng-deep .schema-error-retry.mat-mdc-outlined-button{--mdc-outlined-button-outline-color: color-mix( in srgb, var(--md-sys-color-error) 55%, var(--md-sys-color-outline) )}.praxis-filter-bar{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;column-gap:6px;row-gap:6px;align-items:center}.inline-actions .actions-anchor{width:0;height:0;overflow:hidden}.inline-actions{grid-column:2;grid-row:1;flex:0 0 auto;display:flex;gap:6px;justify-self:end;align-self:center;width:fit-content;white-space:nowrap;height:var(--pfx-filter-h);align-items:center;padding:0 2px}.action-cluster{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;min-height:36px;padding:2px;border-radius:999px;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-highest)}.action-cluster--manage{position:relative;border-color:color-mix(in srgb,var(--md-sys-color-primary) 35%,var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-high)}:host ::ng-deep .action-cluster .mat-mdc-icon-button,:host ::ng-deep .action-cluster .cluster-btn.mat-mdc-icon-button{width:32px;height:32px;padding:0;display:inline-grid;place-items:center;--mat-icon-button-state-layer-size: 32px}.action-cluster .cluster-btn.is-opening{pointer-events:none}.action-cluster .cluster-btn.is-disabled{color:color-mix(in srgb,var(--md-sys-color-on-surface) 38%,transparent);cursor:default;opacity:.56}.action-cluster .cluster-btn-spinner{width:18px!important;height:18px!important;display:block;grid-area:1/1;--mdc-circular-progress-active-indicator-color: currentColor}.inline-actions.actions-outlined button.mat-mdc-icon-button{border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:50%}.inline-actions.actions-outlined .action-cluster button.mat-mdc-icon-button{border-color:transparent}.separator-before{position:relative;margin-left:10px}.separator-before:before{content:\"\";position:absolute;left:-7px;top:50%;width:1px;height:18px;transform:translateY(-50%);background:color-mix(in srgb,var(--md-sys-color-outline) 72%,transparent)}.inline-actions mat-icon{width:20px;height:20px;font-size:20px}.fields-grid{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--pfx-always-min, 220px),1fr));grid-auto-flow:row dense;gap:6px}.compact-fields{grid-column:1;grid-row:1;display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:center;align-items:center;gap:6px;min-width:0;min-height:var(--pfx-filter-h)}:host ::ng-deep .compact-fields .pfx-field-shell,:host ::ng-deep .compact-fields .pfx-field-shell-wrapper,:host ::ng-deep .compact-fields .pfx-field-shell-host{--pfx-field-shell-width: fit-content;--pfx-field-shell-field-width: auto;width:fit-content!important;max-width:100%;min-width:0;flex:0 1 auto!important}:host ::ng-deep .compact-fields>.pfx-field-shell,:host ::ng-deep .compact-fields>praxis-field-shell{flex:0 1 auto!important;width:fit-content!important;max-width:100%;min-width:0}:host ::ng-deep .compact-fields .pfx-field-shell .mat-mdc-form-field{width:auto!important;max-width:100%;margin-bottom:0}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{width:var(--pdx-inline-time-field-w, auto)!important;inline-size:var(--pdx-inline-time-field-w, auto)!important;max-width:min(var(--pdx-inline-time-max-w, 280px),100vw - 48px)!important}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineDateRange] .mat-mdc-form-field{width:var(--pdx-inline-date-range-shell-width, auto)!important;max-width:100%!important}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1}.praxis-filter-bar.has-compact .fields-grid{grid-column:1/-1;grid-row:2}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider] mat-slider,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] mat-slider,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] mat-slider{width:100%;display:block}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider] .pdx-slider-wrapper,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-slider-wrapper,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-slider-wrapper{padding-top:2px}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-range-slider-container,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-range-slider-container{padding:2px 0 0}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider] .pdx-slider-label,:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider] .pdx-slider-label{margin-bottom:4px;line-height:1.15}:host ::ng-deep .fields-grid .mat-mdc-text-field-wrapper.mdc-text-field--outlined{min-height:var(--pfx-filter-h);align-items:center}:host ::ng-deep .fields-grid .mat-mdc-form-field-infix{min-height:var(--pfx-filter-h)}:host ::ng-deep .fields-grid .mat-mdc-select-trigger{height:var(--pfx-filter-h);align-items:center}:host ::ng-deep .fields-grid .mat-mdc-form-field{width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSearchableSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineSearchableSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineMultiSelect]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineMultiSelect] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineInput]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineInput] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlinePhone]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlinePhone] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineToggle]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineToggle] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineRange]{justify-self:start}:host ::ng-deep .compact-fields .pfx-field-shell[data-control-type=inlineRange]{max-width:min(340px,100%)}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDate]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDate] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDateRange]{justify-self:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=inlineDateRange] .mat-mdc-form-field{width:auto;min-width:0;max-width:100%}:host ::ng-deep .fields-grid .mat-mdc-form-field-subscript-wrapper{min-height:0;margin-top:0}:host ::ng-deep .fields-grid .mat-mdc-form-field{margin-bottom:0}.praxis-filter-bar.has-compact{--pfx-filter-tag-color: var(--md-sys-color-primary-container);--pfx-filter-tag-on-color: var(--md-sys-color-on-primary-container);--pfx-filter-tag-outline-color: var(--md-sys-color-primary);--pdx-inline-control-height: var(--pfx-filter-inline-control-height, 42px);--pdx-inline-control-height-mobile: var(--pfx-filter-inline-control-height-mobile, 40px);--pdx-inline-control-padding-x: var(--pfx-filter-inline-control-padding-x, 12px);--pdx-inline-control-padding-x-mobile: var(--pfx-filter-inline-control-padding-x-mobile, 12px);--pdx-inline-clear-size: var(--pfx-filter-inline-clear-size, 22px);--pdx-inline-chip-radius: var(--pfx-filter-inline-chip-radius, var(--md-sys-shape-corner-full, 999px));--pdx-inline-chip-active-bg: var(--pfx-filter-tag-color);--pdx-inline-chip-active-fg: var(--pfx-filter-tag-on-color);--pdx-inline-chip-active-clear-color: var(--pfx-filter-tag-on-color);--pdx-inline-field-focus-outline: var(--pfx-filter-tag-outline-color)}.praxis-filter-bar.has-compact.tag-color-accent{--pfx-filter-tag-color: var(--md-sys-color-tertiary-container, var(--md-sys-color-secondary-container));--pfx-filter-tag-on-color: var(--md-sys-color-on-tertiary-container, var(--md-sys-color-on-secondary-container));--pfx-filter-tag-outline-color: var(--md-sys-color-tertiary, var(--md-sys-color-secondary))}.praxis-filter-bar.has-compact.tag-color-warn{--pfx-filter-tag-color: var(--md-sys-color-error-container);--pfx-filter-tag-on-color: var(--md-sys-color-on-error-container);--pfx-filter-tag-outline-color: var(--md-sys-color-error)}.praxis-filter-bar.has-compact.tag-color-basic{--pfx-filter-tag-color: color-mix(in srgb, var(--md-sys-color-on-surface) 10%, transparent);--pfx-filter-tag-on-color: var(--md-sys-color-on-surface);--pfx-filter-tag-outline-color: var(--md-sys-color-outline-variant)}:host ::ng-deep .praxis-filter-bar.has-compact{--pfx-filter-inline-chip-padding-x: var(--pdx-inline-control-padding-x);--pfx-filter-inline-icon-gap: 4px}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-inline:var(--pfx-filter-inline-chip-padding-x)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-prefix{align-items:center;display:inline-flex;flex:0 0 auto;margin-right:var(--pfx-filter-inline-icon-gap)!important;padding:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-suffix{align-items:center;display:inline-flex;flex:0 0 auto;gap:var(--pfx-filter-inline-icon-gap)!important;margin-left:var(--pfx-filter-inline-icon-gap)!important;padding:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-prefix>.mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-icon-suffix>.mat-icon{flex:0 0 16px!important;font-size:16px!important;height:16px!important;line-height:16px!important;margin:0!important;padding:0!important;width:16px!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select,.pdx-inline-date,.pdx-inline-date-range,.pdx-inline-autocomplete,.pdx-inline-currency,.pdx-inline-time) .mat-mdc-form-field-infix{padding-inline:0!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-inline-select,.pdx-inline-searchable-select,.pdx-inline-async-select) .pdx-chip-trigger{gap:var(--pfx-filter-inline-icon-gap)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-currency-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-searchable-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-async-select.pdx-has-selection .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-value .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-both .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-entity-lookup.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-multi-select.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-distance-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-score-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-relative-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-relative-period-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-rating-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-pipeline-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-sentiment-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-color-label-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-time-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active{--pdx-inline-currency-symbol-color: var(--pfx-filter-tag-on-color);background:var(--pfx-filter-tag-color)!important;border-color:transparent!important;color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-currency-range-chip.is-active :where(.mat-icon,.pdx-inline-currency-range-value,.pdx-inline-currency-range-text,.pdx-inline-currency-range-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear) :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear,.pdx-inline-number-suffix),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-select,.pdx-inline-searchable-select) .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active) :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-async-select.pdx-has-selection :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-value :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-date-range.pdx-inline-date-range-has-both :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-entity-lookup.pdx-has-selection,.pdx-inline-multi-select.pdx-has-selection) .pdx-chip-trigger :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled :where(.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active) :where(.mat-icon,button,span),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-time-range-chip.is-active :where(.pdx-inline-time-range-icon,.pdx-inline-time-range-text,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active :where(.pdx-inline-toggle-label,.mat-icon){color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-currency-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-searchable-select .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-async-select.pdx-has-selection .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-value .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-both .mat-mdc-text-field-wrapper.mdc-text-field--outlined,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-entity-lookup.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-multi-select.pdx-has-selection .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-distance-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-score-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-relative-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-relative-period-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-rating-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-pipeline-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-sentiment-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-color-label-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-time-range-chip.is-active,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active{--pdx-inline-currency-symbol-color: var(--pfx-filter-tag-outline-color);background:transparent!important;border-color:var(--pfx-filter-tag-outline-color)!important;box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-outline-color);color:var(--pfx-filter-tag-outline-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-currency-range-chip.is-active :where(.mat-icon,.pdx-inline-currency-range-value,.pdx-inline-currency-range-text,.pdx-inline-currency-range-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear) :where(input,.mat-mdc-input-element,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,.pdx-inline-clear,.pdx-inline-number-suffix),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-select,.pdx-inline-searchable-select) .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-chip-trigger.is-active) :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-async-select.pdx-has-selection :where(.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.pdx-chip-trigger,.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-value :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-date-range.pdx-inline-date-range-has-both :where(.mat-date-range-input-inner,.mat-date-range-input-separator,.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix,.mat-icon,input),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-entity-lookup.pdx-has-selection,.pdx-inline-multi-select.pdx-has-selection) .pdx-chip-trigger :where(.pdx-chip-field-icon,.pdx-chip-leading-icon,.pdx-chip-trailing-icon,.pdx-chip-label,.pdx-chip-count,.pdx-chip-clear,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined :where(.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active) :where(.mat-icon,button,span),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-time-range-chip.is-active :where(.pdx-inline-time-range-icon,.pdx-inline-time-range-text,.mat-icon),:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active :where(.pdx-inline-toggle-label,.mat-icon){color:var(--pfx-filter-tag-outline-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear){background:color-mix(in srgb,currentColor 16%,transparent)!important;border-radius:50%!important;color:inherit!important;display:inline-grid!important;flex:0 0 var(--pdx-inline-clear-size, 22px)!important;height:var(--pdx-inline-clear-size, 22px)!important;min-width:var(--pdx-inline-clear-size, 22px)!important;place-items:center!important;width:var(--pdx-inline-clear-size, 22px)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear):hover{background:color-mix(in srgb,currentColor 24%,transparent)!important}:host ::ng-deep .praxis-filter-bar.has-compact :where(.pdx-chip-trigger.is-active,.mat-mdc-form-field.pdx-has-value,.pdx-inline-number .mat-mdc-text-field-wrapper.mdc-text-field--outlined:has(.pdx-inline-clear),.pdx-inline-currency-range-chip.is-active,.pdx-inline-range-chip.is-active,.pdx-inline-distance-chip.is-active,.pdx-inline-score-chip.is-active,.pdx-inline-relative-chip.is-active,.pdx-inline-relative-period-chip.is-active,.pdx-inline-rating-chip.is-active,.pdx-inline-pipeline-chip.is-active,.pdx-inline-sentiment-chip.is-active,.pdx-inline-color-label-chip.is-active,.pdx-inline-time-range-chip.is-active,.pdx-inline-toggle-pill.is-active) :where(.pdx-chip-clear,.pdx-inline-clear,.pdx-inline-currency-range-clear,.pdx-inline-range-clear,.pdx-inline-distance-clear,.pdx-inline-score-clear,.pdx-inline-relative-clear,.pdx-inline-rating-clear,.pdx-inline-pipeline-clear,.pdx-inline-sentiment-clear,.pdx-inline-color-label-clear,.pdx-inline-time-range-clear,.pdx-inline-toggle-clear) .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .mat-mdc-form-field.pdx-has-value .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-number .mat-mdc-text-field-wrapper:has(.pdx-inline-clear) .pdx-inline-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-number .mat-mdc-text-field-wrapper:has(.pdx-inline-clear) .pdx-inline-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-inline-toggle-pill.is-active .pdx-inline-toggle-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-inline-toggle-pill.is-active .pdx-inline-toggle-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .pdx-chip-trigger.is-active .pdx-chip-clear .mat-icon,:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined .pdx-chip-trigger.is-active .pdx-chip-clear .mat-icon{color:var(--pdx-inline-clear-icon-color, currentColor)!important}.praxis-filter-tags.outlined .mat-mdc-chip{background:transparent!important;--mat-chip-outline-width: 1px;--mat-chip-outline-color: var(--md-sys-color-outline-variant);box-shadow:inset 0 0 0 var(--mat-chip-outline-width) var(--mat-chip-outline-color)}.praxis-filter-tags.outlined.tag-color-primary .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-primary)}.praxis-filter-tags.outlined.tag-color-accent .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-tertiary)}.praxis-filter-tags.outlined.tag-color-warn .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-error)}.praxis-filter-tags.outlined mat-chip.active .mat-mdc-chip,.praxis-filter-tags.outlined .mat-mdc-chip.mat-mdc-chip-highlighted{--mat-chip-outline-width: 2px;box-shadow:inset 0 0 0 var(--mat-chip-outline-width) var(--mat-chip-outline-color)!important}.praxis-filter-tags.outlined.tag-color-basic mat-chip.active .mat-mdc-chip{--mat-chip-outline-color: var(--md-sys-color-primary)}.praxis-filter-tags .mat-mdc-standard-chip .mdc-evolution-chip__text-label{display:flex;align-items:center;justify-content:center;gap:4px;line-height:1.2;font-size:.875rem}.praxis-filter-tags .chip-leading,.praxis-filter-tags .chip-trailing{display:inline-flex;align-items:center}.praxis-filter-tags .leading-check{width:18px;height:18px;font-size:18px;line-height:1}.praxis-filter-tags .chip-label{position:relative;top:-6px}.praxis-filter-tags .chip-trailing .mat-mdc-icon-button{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;line-height:28px}.praxis-filter-tags .mat-mdc-standard-chip{--mat-chip-container-height: 36px}.praxis-filter-advanced{display:flex;flex-direction:column;min-width:400px;max-width:90vw;min-height:260px;max-height:min(80vh,720px);margin:var(--pfx-overlay-margin-y) var(--pfx-overlay-margin-x);background-color:var(--pfx-overlay-surface)!important;background:var(--pfx-overlay-surface)!important;color:var(--pfx-overlay-on-surface);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--md-sys-elevation-level3)}.advanced-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px var(--pfx-advanced-pad-x) 10px;border-bottom:1px solid var(--border-color);background:var(--pfx-overlay-surface)}.advanced-title-block{display:flex;flex-direction:column;gap:2px}.advanced-title{font-size:1rem;font-weight:600;color:var(--pfx-overlay-on-surface)}.advanced-subtitle{font-size:.85rem;color:var(--pfx-overlay-on-surface-variant)}.advanced-close{align-self:flex-start}.praxis-filter-overlay.mobile .praxis-filter-advanced{height:100vh;max-height:100vh;margin:0;border-radius:0}:host ::ng-deep .praxis-overlay-backdrop{background:var(--md-sys-color-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}:host ::ng-deep .praxis-filter-overlay.frosted .praxis-filter-advanced{background:var(--pfx-overlay-surface-variant)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:var(--border-color)}:host ::ng-deep .praxis-filter-overlay.frosted .advanced-header,:host ::ng-deep .praxis-filter-overlay.frosted .advanced-actions{background:var(--pfx-overlay-surface-variant)!important}.advanced-body{padding:12px var(--pfx-advanced-pad-x) 72px;overflow:auto;flex:1 1 auto;overscroll-behavior:contain}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-row{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(var(--pfx-field-min),1fr));gap:var(--pfx-gap-y) var(--pfx-gap-x)}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-column{min-width:0}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-column .mat-mdc-form-field{width:100%}.advanced-actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:8px;padding:var(--pfx-gap-y) var(--pfx-advanced-pad-x);background-color:var(--pfx-overlay-surface)!important;background:var(--pfx-overlay-surface)!important;border-top:1px solid var(--border-color);box-shadow:0 -1px 0 var(--md-sys-color-outline-variant)}.advanced-actions .mat-mdc-button-base{height:40px}.advanced-actions .mat-mdc-raised-button.mat-primary{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}:host ::ng-deep .praxis-filter-advanced .mat-mdc-text-field-wrapper.mdc-text-field--outlined{--mdc-outlined-text-field-outline-color: var(--border-color);--mdc-outlined-text-field-hover-outline-color: var(--border-color-hover);--mdc-outlined-text-field-focus-outline-color: var(--md-sys-color-primary);--mdc-outlined-text-field-label-text-color: var(--pfx-overlay-on-surface-variant);--mdc-outlined-text-field-input-text-color: var(--pfx-overlay-on-surface);--mdc-outlined-text-field-container-color: var(--pfx-overlay-surface)}:host ::ng-deep .praxis-filter-advanced .mat-mdc-select-trigger,:host ::ng-deep .praxis-filter-advanced .mat-mdc-form-field-subscript-wrapper,:host ::ng-deep .praxis-filter-advanced .mat-mdc-form-field-infix{color:var(--pfx-overlay-on-surface)}@media(min-width:600px){.fields-grid{gap:6px 8px}:host ::ng-deep .praxis-filter-advanced .praxis-filter-form .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.praxis-filter-bar.has-compact{grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:start;justify-items:stretch;width:100%}.praxis-filter-bar.has-compact .inline-actions{grid-column:1;grid-row:2;justify-self:start;width:100%;height:auto}.praxis-filter-bar.has-compact .inline-actions .action-cluster{max-width:100%}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>.pfx-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>praxis-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-host{--pfx-field-shell-width: auto;--pfx-field-shell-field-width: auto;width:100%!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .mat-mdc-form-field,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .mat-mdc-text-field-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-chip-trigger,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-currency-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-distance-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-score-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-relative-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-relative-period-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-rating-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-pipeline-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-sentiment-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-color-label-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-time-range-chip,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-inline-toggle-pill{width:100%!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :where(.pdx-chip-label,.pdx-chip-trigger,.pdx-inline-range-text,.pdx-inline-currency-range-text,.pdx-inline-distance-text,.pdx-inline-score-text,.pdx-inline-relative-text,.pdx-inline-relative-period-text,.pdx-inline-rating-text,.pdx-inline-pipeline-text,.pdx-inline-sentiment-text,.pdx-inline-color-label-text,.pdx-inline-time-range-text,.pdx-inline-toggle-label){min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime],:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .pfx-field-shell-wrapper,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .pfx-field-shell-host{--pfx-field-shell-width: fit-content;--pfx-field-shell-field-width: var(--pdx-inline-time-field-w, auto);justify-self:start;width:fit-content!important;max-width:100%!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{width:var(--pdx-inline-time-field-w, auto)!important;inline-size:var(--pdx-inline-time-field-w, auto)!important;max-width:min(var(--pdx-inline-time-max-w, 280px),100vw - 48px)!important}}@media(min-width:960px){.fields-grid{gap:6px 10px}}@media(min-width:1200px){.fields-grid{grid-template-columns:repeat(auto-fit,minmax(var(--pfx-always-min, 220px),var(--pfx-always-max-desktop, 380px)));justify-content:start;align-content:start}:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=slider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=range-slider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeSlider],:host ::ng-deep .fields-grid .pfx-field-shell[data-control-type=rangeslider]{grid-column:span var(--pfx-slider-span-desktop, 2)}}.inline-toggles{display:flex;align-items:center;gap:8px;margin:0 4px 0 6px}:host ::ng-deep .inline-actions .mat-mdc-slide-toggle{height:var(--pfx-filter-h);display:flex;align-items:center}:host ::ng-deep .inline-actions .mat-mdc-slide-toggle .mdc-form-field{align-items:center}::ng-deep .praxis-filter-overlay .praxis-filter-advanced .praxis-filter-form .filter-row{display:grid!important;gap:var(--pfx-gap-y, 1px) var(--pfx-gap-x, 6px)}@media(min-width:600px){::ng-deep .praxis-filter-overlay .praxis-filter-advanced .praxis-filter-form .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}.hidden-submit{position:absolute!important;width:0!important;height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;overflow:hidden!important}:host ::ng-deep .inline-actions [matBadge] .mat-badge-content{top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:10px;font-weight:700;line-height:16px;letter-spacing:0;text-indent:0;color:var(--md-sys-color-on-primary, #fff)}:host ::ng-deep .inline-actions [matBadge][matbadgecolor=warn] .mat-badge-content,:host ::ng-deep .inline-actions [matBadge].mat-badge-warn .mat-badge-content{color:var(--md-sys-color-on-error, #fff)}.praxis-filter-bar :where(.mat-mdc-slide-toggle .mdc-switch__icons){display:none!important}.praxis-filter-bar{--mdc-switch-unselected-icon-size: 0px;--mdc-switch-selected-icon-size: 0px;--pfx-always-min: 220px}.praxis-filter-card{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-radius:12px;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface)}.add-manager{display:flex;flex-direction:column;width:min(400px,100vw - 24px);max-height:min(70vh,560px);overflow:hidden;border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:var(--pfx-overlay-radius, 16px);background:var(--md-sys-color-surface-container-highest);color:var(--md-sys-color-on-surface);box-shadow:var(--md-sys-elevation-level3)}.add-manager__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 16px 8px 20px}.add-manager__header h2{margin:0;font:var(--md-sys-typescale-title-medium)}.add-manager__header p{margin:4px 0 0;color:var(--md-sys-color-on-surface-variant);font:var(--md-sys-typescale-body-small)}.add-manager__search{padding:8px 20px}.add-manager__search mat-form-field{width:100%}.add-manager__summary{padding:0 20px 8px;color:var(--md-sys-color-on-surface-variant);font:var(--md-sys-typescale-label-medium)}.add-manager__bulk{padding:8px 20px;border-block:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant))}.add-manager__list{display:flex;flex-direction:column;min-height:80px;overflow:auto;padding:8px 12px 12px}.add-manager__item{min-height:48px;padding-inline:8px;border-radius:var(--pfx-control-radius, 8px)}.add-manager__item:hover{background:var(--md-sys-color-surface-container-high)}.add-manager__empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:96px;padding:16px;color:var(--md-sys-color-on-surface-variant);text-align:center}.add-manager__footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-highest)}.add-manager__notice{display:flex;align-items:flex-start;gap:8px;padding:10px 16px;font:var(--md-sys-typescale-body-small)}.add-manager__notice mat-icon{flex:0 0 auto}.add-manager__notice--warning{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.add-manager__notice--conflict{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}@media(max-width:600px){.add-manager{width:calc(100vw - 16px);max-height:min(78dvh,640px);border-radius:var(--pfx-overlay-radius, 16px)}.add-manager__header,.add-manager__search{padding-inline:16px}}.inline-actions .add-trigger{display:inline-flex;align-items:center;gap:6px;height:32px;width:100%;max-width:100%;min-width:0;padding:0 10px;border-radius:0;border:0;background:transparent;overflow:visible}.inline-actions .add-trigger--icon{justify-content:center;width:32px;min-width:32px;padding:0}:host ::ng-deep .inline-actions .add-trigger mat-icon{width:18px;height:18px;font-size:18px;flex:0 0 auto}.inline-actions .add-trigger-label{display:inline-block;flex:1 1 auto;min-width:0;max-width:100%;text-align:left;direction:ltr;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;line-height:1}:host ::ng-deep .action-cluster--manage .mat-mdc-select{flex:0 0 auto;width:180px;min-width:0;max-width:180px}:host ::ng-deep .action-cluster--manage .cluster-select--hidden.mat-mdc-select{position:absolute;width:1px;min-width:1px;max-width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}:host ::ng-deep .action-cluster--manage .mat-mdc-select-trigger{min-height:32px;padding:0}:host ::ng-deep .action-cluster--manage .mat-mdc-select-value,:host ::ng-deep .action-cluster--manage .mat-mdc-select-value-text,:host ::ng-deep .action-cluster--manage .mat-mdc-select-min-line{width:auto;min-width:0;max-width:100%;display:inline-flex;align-items:center;justify-content:flex-start;overflow:visible}.praxis-filter-card .summary-header{display:flex;align-items:center;gap:10px}.praxis-filter-card .summary-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.praxis-filter-card .summary-title{font-weight:600}.praxis-filter-card .summary-subtitle{opacity:.8;font-size:.875rem}.praxis-filter-card .summary-badges{display:flex;flex-wrap:wrap;gap:6px}.praxis-filter-card .summary-badges span{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--md-sys-color-primary-container);border:1px solid var(--md-sys-color-outline-variant);color:var(--md-sys-color-on-primary-container);font-size:12px}.praxis-filter-card .card-actions{display:flex;gap:8px}:host ::ng-deep .inline-actions .mat-mdc-select-arrow-wrapper{display:none}.inline-actions .add-filter-btn{height:36px;border-radius:18px;padding:0 16px 0 12px}.inline-actions .add-filter-btn mat-icon{margin-right:8px;margin-left:-4px}\n"] }]
|
|
38582
38637
|
}], ctorParameters: () => [{ type: i1.GenericCrudService }, { type: undefined, decorators: [{
|
|
38583
38638
|
type: Inject,
|
|
38584
38639
|
args: [ASYNC_CONFIG_STORAGE]
|
|
@@ -38586,7 +38641,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
38586
38641
|
type: Optional
|
|
38587
38642
|
}] }, { type: i1.LoggerService, decorators: [{
|
|
38588
38643
|
type: Optional
|
|
38589
|
-
}] }], propDecorators: {
|
|
38644
|
+
}] }], propDecorators: { addManagerOrigin: [{
|
|
38645
|
+
type: ViewChild,
|
|
38646
|
+
args: ['addManagerOrigin', { read: ElementRef }]
|
|
38647
|
+
}], resourcePath: [{
|
|
38590
38648
|
type: Input,
|
|
38591
38649
|
args: [{ required: true }]
|
|
38592
38650
|
}], apiUrlEntry: [{
|
|
@@ -39105,7 +39163,7 @@ const PRAXIS_FILTER_COMPONENT_METADATA = {
|
|
|
39105
39163
|
{
|
|
39106
39164
|
name: 'selectedFieldIdsChange',
|
|
39107
39165
|
type: 'string[]',
|
|
39108
|
-
description: 'Emitido quando
|
|
39166
|
+
description: 'Emitido quando o usuário confirma em Aplicar uma nova curadoria de campos visíveis; alterações provisórias e canceladas não emitem o evento.',
|
|
39109
39167
|
},
|
|
39110
39168
|
{
|
|
39111
39169
|
name: 'metaChanged',
|
|
@@ -41860,7 +41918,7 @@ class PraxisTable {
|
|
|
41860
41918
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
41861
41919
|
return;
|
|
41862
41920
|
this.aiAdapterLoadStarted = true;
|
|
41863
|
-
import('./praxisui-table-table-ai.adapter-
|
|
41921
|
+
import('./praxisui-table-table-ai.adapter-BLhlF2o3.mjs')
|
|
41864
41922
|
.then(({ TableAiAdapter }) => {
|
|
41865
41923
|
if (!this.isAiAssistantEnabled()) {
|
|
41866
41924
|
this.aiAssistantOpenAfterAdapterLoad = false;
|
|
@@ -43595,7 +43653,11 @@ class PraxisTable {
|
|
|
43595
43653
|
if (this.shouldSelectRowOnRowClick(event)) {
|
|
43596
43654
|
this.selectRowFromUserInteraction(row);
|
|
43597
43655
|
}
|
|
43598
|
-
const payload = {
|
|
43656
|
+
const payload = {
|
|
43657
|
+
row,
|
|
43658
|
+
index,
|
|
43659
|
+
resourceIdentity: this.materializeRecordIdentity(row),
|
|
43660
|
+
};
|
|
43599
43661
|
this.rowClick.emit(payload);
|
|
43600
43662
|
this.emitResourceEvent('row-click', 'rowClick', payload);
|
|
43601
43663
|
}
|
|
@@ -43627,7 +43689,11 @@ class PraxisTable {
|
|
|
43627
43689
|
resourceEvent,
|
|
43628
43690
|
});
|
|
43629
43691
|
this.resourceEvent.emit(resourceEvent);
|
|
43630
|
-
const rowClickPayload = {
|
|
43692
|
+
const rowClickPayload = {
|
|
43693
|
+
row,
|
|
43694
|
+
index,
|
|
43695
|
+
resourceIdentity: this.materializeRecordIdentity(row),
|
|
43696
|
+
};
|
|
43631
43697
|
this.rowClick.emit(rowClickPayload);
|
|
43632
43698
|
this.emitResourceEvent('row-click', 'rowClick', rowClickPayload);
|
|
43633
43699
|
return true;
|
|
@@ -55330,11 +55396,17 @@ class PraxisTable {
|
|
|
55330
55396
|
selectedRows,
|
|
55331
55397
|
selectedCount: selectedRows.length,
|
|
55332
55398
|
tableId: this.tableId,
|
|
55399
|
+
resourceIdentity: this.materializeRecordIdentity(row ?? selectedRows[0]),
|
|
55333
55400
|
};
|
|
55334
55401
|
this.selectionChange.emit(payload);
|
|
55335
55402
|
this.emitResourceEvent('selection-change', 'selectionChange', payload);
|
|
55336
55403
|
this.refreshAiAssistantContextAfterSelectionChange();
|
|
55337
55404
|
}
|
|
55405
|
+
materializeRecordIdentity(row) {
|
|
55406
|
+
if (!row || typeof row !== 'object' || Array.isArray(row))
|
|
55407
|
+
return null;
|
|
55408
|
+
return materializeResourceIdentity(this.crudService.getResourceIdentity?.(), row, this.schemaFieldsSnapshot);
|
|
55409
|
+
}
|
|
55338
55410
|
emitResourceEvent(kind, sourceOutput, payload, surface, resourceId, phase) {
|
|
55339
55411
|
this.resourceEvent.emit(this.buildResourceEvent(kind, sourceOutput, payload, surface, resourceId, phase));
|
|
55340
55412
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { firstValueFrom } from 'rxjs';
|
|
2
2
|
import { BaseAiAdapter, sanitizePraxisAssistantText, createComponentAuthoringContext } from '@praxisui/ai';
|
|
3
3
|
import { PRAXIS_GLOBAL_ACTION_CATALOG, deepMerge } from '@praxisui/core';
|
|
4
|
-
import { H as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, X as coerceTableComponentEditPlans, Z as compileTableComponentEditPlans, K as TASK_PRESETS, a2 as getTableComponentEditPlanCapabilities, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, G as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { H as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, X as coerceTableComponentEditPlans, Z as compileTableComponentEditPlans, K as TASK_PRESETS, a2 as getTableComponentEditPlanCapabilities, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, G as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-O-dD2rsX.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
|
|
7
7
|
mode: 'expression',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, n as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, o as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, p as PraxisFilter, q as PraxisFilterWidgetConfigEditor, r as PraxisTable, s as PraxisTableConfigEditor, t as PraxisTableInlineAuthoringEditorComponent, u as PraxisTableToolbar, v as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, w as TABLE_COMPONENT_AI_CAPABILITIES, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, G as TABLE_COMPONENT_EDIT_PLAN_KIND, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, K as TASK_PRESETS, L as TableDefaultsProvider, O as TableRulesEditorComponent, Q as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, R as VisualFormulaBuilderComponent, U as buildTableApplyPlan, W as coerceTableComponentEditPlan, X as coerceTableComponentEditPlans, Y as compileTableComponentEditPlan, Z as compileTableComponentEditPlans, _ as createTableAuthoringDocument, $ as getActionId, a0 as getEnum, a1 as getTableCapabilities, a2 as getTableComponentEditPlanCapabilities, a3 as isTableRendererSupportedByRichContentP0, a4 as mapTableRendererToRichContentP0, a5 as normalizeTableAuthoringDocument, a6 as parseLegacyOrTableDocument, a7 as providePraxisFilterMetadata, a8 as providePraxisTableMetadata, a9 as providePraxisTableToolbarAppearance, aa as serializeTableAuthoringDocument, ab as toCanonicalTableConfig, ac as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-
|
|
1
|
+
export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, n as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, o as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, p as PraxisFilter, q as PraxisFilterWidgetConfigEditor, r as PraxisTable, s as PraxisTableConfigEditor, t as PraxisTableInlineAuthoringEditorComponent, u as PraxisTableToolbar, v as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, w as TABLE_COMPONENT_AI_CAPABILITIES, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, G as TABLE_COMPONENT_EDIT_PLAN_KIND, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, K as TASK_PRESETS, L as TableDefaultsProvider, O as TableRulesEditorComponent, Q as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, R as VisualFormulaBuilderComponent, U as buildTableApplyPlan, W as coerceTableComponentEditPlan, X as coerceTableComponentEditPlans, Y as compileTableComponentEditPlan, Z as compileTableComponentEditPlans, _ as createTableAuthoringDocument, $ as getActionId, a0 as getEnum, a1 as getTableCapabilities, a2 as getTableComponentEditPlanCapabilities, a3 as isTableRendererSupportedByRichContentP0, a4 as mapTableRendererToRichContentP0, a5 as normalizeTableAuthoringDocument, a6 as parseLegacyOrTableDocument, a7 as providePraxisFilterMetadata, a8 as providePraxisTableMetadata, a9 as providePraxisTableToolbarAppearance, aa as serializeTableAuthoringDocument, ab as toCanonicalTableConfig, ac as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-O-dD2rsX.mjs';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "9.0.0-beta.
|
|
3
|
+
"version": "9.0.0-beta.70",
|
|
4
4
|
"description": "Advanced data table for Angular (Praxis UI) with editing, filtering, sorting, virtualization, and settings panel integration.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
7
7
|
"@angular/core": "^21.0.0",
|
|
8
8
|
"@angular/platform-browser": "^21.0.0",
|
|
9
|
-
"@praxisui/ai": "^9.0.0-beta.
|
|
10
|
-
"@praxisui/core": "^9.0.0-beta.
|
|
11
|
-
"@praxisui/dynamic-fields": "^9.0.0-beta.
|
|
12
|
-
"@praxisui/dynamic-form": "^9.0.0-beta.
|
|
13
|
-
"@praxisui/metadata-editor": "^9.0.0-beta.
|
|
14
|
-
"@praxisui/rich-content": "^9.0.0-beta.
|
|
15
|
-
"@praxisui/settings-panel": "^9.0.0-beta.
|
|
16
|
-
"@praxisui/table-rule-builder": "^9.0.0-beta.
|
|
9
|
+
"@praxisui/ai": "^9.0.0-beta.70",
|
|
10
|
+
"@praxisui/core": "^9.0.0-beta.70",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.0-beta.70",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.0-beta.70",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.0-beta.70",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.0-beta.70",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.0-beta.70",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.0-beta.70",
|
|
17
17
|
"@angular/cdk": "^21.0.0",
|
|
18
18
|
"@angular/forms": "^21.0.0",
|
|
19
19
|
"@angular/material": "^21.0.0",
|
|
20
20
|
"@angular/router": "^21.0.0",
|
|
21
|
-
"@praxisui/dialog": "^9.0.0-beta.
|
|
21
|
+
"@praxisui/dialog": "^9.0.0-beta.70",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -17,7 +17,6 @@ import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
|
|
|
17
17
|
import { MatDialog } from '@angular/material/dialog';
|
|
18
18
|
import { BaseDynamicFieldComponent } from '@praxisui/dynamic-fields';
|
|
19
19
|
import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
|
|
20
|
-
import { MatSelect } from '@angular/material/select';
|
|
21
20
|
import { PraxisDialog } from '@praxisui/dialog';
|
|
22
21
|
import { PraxisAssistantVoiceInputMode, PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantRecommendedIntent, PraxisAssistantShellMessage } from '@praxisui/ai';
|
|
23
22
|
import { HttpClient } from '@angular/common/http';
|
|
@@ -421,6 +420,16 @@ type I18n = {
|
|
|
421
420
|
filtersAdd?: string;
|
|
422
421
|
filtersSearch?: string;
|
|
423
422
|
addCount?: string;
|
|
423
|
+
addCountSingular?: string;
|
|
424
|
+
manageFieldsTitle?: string;
|
|
425
|
+
manageFieldsDescription?: string;
|
|
426
|
+
close?: string;
|
|
427
|
+
clearSearch?: string;
|
|
428
|
+
selectedFieldsSuffix?: string;
|
|
429
|
+
selectAllResults?: string;
|
|
430
|
+
noFilterFieldsFound?: string;
|
|
431
|
+
fieldSelectionConflict?: string;
|
|
432
|
+
removingActiveFields?: string;
|
|
424
433
|
addUnavailable?: string;
|
|
425
434
|
pendingCount?: string;
|
|
426
435
|
activeFiltersCount?: string;
|
|
@@ -461,6 +470,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
461
470
|
private componentKeys;
|
|
462
471
|
private route?;
|
|
463
472
|
private logger?;
|
|
473
|
+
addManagerOrigin?: ElementRef<HTMLButtonElement>;
|
|
464
474
|
resourcePath: string;
|
|
465
475
|
/** Resolved API entry carried by detached hosts when route-scoped API_URL is not inherited. */
|
|
466
476
|
apiUrlEntry?: ApiUrlEntry | null;
|
|
@@ -626,8 +636,12 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
626
636
|
id: string;
|
|
627
637
|
label: string;
|
|
628
638
|
}>;
|
|
629
|
-
|
|
630
|
-
|
|
639
|
+
addDraftSelectedFieldIds: string[];
|
|
640
|
+
addManagerOpen: boolean;
|
|
641
|
+
addManagerConflict: boolean;
|
|
642
|
+
readonly addManagerTitleId: string;
|
|
643
|
+
readonly addManagerDescriptionId: string;
|
|
644
|
+
readonly addOverlayPositions: ConnectedPosition[];
|
|
631
645
|
private applySchemaQueued;
|
|
632
646
|
private fallbackLogger?;
|
|
633
647
|
private fallbackLoggerEnvironment;
|
|
@@ -775,8 +789,15 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
775
789
|
}): void;
|
|
776
790
|
onAdvancedValidityChange(valid: boolean): void;
|
|
777
791
|
onAddOpened(opened: boolean): void;
|
|
792
|
+
toggleAddManager(): void;
|
|
793
|
+
closeAddManager(): void;
|
|
794
|
+
toggleManagedField(fieldId: string, checked: boolean): void;
|
|
795
|
+
applyAddManager(): void;
|
|
796
|
+
isAddManagerDirty(): boolean;
|
|
797
|
+
getAddManagerChangeCount(): number;
|
|
798
|
+
getRemovedActiveFieldLabels(): string[];
|
|
799
|
+
private hasMeaningfulFilterValue;
|
|
778
800
|
onAddQuery(q: string): void;
|
|
779
|
-
openAddSelect(select: MatSelect): void;
|
|
780
801
|
hasAddableFields(): boolean;
|
|
781
802
|
hasManageableFilterFields(): boolean;
|
|
782
803
|
private getManageableFilterItems;
|
|
@@ -2334,6 +2355,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2334
2355
|
getMasterSelectionAriaLabel(): string;
|
|
2335
2356
|
private selectRowFromUserInteraction;
|
|
2336
2357
|
private emitSelectionChange;
|
|
2358
|
+
private materializeRecordIdentity;
|
|
2337
2359
|
private emitResourceEvent;
|
|
2338
2360
|
private buildResourceEvent;
|
|
2339
2361
|
private getSelectedRowsSnapshot;
|