@praxisui/table 9.0.59 → 9.0.60
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-filter-form-dialog-host.component-AdssQ-Tn.mjs → praxisui-table-filter-form-dialog-host.component-DANYIQs6.mjs} +12 -12
- package/fesm2022/{praxisui-table-praxisui-table-C5_gBRvk.mjs → praxisui-table-praxisui-table-Dc_qrYSl.mjs} +1168 -480
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-B5hoMQlz.mjs → praxisui-table-table-agentic-authoring-turn-flow-DlPu7OOk.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-C6pM7_sN.mjs → praxisui-table-table-ai.adapter-6-ZGVEFf.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +1 -0
- package/types/praxisui-table.d.ts +32 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, EventEmitter, Output, Input, Optional, Inject, Component, ChangeDetectionStrategy, Injectable, LOCALE_ID, inject, DestroyRef, Directive,
|
|
2
|
+
import { InjectionToken, signal, EventEmitter, ElementRef, Output, Input, ViewChild, Optional, Inject, Component, ChangeDetectionStrategy, Injectable, LOCALE_ID, inject, DestroyRef, Directive, ChangeDetectorRef, HostListener, ENVIRONMENT_INITIALIZER, effect, booleanAttribute, HostBinding, ContentChild } from '@angular/core';
|
|
3
3
|
import * as i10$1 from '@angular/common';
|
|
4
4
|
import { NgTemplateOutlet, UpperCasePipe, LowerCasePipe, TitleCasePipe, PercentPipe, CurrencyPipe, DecimalPipe, DatePipe, CommonModule } from '@angular/common';
|
|
5
5
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
@@ -115,6 +115,9 @@ const PRAXIS_TABLE_RUNTIME_I18N_CONFIG = {
|
|
|
115
115
|
'table.export.deferred': 'Exportação enviada para processamento.',
|
|
116
116
|
'table.export.error': 'Não foi possível exportar os dados.',
|
|
117
117
|
'table.chrome.moreActions': 'Mais ações',
|
|
118
|
+
'table.chrome.compactGroup.actions': 'Ações',
|
|
119
|
+
'table.chrome.compactGroup.export': 'Exportar',
|
|
120
|
+
'table.chrome.compactGroup.view': 'Visualização',
|
|
118
121
|
'table.chrome.rowActions.more': 'Mais ações',
|
|
119
122
|
'table.chrome.rowActions.loading': 'Carregando ações contextuais',
|
|
120
123
|
'table.chrome.rowActions.view': 'Visualizar',
|
|
@@ -272,6 +275,9 @@ const PRAXIS_TABLE_RUNTIME_I18N_CONFIG = {
|
|
|
272
275
|
'table.export.deferred': 'Export submitted for processing.',
|
|
273
276
|
'table.export.error': 'Could not export the data.',
|
|
274
277
|
'table.chrome.moreActions': 'More actions',
|
|
278
|
+
'table.chrome.compactGroup.actions': 'Actions',
|
|
279
|
+
'table.chrome.compactGroup.export': 'Export',
|
|
280
|
+
'table.chrome.compactGroup.view': 'View',
|
|
275
281
|
'table.chrome.rowActions.more': 'More actions',
|
|
276
282
|
'table.chrome.rowActions.loading': 'Loading contextual actions',
|
|
277
283
|
'table.chrome.rowActions.view': 'View',
|
|
@@ -436,14 +442,17 @@ function resolveTableRuntimeFallback(key, locale) {
|
|
|
436
442
|
}
|
|
437
443
|
function translateTableRuntimeText(i18n, key, fallback, params, locale) {
|
|
438
444
|
const explicitLocale = typeof locale === 'string' && locale.trim() ? locale.trim() : '';
|
|
439
|
-
const runtimeFallback = resolveTableRuntimeFallback(key, explicitLocale)
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
445
|
+
const runtimeFallback = resolveTableRuntimeFallback(key, explicitLocale) ||
|
|
446
|
+
resolveTableRuntimeFallback(key, explicitLocale ||
|
|
447
|
+
i18n?.getLocale?.() ||
|
|
448
|
+
i18n?.getFallbackLocale?.() ||
|
|
449
|
+
'pt-BR') ||
|
|
450
|
+
fallback ||
|
|
451
|
+
key;
|
|
443
452
|
if (explicitLocale) {
|
|
444
453
|
return interpolateTableRuntimeText(runtimeFallback, params);
|
|
445
454
|
}
|
|
446
|
-
return i18n?.t(key, params, runtimeFallback, PRAXIS_TABLE_RUNTIME_I18N_NAMESPACE) || interpolateTableRuntimeText(runtimeFallback, params);
|
|
455
|
+
return (i18n?.t(key, params, runtimeFallback, PRAXIS_TABLE_RUNTIME_I18N_NAMESPACE) || interpolateTableRuntimeText(runtimeFallback, params));
|
|
447
456
|
}
|
|
448
457
|
function interpolateTableRuntimeText(template, params) {
|
|
449
458
|
if (!params)
|
|
@@ -632,8 +641,16 @@ class PraxisTableToolbar {
|
|
|
632
641
|
i18n;
|
|
633
642
|
defaultAppearance;
|
|
634
643
|
tokenPresets;
|
|
644
|
+
toolbarRoot;
|
|
645
|
+
toolbarIdentity;
|
|
646
|
+
fullActionsGroup;
|
|
647
|
+
endActionsGroup;
|
|
635
648
|
activeOverflowMenuTrigger;
|
|
636
649
|
activeOverflowMenuTriggerElement;
|
|
650
|
+
actionsCompacted = signal(false, ...(ngDevMode ? [{ debugName: "actionsCompacted" }] : /* istanbul ignore next */ []));
|
|
651
|
+
actionCapacityObserver;
|
|
652
|
+
actionCapacityMutationObserver;
|
|
653
|
+
actionCapacityFrame = null;
|
|
637
654
|
config;
|
|
638
655
|
appearance = null;
|
|
639
656
|
backgroundColor = null;
|
|
@@ -689,6 +706,15 @@ class PraxisTableToolbar {
|
|
|
689
706
|
getToolbarActionsLabel() {
|
|
690
707
|
return this.tx('table.chrome.toolbarActions', 'Ações da tabela');
|
|
691
708
|
}
|
|
709
|
+
getCompactActionsGroupLabel() {
|
|
710
|
+
return this.tx('table.chrome.compactGroup.actions', 'Ações');
|
|
711
|
+
}
|
|
712
|
+
getCompactExportGroupLabel() {
|
|
713
|
+
return this.tx('table.chrome.compactGroup.export', 'Exportar');
|
|
714
|
+
}
|
|
715
|
+
getCompactViewGroupLabel() {
|
|
716
|
+
return this.tx('table.chrome.compactGroup.view', 'Visualização');
|
|
717
|
+
}
|
|
692
718
|
getToolbarConfigurationLabel() {
|
|
693
719
|
return this.tx('table.chrome.toolbarConfiguration', 'Configuração e assistente');
|
|
694
720
|
}
|
|
@@ -936,7 +962,117 @@ class PraxisTableToolbar {
|
|
|
936
962
|
return template;
|
|
937
963
|
return Object.entries(params).reduce((current, [key, value]) => current.replace(new RegExp(`\\{${key}\\}`, 'g'), String(value ?? '')), template);
|
|
938
964
|
}
|
|
939
|
-
|
|
965
|
+
ngAfterViewInit() {
|
|
966
|
+
if (typeof getComputedStyle === 'undefined')
|
|
967
|
+
return;
|
|
968
|
+
this.scheduleActionCapacityCheck();
|
|
969
|
+
const capacityTargets = [
|
|
970
|
+
this.toolbarRoot?.nativeElement,
|
|
971
|
+
this.toolbarIdentity?.nativeElement,
|
|
972
|
+
this.fullActionsGroup?.nativeElement,
|
|
973
|
+
this.endActionsGroup?.nativeElement,
|
|
974
|
+
].filter((target) => !!target);
|
|
975
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
976
|
+
this.actionCapacityObserver = new ResizeObserver(() => {
|
|
977
|
+
this.scheduleActionCapacityCheck();
|
|
978
|
+
});
|
|
979
|
+
for (const target of capacityTargets) {
|
|
980
|
+
this.actionCapacityObserver.observe(target);
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
if (typeof MutationObserver !== 'undefined') {
|
|
984
|
+
this.actionCapacityMutationObserver = new MutationObserver(() => {
|
|
985
|
+
this.scheduleActionCapacityCheck();
|
|
986
|
+
});
|
|
987
|
+
const toolbarRoot = this.toolbarRoot?.nativeElement;
|
|
988
|
+
if (toolbarRoot) {
|
|
989
|
+
this.actionCapacityMutationObserver.observe(toolbarRoot, {
|
|
990
|
+
childList: true,
|
|
991
|
+
characterData: true,
|
|
992
|
+
subtree: true,
|
|
993
|
+
});
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
ngOnDestroy() {
|
|
998
|
+
this.actionCapacityObserver?.disconnect();
|
|
999
|
+
this.actionCapacityMutationObserver?.disconnect();
|
|
1000
|
+
if (this.actionCapacityFrame !== null &&
|
|
1001
|
+
typeof cancelAnimationFrame !== 'undefined') {
|
|
1002
|
+
cancelAnimationFrame(this.actionCapacityFrame);
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
scheduleActionCapacityCheck() {
|
|
1006
|
+
if (typeof requestAnimationFrame === 'undefined') {
|
|
1007
|
+
this.updateActionCapacity();
|
|
1008
|
+
return;
|
|
1009
|
+
}
|
|
1010
|
+
if (this.actionCapacityFrame !== null) {
|
|
1011
|
+
cancelAnimationFrame(this.actionCapacityFrame);
|
|
1012
|
+
}
|
|
1013
|
+
this.actionCapacityFrame = requestAnimationFrame(() => {
|
|
1014
|
+
this.actionCapacityFrame = null;
|
|
1015
|
+
this.updateActionCapacity();
|
|
1016
|
+
});
|
|
1017
|
+
}
|
|
1018
|
+
updateActionCapacity() {
|
|
1019
|
+
const toolbar = this.toolbarRoot?.nativeElement;
|
|
1020
|
+
const actions = this.fullActionsGroup?.nativeElement;
|
|
1021
|
+
if (!toolbar ||
|
|
1022
|
+
!actions ||
|
|
1023
|
+
!this.showActionsGroup ||
|
|
1024
|
+
!this.showMobileActions ||
|
|
1025
|
+
!this.hasCompactCommands()) {
|
|
1026
|
+
this.actionsCompacted.set(false);
|
|
1027
|
+
return;
|
|
1028
|
+
}
|
|
1029
|
+
const toolbarStyle = getComputedStyle(toolbar);
|
|
1030
|
+
const contentWidth = Math.max(0, toolbar.clientWidth -
|
|
1031
|
+
this.readPixelValue(toolbarStyle.paddingInlineStart) -
|
|
1032
|
+
this.readPixelValue(toolbarStyle.paddingInlineEnd));
|
|
1033
|
+
if (contentWidth <= 0) {
|
|
1034
|
+
this.actionsCompacted.set(false);
|
|
1035
|
+
return;
|
|
1036
|
+
}
|
|
1037
|
+
const identityWidth = this.getIdentityRequiredWidth();
|
|
1038
|
+
const endActions = this.endActionsGroup?.nativeElement;
|
|
1039
|
+
const endActionsWidth = endActions && getComputedStyle(endActions).display !== 'none'
|
|
1040
|
+
? Math.max(endActions.scrollWidth, endActions.getBoundingClientRect().width)
|
|
1041
|
+
: 0;
|
|
1042
|
+
const columnGap = identityWidth > 0 ? this.readPixelValue(toolbarStyle.columnGap) : 0;
|
|
1043
|
+
const actionsHostStyle = getComputedStyle(actions.parentElement ?? toolbar);
|
|
1044
|
+
const actionsGap = endActionsWidth > 0
|
|
1045
|
+
? this.readPixelValue(actionsHostStyle.columnGap || actionsHostStyle.gap)
|
|
1046
|
+
: 0;
|
|
1047
|
+
const availableWidth = Math.max(0, contentWidth - identityWidth - endActionsWidth - columnGap - actionsGap);
|
|
1048
|
+
const actionsStyle = getComputedStyle(actions);
|
|
1049
|
+
const actionGroups = Array.from(actions.children).filter((child) => child instanceof HTMLElement &&
|
|
1050
|
+
getComputedStyle(child).display !== 'none');
|
|
1051
|
+
const intrinsicChildrenWidth = actionGroups.reduce((total, child) => total +
|
|
1052
|
+
Math.max(child.scrollWidth, child.getBoundingClientRect().width), 0);
|
|
1053
|
+
const groupGaps = Math.max(0, actionGroups.length - 1) *
|
|
1054
|
+
this.readPixelValue(actionsStyle.columnGap || actionsStyle.gap);
|
|
1055
|
+
const requiredWidth = Math.max(actions.scrollWidth, actions.getBoundingClientRect().width, intrinsicChildrenWidth + groupGaps);
|
|
1056
|
+
const capacityBuffer = this.actionsCompacted() ? 16 : 0;
|
|
1057
|
+
this.actionsCompacted.set(requiredWidth + capacityBuffer > availableWidth + 0.5);
|
|
1058
|
+
}
|
|
1059
|
+
getIdentityRequiredWidth() {
|
|
1060
|
+
const identity = this.toolbarIdentity?.nativeElement;
|
|
1061
|
+
if (!identity || getComputedStyle(identity).display === 'none')
|
|
1062
|
+
return 0;
|
|
1063
|
+
const style = getComputedStyle(identity);
|
|
1064
|
+
const copy = identity.querySelector('.toolbar-identity__copy');
|
|
1065
|
+
const icon = identity.querySelector('.toolbar-identity__icon');
|
|
1066
|
+
return ((copy?.scrollWidth ?? 0) +
|
|
1067
|
+
(icon?.getBoundingClientRect().width ?? 0) +
|
|
1068
|
+
(copy && icon ? this.readPixelValue(style.columnGap || style.gap) : 0) +
|
|
1069
|
+
this.readPixelValue(style.paddingInlineStart) +
|
|
1070
|
+
this.readPixelValue(style.paddingInlineEnd));
|
|
1071
|
+
}
|
|
1072
|
+
readPixelValue(value) {
|
|
1073
|
+
const parsed = Number.parseFloat(value);
|
|
1074
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
1075
|
+
}
|
|
940
1076
|
getToolbarVariant() {
|
|
941
1077
|
const value = this.resolveToolbarAppearance().variant;
|
|
942
1078
|
return value === 'flat' ||
|
|
@@ -1256,6 +1392,23 @@ class PraxisTableToolbar {
|
|
|
1256
1392
|
? this.resolveDisabledActionReason(action)
|
|
1257
1393
|
: null;
|
|
1258
1394
|
}
|
|
1395
|
+
getCompactOverflowCommonDisabledReason() {
|
|
1396
|
+
const reasons = this.getOverflowActions()
|
|
1397
|
+
.map((action) => this.getActionDisabledReason(action))
|
|
1398
|
+
.filter((reason) => !!reason);
|
|
1399
|
+
if (reasons.length < 2)
|
|
1400
|
+
return null;
|
|
1401
|
+
const commonReason = reasons[0];
|
|
1402
|
+
return reasons.every((reason) => reason === commonReason)
|
|
1403
|
+
? commonReason
|
|
1404
|
+
: null;
|
|
1405
|
+
}
|
|
1406
|
+
getCompactActionSpecificDisabledReason(action) {
|
|
1407
|
+
const reason = this.getActionDisabledReason(action);
|
|
1408
|
+
return reason === this.getCompactOverflowCommonDisabledReason()
|
|
1409
|
+
? null
|
|
1410
|
+
: reason;
|
|
1411
|
+
}
|
|
1259
1412
|
getActionAriaDisabled(action) {
|
|
1260
1413
|
return this.isActionDisabled(action) ? 'true' : null;
|
|
1261
1414
|
}
|
|
@@ -1781,11 +1934,13 @@ class PraxisTableToolbar {
|
|
|
1781
1934
|
}
|
|
1782
1935
|
}
|
|
1783
1936
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisTableToolbar, deps: [{ token: i0.ElementRef }, { token: i1.LoggerService, optional: true }, { token: i1.PraxisI18nService, optional: true }, { token: PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, optional: true }, { token: PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1784
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisTableToolbar, isStandalone: true, selector: "praxis-table-toolbar", inputs: { config: "config", appearance: "appearance", backgroundColor: "backgroundColor", placement: "placement", focusScope: "focusScope", showMain: "showMain", showActionsGroup: "showActionsGroup", showEndActions: "showEndActions", showMobileActions: "showMobileActions", exportBusy: "exportBusy", exportStatusMessage: "exportStatusMessage", evaluationContext: "evaluationContext", activeQuickFilterId: "activeQuickFilterId", activeDensity: "activeDensity", columnVisibilityController: "columnVisibilityController" }, outputs: { toolbarAction: "toolbarAction", exportAction: "exportAction", columnVisibilityToggle: "columnVisibilityToggle", quickFilterChange: "quickFilterChange", densityChange: "densityChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" }, properties: { "class.praxis-toolbar-footer": "placement === 'footer'" } }, ngImport: i0, template: `
|
|
1937
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisTableToolbar, isStandalone: true, selector: "praxis-table-toolbar", inputs: { config: "config", appearance: "appearance", backgroundColor: "backgroundColor", placement: "placement", focusScope: "focusScope", showMain: "showMain", showActionsGroup: "showActionsGroup", showEndActions: "showEndActions", showMobileActions: "showMobileActions", exportBusy: "exportBusy", exportStatusMessage: "exportStatusMessage", evaluationContext: "evaluationContext", activeQuickFilterId: "activeQuickFilterId", activeDensity: "activeDensity", columnVisibilityController: "columnVisibilityController" }, outputs: { toolbarAction: "toolbarAction", exportAction: "exportAction", columnVisibilityToggle: "columnVisibilityToggle", quickFilterChange: "quickFilterChange", densityChange: "densityChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" }, properties: { "class.praxis-toolbar-footer": "placement === 'footer'" } }, viewQueries: [{ propertyName: "toolbarRoot", first: true, predicate: ["toolbarRoot"], descendants: true, read: ElementRef }, { propertyName: "toolbarIdentity", first: true, predicate: ["toolbarIdentity"], descendants: true, read: ElementRef }, { propertyName: "fullActionsGroup", first: true, predicate: ["fullActionsGroup"], descendants: true, read: ElementRef }, { propertyName: "endActionsGroup", first: true, predicate: ["endActionsGroup"], descendants: true, read: ElementRef }], ngImport: i0, template: `
|
|
1785
1938
|
<mat-toolbar
|
|
1939
|
+
#toolbarRoot
|
|
1786
1940
|
class="praxis-toolbar"
|
|
1787
1941
|
role="group"
|
|
1788
1942
|
[attr.aria-label]="getToolbarAriaLabel()"
|
|
1943
|
+
[class.praxis-toolbar--compact-actions]="actionsCompacted()"
|
|
1789
1944
|
[class.praxis-toolbar--has-identity]="showMain && hasToolbarIdentity()"
|
|
1790
1945
|
[class.praxis-toolbar--has-query]="showMain"
|
|
1791
1946
|
[class.praxis-toolbar--has-scope]="showMain && shouldShowQuickFilters()"
|
|
@@ -1876,6 +2031,7 @@ class PraxisTableToolbar {
|
|
|
1876
2031
|
>
|
|
1877
2032
|
@if (showMain && hasToolbarIdentity()) {
|
|
1878
2033
|
<div
|
|
2034
|
+
#toolbarIdentity
|
|
1879
2035
|
class="toolbar-identity"
|
|
1880
2036
|
role="group"
|
|
1881
2037
|
data-toolbar-region="identity"
|
|
@@ -1914,6 +2070,9 @@ class PraxisTableToolbar {
|
|
|
1914
2070
|
@if (shouldShowQuickFilters()) {
|
|
1915
2071
|
<div
|
|
1916
2072
|
class="praxis-table-quick-filters"
|
|
2073
|
+
[class.praxis-table-quick-filters--binary]="
|
|
2074
|
+
getQuickFilters().length === 2
|
|
2075
|
+
"
|
|
1917
2076
|
role="group"
|
|
1918
2077
|
data-toolbar-region="scope"
|
|
1919
2078
|
[attr.aria-label]="getQuickFiltersLabel()"
|
|
@@ -1958,6 +2117,7 @@ class PraxisTableToolbar {
|
|
|
1958
2117
|
<div class="toolbar-actions" data-toolbar-region="commands">
|
|
1959
2118
|
@if (showActionsGroup) {
|
|
1960
2119
|
<div
|
|
2120
|
+
#fullActionsGroup
|
|
1961
2121
|
class="actions-group"
|
|
1962
2122
|
role="group"
|
|
1963
2123
|
[class.actions-group--has-business]="hasBusinessActions()"
|
|
@@ -2032,7 +2192,11 @@ class PraxisTableToolbar {
|
|
|
2032
2192
|
}
|
|
2033
2193
|
{{ action.label }}
|
|
2034
2194
|
</button>
|
|
2035
|
-
<mat-menu
|
|
2195
|
+
<mat-menu
|
|
2196
|
+
#startActionMenu="matMenu"
|
|
2197
|
+
yPosition="below"
|
|
2198
|
+
[overlapTrigger]="false"
|
|
2199
|
+
>
|
|
2036
2200
|
@for (
|
|
2037
2201
|
child of getVisibleActionChildren(action);
|
|
2038
2202
|
track getActionId(child)
|
|
@@ -2245,7 +2409,11 @@ class PraxisTableToolbar {
|
|
|
2245
2409
|
}
|
|
2246
2410
|
{{ action.label }}
|
|
2247
2411
|
</button>
|
|
2248
|
-
<mat-menu
|
|
2412
|
+
<mat-menu
|
|
2413
|
+
#endActionMenu="matMenu"
|
|
2414
|
+
yPosition="below"
|
|
2415
|
+
[overlapTrigger]="false"
|
|
2416
|
+
>
|
|
2249
2417
|
@for (
|
|
2250
2418
|
child of getVisibleActionChildren(action);
|
|
2251
2419
|
track getActionId(child)
|
|
@@ -2435,7 +2603,11 @@ class PraxisTableToolbar {
|
|
|
2435
2603
|
{{ exportStatusMessage }}
|
|
2436
2604
|
</span>
|
|
2437
2605
|
}
|
|
2438
|
-
<mat-menu
|
|
2606
|
+
<mat-menu
|
|
2607
|
+
#exportMenu="matMenu"
|
|
2608
|
+
yPosition="below"
|
|
2609
|
+
[overlapTrigger]="false"
|
|
2610
|
+
>
|
|
2439
2611
|
@for (format of config?.export?.formats; track format) {
|
|
2440
2612
|
<button
|
|
2441
2613
|
mat-menu-item
|
|
@@ -2480,6 +2652,8 @@ class PraxisTableToolbar {
|
|
|
2480
2652
|
<mat-menu
|
|
2481
2653
|
#columnsMenu="matMenu"
|
|
2482
2654
|
class="praxis-table-columns-menu"
|
|
2655
|
+
yPosition="below"
|
|
2656
|
+
[overlapTrigger]="false"
|
|
2483
2657
|
>
|
|
2484
2658
|
@for (column of config?.columns; track column.field) {
|
|
2485
2659
|
<button
|
|
@@ -2545,6 +2719,8 @@ class PraxisTableToolbar {
|
|
|
2545
2719
|
<mat-menu
|
|
2546
2720
|
#densityMenu="matMenu"
|
|
2547
2721
|
class="praxis-table-density-menu"
|
|
2722
|
+
yPosition="below"
|
|
2723
|
+
[overlapTrigger]="false"
|
|
2548
2724
|
>
|
|
2549
2725
|
@for (density of getDensityOptions(); track density) {
|
|
2550
2726
|
<button
|
|
@@ -2572,6 +2748,7 @@ class PraxisTableToolbar {
|
|
|
2572
2748
|
}
|
|
2573
2749
|
@if (showEndActions) {
|
|
2574
2750
|
<div
|
|
2751
|
+
#endActionsGroup
|
|
2575
2752
|
class="end-actions"
|
|
2576
2753
|
role="group"
|
|
2577
2754
|
[attr.aria-label]="getToolbarConfigurationLabel()"
|
|
@@ -2607,99 +2784,143 @@ class PraxisTableToolbar {
|
|
|
2607
2784
|
[matTooltip]="getMoreActionsLabel()"
|
|
2608
2785
|
matTooltipPosition="below"
|
|
2609
2786
|
></button>
|
|
2610
|
-
<mat-menu
|
|
2787
|
+
<mat-menu
|
|
2788
|
+
#compactCommandsMenu="matMenu"
|
|
2789
|
+
yPosition="below"
|
|
2790
|
+
[overlapTrigger]="false"
|
|
2791
|
+
>
|
|
2792
|
+
@if (getOverflowActions().length) {
|
|
2793
|
+
<div
|
|
2794
|
+
class="praxis-table-compact-command-group"
|
|
2795
|
+
role="heading"
|
|
2796
|
+
aria-level="3"
|
|
2797
|
+
>
|
|
2798
|
+
{{ getCompactActionsGroupLabel() }}
|
|
2799
|
+
</div>
|
|
2800
|
+
@if (
|
|
2801
|
+
getCompactOverflowCommonDisabledReason();
|
|
2802
|
+
as commonDisabledReason
|
|
2803
|
+
) {
|
|
2804
|
+
<p class="praxis-table-compact-command-group__hint">
|
|
2805
|
+
{{ commonDisabledReason }}
|
|
2806
|
+
</p>
|
|
2807
|
+
}
|
|
2808
|
+
}
|
|
2611
2809
|
@for (
|
|
2612
2810
|
action of getOverflowActions();
|
|
2613
2811
|
track getActionId(action)
|
|
2614
2812
|
) {
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
)
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
{{ action.label }}
|
|
2633
|
-
</span>
|
|
2634
|
-
@if (getActionDisabledReason(action); as reason) {
|
|
2635
|
-
<span class="praxis-toolbar-menu-action__reason">
|
|
2636
|
-
{{ reason }}
|
|
2813
|
+
@if (
|
|
2814
|
+
getActionType(action) === 'menu' &&
|
|
2815
|
+
getVisibleActionChildren(action).length
|
|
2816
|
+
) {
|
|
2817
|
+
<button
|
|
2818
|
+
mat-menu-item
|
|
2819
|
+
[disabled]="isActionDisabled(action)"
|
|
2820
|
+
[matMenuTriggerFor]="
|
|
2821
|
+
isActionDisabled(action) ? null : compactActionMenu
|
|
2822
|
+
"
|
|
2823
|
+
[attr.aria-label]="getActionAriaLabel(action)"
|
|
2824
|
+
>
|
|
2825
|
+
@if (action.icon) {
|
|
2826
|
+
<mat-icon [praxisIcon]="action.icon"></mat-icon>
|
|
2827
|
+
}
|
|
2828
|
+
<span class="praxis-toolbar-menu-action__label">
|
|
2829
|
+
{{ action.label }}
|
|
2637
2830
|
</span>
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2831
|
+
</button>
|
|
2832
|
+
<mat-menu #compactActionMenu="matMenu">
|
|
2833
|
+
@for (
|
|
2834
|
+
child of getVisibleActionChildren(action);
|
|
2835
|
+
track getActionId(child)
|
|
2836
|
+
) {
|
|
2837
|
+
<button
|
|
2838
|
+
mat-menu-item
|
|
2839
|
+
[disabled]="isActionDisabled(child)"
|
|
2840
|
+
[attr.aria-label]="getActionAriaLabel(child)"
|
|
2841
|
+
(click)="
|
|
2842
|
+
emitOverflowToolbarAction(
|
|
2843
|
+
$event,
|
|
2844
|
+
getActionId(child),
|
|
2845
|
+
child
|
|
2846
|
+
)
|
|
2847
|
+
"
|
|
2848
|
+
>
|
|
2849
|
+
@if (child.icon) {
|
|
2850
|
+
<mat-icon [praxisIcon]="child.icon"></mat-icon>
|
|
2851
|
+
}
|
|
2852
|
+
<span class="praxis-toolbar-menu-action__label">
|
|
2853
|
+
{{ child.label || getActionId(child) }}
|
|
2854
|
+
</span>
|
|
2855
|
+
@if (getActionDisabledReason(child); as reason) {
|
|
2856
|
+
<span class="praxis-toolbar-menu-action__reason">
|
|
2857
|
+
{{ reason }}
|
|
2858
|
+
</span>
|
|
2859
|
+
}
|
|
2860
|
+
</button>
|
|
2861
|
+
}
|
|
2862
|
+
</mat-menu>
|
|
2863
|
+
} @else {
|
|
2864
|
+
<button
|
|
2865
|
+
mat-menu-item
|
|
2866
|
+
[disabled]="isActionDisabled(action)"
|
|
2867
|
+
[attr.aria-label]="getActionAriaLabel(action)"
|
|
2868
|
+
(click)="
|
|
2869
|
+
emitOverflowToolbarAction(
|
|
2870
|
+
$event,
|
|
2871
|
+
getActionId(action),
|
|
2872
|
+
action
|
|
2873
|
+
)
|
|
2652
2874
|
"
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
<button
|
|
2671
|
-
mat-menu-item
|
|
2672
|
-
[matMenuTriggerFor]="mobileDensityMenu"
|
|
2673
|
-
class="praxis-table-toolbar-action--density"
|
|
2674
|
-
>
|
|
2675
|
-
<mat-icon [praxisIcon]="'density_medium'"></mat-icon>
|
|
2676
|
-
{{ getDensityToggleLabel() }}
|
|
2677
|
-
</button>
|
|
2875
|
+
>
|
|
2876
|
+
@if (action.icon) {
|
|
2877
|
+
<mat-icon [praxisIcon]="action.icon"></mat-icon>
|
|
2878
|
+
}
|
|
2879
|
+
<span class="praxis-toolbar-menu-action__label">
|
|
2880
|
+
{{ action.label }}
|
|
2881
|
+
</span>
|
|
2882
|
+
@if (
|
|
2883
|
+
getCompactActionSpecificDisabledReason(action);
|
|
2884
|
+
as reason
|
|
2885
|
+
) {
|
|
2886
|
+
<span class="praxis-toolbar-menu-action__reason">
|
|
2887
|
+
{{ reason }}
|
|
2888
|
+
</span>
|
|
2889
|
+
}
|
|
2890
|
+
</button>
|
|
2891
|
+
}
|
|
2678
2892
|
}
|
|
2679
|
-
</mat-menu>
|
|
2680
|
-
|
|
2681
|
-
<mat-menu #mobileExportMenu="matMenu">
|
|
2682
2893
|
@if (config?.export?.enabled) {
|
|
2894
|
+
<div
|
|
2895
|
+
class="praxis-table-compact-command-group"
|
|
2896
|
+
role="heading"
|
|
2897
|
+
aria-level="3"
|
|
2898
|
+
>
|
|
2899
|
+
{{ getCompactExportGroupLabel() }}
|
|
2900
|
+
</div>
|
|
2683
2901
|
@for (format of config?.export?.formats; track format) {
|
|
2684
2902
|
<button
|
|
2685
2903
|
mat-menu-item
|
|
2686
|
-
class="praxis-table-export-menu-item"
|
|
2904
|
+
class="praxis-table-export-menu-item praxis-table-compact-command--export"
|
|
2687
2905
|
[disabled]="exportBusy"
|
|
2688
|
-
[matTooltip]="getExportFormatTooltip(format)"
|
|
2689
2906
|
[attr.aria-label]="getExportFormatAriaLabel(format)"
|
|
2690
2907
|
(click)="emitExportAction($event, format)"
|
|
2691
2908
|
>
|
|
2692
2909
|
<mat-icon
|
|
2693
|
-
[
|
|
2910
|
+
[class.praxis-table-export-progress-icon]="exportBusy"
|
|
2911
|
+
[praxisIcon]="
|
|
2912
|
+
exportBusy
|
|
2913
|
+
? 'progress_activity'
|
|
2914
|
+
: getExportIcon(format)
|
|
2915
|
+
"
|
|
2694
2916
|
></mat-icon>
|
|
2695
2917
|
{{ getExportFormatLabel(format) }}
|
|
2696
2918
|
</button>
|
|
2697
2919
|
@if (isVisibleExcelExportEnabled(format)) {
|
|
2698
2920
|
<button
|
|
2699
2921
|
mat-menu-item
|
|
2700
|
-
class="praxis-table-export-menu-item"
|
|
2922
|
+
class="praxis-table-export-menu-item praxis-table-compact-command--export"
|
|
2701
2923
|
[disabled]="exportBusy"
|
|
2702
|
-
[matTooltip]="getVisibleExcelExportDescription()"
|
|
2703
2924
|
[attr.aria-label]="getVisibleExcelExportAriaLabel()"
|
|
2704
2925
|
(click)="emitVisibleExcelExportAction($event)"
|
|
2705
2926
|
>
|
|
@@ -2709,6 +2930,52 @@ class PraxisTableToolbar {
|
|
|
2709
2930
|
}
|
|
2710
2931
|
}
|
|
2711
2932
|
}
|
|
2933
|
+
@if (
|
|
2934
|
+
isColumnsVisibilityEnabled() || isDensityToggleEnabled()
|
|
2935
|
+
) {
|
|
2936
|
+
<div
|
|
2937
|
+
class="praxis-table-compact-command-group"
|
|
2938
|
+
role="heading"
|
|
2939
|
+
aria-level="3"
|
|
2940
|
+
>
|
|
2941
|
+
{{ getCompactViewGroupLabel() }}
|
|
2942
|
+
</div>
|
|
2943
|
+
}
|
|
2944
|
+
@if (isColumnsVisibilityEnabled()) {
|
|
2945
|
+
<button
|
|
2946
|
+
mat-menu-item
|
|
2947
|
+
[matMenuTriggerFor]="mobileColumnsMenu"
|
|
2948
|
+
class="praxis-table-compact-command--columns"
|
|
2949
|
+
>
|
|
2950
|
+
<mat-icon
|
|
2951
|
+
[praxisIcon]="getColumnsVisibilityIcon()"
|
|
2952
|
+
></mat-icon>
|
|
2953
|
+
{{ getColumnsVisibilityLabel() }}
|
|
2954
|
+
</button>
|
|
2955
|
+
}
|
|
2956
|
+
@if (isDensityToggleEnabled()) {
|
|
2957
|
+
@for (density of getDensityOptions(); track density) {
|
|
2958
|
+
<button
|
|
2959
|
+
mat-menu-item
|
|
2960
|
+
type="button"
|
|
2961
|
+
class="praxis-table-toolbar-action--density"
|
|
2962
|
+
[attr.aria-current]="
|
|
2963
|
+
isDensityActive(density) ? 'true' : null
|
|
2964
|
+
"
|
|
2965
|
+
(click)="emitDensityChange($event, density)"
|
|
2966
|
+
>
|
|
2967
|
+
<mat-icon
|
|
2968
|
+
[praxisIcon]="
|
|
2969
|
+
isDensityActive(density)
|
|
2970
|
+
? 'check'
|
|
2971
|
+
: getDensityIcon(density)
|
|
2972
|
+
"
|
|
2973
|
+
></mat-icon>
|
|
2974
|
+
{{ getDensityToggleLabel() }}:
|
|
2975
|
+
{{ getDensityLabel(density) }}
|
|
2976
|
+
</button>
|
|
2977
|
+
}
|
|
2978
|
+
}
|
|
2712
2979
|
</mat-menu>
|
|
2713
2980
|
|
|
2714
2981
|
<mat-menu
|
|
@@ -2767,40 +3034,13 @@ class PraxisTableToolbar {
|
|
|
2767
3034
|
}
|
|
2768
3035
|
}
|
|
2769
3036
|
</mat-menu>
|
|
2770
|
-
|
|
2771
|
-
<mat-menu
|
|
2772
|
-
#mobileDensityMenu="matMenu"
|
|
2773
|
-
class="praxis-table-density-menu"
|
|
2774
|
-
>
|
|
2775
|
-
@if (isDensityToggleEnabled()) {
|
|
2776
|
-
@for (density of getDensityOptions(); track density) {
|
|
2777
|
-
<button
|
|
2778
|
-
mat-menu-item
|
|
2779
|
-
type="button"
|
|
2780
|
-
[attr.aria-current]="
|
|
2781
|
-
isDensityActive(density) ? 'true' : null
|
|
2782
|
-
"
|
|
2783
|
-
(click)="emitDensityChange($event, density)"
|
|
2784
|
-
>
|
|
2785
|
-
<mat-icon
|
|
2786
|
-
[praxisIcon]="
|
|
2787
|
-
isDensityActive(density)
|
|
2788
|
-
? 'check'
|
|
2789
|
-
: getDensityIcon(density)
|
|
2790
|
-
"
|
|
2791
|
-
></mat-icon>
|
|
2792
|
-
{{ getDensityLabel(density) }}
|
|
2793
|
-
</button>
|
|
2794
|
-
}
|
|
2795
|
-
}
|
|
2796
|
-
</mat-menu>
|
|
2797
3037
|
}
|
|
2798
3038
|
</div>
|
|
2799
3039
|
}
|
|
2800
3040
|
</div>
|
|
2801
3041
|
</ng-template>
|
|
2802
3042
|
</mat-toolbar>
|
|
2803
|
-
`, isInline: true, styles: [":host{display:block;container-name:praxis-table-toolbar;container-type:inline-size}.praxis-toolbar{--p-table-toolbar-bg-default: linear-gradient( 180deg, color-mix( in srgb, var(--md-sys-color-surface, #fff) 96%, transparent ), color-mix( in srgb, var(--md-sys-color-surface-container-low, #f6f8fc) 100%, transparent ) );--p-table-toolbar-fg-default: var( --md-sys-color-on-surface, currentColor );--p-table-toolbar-border-color-default: color-mix( in srgb, var(--md-sys-color-outline-variant, #d7dbe5) 78%, transparent );--p-table-toolbar-divider-color-default: color-mix( in srgb, var(--md-sys-color-outline) 42%, transparent );--p-table-toolbar-action-hover-bg-default: color-mix( in srgb, var(--md-sys-color-primary) 10%, transparent );--p-table-toolbar-action-active-bg-default: color-mix( in srgb, var(--md-sys-color-primary) 16%, transparent );--p-table-toolbar-action-focus-ring-default: color-mix( in srgb, var(--md-sys-color-primary) 52%, transparent );--p-table-toolbar-ai-accent-color-default: var( --md-sys-color-primary, #0b72d9 );--p-table-toolbar-status-fg-default: var( --md-sys-color-on-surface-variant, currentColor );background:var( --p-table-toolbar-bg, var(--p-table-toolbar-bg-default) );color:var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default));box-shadow:var(--p-table-toolbar-shadow, none);padding:var( --p-table-toolbar-layout-padding, var(--p-table-toolbar-padding-block, var(--pfx-toolbar-pad-y, 6px)) var( --p-table-toolbar-padding-inline, var(--pfx-toolbar-pad-x, 12px) ) );min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) );display:grid;grid-template-areas:\"actions actions actions\";grid-template-columns:max-content minmax(0,1fr) auto;align-items:center;column-gap:max(var(--p-table-toolbar-gap, 8px),12px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px);border:var(--p-table-toolbar-border-width, 1px) solid var( --p-table-toolbar-border-color, var(--p-table-toolbar-border-color-default) );border-radius:var(--p-table-toolbar-radius, 10px)}.praxis-toolbar.p-table-toolbar--flat{--p-table-toolbar-border-width: 0;--p-table-toolbar-shadow: none}.praxis-toolbar.p-table-toolbar--elevated{--p-table-toolbar-shadow: 0 12px 28px color-mix(in srgb, var(--md-sys-color-shadow, #000) 12%, transparent)}.praxis-toolbar.p-table-toolbar--integrated{--p-table-toolbar-bg: transparent;--p-table-toolbar-border-width: 0;--p-table-toolbar-radius: 0}.praxis-toolbar.p-table-toolbar--layout-separator{border-block-end-width:1px;border-block-end-style:solid;border-block-end-color:var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.praxis-toolbar.p-table-toolbar--compact{--p-table-toolbar-min-height: 36px;--p-table-toolbar-padding-block: 4px;--p-table-toolbar-padding-inline: 10px;--p-table-toolbar-gap: 4px;--p-table-toolbar-actions-gap: 4px;--p-table-toolbar-action-size: var(--praxis-action-control-compact-height, 36px);--p-table-toolbar-action-radius: var(--praxis-action-control-radius, 8px)}.praxis-toolbar.p-table-toolbar--comfortable{--p-table-toolbar-min-height: 44px;--p-table-toolbar-action-size: var(--praxis-action-control-height, 40px)}.praxis-toolbar.p-table-toolbar--spacious{--p-table-toolbar-min-height: 52px;--p-table-toolbar-padding-block: 8px;--p-table-toolbar-padding-inline: 16px;--p-table-toolbar-gap: 8px;--p-table-toolbar-actions-gap: 8px;--p-table-toolbar-action-size: var(--praxis-action-control-spacious-height, 44px)}.praxis-toolbar.p-table-toolbar--square{--p-table-toolbar-radius: 0;--p-table-toolbar-action-radius: 4px}.praxis-toolbar.p-table-toolbar--pill{--p-table-toolbar-radius: 999px;--p-table-toolbar-action-radius: 999px}:host(.praxis-toolbar-stack-top) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(.praxis-toolbar-footer) .praxis-toolbar{border-top-left-radius:0;border-top-right-radius:0}:host(.praxis-toolbar-footer.footer-flat) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}.praxis-toolbar.mat-toolbar-single-row,.praxis-toolbar .mat-toolbar-row{height:auto}.praxis-toolbar.mat-toolbar-multiple-rows{min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) )}.praxis-toolbar.praxis-toolbar--has-query{grid-template-areas:\"query query actions\"}.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope query actions\"}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope query query\"}.toolbar-query{grid-area:query;display:grid;grid-template-columns:minmax(0,1fr) fit-content(40%);align-items:start;min-width:0;column-gap:var(--p-table-toolbar-gap, 8px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px)}.toolbar-query>*{min-width:0}.toolbar-query>:is(praxis-filter,[advancedFilter]){grid-column:1}.toolbar-shortcuts{grid-column:2;display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--p-table-toolbar-gap, 8px);min-width:0;max-width:100%}.toolbar-shortcuts ::ng-deep>[toolbar]{min-width:0;max-width:100%}.toolbar-shortcuts:not(:has(*)){display:none}.toolbar-identity{grid-area:identity;display:flex;align-items:center;gap:var(--p-table-toolbar-identity-gap, 8px);min-width:0;max-width:100%;min-height:var(--p-table-toolbar-identity-min-height, 30px);margin-block-end:var(--p-table-toolbar-identity-margin-bottom, 0);padding-inline:2px;color:var( --p-table-toolbar-title-fg, var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default)) )}.toolbar-identity--center{text-align:center;justify-content:center}.toolbar-identity--end{text-align:end;justify-content:flex-end}.toolbar-identity--center .toolbar-identity__copy{align-items:center}.toolbar-identity--end .toolbar-identity__copy{align-items:flex-end}.toolbar-identity__icon{width:var(--p-table-toolbar-identity-icon-size, 28px);height:var(--p-table-toolbar-identity-icon-size, 28px);border-radius:var(--p-table-toolbar-identity-icon-radius, 8px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) );background:color-mix(in srgb,var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) ) 8%,transparent);border:1px solid color-mix(in srgb,var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) ) 18%,transparent)}.toolbar-identity__icon .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.toolbar-identity__copy{display:flex;flex-direction:column;min-width:0;max-width:100%;gap:1px}.toolbar-identity__title,.toolbar-identity__subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-identity__title{font-size:var(--p-table-toolbar-title-font-size, 14px);font-weight:var(--p-table-toolbar-title-font-weight, 700);line-height:1.2;letter-spacing:0;color:var(--p-table-toolbar-title-fg, currentColor)}.toolbar-identity__subtitle{font-size:var(--p-table-toolbar-subtitle-font-size, 11.5px);line-height:1.25;color:var( --p-table-toolbar-subtitle-fg, var( --p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default) ) )}.toolbar-actions{grid-area:actions;display:flex;align-items:center;align-self:start;justify-self:end;justify-content:flex-end;gap:var(--p-table-toolbar-gap, 6px);min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) );min-width:0}.praxis-toolbar.p-table-toolbar--align-start .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-start .toolbar-actions{justify-self:start}.praxis-toolbar.p-table-toolbar--align-center .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-center .toolbar-actions{justify-self:center}.praxis-toolbar.p-table-toolbar--align-end .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-end .toolbar-actions{justify-self:end}.actions-group{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px)}.business-actions,.utility-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px);min-width:0}.business-actions:empty,.utility-actions:empty{display:none}.action-btn:not(.praxis-icon-button){width:fit-content;max-width:100%;height:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));min-width:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));padding-inline:var(--praxis-action-control-padding-inline, 12px);border-radius:var(--p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px));gap:var(--praxis-action-control-gap, 8px);font-size:var(--praxis-action-control-font-size, .875rem);font-weight:var(--praxis-action-control-font-weight, 500);line-height:var(--praxis-action-control-line-height, 1.25rem);color:var(--p-table-toolbar-action-fg, inherit);background:var(--p-table-toolbar-action-bg, transparent)}.action-btn:not(.praxis-icon-button):hover:not(:disabled):not([aria-disabled=true]){background:var( --p-table-toolbar-action-hover-bg, var(--p-table-toolbar-action-hover-bg-default) )}.action-btn:not(.praxis-icon-button):focus-visible{outline:2px solid var( --p-table-toolbar-action-focus-ring, var(--praxis-action-control-focus-ring, var(--p-table-toolbar-action-focus-ring-default)) );outline-offset:2px}.toolbar-icon-btn{width:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));height:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));border-radius:var(--p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px));color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 9%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.toolbar-icon-btn:hover:not(:disabled){color:var(--md-sys-color-on-primary-container);background:color-mix(in srgb,var(--md-sys-color-primary) 16%,transparent);border-color:color-mix(in srgb,var(--md-sys-color-primary) 36%,transparent)}.action-btn--fab{width:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));height:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));box-shadow:none}.pfx-tonal{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.pfx-tonal:hover{background:var(--md-sys-color-secondary-container)}.mobile-actions{display:none;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px)}.overflow-trigger{height:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px))}.action-btn .mat-icon,.action-btn--fab .mat-icon,.overflow-trigger .mat-icon{margin:0;font-size:var(--praxis-action-control-icon-size, 18px);width:var(--praxis-action-control-icon-size, 18px);height:var(--praxis-action-control-icon-size, 18px);line-height:var(--praxis-action-control-icon-size, 18px)}.praxis-table-export-status{max-width:13rem;overflow:hidden;color:var(--p-table-toolbar-status-fg, currentColor);font-size:.75rem;font-weight:600;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.praxis-table-export-progress-icon{animation:praxis-table-export-spin .9s linear infinite}@keyframes praxis-table-export-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-table-export-progress-icon{animation:none}}.praxis-table-column-menu-item.mat-mdc-menu-item{min-height:40px}.praxis-table-export-menu-item.mat-mdc-menu-item{min-width:280px;white-space:nowrap}.praxis-table-column-menu-content{align-items:center;display:flex;gap:10px;min-height:40px;width:100%}.praxis-table-column-menu-check.mat-icon{color:var(--md-sys-color-primary, currentColor);flex:0 0 20px;font-size:20px;height:20px;line-height:20px;margin-inline-end:0;width:20px}.praxis-table-quick-filters{grid-area:scope;align-self:start;align-items:center;display:flex;flex-wrap:nowrap;gap:6px;min-height:var(--p-table-toolbar-min-height, 44px)}.praxis-table-quick-filter.mat-mdc-outlined-button{min-height:40px;padding-inline:14px;white-space:nowrap}.praxis-table-quick-filter--active.mat-mdc-outlined-button{background:color-mix(in srgb,var(--md-sys-color-primary) 12%,transparent);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-primary)}.action-btn.mat-mdc-button-base,.action-btn--fab.mat-mdc-button-base,.overflow-trigger.mat-mdc-button-base,.toolbar-icon-btn.mat-mdc-button-base{--mdc-text-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-filled-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-protected-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-outlined-button-container-height: var( --p-table-toolbar-action-size, 36px )}.action-btn.mat-mdc-unelevated-button:not(:disabled):not([aria-disabled=true]),.action-btn.mat-mdc-outlined-button:not(:disabled):not([aria-disabled=true]),.action-btn.pfx-tonal:not(:disabled):not([aria-disabled=true]){border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #d7dbe5) 82%,transparent)}.action-btn.mat-mdc-unelevated-button:not(:disabled):not([aria-disabled=true]){box-shadow:none}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]),.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]){--praxis-toolbar-primary: var( --mat-sys-primary, var(--md-sys-color-primary) );--praxis-toolbar-on-primary: var( --mat-sys-on-primary, var(--md-sys-color-on-primary) );--praxis-toolbar-primary-action-container: var( --p-table-toolbar-primary-action-container, color-mix( in srgb, var(--praxis-toolbar-primary) 70%, var(--mat-sys-shadow, #000) 30% ) );--mdc-filled-button-container-color: var( --praxis-toolbar-primary-action-container );--mdc-filled-button-label-text-color: var( --praxis-toolbar-on-primary );--mat-filled-button-state-layer-color: var( --praxis-toolbar-on-primary );background:var(--praxis-toolbar-primary-action-container)!important;border-color:transparent;color:var(--praxis-toolbar-on-primary)!important;box-shadow:0 2px 6px color-mix(in srgb,var(--praxis-toolbar-primary-action-container) 22%,transparent)}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]):hover,.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]):hover{background:color-mix(in srgb,var(--praxis-toolbar-primary-action-container) 88%,var(--praxis-toolbar-on-primary) 12%)!important}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]) .mat-icon,.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]) .mat-icon{color:var(--praxis-toolbar-on-primary)!important}.action-btn.mat-mdc-button-base{padding-inline:var(--praxis-action-control-padding-inline, 12px)}.action-btn[aria-disabled=true],.action-btn--fab[aria-disabled=true]{--mdc-text-button-label-text-color: var(--md-sys-color-on-surface-variant);--mdc-filled-button-container-color: color-mix( in srgb, var(--md-sys-color-surface-container-high) 78%, transparent );--mdc-filled-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-outlined-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-protected-button-label-text-color: var( --md-sys-color-on-surface-variant );background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 78%,transparent)!important;color:var(--md-sys-color-on-surface-variant)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-outline) 62%,transparent)!important;cursor:not-allowed;filter:saturate(.55);opacity:var(--praxis-action-control-disabled-opacity, .62)}.action-btn[aria-disabled=true] .mat-icon,.action-btn--fab[aria-disabled=true] .mat-icon{color:currentColor!important}.action-btn[aria-disabled=true]:focus-visible,.action-btn--fab[aria-disabled=true]:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.mat-mdc-menu-item[aria-disabled=true]{color:var(--md-sys-color-on-surface-variant);cursor:not-allowed;opacity:1}.praxis-toolbar-menu-action__label,.praxis-toolbar-menu-action__reason{display:block}.praxis-toolbar-menu-action__reason{max-width:280px;color:var(--md-sys-color-on-surface-variant);font-size:12px;font-weight:400;line-height:1.35;white-space:normal}.end-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px);margin-inline-start:4px;padding-inline-start:12px;border-inline-start:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.end-actions:empty{display:none;gap:0;margin-inline-start:0;padding-inline-start:0;border-inline-start:0}.praxis-toolbar-icon-action--primary{color:var(--md-sys-color-primary)}.praxis-toolbar-icon-action--accent{color:var(--md-sys-color-tertiary)}.praxis-toolbar-icon-action--warn{color:var(--md-sys-color-error)}.praxis-toolbar.p-table-toolbar--divider-between-groups .actions-group--has-business .utility-actions:not(:empty){margin-inline-start:4px;padding-inline-start:12px;border-inline-start:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.praxis-toolbar.p-table-toolbar--divider-start:not(.praxis-toolbar--has-identity) .toolbar-query{padding-inline-end:12px;border-inline-end:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.end-actions ::ng-deep .praxis-table-toolbar-action--ai,.end-actions ::ng-deep .praxis-table-ai-trigger{color:var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) );background:color-mix(in srgb,var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) ) 10%,transparent);border:1px solid color-mix(in srgb,var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) ) 24%,transparent)}.end-actions ::ng-deep [data-role=table-settings]{color:var( --p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default) )}@container praxis-table-toolbar (max-width: 960px){.actions-group{display:none}.mobile-actions{display:flex}.toolbar-actions{justify-content:flex-end}}@container praxis-table-toolbar (max-width: 720px){.praxis-toolbar.praxis-toolbar--has-query{grid-template-areas:\"query query query\" \"actions actions actions\"}.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope scope scope\" \"query query query\" \"actions actions actions\"}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope scope scope\" \"query query query\"}.toolbar-query{grid-template-columns:minmax(0,1fr)}.toolbar-query>:is(praxis-filter,[advancedFilter]),.toolbar-shortcuts{grid-column:1}.toolbar-shortcuts{justify-content:flex-start}.praxis-table-quick-filters{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}}@container praxis-table-toolbar (max-width: 540px){.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity identity\" \"actions actions actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity identity\" \"actions actions actions\" \"scope scope scope\" \"query query query\"}.toolbar-actions{justify-self:stretch;justify-content:flex-end}.toolbar-actions,.toolbar-query{--p-table-toolbar-action-size: var(--praxis-action-control-spacious-height, 44px)}.toolbar-identity__subtitle{display:none}.praxis-table-quick-filter.mat-mdc-outlined-button{min-height:44px}}\n"], dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { 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.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { 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: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
3043
|
+
`, isInline: true, styles: [":host{display:block;container-name:praxis-table-toolbar;container-type:inline-size}.praxis-toolbar{--p-table-toolbar-bg-default: linear-gradient( 180deg, color-mix( in srgb, var(--md-sys-color-surface, #fff) 96%, transparent ), color-mix( in srgb, var(--md-sys-color-surface-container-low, #f6f8fc) 100%, transparent ) );--p-table-toolbar-fg-default: var( --md-sys-color-on-surface, currentColor );--p-table-toolbar-border-color-default: color-mix( in srgb, var(--md-sys-color-outline-variant, #d7dbe5) 78%, transparent );--p-table-toolbar-divider-color-default: color-mix( in srgb, var(--md-sys-color-outline) 42%, transparent );--p-table-toolbar-action-hover-bg-default: color-mix( in srgb, var(--md-sys-color-primary) 10%, transparent );--p-table-toolbar-action-active-bg-default: color-mix( in srgb, var(--md-sys-color-primary) 16%, transparent );--p-table-toolbar-action-focus-ring-default: color-mix( in srgb, var(--md-sys-color-primary) 52%, transparent );--p-table-toolbar-ai-accent-color-default: var( --md-sys-color-primary, #0b72d9 );--p-table-toolbar-status-fg-default: var( --md-sys-color-on-surface-variant, currentColor );background:var( --p-table-toolbar-bg, var(--p-table-toolbar-bg-default) );color:var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default));box-shadow:var(--p-table-toolbar-shadow, none);padding:var( --p-table-toolbar-layout-padding, var(--p-table-toolbar-padding-block, var(--pfx-toolbar-pad-y, 6px)) var( --p-table-toolbar-padding-inline, var(--pfx-toolbar-pad-x, 12px) ) );min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) );display:grid;grid-template-areas:\"actions actions actions\";grid-template-columns:max-content minmax(0,1fr) auto;align-items:center;column-gap:max(var(--p-table-toolbar-gap, 8px),12px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px);border:var(--p-table-toolbar-border-width, 1px) solid var( --p-table-toolbar-border-color, var(--p-table-toolbar-border-color-default) );border-radius:var(--p-table-toolbar-radius, 10px)}.praxis-toolbar.p-table-toolbar--flat{--p-table-toolbar-border-width: 0;--p-table-toolbar-shadow: none}.praxis-toolbar.p-table-toolbar--elevated{--p-table-toolbar-shadow: 0 12px 28px color-mix(in srgb, var(--md-sys-color-shadow, #000) 12%, transparent)}.praxis-toolbar.p-table-toolbar--integrated{--p-table-toolbar-bg: transparent;--p-table-toolbar-border-width: 0;--p-table-toolbar-radius: 0}.praxis-toolbar.p-table-toolbar--layout-separator{border-block-end-width:1px;border-block-end-style:solid;border-block-end-color:var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.praxis-toolbar.p-table-toolbar--compact{--p-table-toolbar-min-height: 36px;--p-table-toolbar-padding-block: 4px;--p-table-toolbar-padding-inline: 10px;--p-table-toolbar-gap: 4px;--p-table-toolbar-actions-gap: 4px;--p-table-toolbar-action-size: var( --praxis-action-control-compact-height, 36px );--p-table-toolbar-action-radius: var( --praxis-action-control-radius, 8px )}.praxis-toolbar.p-table-toolbar--comfortable{--p-table-toolbar-min-height: 44px;--p-table-toolbar-action-size: var( --praxis-action-control-height, 40px )}.praxis-toolbar.p-table-toolbar--spacious{--p-table-toolbar-min-height: 52px;--p-table-toolbar-padding-block: 8px;--p-table-toolbar-padding-inline: 16px;--p-table-toolbar-gap: 8px;--p-table-toolbar-actions-gap: 8px;--p-table-toolbar-action-size: var( --praxis-action-control-spacious-height, 44px )}.praxis-toolbar.p-table-toolbar--square{--p-table-toolbar-radius: 0;--p-table-toolbar-action-radius: 4px}.praxis-toolbar.p-table-toolbar--pill{--p-table-toolbar-radius: 999px;--p-table-toolbar-action-radius: 999px}:host(.praxis-toolbar-stack-top) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(.praxis-toolbar-footer) .praxis-toolbar{border-top-left-radius:0;border-top-right-radius:0}:host(.praxis-toolbar-footer.footer-flat) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}.praxis-toolbar.mat-toolbar-single-row,.praxis-toolbar .mat-toolbar-row{height:auto}.praxis-toolbar.mat-toolbar-multiple-rows{min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) )}.praxis-toolbar.praxis-toolbar--has-query{grid-template-areas:\"query query actions\"}.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope query actions\"}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope query query\"}.toolbar-query{grid-area:query;display:flex;flex-wrap:wrap;align-items:start;min-width:0;column-gap:var(--p-table-toolbar-gap, 8px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px)}.toolbar-query>*{min-width:0}.toolbar-query>:is(praxis-filter,[advancedFilter]){flex:1 1 620px}.toolbar-shortcuts{flex:0 1 auto;display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--p-table-toolbar-gap, 8px);min-width:0;max-width:100%;margin-inline-start:auto}.toolbar-shortcuts ::ng-deep>[toolbar]{min-width:0;max-width:100%}.toolbar-shortcuts ::ng-deep>[toolbar].mat-mdc-button-base{--mdc-text-button-container-height: var( --p-table-toolbar-query-control-height, 40px );--mdc-outlined-button-container-height: var( --p-table-toolbar-query-control-height, 40px );min-height:var(--p-table-toolbar-query-control-height, 40px);border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) )}.toolbar-shortcuts:not(:has(*)){display:none}.toolbar-identity{grid-area:identity;display:flex;align-items:center;gap:var(--p-table-toolbar-identity-gap, 8px);min-width:0;max-width:100%;min-height:var(--p-table-toolbar-identity-min-height, 30px);margin-block-end:var(--p-table-toolbar-identity-margin-bottom, 0);padding-inline:2px;color:var( --p-table-toolbar-title-fg, var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default)) )}.toolbar-identity--center{text-align:center;justify-content:center}.toolbar-identity--end{text-align:end;justify-content:flex-end}.toolbar-identity--center .toolbar-identity__copy{align-items:center}.toolbar-identity--end .toolbar-identity__copy{align-items:flex-end}.toolbar-identity__icon{width:var(--p-table-toolbar-identity-icon-size, 28px);height:var(--p-table-toolbar-identity-icon-size, 28px);border-radius:var(--p-table-toolbar-identity-icon-radius, 8px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) );background:color-mix(in srgb,var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) ) 8%,transparent);border:1px solid color-mix(in srgb,var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) ) 18%,transparent)}.toolbar-identity__icon .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.toolbar-identity__copy{display:flex;flex-direction:column;min-width:0;max-width:100%;gap:1px}.toolbar-identity__title,.toolbar-identity__subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-identity__title{font-size:var(--p-table-toolbar-title-font-size, 14px);font-weight:var(--p-table-toolbar-title-font-weight, 700);line-height:1.2;letter-spacing:0;color:var(--p-table-toolbar-title-fg, currentColor)}.toolbar-identity__subtitle{font-size:var(--p-table-toolbar-subtitle-font-size, 11.5px);line-height:1.25;color:var( --p-table-toolbar-subtitle-fg, var( --p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default) ) )}.toolbar-actions{grid-area:actions;display:flex;align-items:center;align-self:start;justify-self:end;justify-content:flex-end;gap:var(--p-table-toolbar-gap, 6px);min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) );min-width:0}.praxis-toolbar.p-table-toolbar--align-start .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-start .toolbar-actions{justify-self:start}.praxis-toolbar.p-table-toolbar--align-center .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-center .toolbar-actions{justify-self:center}.praxis-toolbar.p-table-toolbar--align-end .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-end .toolbar-actions{justify-self:end}.actions-group{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px)}.praxis-toolbar--compact-actions .actions-group{position:fixed;inset-block-start:-10000px;inset-inline-start:0;inline-size:max-content;max-inline-size:none;visibility:hidden;pointer-events:none}.praxis-toolbar--compact-actions .mobile-actions{display:flex}.praxis-toolbar--compact-actions .toolbar-query{flex-direction:column}.praxis-toolbar--compact-actions .toolbar-shortcuts{justify-content:flex-start;margin-inline-start:0}.business-actions,.utility-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px);min-width:0}.business-actions:empty,.utility-actions:empty{display:none}.action-btn:not(.praxis-icon-button){width:fit-content;max-width:100%;height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );min-width:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );padding-inline:var(--praxis-action-control-padding-inline, 12px);border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) );gap:var(--praxis-action-control-gap, 8px);font-size:var(--praxis-action-control-font-size, .875rem);font-weight:var(--praxis-action-control-font-weight, 500);line-height:var(--praxis-action-control-line-height, 1.25rem);color:var(--p-table-toolbar-action-fg, inherit);background:var(--p-table-toolbar-action-bg, transparent)}.action-btn:not(.praxis-icon-button):hover:not(:disabled):not([aria-disabled=true]){background:var( --p-table-toolbar-action-hover-bg, var(--p-table-toolbar-action-hover-bg-default) )}.action-btn:not(.praxis-icon-button):focus-visible{outline:2px solid var( --p-table-toolbar-action-focus-ring, var( --praxis-action-control-focus-ring, var(--p-table-toolbar-action-focus-ring-default) ) );outline-offset:2px}.toolbar-icon-btn{width:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) );color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 9%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.toolbar-icon-btn:hover:not(:disabled){color:var(--md-sys-color-on-primary-container);background:color-mix(in srgb,var(--md-sys-color-primary) 16%,transparent);border-color:color-mix(in srgb,var(--md-sys-color-primary) 36%,transparent)}.action-btn--fab{width:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );box-shadow:none}.pfx-tonal{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.pfx-tonal:hover{background:var(--md-sys-color-secondary-container)}.mobile-actions{display:none;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px)}.overflow-trigger{height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) )}.action-btn .mat-icon,.action-btn--fab .mat-icon,.overflow-trigger .mat-icon{margin:0;font-size:var(--praxis-action-control-icon-size, 18px);width:var(--praxis-action-control-icon-size, 18px);height:var(--praxis-action-control-icon-size, 18px);line-height:var(--praxis-action-control-icon-size, 18px)}.praxis-table-export-status{max-width:13rem;overflow:hidden;color:var(--p-table-toolbar-status-fg, currentColor);font-size:.75rem;font-weight:600;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.praxis-table-export-progress-icon{animation:praxis-table-export-spin .9s linear infinite}@keyframes praxis-table-export-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-table-export-progress-icon{animation:none}}.praxis-table-column-menu-item.mat-mdc-menu-item{min-height:40px}.praxis-table-export-menu-item.mat-mdc-menu-item{min-width:280px;white-space:nowrap}.praxis-table-column-menu-content{align-items:center;display:flex;gap:10px;min-height:40px;width:100%}.praxis-table-column-menu-check.mat-icon{color:var(--md-sys-color-primary, currentColor);flex:0 0 20px;font-size:20px;height:20px;line-height:20px;margin-inline-end:0;width:20px}.praxis-table-quick-filters{grid-area:scope;align-self:start;align-items:center;display:flex;flex-wrap:nowrap;gap:0;min-height:var(--p-table-toolbar-min-height, 44px)}.praxis-table-quick-filter.mat-mdc-outlined-button{--mdc-outlined-button-container-height: var( --p-table-toolbar-query-control-height, 40px );min-height:var(--p-table-toolbar-query-control-height, 40px);padding-inline:14px;border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) );position:relative;z-index:0;white-space:nowrap}.praxis-table-quick-filter+.praxis-table-quick-filter{margin-inline-start:-1px}.praxis-table-quick-filter:first-child:not(:only-child){border-start-end-radius:0;border-end-end-radius:0}.praxis-table-quick-filter:not(:first-child):not(:last-child){border-radius:0}.praxis-table-quick-filter:last-child:not(:only-child){border-start-start-radius:0;border-end-start-radius:0}.praxis-table-quick-filter:only-child{border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) )}.praxis-table-quick-filter--active.mat-mdc-outlined-button{background:color-mix(in srgb,var(--md-sys-color-primary) 12%,transparent);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-primary);z-index:1}.praxis-table-quick-filter:focus-visible{z-index:2}.action-btn.mat-mdc-button-base,.action-btn--fab.mat-mdc-button-base,.overflow-trigger.mat-mdc-button-base,.toolbar-icon-btn.mat-mdc-button-base{--mdc-text-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-filled-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-protected-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-outlined-button-container-height: var( --p-table-toolbar-action-size, 36px )}.action-btn.mat-mdc-unelevated-button:not(:disabled):not([aria-disabled=true]),.action-btn.mat-mdc-outlined-button:not(:disabled):not([aria-disabled=true]),.action-btn.pfx-tonal:not(:disabled):not([aria-disabled=true]){border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #d7dbe5) 82%,transparent)}.action-btn.mat-mdc-unelevated-button:not(:disabled):not([aria-disabled=true]){box-shadow:none}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]),.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]){--praxis-toolbar-primary: var( --mat-sys-primary, var(--md-sys-color-primary) );--praxis-toolbar-on-primary: var( --mat-sys-on-primary, var(--md-sys-color-on-primary) );--praxis-toolbar-primary-action-container: var( --p-table-toolbar-primary-action-container, color-mix( in srgb, var(--praxis-toolbar-primary) 70%, var(--mat-sys-shadow, #000) 30% ) );--mdc-filled-button-container-color: var( --praxis-toolbar-primary-action-container );--mdc-filled-button-label-text-color: var(--praxis-toolbar-on-primary);--mat-filled-button-state-layer-color: var(--praxis-toolbar-on-primary);background:var(--praxis-toolbar-primary-action-container)!important;border-color:transparent;color:var(--praxis-toolbar-on-primary)!important;box-shadow:0 2px 6px color-mix(in srgb,var(--praxis-toolbar-primary-action-container) 22%,transparent)}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]):hover,.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]):hover{background:color-mix(in srgb,var(--praxis-toolbar-primary-action-container) 88%,var(--praxis-toolbar-on-primary) 12%)!important}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]) .mat-icon,.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]) .mat-icon{color:var(--praxis-toolbar-on-primary)!important}.action-btn.mat-mdc-button-base{padding-inline:var(--praxis-action-control-padding-inline, 12px)}.action-btn[aria-disabled=true],.action-btn--fab[aria-disabled=true]{--mdc-text-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-filled-button-container-color: color-mix( in srgb, var(--md-sys-color-surface-container-high) 78%, transparent );--mdc-filled-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-outlined-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-protected-button-label-text-color: var( --md-sys-color-on-surface-variant );background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 78%,transparent)!important;color:var(--md-sys-color-on-surface-variant)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-outline) 62%,transparent)!important;cursor:not-allowed;filter:saturate(.55);opacity:var(--praxis-action-control-disabled-opacity, .62)}.action-btn[aria-disabled=true] .mat-icon,.action-btn--fab[aria-disabled=true] .mat-icon{color:currentColor!important}.action-btn[aria-disabled=true]:focus-visible,.action-btn--fab[aria-disabled=true]:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.mat-mdc-menu-item[aria-disabled=true],.mat-mdc-menu-item.mat-mdc-menu-item-disabled{color:var(--md-sys-color-on-surface-variant)!important;cursor:not-allowed;opacity:1!important}.praxis-toolbar-menu-action__label,.praxis-toolbar-menu-action__reason{display:block}.praxis-toolbar-menu-action__reason{max-width:280px;color:var(--md-sys-color-on-surface-variant)!important;font-size:12px;font-weight:400;line-height:1.35;white-space:normal}.praxis-table-compact-command-group{box-sizing:border-box;margin:6px 12px 2px;padding:8px 4px 4px;border-block-start:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 74%,transparent);color:var(--md-sys-color-on-surface-variant);font-size:.75rem;font-weight:600;line-height:1rem;letter-spacing:.04em;text-transform:uppercase}.praxis-table-compact-command-group:first-child{margin-block-start:2px;padding-block-start:4px;border-block-start:0}.praxis-table-compact-command-group__hint{max-width:280px;margin:0 16px 6px;color:var(--md-sys-color-on-surface-variant);font-size:.75rem;font-weight:400;line-height:1.35;white-space:normal}.mat-mdc-menu-item[aria-disabled=true] .praxis-toolbar-menu-action__reason,.mat-mdc-menu-item.mat-mdc-menu-item-disabled .praxis-toolbar-menu-action__reason{opacity:1!important}.end-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px);margin-inline-start:4px;padding-inline-start:12px;border-inline-start:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.end-actions ::ng-deep>[end-actions]{height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );min-height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) )}.end-actions ::ng-deep>[end-actions].mat-mdc-button-base{--mdc-text-button-container-height: var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );--mdc-filled-button-container-height: var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );--mdc-protected-button-container-height: var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );--mdc-outlined-button-container-height: var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) )}.end-actions:empty{display:none;gap:0;margin-inline-start:0;padding-inline-start:0;border-inline-start:0}.praxis-toolbar-icon-action--primary{color:var(--md-sys-color-primary)}.praxis-toolbar-icon-action--accent{color:var(--md-sys-color-tertiary)}.praxis-toolbar-icon-action--warn{color:var(--md-sys-color-error)}.praxis-toolbar.p-table-toolbar--divider-between-groups .actions-group--has-business .utility-actions:not(:empty){margin-inline-start:4px;padding-inline-start:12px;border-inline-start:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.praxis-toolbar.p-table-toolbar--divider-start:not(.praxis-toolbar--has-identity) .toolbar-query{padding-inline-end:12px;border-inline-end:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.end-actions ::ng-deep .praxis-table-toolbar-action--ai,.end-actions ::ng-deep .praxis-table-ai-trigger{color:var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) );background:color-mix(in srgb,var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) ) 10%,transparent);border:1px solid color-mix(in srgb,var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) ) 24%,transparent)}.end-actions ::ng-deep [data-role=table-settings]{color:var( --p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default) )}@container praxis-table-toolbar (max-width: 1200px){.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope scope actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope scope scope\" \"query query query\"}.toolbar-query{width:100%}}@container praxis-table-toolbar (max-width: 960px){.actions-group{display:none}.mobile-actions{display:flex}.toolbar-actions{justify-content:flex-end}}@container praxis-table-toolbar (max-width: 720px){.praxis-toolbar.praxis-toolbar--has-query{grid-template-areas:\"query query query\" \"actions actions actions\"}.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope scope scope\" \"query query query\" \"actions actions actions\"}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope scope scope\" \"query query query\"}.toolbar-query{flex-direction:column}.toolbar-shortcuts{justify-content:flex-start;margin-inline-start:0}.praxis-table-quick-filters{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}}@container praxis-table-toolbar (max-width: 540px){.praxis-toolbar{--p-table-toolbar-query-control-height: 44px}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity identity\" \"actions actions actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity identity\" \"actions actions actions\" \"scope scope scope\" \"query query query\"}.toolbar-actions{justify-self:stretch;justify-content:flex-end}.toolbar-actions,.toolbar-query{--p-table-toolbar-action-size: var( --praxis-action-control-spacious-height, 44px )}.toolbar-identity__subtitle{display:none}.praxis-table-quick-filter.mat-mdc-outlined-button{min-height:44px}.praxis-table-quick-filters--binary{width:100%;min-width:0}.praxis-table-quick-filters--binary .praxis-table-quick-filter.mat-mdc-outlined-button{flex:1 1 0;min-width:0}}\n"], dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { 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.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { 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: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
2804
3044
|
}
|
|
2805
3045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisTableToolbar, decorators: [{
|
|
2806
3046
|
type: Component,
|
|
@@ -2815,9 +3055,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
2815
3055
|
NgTemplateOutlet,
|
|
2816
3056
|
], template: `
|
|
2817
3057
|
<mat-toolbar
|
|
3058
|
+
#toolbarRoot
|
|
2818
3059
|
class="praxis-toolbar"
|
|
2819
3060
|
role="group"
|
|
2820
3061
|
[attr.aria-label]="getToolbarAriaLabel()"
|
|
3062
|
+
[class.praxis-toolbar--compact-actions]="actionsCompacted()"
|
|
2821
3063
|
[class.praxis-toolbar--has-identity]="showMain && hasToolbarIdentity()"
|
|
2822
3064
|
[class.praxis-toolbar--has-query]="showMain"
|
|
2823
3065
|
[class.praxis-toolbar--has-scope]="showMain && shouldShowQuickFilters()"
|
|
@@ -2908,6 +3150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
2908
3150
|
>
|
|
2909
3151
|
@if (showMain && hasToolbarIdentity()) {
|
|
2910
3152
|
<div
|
|
3153
|
+
#toolbarIdentity
|
|
2911
3154
|
class="toolbar-identity"
|
|
2912
3155
|
role="group"
|
|
2913
3156
|
data-toolbar-region="identity"
|
|
@@ -2946,6 +3189,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
2946
3189
|
@if (shouldShowQuickFilters()) {
|
|
2947
3190
|
<div
|
|
2948
3191
|
class="praxis-table-quick-filters"
|
|
3192
|
+
[class.praxis-table-quick-filters--binary]="
|
|
3193
|
+
getQuickFilters().length === 2
|
|
3194
|
+
"
|
|
2949
3195
|
role="group"
|
|
2950
3196
|
data-toolbar-region="scope"
|
|
2951
3197
|
[attr.aria-label]="getQuickFiltersLabel()"
|
|
@@ -2990,6 +3236,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
2990
3236
|
<div class="toolbar-actions" data-toolbar-region="commands">
|
|
2991
3237
|
@if (showActionsGroup) {
|
|
2992
3238
|
<div
|
|
3239
|
+
#fullActionsGroup
|
|
2993
3240
|
class="actions-group"
|
|
2994
3241
|
role="group"
|
|
2995
3242
|
[class.actions-group--has-business]="hasBusinessActions()"
|
|
@@ -3064,7 +3311,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3064
3311
|
}
|
|
3065
3312
|
{{ action.label }}
|
|
3066
3313
|
</button>
|
|
3067
|
-
<mat-menu
|
|
3314
|
+
<mat-menu
|
|
3315
|
+
#startActionMenu="matMenu"
|
|
3316
|
+
yPosition="below"
|
|
3317
|
+
[overlapTrigger]="false"
|
|
3318
|
+
>
|
|
3068
3319
|
@for (
|
|
3069
3320
|
child of getVisibleActionChildren(action);
|
|
3070
3321
|
track getActionId(child)
|
|
@@ -3277,7 +3528,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3277
3528
|
}
|
|
3278
3529
|
{{ action.label }}
|
|
3279
3530
|
</button>
|
|
3280
|
-
<mat-menu
|
|
3531
|
+
<mat-menu
|
|
3532
|
+
#endActionMenu="matMenu"
|
|
3533
|
+
yPosition="below"
|
|
3534
|
+
[overlapTrigger]="false"
|
|
3535
|
+
>
|
|
3281
3536
|
@for (
|
|
3282
3537
|
child of getVisibleActionChildren(action);
|
|
3283
3538
|
track getActionId(child)
|
|
@@ -3467,7 +3722,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3467
3722
|
{{ exportStatusMessage }}
|
|
3468
3723
|
</span>
|
|
3469
3724
|
}
|
|
3470
|
-
<mat-menu
|
|
3725
|
+
<mat-menu
|
|
3726
|
+
#exportMenu="matMenu"
|
|
3727
|
+
yPosition="below"
|
|
3728
|
+
[overlapTrigger]="false"
|
|
3729
|
+
>
|
|
3471
3730
|
@for (format of config?.export?.formats; track format) {
|
|
3472
3731
|
<button
|
|
3473
3732
|
mat-menu-item
|
|
@@ -3512,6 +3771,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3512
3771
|
<mat-menu
|
|
3513
3772
|
#columnsMenu="matMenu"
|
|
3514
3773
|
class="praxis-table-columns-menu"
|
|
3774
|
+
yPosition="below"
|
|
3775
|
+
[overlapTrigger]="false"
|
|
3515
3776
|
>
|
|
3516
3777
|
@for (column of config?.columns; track column.field) {
|
|
3517
3778
|
<button
|
|
@@ -3577,6 +3838,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3577
3838
|
<mat-menu
|
|
3578
3839
|
#densityMenu="matMenu"
|
|
3579
3840
|
class="praxis-table-density-menu"
|
|
3841
|
+
yPosition="below"
|
|
3842
|
+
[overlapTrigger]="false"
|
|
3580
3843
|
>
|
|
3581
3844
|
@for (density of getDensityOptions(); track density) {
|
|
3582
3845
|
<button
|
|
@@ -3604,6 +3867,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3604
3867
|
}
|
|
3605
3868
|
@if (showEndActions) {
|
|
3606
3869
|
<div
|
|
3870
|
+
#endActionsGroup
|
|
3607
3871
|
class="end-actions"
|
|
3608
3872
|
role="group"
|
|
3609
3873
|
[attr.aria-label]="getToolbarConfigurationLabel()"
|
|
@@ -3639,99 +3903,143 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3639
3903
|
[matTooltip]="getMoreActionsLabel()"
|
|
3640
3904
|
matTooltipPosition="below"
|
|
3641
3905
|
></button>
|
|
3642
|
-
<mat-menu
|
|
3906
|
+
<mat-menu
|
|
3907
|
+
#compactCommandsMenu="matMenu"
|
|
3908
|
+
yPosition="below"
|
|
3909
|
+
[overlapTrigger]="false"
|
|
3910
|
+
>
|
|
3911
|
+
@if (getOverflowActions().length) {
|
|
3912
|
+
<div
|
|
3913
|
+
class="praxis-table-compact-command-group"
|
|
3914
|
+
role="heading"
|
|
3915
|
+
aria-level="3"
|
|
3916
|
+
>
|
|
3917
|
+
{{ getCompactActionsGroupLabel() }}
|
|
3918
|
+
</div>
|
|
3919
|
+
@if (
|
|
3920
|
+
getCompactOverflowCommonDisabledReason();
|
|
3921
|
+
as commonDisabledReason
|
|
3922
|
+
) {
|
|
3923
|
+
<p class="praxis-table-compact-command-group__hint">
|
|
3924
|
+
{{ commonDisabledReason }}
|
|
3925
|
+
</p>
|
|
3926
|
+
}
|
|
3927
|
+
}
|
|
3643
3928
|
@for (
|
|
3644
3929
|
action of getOverflowActions();
|
|
3645
3930
|
track getActionId(action)
|
|
3646
3931
|
) {
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
)
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
{{ action.label }}
|
|
3665
|
-
</span>
|
|
3666
|
-
@if (getActionDisabledReason(action); as reason) {
|
|
3667
|
-
<span class="praxis-toolbar-menu-action__reason">
|
|
3668
|
-
{{ reason }}
|
|
3932
|
+
@if (
|
|
3933
|
+
getActionType(action) === 'menu' &&
|
|
3934
|
+
getVisibleActionChildren(action).length
|
|
3935
|
+
) {
|
|
3936
|
+
<button
|
|
3937
|
+
mat-menu-item
|
|
3938
|
+
[disabled]="isActionDisabled(action)"
|
|
3939
|
+
[matMenuTriggerFor]="
|
|
3940
|
+
isActionDisabled(action) ? null : compactActionMenu
|
|
3941
|
+
"
|
|
3942
|
+
[attr.aria-label]="getActionAriaLabel(action)"
|
|
3943
|
+
>
|
|
3944
|
+
@if (action.icon) {
|
|
3945
|
+
<mat-icon [praxisIcon]="action.icon"></mat-icon>
|
|
3946
|
+
}
|
|
3947
|
+
<span class="praxis-toolbar-menu-action__label">
|
|
3948
|
+
{{ action.label }}
|
|
3669
3949
|
</span>
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3950
|
+
</button>
|
|
3951
|
+
<mat-menu #compactActionMenu="matMenu">
|
|
3952
|
+
@for (
|
|
3953
|
+
child of getVisibleActionChildren(action);
|
|
3954
|
+
track getActionId(child)
|
|
3955
|
+
) {
|
|
3956
|
+
<button
|
|
3957
|
+
mat-menu-item
|
|
3958
|
+
[disabled]="isActionDisabled(child)"
|
|
3959
|
+
[attr.aria-label]="getActionAriaLabel(child)"
|
|
3960
|
+
(click)="
|
|
3961
|
+
emitOverflowToolbarAction(
|
|
3962
|
+
$event,
|
|
3963
|
+
getActionId(child),
|
|
3964
|
+
child
|
|
3965
|
+
)
|
|
3966
|
+
"
|
|
3967
|
+
>
|
|
3968
|
+
@if (child.icon) {
|
|
3969
|
+
<mat-icon [praxisIcon]="child.icon"></mat-icon>
|
|
3970
|
+
}
|
|
3971
|
+
<span class="praxis-toolbar-menu-action__label">
|
|
3972
|
+
{{ child.label || getActionId(child) }}
|
|
3973
|
+
</span>
|
|
3974
|
+
@if (getActionDisabledReason(child); as reason) {
|
|
3975
|
+
<span class="praxis-toolbar-menu-action__reason">
|
|
3976
|
+
{{ reason }}
|
|
3977
|
+
</span>
|
|
3978
|
+
}
|
|
3979
|
+
</button>
|
|
3980
|
+
}
|
|
3981
|
+
</mat-menu>
|
|
3982
|
+
} @else {
|
|
3983
|
+
<button
|
|
3984
|
+
mat-menu-item
|
|
3985
|
+
[disabled]="isActionDisabled(action)"
|
|
3986
|
+
[attr.aria-label]="getActionAriaLabel(action)"
|
|
3987
|
+
(click)="
|
|
3988
|
+
emitOverflowToolbarAction(
|
|
3989
|
+
$event,
|
|
3990
|
+
getActionId(action),
|
|
3991
|
+
action
|
|
3992
|
+
)
|
|
3684
3993
|
"
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
<button
|
|
3703
|
-
mat-menu-item
|
|
3704
|
-
[matMenuTriggerFor]="mobileDensityMenu"
|
|
3705
|
-
class="praxis-table-toolbar-action--density"
|
|
3706
|
-
>
|
|
3707
|
-
<mat-icon [praxisIcon]="'density_medium'"></mat-icon>
|
|
3708
|
-
{{ getDensityToggleLabel() }}
|
|
3709
|
-
</button>
|
|
3994
|
+
>
|
|
3995
|
+
@if (action.icon) {
|
|
3996
|
+
<mat-icon [praxisIcon]="action.icon"></mat-icon>
|
|
3997
|
+
}
|
|
3998
|
+
<span class="praxis-toolbar-menu-action__label">
|
|
3999
|
+
{{ action.label }}
|
|
4000
|
+
</span>
|
|
4001
|
+
@if (
|
|
4002
|
+
getCompactActionSpecificDisabledReason(action);
|
|
4003
|
+
as reason
|
|
4004
|
+
) {
|
|
4005
|
+
<span class="praxis-toolbar-menu-action__reason">
|
|
4006
|
+
{{ reason }}
|
|
4007
|
+
</span>
|
|
4008
|
+
}
|
|
4009
|
+
</button>
|
|
4010
|
+
}
|
|
3710
4011
|
}
|
|
3711
|
-
</mat-menu>
|
|
3712
|
-
|
|
3713
|
-
<mat-menu #mobileExportMenu="matMenu">
|
|
3714
4012
|
@if (config?.export?.enabled) {
|
|
4013
|
+
<div
|
|
4014
|
+
class="praxis-table-compact-command-group"
|
|
4015
|
+
role="heading"
|
|
4016
|
+
aria-level="3"
|
|
4017
|
+
>
|
|
4018
|
+
{{ getCompactExportGroupLabel() }}
|
|
4019
|
+
</div>
|
|
3715
4020
|
@for (format of config?.export?.formats; track format) {
|
|
3716
4021
|
<button
|
|
3717
4022
|
mat-menu-item
|
|
3718
|
-
class="praxis-table-export-menu-item"
|
|
4023
|
+
class="praxis-table-export-menu-item praxis-table-compact-command--export"
|
|
3719
4024
|
[disabled]="exportBusy"
|
|
3720
|
-
[matTooltip]="getExportFormatTooltip(format)"
|
|
3721
4025
|
[attr.aria-label]="getExportFormatAriaLabel(format)"
|
|
3722
4026
|
(click)="emitExportAction($event, format)"
|
|
3723
4027
|
>
|
|
3724
4028
|
<mat-icon
|
|
3725
|
-
[
|
|
4029
|
+
[class.praxis-table-export-progress-icon]="exportBusy"
|
|
4030
|
+
[praxisIcon]="
|
|
4031
|
+
exportBusy
|
|
4032
|
+
? 'progress_activity'
|
|
4033
|
+
: getExportIcon(format)
|
|
4034
|
+
"
|
|
3726
4035
|
></mat-icon>
|
|
3727
4036
|
{{ getExportFormatLabel(format) }}
|
|
3728
4037
|
</button>
|
|
3729
4038
|
@if (isVisibleExcelExportEnabled(format)) {
|
|
3730
4039
|
<button
|
|
3731
4040
|
mat-menu-item
|
|
3732
|
-
class="praxis-table-export-menu-item"
|
|
4041
|
+
class="praxis-table-export-menu-item praxis-table-compact-command--export"
|
|
3733
4042
|
[disabled]="exportBusy"
|
|
3734
|
-
[matTooltip]="getVisibleExcelExportDescription()"
|
|
3735
4043
|
[attr.aria-label]="getVisibleExcelExportAriaLabel()"
|
|
3736
4044
|
(click)="emitVisibleExcelExportAction($event)"
|
|
3737
4045
|
>
|
|
@@ -3741,6 +4049,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3741
4049
|
}
|
|
3742
4050
|
}
|
|
3743
4051
|
}
|
|
4052
|
+
@if (
|
|
4053
|
+
isColumnsVisibilityEnabled() || isDensityToggleEnabled()
|
|
4054
|
+
) {
|
|
4055
|
+
<div
|
|
4056
|
+
class="praxis-table-compact-command-group"
|
|
4057
|
+
role="heading"
|
|
4058
|
+
aria-level="3"
|
|
4059
|
+
>
|
|
4060
|
+
{{ getCompactViewGroupLabel() }}
|
|
4061
|
+
</div>
|
|
4062
|
+
}
|
|
4063
|
+
@if (isColumnsVisibilityEnabled()) {
|
|
4064
|
+
<button
|
|
4065
|
+
mat-menu-item
|
|
4066
|
+
[matMenuTriggerFor]="mobileColumnsMenu"
|
|
4067
|
+
class="praxis-table-compact-command--columns"
|
|
4068
|
+
>
|
|
4069
|
+
<mat-icon
|
|
4070
|
+
[praxisIcon]="getColumnsVisibilityIcon()"
|
|
4071
|
+
></mat-icon>
|
|
4072
|
+
{{ getColumnsVisibilityLabel() }}
|
|
4073
|
+
</button>
|
|
4074
|
+
}
|
|
4075
|
+
@if (isDensityToggleEnabled()) {
|
|
4076
|
+
@for (density of getDensityOptions(); track density) {
|
|
4077
|
+
<button
|
|
4078
|
+
mat-menu-item
|
|
4079
|
+
type="button"
|
|
4080
|
+
class="praxis-table-toolbar-action--density"
|
|
4081
|
+
[attr.aria-current]="
|
|
4082
|
+
isDensityActive(density) ? 'true' : null
|
|
4083
|
+
"
|
|
4084
|
+
(click)="emitDensityChange($event, density)"
|
|
4085
|
+
>
|
|
4086
|
+
<mat-icon
|
|
4087
|
+
[praxisIcon]="
|
|
4088
|
+
isDensityActive(density)
|
|
4089
|
+
? 'check'
|
|
4090
|
+
: getDensityIcon(density)
|
|
4091
|
+
"
|
|
4092
|
+
></mat-icon>
|
|
4093
|
+
{{ getDensityToggleLabel() }}:
|
|
4094
|
+
{{ getDensityLabel(density) }}
|
|
4095
|
+
</button>
|
|
4096
|
+
}
|
|
4097
|
+
}
|
|
3744
4098
|
</mat-menu>
|
|
3745
4099
|
|
|
3746
4100
|
<mat-menu
|
|
@@ -3799,33 +4153,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3799
4153
|
}
|
|
3800
4154
|
}
|
|
3801
4155
|
</mat-menu>
|
|
3802
|
-
|
|
3803
|
-
<mat-menu
|
|
3804
|
-
#mobileDensityMenu="matMenu"
|
|
3805
|
-
class="praxis-table-density-menu"
|
|
3806
|
-
>
|
|
3807
|
-
@if (isDensityToggleEnabled()) {
|
|
3808
|
-
@for (density of getDensityOptions(); track density) {
|
|
3809
|
-
<button
|
|
3810
|
-
mat-menu-item
|
|
3811
|
-
type="button"
|
|
3812
|
-
[attr.aria-current]="
|
|
3813
|
-
isDensityActive(density) ? 'true' : null
|
|
3814
|
-
"
|
|
3815
|
-
(click)="emitDensityChange($event, density)"
|
|
3816
|
-
>
|
|
3817
|
-
<mat-icon
|
|
3818
|
-
[praxisIcon]="
|
|
3819
|
-
isDensityActive(density)
|
|
3820
|
-
? 'check'
|
|
3821
|
-
: getDensityIcon(density)
|
|
3822
|
-
"
|
|
3823
|
-
></mat-icon>
|
|
3824
|
-
{{ getDensityLabel(density) }}
|
|
3825
|
-
</button>
|
|
3826
|
-
}
|
|
3827
|
-
}
|
|
3828
|
-
</mat-menu>
|
|
3829
4156
|
}
|
|
3830
4157
|
</div>
|
|
3831
4158
|
}
|
|
@@ -3835,7 +4162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3835
4162
|
`, host: {
|
|
3836
4163
|
'[class.praxis-toolbar-footer]': "placement === 'footer'",
|
|
3837
4164
|
'(document:keydown)': 'onDocumentKeydown($event)',
|
|
3838
|
-
}, styles: [":host{display:block;container-name:praxis-table-toolbar;container-type:inline-size}.praxis-toolbar{--p-table-toolbar-bg-default: linear-gradient( 180deg, color-mix( in srgb, var(--md-sys-color-surface, #fff) 96%, transparent ), color-mix( in srgb, var(--md-sys-color-surface-container-low, #f6f8fc) 100%, transparent ) );--p-table-toolbar-fg-default: var( --md-sys-color-on-surface, currentColor );--p-table-toolbar-border-color-default: color-mix( in srgb, var(--md-sys-color-outline-variant, #d7dbe5) 78%, transparent );--p-table-toolbar-divider-color-default: color-mix( in srgb, var(--md-sys-color-outline) 42%, transparent );--p-table-toolbar-action-hover-bg-default: color-mix( in srgb, var(--md-sys-color-primary) 10%, transparent );--p-table-toolbar-action-active-bg-default: color-mix( in srgb, var(--md-sys-color-primary) 16%, transparent );--p-table-toolbar-action-focus-ring-default: color-mix( in srgb, var(--md-sys-color-primary) 52%, transparent );--p-table-toolbar-ai-accent-color-default: var( --md-sys-color-primary, #0b72d9 );--p-table-toolbar-status-fg-default: var( --md-sys-color-on-surface-variant, currentColor );background:var( --p-table-toolbar-bg, var(--p-table-toolbar-bg-default) );color:var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default));box-shadow:var(--p-table-toolbar-shadow, none);padding:var( --p-table-toolbar-layout-padding, var(--p-table-toolbar-padding-block, var(--pfx-toolbar-pad-y, 6px)) var( --p-table-toolbar-padding-inline, var(--pfx-toolbar-pad-x, 12px) ) );min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) );display:grid;grid-template-areas:\"actions actions actions\";grid-template-columns:max-content minmax(0,1fr) auto;align-items:center;column-gap:max(var(--p-table-toolbar-gap, 8px),12px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px);border:var(--p-table-toolbar-border-width, 1px) solid var( --p-table-toolbar-border-color, var(--p-table-toolbar-border-color-default) );border-radius:var(--p-table-toolbar-radius, 10px)}.praxis-toolbar.p-table-toolbar--flat{--p-table-toolbar-border-width: 0;--p-table-toolbar-shadow: none}.praxis-toolbar.p-table-toolbar--elevated{--p-table-toolbar-shadow: 0 12px 28px color-mix(in srgb, var(--md-sys-color-shadow, #000) 12%, transparent)}.praxis-toolbar.p-table-toolbar--integrated{--p-table-toolbar-bg: transparent;--p-table-toolbar-border-width: 0;--p-table-toolbar-radius: 0}.praxis-toolbar.p-table-toolbar--layout-separator{border-block-end-width:1px;border-block-end-style:solid;border-block-end-color:var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.praxis-toolbar.p-table-toolbar--compact{--p-table-toolbar-min-height: 36px;--p-table-toolbar-padding-block: 4px;--p-table-toolbar-padding-inline: 10px;--p-table-toolbar-gap: 4px;--p-table-toolbar-actions-gap: 4px;--p-table-toolbar-action-size: var(--praxis-action-control-compact-height, 36px);--p-table-toolbar-action-radius: var(--praxis-action-control-radius, 8px)}.praxis-toolbar.p-table-toolbar--comfortable{--p-table-toolbar-min-height: 44px;--p-table-toolbar-action-size: var(--praxis-action-control-height, 40px)}.praxis-toolbar.p-table-toolbar--spacious{--p-table-toolbar-min-height: 52px;--p-table-toolbar-padding-block: 8px;--p-table-toolbar-padding-inline: 16px;--p-table-toolbar-gap: 8px;--p-table-toolbar-actions-gap: 8px;--p-table-toolbar-action-size: var(--praxis-action-control-spacious-height, 44px)}.praxis-toolbar.p-table-toolbar--square{--p-table-toolbar-radius: 0;--p-table-toolbar-action-radius: 4px}.praxis-toolbar.p-table-toolbar--pill{--p-table-toolbar-radius: 999px;--p-table-toolbar-action-radius: 999px}:host(.praxis-toolbar-stack-top) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(.praxis-toolbar-footer) .praxis-toolbar{border-top-left-radius:0;border-top-right-radius:0}:host(.praxis-toolbar-footer.footer-flat) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}.praxis-toolbar.mat-toolbar-single-row,.praxis-toolbar .mat-toolbar-row{height:auto}.praxis-toolbar.mat-toolbar-multiple-rows{min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) )}.praxis-toolbar.praxis-toolbar--has-query{grid-template-areas:\"query query actions\"}.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope query actions\"}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope query query\"}.toolbar-query{grid-area:query;display:grid;grid-template-columns:minmax(0,1fr) fit-content(40%);align-items:start;min-width:0;column-gap:var(--p-table-toolbar-gap, 8px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px)}.toolbar-query>*{min-width:0}.toolbar-query>:is(praxis-filter,[advancedFilter]){grid-column:1}.toolbar-shortcuts{grid-column:2;display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--p-table-toolbar-gap, 8px);min-width:0;max-width:100%}.toolbar-shortcuts ::ng-deep>[toolbar]{min-width:0;max-width:100%}.toolbar-shortcuts:not(:has(*)){display:none}.toolbar-identity{grid-area:identity;display:flex;align-items:center;gap:var(--p-table-toolbar-identity-gap, 8px);min-width:0;max-width:100%;min-height:var(--p-table-toolbar-identity-min-height, 30px);margin-block-end:var(--p-table-toolbar-identity-margin-bottom, 0);padding-inline:2px;color:var( --p-table-toolbar-title-fg, var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default)) )}.toolbar-identity--center{text-align:center;justify-content:center}.toolbar-identity--end{text-align:end;justify-content:flex-end}.toolbar-identity--center .toolbar-identity__copy{align-items:center}.toolbar-identity--end .toolbar-identity__copy{align-items:flex-end}.toolbar-identity__icon{width:var(--p-table-toolbar-identity-icon-size, 28px);height:var(--p-table-toolbar-identity-icon-size, 28px);border-radius:var(--p-table-toolbar-identity-icon-radius, 8px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) );background:color-mix(in srgb,var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) ) 8%,transparent);border:1px solid color-mix(in srgb,var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) ) 18%,transparent)}.toolbar-identity__icon .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.toolbar-identity__copy{display:flex;flex-direction:column;min-width:0;max-width:100%;gap:1px}.toolbar-identity__title,.toolbar-identity__subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-identity__title{font-size:var(--p-table-toolbar-title-font-size, 14px);font-weight:var(--p-table-toolbar-title-font-weight, 700);line-height:1.2;letter-spacing:0;color:var(--p-table-toolbar-title-fg, currentColor)}.toolbar-identity__subtitle{font-size:var(--p-table-toolbar-subtitle-font-size, 11.5px);line-height:1.25;color:var( --p-table-toolbar-subtitle-fg, var( --p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default) ) )}.toolbar-actions{grid-area:actions;display:flex;align-items:center;align-self:start;justify-self:end;justify-content:flex-end;gap:var(--p-table-toolbar-gap, 6px);min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) );min-width:0}.praxis-toolbar.p-table-toolbar--align-start .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-start .toolbar-actions{justify-self:start}.praxis-toolbar.p-table-toolbar--align-center .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-center .toolbar-actions{justify-self:center}.praxis-toolbar.p-table-toolbar--align-end .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-end .toolbar-actions{justify-self:end}.actions-group{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px)}.business-actions,.utility-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px);min-width:0}.business-actions:empty,.utility-actions:empty{display:none}.action-btn:not(.praxis-icon-button){width:fit-content;max-width:100%;height:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));min-width:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));padding-inline:var(--praxis-action-control-padding-inline, 12px);border-radius:var(--p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px));gap:var(--praxis-action-control-gap, 8px);font-size:var(--praxis-action-control-font-size, .875rem);font-weight:var(--praxis-action-control-font-weight, 500);line-height:var(--praxis-action-control-line-height, 1.25rem);color:var(--p-table-toolbar-action-fg, inherit);background:var(--p-table-toolbar-action-bg, transparent)}.action-btn:not(.praxis-icon-button):hover:not(:disabled):not([aria-disabled=true]){background:var( --p-table-toolbar-action-hover-bg, var(--p-table-toolbar-action-hover-bg-default) )}.action-btn:not(.praxis-icon-button):focus-visible{outline:2px solid var( --p-table-toolbar-action-focus-ring, var(--praxis-action-control-focus-ring, var(--p-table-toolbar-action-focus-ring-default)) );outline-offset:2px}.toolbar-icon-btn{width:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));height:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));border-radius:var(--p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px));color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 9%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.toolbar-icon-btn:hover:not(:disabled){color:var(--md-sys-color-on-primary-container);background:color-mix(in srgb,var(--md-sys-color-primary) 16%,transparent);border-color:color-mix(in srgb,var(--md-sys-color-primary) 36%,transparent)}.action-btn--fab{width:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));height:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px));box-shadow:none}.pfx-tonal{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.pfx-tonal:hover{background:var(--md-sys-color-secondary-container)}.mobile-actions{display:none;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px)}.overflow-trigger{height:var(--p-table-toolbar-action-size, var(--praxis-action-control-height, 40px))}.action-btn .mat-icon,.action-btn--fab .mat-icon,.overflow-trigger .mat-icon{margin:0;font-size:var(--praxis-action-control-icon-size, 18px);width:var(--praxis-action-control-icon-size, 18px);height:var(--praxis-action-control-icon-size, 18px);line-height:var(--praxis-action-control-icon-size, 18px)}.praxis-table-export-status{max-width:13rem;overflow:hidden;color:var(--p-table-toolbar-status-fg, currentColor);font-size:.75rem;font-weight:600;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.praxis-table-export-progress-icon{animation:praxis-table-export-spin .9s linear infinite}@keyframes praxis-table-export-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-table-export-progress-icon{animation:none}}.praxis-table-column-menu-item.mat-mdc-menu-item{min-height:40px}.praxis-table-export-menu-item.mat-mdc-menu-item{min-width:280px;white-space:nowrap}.praxis-table-column-menu-content{align-items:center;display:flex;gap:10px;min-height:40px;width:100%}.praxis-table-column-menu-check.mat-icon{color:var(--md-sys-color-primary, currentColor);flex:0 0 20px;font-size:20px;height:20px;line-height:20px;margin-inline-end:0;width:20px}.praxis-table-quick-filters{grid-area:scope;align-self:start;align-items:center;display:flex;flex-wrap:nowrap;gap:6px;min-height:var(--p-table-toolbar-min-height, 44px)}.praxis-table-quick-filter.mat-mdc-outlined-button{min-height:40px;padding-inline:14px;white-space:nowrap}.praxis-table-quick-filter--active.mat-mdc-outlined-button{background:color-mix(in srgb,var(--md-sys-color-primary) 12%,transparent);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-primary)}.action-btn.mat-mdc-button-base,.action-btn--fab.mat-mdc-button-base,.overflow-trigger.mat-mdc-button-base,.toolbar-icon-btn.mat-mdc-button-base{--mdc-text-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-filled-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-protected-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-outlined-button-container-height: var( --p-table-toolbar-action-size, 36px )}.action-btn.mat-mdc-unelevated-button:not(:disabled):not([aria-disabled=true]),.action-btn.mat-mdc-outlined-button:not(:disabled):not([aria-disabled=true]),.action-btn.pfx-tonal:not(:disabled):not([aria-disabled=true]){border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #d7dbe5) 82%,transparent)}.action-btn.mat-mdc-unelevated-button:not(:disabled):not([aria-disabled=true]){box-shadow:none}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]),.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]){--praxis-toolbar-primary: var( --mat-sys-primary, var(--md-sys-color-primary) );--praxis-toolbar-on-primary: var( --mat-sys-on-primary, var(--md-sys-color-on-primary) );--praxis-toolbar-primary-action-container: var( --p-table-toolbar-primary-action-container, color-mix( in srgb, var(--praxis-toolbar-primary) 70%, var(--mat-sys-shadow, #000) 30% ) );--mdc-filled-button-container-color: var( --praxis-toolbar-primary-action-container );--mdc-filled-button-label-text-color: var( --praxis-toolbar-on-primary );--mat-filled-button-state-layer-color: var( --praxis-toolbar-on-primary );background:var(--praxis-toolbar-primary-action-container)!important;border-color:transparent;color:var(--praxis-toolbar-on-primary)!important;box-shadow:0 2px 6px color-mix(in srgb,var(--praxis-toolbar-primary-action-container) 22%,transparent)}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]):hover,.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]):hover{background:color-mix(in srgb,var(--praxis-toolbar-primary-action-container) 88%,var(--praxis-toolbar-on-primary) 12%)!important}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]) .mat-icon,.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]) .mat-icon{color:var(--praxis-toolbar-on-primary)!important}.action-btn.mat-mdc-button-base{padding-inline:var(--praxis-action-control-padding-inline, 12px)}.action-btn[aria-disabled=true],.action-btn--fab[aria-disabled=true]{--mdc-text-button-label-text-color: var(--md-sys-color-on-surface-variant);--mdc-filled-button-container-color: color-mix( in srgb, var(--md-sys-color-surface-container-high) 78%, transparent );--mdc-filled-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-outlined-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-protected-button-label-text-color: var( --md-sys-color-on-surface-variant );background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 78%,transparent)!important;color:var(--md-sys-color-on-surface-variant)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-outline) 62%,transparent)!important;cursor:not-allowed;filter:saturate(.55);opacity:var(--praxis-action-control-disabled-opacity, .62)}.action-btn[aria-disabled=true] .mat-icon,.action-btn--fab[aria-disabled=true] .mat-icon{color:currentColor!important}.action-btn[aria-disabled=true]:focus-visible,.action-btn--fab[aria-disabled=true]:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.mat-mdc-menu-item[aria-disabled=true]{color:var(--md-sys-color-on-surface-variant);cursor:not-allowed;opacity:1}.praxis-toolbar-menu-action__label,.praxis-toolbar-menu-action__reason{display:block}.praxis-toolbar-menu-action__reason{max-width:280px;color:var(--md-sys-color-on-surface-variant);font-size:12px;font-weight:400;line-height:1.35;white-space:normal}.end-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px);margin-inline-start:4px;padding-inline-start:12px;border-inline-start:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.end-actions:empty{display:none;gap:0;margin-inline-start:0;padding-inline-start:0;border-inline-start:0}.praxis-toolbar-icon-action--primary{color:var(--md-sys-color-primary)}.praxis-toolbar-icon-action--accent{color:var(--md-sys-color-tertiary)}.praxis-toolbar-icon-action--warn{color:var(--md-sys-color-error)}.praxis-toolbar.p-table-toolbar--divider-between-groups .actions-group--has-business .utility-actions:not(:empty){margin-inline-start:4px;padding-inline-start:12px;border-inline-start:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.praxis-toolbar.p-table-toolbar--divider-start:not(.praxis-toolbar--has-identity) .toolbar-query{padding-inline-end:12px;border-inline-end:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.end-actions ::ng-deep .praxis-table-toolbar-action--ai,.end-actions ::ng-deep .praxis-table-ai-trigger{color:var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) );background:color-mix(in srgb,var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) ) 10%,transparent);border:1px solid color-mix(in srgb,var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) ) 24%,transparent)}.end-actions ::ng-deep [data-role=table-settings]{color:var( --p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default) )}@container praxis-table-toolbar (max-width: 960px){.actions-group{display:none}.mobile-actions{display:flex}.toolbar-actions{justify-content:flex-end}}@container praxis-table-toolbar (max-width: 720px){.praxis-toolbar.praxis-toolbar--has-query{grid-template-areas:\"query query query\" \"actions actions actions\"}.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope scope scope\" \"query query query\" \"actions actions actions\"}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope scope scope\" \"query query query\"}.toolbar-query{grid-template-columns:minmax(0,1fr)}.toolbar-query>:is(praxis-filter,[advancedFilter]),.toolbar-shortcuts{grid-column:1}.toolbar-shortcuts{justify-content:flex-start}.praxis-table-quick-filters{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}}@container praxis-table-toolbar (max-width: 540px){.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity identity\" \"actions actions actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity identity\" \"actions actions actions\" \"scope scope scope\" \"query query query\"}.toolbar-actions{justify-self:stretch;justify-content:flex-end}.toolbar-actions,.toolbar-query{--p-table-toolbar-action-size: var(--praxis-action-control-spacious-height, 44px)}.toolbar-identity__subtitle{display:none}.praxis-table-quick-filter.mat-mdc-outlined-button{min-height:44px}}\n"] }]
|
|
4165
|
+
}, styles: [":host{display:block;container-name:praxis-table-toolbar;container-type:inline-size}.praxis-toolbar{--p-table-toolbar-bg-default: linear-gradient( 180deg, color-mix( in srgb, var(--md-sys-color-surface, #fff) 96%, transparent ), color-mix( in srgb, var(--md-sys-color-surface-container-low, #f6f8fc) 100%, transparent ) );--p-table-toolbar-fg-default: var( --md-sys-color-on-surface, currentColor );--p-table-toolbar-border-color-default: color-mix( in srgb, var(--md-sys-color-outline-variant, #d7dbe5) 78%, transparent );--p-table-toolbar-divider-color-default: color-mix( in srgb, var(--md-sys-color-outline) 42%, transparent );--p-table-toolbar-action-hover-bg-default: color-mix( in srgb, var(--md-sys-color-primary) 10%, transparent );--p-table-toolbar-action-active-bg-default: color-mix( in srgb, var(--md-sys-color-primary) 16%, transparent );--p-table-toolbar-action-focus-ring-default: color-mix( in srgb, var(--md-sys-color-primary) 52%, transparent );--p-table-toolbar-ai-accent-color-default: var( --md-sys-color-primary, #0b72d9 );--p-table-toolbar-status-fg-default: var( --md-sys-color-on-surface-variant, currentColor );background:var( --p-table-toolbar-bg, var(--p-table-toolbar-bg-default) );color:var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default));box-shadow:var(--p-table-toolbar-shadow, none);padding:var( --p-table-toolbar-layout-padding, var(--p-table-toolbar-padding-block, var(--pfx-toolbar-pad-y, 6px)) var( --p-table-toolbar-padding-inline, var(--pfx-toolbar-pad-x, 12px) ) );min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) );display:grid;grid-template-areas:\"actions actions actions\";grid-template-columns:max-content minmax(0,1fr) auto;align-items:center;column-gap:max(var(--p-table-toolbar-gap, 8px),12px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px);border:var(--p-table-toolbar-border-width, 1px) solid var( --p-table-toolbar-border-color, var(--p-table-toolbar-border-color-default) );border-radius:var(--p-table-toolbar-radius, 10px)}.praxis-toolbar.p-table-toolbar--flat{--p-table-toolbar-border-width: 0;--p-table-toolbar-shadow: none}.praxis-toolbar.p-table-toolbar--elevated{--p-table-toolbar-shadow: 0 12px 28px color-mix(in srgb, var(--md-sys-color-shadow, #000) 12%, transparent)}.praxis-toolbar.p-table-toolbar--integrated{--p-table-toolbar-bg: transparent;--p-table-toolbar-border-width: 0;--p-table-toolbar-radius: 0}.praxis-toolbar.p-table-toolbar--layout-separator{border-block-end-width:1px;border-block-end-style:solid;border-block-end-color:var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.praxis-toolbar.p-table-toolbar--compact{--p-table-toolbar-min-height: 36px;--p-table-toolbar-padding-block: 4px;--p-table-toolbar-padding-inline: 10px;--p-table-toolbar-gap: 4px;--p-table-toolbar-actions-gap: 4px;--p-table-toolbar-action-size: var( --praxis-action-control-compact-height, 36px );--p-table-toolbar-action-radius: var( --praxis-action-control-radius, 8px )}.praxis-toolbar.p-table-toolbar--comfortable{--p-table-toolbar-min-height: 44px;--p-table-toolbar-action-size: var( --praxis-action-control-height, 40px )}.praxis-toolbar.p-table-toolbar--spacious{--p-table-toolbar-min-height: 52px;--p-table-toolbar-padding-block: 8px;--p-table-toolbar-padding-inline: 16px;--p-table-toolbar-gap: 8px;--p-table-toolbar-actions-gap: 8px;--p-table-toolbar-action-size: var( --praxis-action-control-spacious-height, 44px )}.praxis-toolbar.p-table-toolbar--square{--p-table-toolbar-radius: 0;--p-table-toolbar-action-radius: 4px}.praxis-toolbar.p-table-toolbar--pill{--p-table-toolbar-radius: 999px;--p-table-toolbar-action-radius: 999px}:host(.praxis-toolbar-stack-top) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(.praxis-toolbar-footer) .praxis-toolbar{border-top-left-radius:0;border-top-right-radius:0}:host(.praxis-toolbar-footer.footer-flat) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}.praxis-toolbar.mat-toolbar-single-row,.praxis-toolbar .mat-toolbar-row{height:auto}.praxis-toolbar.mat-toolbar-multiple-rows{min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) )}.praxis-toolbar.praxis-toolbar--has-query{grid-template-areas:\"query query actions\"}.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope query actions\"}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope query query\"}.toolbar-query{grid-area:query;display:flex;flex-wrap:wrap;align-items:start;min-width:0;column-gap:var(--p-table-toolbar-gap, 8px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px)}.toolbar-query>*{min-width:0}.toolbar-query>:is(praxis-filter,[advancedFilter]){flex:1 1 620px}.toolbar-shortcuts{flex:0 1 auto;display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--p-table-toolbar-gap, 8px);min-width:0;max-width:100%;margin-inline-start:auto}.toolbar-shortcuts ::ng-deep>[toolbar]{min-width:0;max-width:100%}.toolbar-shortcuts ::ng-deep>[toolbar].mat-mdc-button-base{--mdc-text-button-container-height: var( --p-table-toolbar-query-control-height, 40px );--mdc-outlined-button-container-height: var( --p-table-toolbar-query-control-height, 40px );min-height:var(--p-table-toolbar-query-control-height, 40px);border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) )}.toolbar-shortcuts:not(:has(*)){display:none}.toolbar-identity{grid-area:identity;display:flex;align-items:center;gap:var(--p-table-toolbar-identity-gap, 8px);min-width:0;max-width:100%;min-height:var(--p-table-toolbar-identity-min-height, 30px);margin-block-end:var(--p-table-toolbar-identity-margin-bottom, 0);padding-inline:2px;color:var( --p-table-toolbar-title-fg, var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default)) )}.toolbar-identity--center{text-align:center;justify-content:center}.toolbar-identity--end{text-align:end;justify-content:flex-end}.toolbar-identity--center .toolbar-identity__copy{align-items:center}.toolbar-identity--end .toolbar-identity__copy{align-items:flex-end}.toolbar-identity__icon{width:var(--p-table-toolbar-identity-icon-size, 28px);height:var(--p-table-toolbar-identity-icon-size, 28px);border-radius:var(--p-table-toolbar-identity-icon-radius, 8px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) );background:color-mix(in srgb,var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) ) 8%,transparent);border:1px solid color-mix(in srgb,var( --p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor) ) 18%,transparent)}.toolbar-identity__icon .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.toolbar-identity__copy{display:flex;flex-direction:column;min-width:0;max-width:100%;gap:1px}.toolbar-identity__title,.toolbar-identity__subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-identity__title{font-size:var(--p-table-toolbar-title-font-size, 14px);font-weight:var(--p-table-toolbar-title-font-weight, 700);line-height:1.2;letter-spacing:0;color:var(--p-table-toolbar-title-fg, currentColor)}.toolbar-identity__subtitle{font-size:var(--p-table-toolbar-subtitle-font-size, 11.5px);line-height:1.25;color:var( --p-table-toolbar-subtitle-fg, var( --p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default) ) )}.toolbar-actions{grid-area:actions;display:flex;align-items:center;align-self:start;justify-self:end;justify-content:flex-end;gap:var(--p-table-toolbar-gap, 6px);min-height:var( --p-table-toolbar-min-height, var(--pfx-filter-h, 44px) );min-width:0}.praxis-toolbar.p-table-toolbar--align-start .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-start .toolbar-actions{justify-self:start}.praxis-toolbar.p-table-toolbar--align-center .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-center .toolbar-actions{justify-self:center}.praxis-toolbar.p-table-toolbar--align-end .toolbar-identity,.praxis-toolbar.p-table-toolbar--align-end .toolbar-actions{justify-self:end}.actions-group{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px)}.praxis-toolbar--compact-actions .actions-group{position:fixed;inset-block-start:-10000px;inset-inline-start:0;inline-size:max-content;max-inline-size:none;visibility:hidden;pointer-events:none}.praxis-toolbar--compact-actions .mobile-actions{display:flex}.praxis-toolbar--compact-actions .toolbar-query{flex-direction:column}.praxis-toolbar--compact-actions .toolbar-shortcuts{justify-content:flex-start;margin-inline-start:0}.business-actions,.utility-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px);min-width:0}.business-actions:empty,.utility-actions:empty{display:none}.action-btn:not(.praxis-icon-button){width:fit-content;max-width:100%;height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );min-width:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );padding-inline:var(--praxis-action-control-padding-inline, 12px);border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) );gap:var(--praxis-action-control-gap, 8px);font-size:var(--praxis-action-control-font-size, .875rem);font-weight:var(--praxis-action-control-font-weight, 500);line-height:var(--praxis-action-control-line-height, 1.25rem);color:var(--p-table-toolbar-action-fg, inherit);background:var(--p-table-toolbar-action-bg, transparent)}.action-btn:not(.praxis-icon-button):hover:not(:disabled):not([aria-disabled=true]){background:var( --p-table-toolbar-action-hover-bg, var(--p-table-toolbar-action-hover-bg-default) )}.action-btn:not(.praxis-icon-button):focus-visible{outline:2px solid var( --p-table-toolbar-action-focus-ring, var( --praxis-action-control-focus-ring, var(--p-table-toolbar-action-focus-ring-default) ) );outline-offset:2px}.toolbar-icon-btn{width:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) );color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 9%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.toolbar-icon-btn:hover:not(:disabled){color:var(--md-sys-color-on-primary-container);background:color-mix(in srgb,var(--md-sys-color-primary) 16%,transparent);border-color:color-mix(in srgb,var(--md-sys-color-primary) 36%,transparent)}.action-btn--fab{width:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );box-shadow:none}.pfx-tonal{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.pfx-tonal:hover{background:var(--md-sys-color-secondary-container)}.mobile-actions{display:none;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px)}.overflow-trigger{height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) )}.action-btn .mat-icon,.action-btn--fab .mat-icon,.overflow-trigger .mat-icon{margin:0;font-size:var(--praxis-action-control-icon-size, 18px);width:var(--praxis-action-control-icon-size, 18px);height:var(--praxis-action-control-icon-size, 18px);line-height:var(--praxis-action-control-icon-size, 18px)}.praxis-table-export-status{max-width:13rem;overflow:hidden;color:var(--p-table-toolbar-status-fg, currentColor);font-size:.75rem;font-weight:600;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.praxis-table-export-progress-icon{animation:praxis-table-export-spin .9s linear infinite}@keyframes praxis-table-export-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-table-export-progress-icon{animation:none}}.praxis-table-column-menu-item.mat-mdc-menu-item{min-height:40px}.praxis-table-export-menu-item.mat-mdc-menu-item{min-width:280px;white-space:nowrap}.praxis-table-column-menu-content{align-items:center;display:flex;gap:10px;min-height:40px;width:100%}.praxis-table-column-menu-check.mat-icon{color:var(--md-sys-color-primary, currentColor);flex:0 0 20px;font-size:20px;height:20px;line-height:20px;margin-inline-end:0;width:20px}.praxis-table-quick-filters{grid-area:scope;align-self:start;align-items:center;display:flex;flex-wrap:nowrap;gap:0;min-height:var(--p-table-toolbar-min-height, 44px)}.praxis-table-quick-filter.mat-mdc-outlined-button{--mdc-outlined-button-container-height: var( --p-table-toolbar-query-control-height, 40px );min-height:var(--p-table-toolbar-query-control-height, 40px);padding-inline:14px;border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) );position:relative;z-index:0;white-space:nowrap}.praxis-table-quick-filter+.praxis-table-quick-filter{margin-inline-start:-1px}.praxis-table-quick-filter:first-child:not(:only-child){border-start-end-radius:0;border-end-end-radius:0}.praxis-table-quick-filter:not(:first-child):not(:last-child){border-radius:0}.praxis-table-quick-filter:last-child:not(:only-child){border-start-start-radius:0;border-end-start-radius:0}.praxis-table-quick-filter:only-child{border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) )}.praxis-table-quick-filter--active.mat-mdc-outlined-button{background:color-mix(in srgb,var(--md-sys-color-primary) 12%,transparent);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-primary);z-index:1}.praxis-table-quick-filter:focus-visible{z-index:2}.action-btn.mat-mdc-button-base,.action-btn--fab.mat-mdc-button-base,.overflow-trigger.mat-mdc-button-base,.toolbar-icon-btn.mat-mdc-button-base{--mdc-text-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-filled-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-protected-button-container-height: var( --p-table-toolbar-action-size, 36px );--mdc-outlined-button-container-height: var( --p-table-toolbar-action-size, 36px )}.action-btn.mat-mdc-unelevated-button:not(:disabled):not([aria-disabled=true]),.action-btn.mat-mdc-outlined-button:not(:disabled):not([aria-disabled=true]),.action-btn.pfx-tonal:not(:disabled):not([aria-disabled=true]){border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #d7dbe5) 82%,transparent)}.action-btn.mat-mdc-unelevated-button:not(:disabled):not([aria-disabled=true]){box-shadow:none}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]),.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]){--praxis-toolbar-primary: var( --mat-sys-primary, var(--md-sys-color-primary) );--praxis-toolbar-on-primary: var( --mat-sys-on-primary, var(--md-sys-color-on-primary) );--praxis-toolbar-primary-action-container: var( --p-table-toolbar-primary-action-container, color-mix( in srgb, var(--praxis-toolbar-primary) 70%, var(--mat-sys-shadow, #000) 30% ) );--mdc-filled-button-container-color: var( --praxis-toolbar-primary-action-container );--mdc-filled-button-label-text-color: var(--praxis-toolbar-on-primary);--mat-filled-button-state-layer-color: var(--praxis-toolbar-on-primary);background:var(--praxis-toolbar-primary-action-container)!important;border-color:transparent;color:var(--praxis-toolbar-on-primary)!important;box-shadow:0 2px 6px color-mix(in srgb,var(--praxis-toolbar-primary-action-container) 22%,transparent)}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]):hover,.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]):hover{background:color-mix(in srgb,var(--praxis-toolbar-primary-action-container) 88%,var(--praxis-toolbar-on-primary) 12%)!important}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):not([aria-disabled=true]) .mat-icon,.action-btn.praxis-toolbar-action--filled-primary:not(:disabled):not([aria-disabled=true]) .mat-icon{color:var(--praxis-toolbar-on-primary)!important}.action-btn.mat-mdc-button-base{padding-inline:var(--praxis-action-control-padding-inline, 12px)}.action-btn[aria-disabled=true],.action-btn--fab[aria-disabled=true]{--mdc-text-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-filled-button-container-color: color-mix( in srgb, var(--md-sys-color-surface-container-high) 78%, transparent );--mdc-filled-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-outlined-button-label-text-color: var( --md-sys-color-on-surface-variant );--mdc-protected-button-label-text-color: var( --md-sys-color-on-surface-variant );background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 78%,transparent)!important;color:var(--md-sys-color-on-surface-variant)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-outline) 62%,transparent)!important;cursor:not-allowed;filter:saturate(.55);opacity:var(--praxis-action-control-disabled-opacity, .62)}.action-btn[aria-disabled=true] .mat-icon,.action-btn--fab[aria-disabled=true] .mat-icon{color:currentColor!important}.action-btn[aria-disabled=true]:focus-visible,.action-btn--fab[aria-disabled=true]:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.mat-mdc-menu-item[aria-disabled=true],.mat-mdc-menu-item.mat-mdc-menu-item-disabled{color:var(--md-sys-color-on-surface-variant)!important;cursor:not-allowed;opacity:1!important}.praxis-toolbar-menu-action__label,.praxis-toolbar-menu-action__reason{display:block}.praxis-toolbar-menu-action__reason{max-width:280px;color:var(--md-sys-color-on-surface-variant)!important;font-size:12px;font-weight:400;line-height:1.35;white-space:normal}.praxis-table-compact-command-group{box-sizing:border-box;margin:6px 12px 2px;padding:8px 4px 4px;border-block-start:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 74%,transparent);color:var(--md-sys-color-on-surface-variant);font-size:.75rem;font-weight:600;line-height:1rem;letter-spacing:.04em;text-transform:uppercase}.praxis-table-compact-command-group:first-child{margin-block-start:2px;padding-block-start:4px;border-block-start:0}.praxis-table-compact-command-group__hint{max-width:280px;margin:0 16px 6px;color:var(--md-sys-color-on-surface-variant);font-size:.75rem;font-weight:400;line-height:1.35;white-space:normal}.mat-mdc-menu-item[aria-disabled=true] .praxis-toolbar-menu-action__reason,.mat-mdc-menu-item.mat-mdc-menu-item-disabled .praxis-toolbar-menu-action__reason{opacity:1!important}.end-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 8px);margin-inline-start:4px;padding-inline-start:12px;border-inline-start:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.end-actions ::ng-deep>[end-actions]{height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );min-height:var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );border-radius:var( --p-table-toolbar-action-radius, var(--praxis-action-control-radius, 8px) )}.end-actions ::ng-deep>[end-actions].mat-mdc-button-base{--mdc-text-button-container-height: var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );--mdc-filled-button-container-height: var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );--mdc-protected-button-container-height: var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) );--mdc-outlined-button-container-height: var( --p-table-toolbar-action-size, var(--praxis-action-control-height, 40px) )}.end-actions:empty{display:none;gap:0;margin-inline-start:0;padding-inline-start:0;border-inline-start:0}.praxis-toolbar-icon-action--primary{color:var(--md-sys-color-primary)}.praxis-toolbar-icon-action--accent{color:var(--md-sys-color-tertiary)}.praxis-toolbar-icon-action--warn{color:var(--md-sys-color-error)}.praxis-toolbar.p-table-toolbar--divider-between-groups .actions-group--has-business .utility-actions:not(:empty){margin-inline-start:4px;padding-inline-start:12px;border-inline-start:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.praxis-toolbar.p-table-toolbar--divider-start:not(.praxis-toolbar--has-identity) .toolbar-query{padding-inline-end:12px;border-inline-end:1px solid var( --p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default) )}.end-actions ::ng-deep .praxis-table-toolbar-action--ai,.end-actions ::ng-deep .praxis-table-ai-trigger{color:var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) );background:color-mix(in srgb,var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) ) 10%,transparent);border:1px solid color-mix(in srgb,var( --p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default) ) 24%,transparent)}.end-actions ::ng-deep [data-role=table-settings]{color:var( --p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default) )}@container praxis-table-toolbar (max-width: 1200px){.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope scope actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope scope scope\" \"query query query\"}.toolbar-query{width:100%}}@container praxis-table-toolbar (max-width: 960px){.actions-group{display:none}.mobile-actions{display:flex}.toolbar-actions{justify-content:flex-end}}@container praxis-table-toolbar (max-width: 720px){.praxis-toolbar.praxis-toolbar--has-query{grid-template-areas:\"query query query\" \"actions actions actions\"}.praxis-toolbar.praxis-toolbar--has-query.praxis-toolbar--has-scope{grid-template-areas:\"scope scope scope\" \"query query query\" \"actions actions actions\"}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity actions\" \"scope scope scope\" \"query query query\"}.toolbar-query{flex-direction:column}.toolbar-shortcuts{justify-content:flex-start;margin-inline-start:0}.praxis-table-quick-filters{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}}@container praxis-table-toolbar (max-width: 540px){.praxis-toolbar{--p-table-toolbar-query-control-height: 44px}.praxis-toolbar.praxis-toolbar--has-identity{grid-template-areas:\"identity identity identity\" \"actions actions actions\" \"query query query\"}.praxis-toolbar.praxis-toolbar--has-identity.praxis-toolbar--has-scope{grid-template-areas:\"identity identity identity\" \"actions actions actions\" \"scope scope scope\" \"query query query\"}.toolbar-actions{justify-self:stretch;justify-content:flex-end}.toolbar-actions,.toolbar-query{--p-table-toolbar-action-size: var( --praxis-action-control-spacious-height, 44px )}.toolbar-identity__subtitle{display:none}.praxis-table-quick-filter.mat-mdc-outlined-button{min-height:44px}.praxis-table-quick-filters--binary{width:100%;min-width:0}.praxis-table-quick-filters--binary .praxis-table-quick-filter.mat-mdc-outlined-button{flex:1 1 0;min-width:0}}\n"] }]
|
|
3839
4166
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.LoggerService, decorators: [{
|
|
3840
4167
|
type: Optional
|
|
3841
4168
|
}] }, { type: i1.PraxisI18nService, decorators: [{
|
|
@@ -3850,7 +4177,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3850
4177
|
}, {
|
|
3851
4178
|
type: Inject,
|
|
3852
4179
|
args: [PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS]
|
|
3853
|
-
}] }], propDecorators: {
|
|
4180
|
+
}] }], propDecorators: { toolbarRoot: [{
|
|
4181
|
+
type: ViewChild,
|
|
4182
|
+
args: ['toolbarRoot', { read: ElementRef }]
|
|
4183
|
+
}], toolbarIdentity: [{
|
|
4184
|
+
type: ViewChild,
|
|
4185
|
+
args: ['toolbarIdentity', { read: ElementRef }]
|
|
4186
|
+
}], fullActionsGroup: [{
|
|
4187
|
+
type: ViewChild,
|
|
4188
|
+
args: ['fullActionsGroup', { read: ElementRef }]
|
|
4189
|
+
}], endActionsGroup: [{
|
|
4190
|
+
type: ViewChild,
|
|
4191
|
+
args: ['endActionsGroup', { read: ElementRef }]
|
|
4192
|
+
}], config: [{
|
|
3854
4193
|
type: Input
|
|
3855
4194
|
}], appearance: [{
|
|
3856
4195
|
type: Input
|
|
@@ -28484,19 +28823,19 @@ class FilterConfigService {
|
|
|
28484
28823
|
/**
|
|
28485
28824
|
* Persist a filter configuration for the given key.
|
|
28486
28825
|
*/
|
|
28487
|
-
save(key, config) {
|
|
28826
|
+
async save(key, config) {
|
|
28488
28827
|
const storageKey = this.PREFIX + key;
|
|
28489
28828
|
this.localStorage.saveConfig(storageKey, config);
|
|
28490
|
-
this.storage.saveConfig(storageKey, config)
|
|
28829
|
+
await firstValueFrom(this.storage.saveConfig(storageKey, config));
|
|
28491
28830
|
}
|
|
28492
28831
|
/**
|
|
28493
28832
|
* Clear the persisted filter configuration from both remote storage and the
|
|
28494
28833
|
* local fallback cache so reset/reopen cannot revive stale preferences.
|
|
28495
28834
|
*/
|
|
28496
|
-
clear(key) {
|
|
28835
|
+
async clear(key) {
|
|
28497
28836
|
const storageKey = this.PREFIX + key;
|
|
28498
28837
|
this.localStorage.clearConfig(storageKey);
|
|
28499
|
-
this.storage.clearConfig(storageKey)
|
|
28838
|
+
await firstValueFrom(this.storage.clearConfig(storageKey));
|
|
28500
28839
|
}
|
|
28501
28840
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: FilterConfigService, deps: [{ token: ASYNC_CONFIG_STORAGE }, { token: i1.LocalStorageConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
28502
28841
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: FilterConfigService, providedIn: 'root' });
|
|
@@ -28509,6 +28848,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
28509
28848
|
args: [ASYNC_CONFIG_STORAGE]
|
|
28510
28849
|
}] }, { type: i1.LocalStorageConfigService }] });
|
|
28511
28850
|
|
|
28851
|
+
const unsafeObjectKeys = new Set(['__proto__', 'constructor', 'prototype']);
|
|
28852
|
+
function isPlainObject(value) {
|
|
28853
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
28854
|
+
return false;
|
|
28855
|
+
const prototype = Object.getPrototypeOf(value);
|
|
28856
|
+
return prototype === Object.prototype || prototype === null;
|
|
28857
|
+
}
|
|
28858
|
+
function clonePatchValue(value, depth) {
|
|
28859
|
+
if (depth > 12)
|
|
28860
|
+
return undefined;
|
|
28861
|
+
if (Array.isArray(value)) {
|
|
28862
|
+
return value
|
|
28863
|
+
.map((item) => clonePatchValue(item, depth + 1))
|
|
28864
|
+
.filter((item) => item !== undefined);
|
|
28865
|
+
}
|
|
28866
|
+
if (!isPlainObject(value))
|
|
28867
|
+
return value;
|
|
28868
|
+
const clone = {};
|
|
28869
|
+
Object.keys(value).forEach((key) => {
|
|
28870
|
+
if (unsafeObjectKeys.has(key))
|
|
28871
|
+
return;
|
|
28872
|
+
const nested = clonePatchValue(value[key], depth + 1);
|
|
28873
|
+
if (nested !== undefined)
|
|
28874
|
+
clone[key] = nested;
|
|
28875
|
+
});
|
|
28876
|
+
return clone;
|
|
28877
|
+
}
|
|
28878
|
+
/**
|
|
28879
|
+
* Applies RFC 7396 JSON Merge Patch semantics.
|
|
28880
|
+
*
|
|
28881
|
+
* Objects merge recursively, arrays and scalar values replace the target, and
|
|
28882
|
+
* `null` removes the addressed property. Unsafe prototype keys are ignored.
|
|
28883
|
+
*/
|
|
28884
|
+
function applyJsonMergePatch(base, patch, depth = 0) {
|
|
28885
|
+
if (depth > 8)
|
|
28886
|
+
return clonePatchValue(patch, depth);
|
|
28887
|
+
if (patch === null)
|
|
28888
|
+
return undefined;
|
|
28889
|
+
if (!isPlainObject(patch))
|
|
28890
|
+
return clonePatchValue(patch, depth);
|
|
28891
|
+
const target = isPlainObject(base)
|
|
28892
|
+
? clonePatchValue(base, depth)
|
|
28893
|
+
: {};
|
|
28894
|
+
Object.keys(patch).forEach((key) => {
|
|
28895
|
+
if (unsafeObjectKeys.has(key))
|
|
28896
|
+
return;
|
|
28897
|
+
const patchValue = patch[key];
|
|
28898
|
+
if (patchValue === null) {
|
|
28899
|
+
delete target[key];
|
|
28900
|
+
return;
|
|
28901
|
+
}
|
|
28902
|
+
const next = applyJsonMergePatch(target[key], patchValue, depth + 1);
|
|
28903
|
+
if (next === undefined) {
|
|
28904
|
+
delete target[key];
|
|
28905
|
+
}
|
|
28906
|
+
else {
|
|
28907
|
+
target[key] = next;
|
|
28908
|
+
}
|
|
28909
|
+
});
|
|
28910
|
+
return target;
|
|
28911
|
+
}
|
|
28912
|
+
|
|
28512
28913
|
const { SELECT: INLINE_SELECT_CONTROL_TYPE$1, SEARCHABLE_SELECT: INLINE_SEARCHABLE_SELECT_CONTROL_TYPE$1, MULTI_SELECT: INLINE_MULTI_SELECT_CONTROL_TYPE$1, INPUT: INLINE_INPUT_CONTROL_TYPE$1, PHONE: INLINE_PHONE_CONTROL_TYPE$1, TOGGLE: INLINE_TOGGLE_CONTROL_TYPE$1, RANGE: INLINE_RANGE_CONTROL_TYPE$1, ASYNC_SELECT: INLINE_ASYNC_SELECT_CONTROL_TYPE$1, ENTITY_LOOKUP: INLINE_ENTITY_LOOKUP_CONTROL_TYPE$1, AUTOCOMPLETE: INLINE_AUTOCOMPLETE_CONTROL_TYPE$1, NUMBER: INLINE_NUMBER_CONTROL_TYPE$1, CURRENCY: INLINE_CURRENCY_CONTROL_TYPE$1, CURRENCY_RANGE: INLINE_CURRENCY_RANGE_CONTROL_TYPE$1, DATE: INLINE_DATE_CONTROL_TYPE$1, DATE_RANGE: INLINE_DATE_RANGE_CONTROL_TYPE$1, TIME: INLINE_TIME_CONTROL_TYPE$1, TIME_RANGE: INLINE_TIME_RANGE_CONTROL_TYPE$1, TREE_SELECT: INLINE_TREE_SELECT_CONTROL_TYPE$1, RATING: INLINE_RATING_CONTROL_TYPE$1, DISTANCE_RADIUS: INLINE_DISTANCE_RADIUS_CONTROL_TYPE$1, PIPELINE_STATUS: INLINE_PIPELINE_STATUS_CONTROL_TYPE$1, SCORE_PRIORITY: INLINE_SCORE_PRIORITY_CONTROL_TYPE$1, RELATIVE_PERIOD: INLINE_RELATIVE_PERIOD_CONTROL_TYPE$1, SENTIMENT: INLINE_SENTIMENT_CONTROL_TYPE$1, COLOR_LABEL: INLINE_COLOR_LABEL_CONTROL_TYPE$1, } = INLINE_FILTER_CONTROL_TYPES;
|
|
28513
28914
|
const KNOWN_FILTER_SETTINGS_CONTROL_TYPES = new Set([
|
|
28514
28915
|
...Object.values(FieldControlType).map((type) => String(type).toLowerCase()),
|
|
@@ -28782,21 +29183,25 @@ class FilterSettingsComponent {
|
|
|
28782
29183
|
optional: true,
|
|
28783
29184
|
});
|
|
28784
29185
|
/** Clears persisted preferences for this filter, falling back to globals. */
|
|
28785
|
-
resetPreferences() {
|
|
29186
|
+
async resetPreferences() {
|
|
28786
29187
|
const key = this.configKey;
|
|
28787
29188
|
if (!key)
|
|
28788
29189
|
return;
|
|
28789
29190
|
try {
|
|
28790
|
-
|
|
28791
|
-
|
|
28792
|
-
|
|
29191
|
+
await Promise.all([
|
|
29192
|
+
this.filterConfigService.clear(key),
|
|
29193
|
+
firstValueFrom(this.storage.clearConfig(`filter-dto:${key}`).pipe(take$1(1))),
|
|
29194
|
+
this.clearPersistedSchemaStateByConfigKey(key),
|
|
29195
|
+
]);
|
|
28793
29196
|
this.reset(); // Reset form to initial/default values
|
|
28794
29197
|
this.form.markAsPristine();
|
|
28795
29198
|
this.snackBar.open('Preferências do filtro redefinidas', undefined, {
|
|
28796
29199
|
duration: 2000,
|
|
28797
29200
|
});
|
|
28798
29201
|
}
|
|
28799
|
-
catch {
|
|
29202
|
+
catch {
|
|
29203
|
+
this.snackBar.open('Não foi possível redefinir as preferências do filtro', 'Fechar', { duration: 5000 });
|
|
29204
|
+
}
|
|
28800
29205
|
}
|
|
28801
29206
|
constructor(fb) {
|
|
28802
29207
|
this.fb = fb;
|
|
@@ -28918,30 +29323,20 @@ class FilterSettingsComponent {
|
|
|
28918
29323
|
const legacyHash = String(legacyMeta?.serverHash || '').trim();
|
|
28919
29324
|
if (legacyHash)
|
|
28920
29325
|
hashes.add(legacyHash);
|
|
29326
|
+
const keysToClear = [];
|
|
28921
29327
|
for (const schemaId of schemaIds) {
|
|
28922
29328
|
const key = this.schemaMetaKeyForSchemaId(configKey, schemaId);
|
|
28923
29329
|
const meta = await firstValueFrom(this.storage.loadConfig(key).pipe(take$1(1))).catch(() => null);
|
|
28924
29330
|
const hash = String(meta?.serverHash || '').trim();
|
|
28925
29331
|
if (hash)
|
|
28926
29332
|
hashes.add(hash);
|
|
28927
|
-
|
|
29333
|
+
keysToClear.push(key);
|
|
28928
29334
|
}
|
|
28929
|
-
|
|
28930
|
-
this.storage.clearConfig(scopeKey).pipe(take$1(1)).subscribe();
|
|
29335
|
+
keysToClear.push(indexKey, scopeKey);
|
|
28931
29336
|
hashes.forEach((hash) => {
|
|
28932
|
-
this.
|
|
28933
|
-
.clearConfig(this.filterSchemaIgnoreKey(configKey, hash))
|
|
28934
|
-
.pipe(take$1(1))
|
|
28935
|
-
.subscribe();
|
|
28936
|
-
this.storage
|
|
28937
|
-
.clearConfig(this.filterSchemaSnoozeKey(configKey, hash))
|
|
28938
|
-
.pipe(take$1(1))
|
|
28939
|
-
.subscribe();
|
|
28940
|
-
this.storage
|
|
28941
|
-
.clearConfig(this.filterSchemaNotifiedKey(configKey, hash))
|
|
28942
|
-
.pipe(take$1(1))
|
|
28943
|
-
.subscribe();
|
|
29337
|
+
keysToClear.push(this.filterSchemaIgnoreKey(configKey, hash), this.filterSchemaSnoozeKey(configKey, hash), this.filterSchemaNotifiedKey(configKey, hash));
|
|
28944
29338
|
});
|
|
29339
|
+
await Promise.all(keysToClear.map((key) => firstValueFrom(this.storage.clearConfig(key).pipe(take$1(1)))));
|
|
28945
29340
|
}
|
|
28946
29341
|
async loadTags() {
|
|
28947
29342
|
const key = this.tagsKey();
|
|
@@ -29907,33 +30302,6 @@ class FilterSettingsComponent {
|
|
|
29907
30302
|
isPlainObject(value) {
|
|
29908
30303
|
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
29909
30304
|
}
|
|
29910
|
-
applyJsonMergePatch(base, patch, depth = 0) {
|
|
29911
|
-
if (depth > 8)
|
|
29912
|
-
return this.cloneUnknown(patch);
|
|
29913
|
-
if (patch === null)
|
|
29914
|
-
return undefined;
|
|
29915
|
-
if (!this.isPlainObject(patch))
|
|
29916
|
-
return this.cloneUnknown(patch);
|
|
29917
|
-
const target = this.isPlainObject(base) ? { ...base } : {};
|
|
29918
|
-
Object.keys(patch).forEach((key) => {
|
|
29919
|
-
const patchValue = patch[key];
|
|
29920
|
-
if (patchValue === null) {
|
|
29921
|
-
delete target[key];
|
|
29922
|
-
return;
|
|
29923
|
-
}
|
|
29924
|
-
if (this.isPlainObject(patchValue)) {
|
|
29925
|
-
const next = this.applyJsonMergePatch(target[key], patchValue, depth + 1);
|
|
29926
|
-
if (this.isPlainObject(next) && !Object.keys(next).length) {
|
|
29927
|
-
delete target[key];
|
|
29928
|
-
return;
|
|
29929
|
-
}
|
|
29930
|
-
target[key] = next;
|
|
29931
|
-
return;
|
|
29932
|
-
}
|
|
29933
|
-
target[key] = this.cloneUnknown(patchValue);
|
|
29934
|
-
});
|
|
29935
|
-
return target;
|
|
29936
|
-
}
|
|
29937
30305
|
applyAlwaysVisibleMetadataPatch(fieldName, patch) {
|
|
29938
30306
|
if (!patch || typeof patch !== 'object' || Array.isArray(patch))
|
|
29939
30307
|
return;
|
|
@@ -29943,7 +30311,7 @@ class FilterSettingsComponent {
|
|
|
29943
30311
|
if (!normalized || !Object.keys(normalized).length)
|
|
29944
30312
|
return;
|
|
29945
30313
|
const current = this.getAlwaysVisibleOverridesMap();
|
|
29946
|
-
const merged =
|
|
30314
|
+
const merged = applyJsonMergePatch(current[fieldName] || {}, normalized);
|
|
29947
30315
|
if (this.isPlainObject(merged) && Object.keys(merged).length) {
|
|
29948
30316
|
current[fieldName] = merged;
|
|
29949
30317
|
}
|
|
@@ -36845,14 +37213,14 @@ const PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION = 'praxis.filter-view-context.v1
|
|
|
36845
37213
|
|
|
36846
37214
|
const DEFAULT_I18N = {
|
|
36847
37215
|
searchPlaceholder: 'Buscar',
|
|
36848
|
-
advanced: '
|
|
37216
|
+
advanced: 'Filtro avançado',
|
|
36849
37217
|
advancedTitle: 'Filtro avançado',
|
|
36850
37218
|
advancedOpening: 'Abrindo filtro avançado...',
|
|
36851
37219
|
advancedUnavailable: 'Todos os campos já estão visíveis na toolbar',
|
|
36852
37220
|
clear: 'Limpar filtros',
|
|
36853
37221
|
apply: 'Pesquisar',
|
|
36854
|
-
add: 'Gerenciar
|
|
36855
|
-
filtersAdd: 'Gerenciar
|
|
37222
|
+
add: 'Gerenciar campos',
|
|
37223
|
+
filtersAdd: 'Gerenciar campos',
|
|
36856
37224
|
filtersSearch: 'Buscar filtros',
|
|
36857
37225
|
addCount: 'Gerenciar campos de filtro ({count} exibidos)',
|
|
36858
37226
|
addCountSingular: 'Gerenciar campos de filtro ({count} exibido)',
|
|
@@ -36864,6 +37232,8 @@ const DEFAULT_I18N = {
|
|
|
36864
37232
|
selectedFieldsCount: '{count} campos exibidos',
|
|
36865
37233
|
selectedFieldsCountSingular: '{count} campo exibido',
|
|
36866
37234
|
selectedFieldsSectionTitle: 'Campos exibidos',
|
|
37235
|
+
fixedFieldsSectionTitle: 'Campos fixos',
|
|
37236
|
+
fixedFieldDescription: 'Campo fixo, sempre exibido na barra de filtros',
|
|
36867
37237
|
availableFieldsSectionTitle: 'Campos disponíveis',
|
|
36868
37238
|
manageFieldsApply: 'Aplicar',
|
|
36869
37239
|
selectAllResults: 'Selecionar todos os resultados',
|
|
@@ -36897,7 +37267,7 @@ const DEFAULT_I18N = {
|
|
|
36897
37267
|
cancel: 'Cancelar',
|
|
36898
37268
|
shortcutsLabel: 'Atalhos',
|
|
36899
37269
|
shortcutSaved: 'Atalho salvo',
|
|
36900
|
-
readonlyShortcut: 'Atalho predefinido (somente leitura)',
|
|
37270
|
+
readonlyShortcut: 'Atalho predefinido (somente leitura). Ao aplicar, substitui os filtros atuais.',
|
|
36901
37271
|
shortcutRemoved: 'Atalho removido',
|
|
36902
37272
|
undo: 'Desfazer',
|
|
36903
37273
|
};
|
|
@@ -36957,11 +37327,11 @@ function normalizeCorporateLoggerEnvironment$1(candidate) {
|
|
|
36957
37327
|
return 'dev';
|
|
36958
37328
|
if (value === 'qa' || value === 'test' || value === 'testing')
|
|
36959
37329
|
return 'qa';
|
|
36960
|
-
if (value === 'hml'
|
|
36961
|
-
|
|
36962
|
-
|
|
36963
|
-
|
|
36964
|
-
|
|
37330
|
+
if (value === 'hml' ||
|
|
37331
|
+
value === 'homolog' ||
|
|
37332
|
+
value === 'homologacao' ||
|
|
37333
|
+
value === 'stage' ||
|
|
37334
|
+
value === 'staging') {
|
|
36965
37335
|
return 'hml';
|
|
36966
37336
|
}
|
|
36967
37337
|
return 'prod';
|
|
@@ -37175,9 +37545,22 @@ class PraxisFilter {
|
|
|
37175
37545
|
addManagerItemMotion = null;
|
|
37176
37546
|
addManagerTitleId = `praxis-filter-fields-title-${Math.random().toString(36).slice(2)}`;
|
|
37177
37547
|
addManagerDescriptionId = `praxis-filter-fields-description-${Math.random().toString(36).slice(2)}`;
|
|
37548
|
+
addManagerViewportMargin = 8;
|
|
37178
37549
|
addOverlayPositions = [
|
|
37179
|
-
{
|
|
37180
|
-
|
|
37550
|
+
{
|
|
37551
|
+
originX: 'end',
|
|
37552
|
+
originY: 'bottom',
|
|
37553
|
+
overlayX: 'end',
|
|
37554
|
+
overlayY: 'top',
|
|
37555
|
+
offsetY: 8,
|
|
37556
|
+
},
|
|
37557
|
+
{
|
|
37558
|
+
originX: 'end',
|
|
37559
|
+
originY: 'top',
|
|
37560
|
+
overlayX: 'end',
|
|
37561
|
+
overlayY: 'bottom',
|
|
37562
|
+
offsetY: -8,
|
|
37563
|
+
},
|
|
37181
37564
|
];
|
|
37182
37565
|
applySchemaQueued = false;
|
|
37183
37566
|
shortcutPromptOpen = false;
|
|
@@ -37219,21 +37602,29 @@ class PraxisFilter {
|
|
|
37219
37602
|
autoOpenSettingsOnOutdated: false,
|
|
37220
37603
|
};
|
|
37221
37604
|
resolveSchemaPrefs() {
|
|
37222
|
-
const DEFAULTS = {
|
|
37605
|
+
const DEFAULTS = {
|
|
37606
|
+
notifyIfOutdated: 'both',
|
|
37607
|
+
snoozeMs: 24 * 60 * 60 * 1000,
|
|
37608
|
+
autoOpenSettingsOnOutdated: false,
|
|
37609
|
+
};
|
|
37223
37610
|
let out = {
|
|
37224
37611
|
notifyIfOutdated: this.notifyIfOutdated ?? DEFAULTS.notifyIfOutdated,
|
|
37225
37612
|
snoozeMs: typeof this.snoozeMs === 'number' ? this.snoozeMs : DEFAULTS.snoozeMs,
|
|
37226
37613
|
autoOpenSettingsOnOutdated: !!this.autoOpenSettingsOnOutdated,
|
|
37227
37614
|
};
|
|
37228
|
-
const inputsAreDefaults =
|
|
37615
|
+
const inputsAreDefaults = this.notifyIfOutdated === DEFAULTS.notifyIfOutdated &&
|
|
37616
|
+
this.snoozeMs === DEFAULTS.snoozeMs &&
|
|
37617
|
+
this.autoOpenSettingsOnOutdated === DEFAULTS.autoOpenSettingsOnOutdated;
|
|
37229
37618
|
if (inputsAreDefaults) {
|
|
37230
37619
|
try {
|
|
37231
37620
|
const g = this.global.getSchemaPrefsGlobal?.();
|
|
37232
37621
|
if (g && typeof g === 'object') {
|
|
37233
37622
|
out = {
|
|
37234
37623
|
notifyIfOutdated: g.notifyIfOutdated ?? out.notifyIfOutdated,
|
|
37235
|
-
snoozeMs:
|
|
37236
|
-
autoOpenSettingsOnOutdated:
|
|
37624
|
+
snoozeMs: typeof g.snoozeMs === 'number' ? g.snoozeMs : out.snoozeMs,
|
|
37625
|
+
autoOpenSettingsOnOutdated: typeof g.autoOpenSettingsOnOutdated === 'boolean'
|
|
37626
|
+
? g.autoOpenSettingsOnOutdated
|
|
37627
|
+
: out.autoOpenSettingsOnOutdated,
|
|
37237
37628
|
};
|
|
37238
37629
|
}
|
|
37239
37630
|
}
|
|
@@ -37358,9 +37749,10 @@ class PraxisFilter {
|
|
|
37358
37749
|
if (this.logger)
|
|
37359
37750
|
return this.logger;
|
|
37360
37751
|
const runtimeEnvironment = normalizeCorporateLoggerEnvironment$1(this.resolveRuntimeEnvironment());
|
|
37361
|
-
if (!this.fallbackLogger
|
|
37362
|
-
|
|
37363
|
-
this.fallbackLogger =
|
|
37752
|
+
if (!this.fallbackLogger ||
|
|
37753
|
+
this.fallbackLoggerEnvironment !== runtimeEnvironment) {
|
|
37754
|
+
this.fallbackLogger =
|
|
37755
|
+
createPraxisFilterFallbackLogger(runtimeEnvironment);
|
|
37364
37756
|
this.fallbackLoggerEnvironment = runtimeEnvironment;
|
|
37365
37757
|
}
|
|
37366
37758
|
return this.fallbackLogger;
|
|
@@ -37392,7 +37784,9 @@ class PraxisFilter {
|
|
|
37392
37784
|
}
|
|
37393
37785
|
isFilterDebugEnabled() {
|
|
37394
37786
|
try {
|
|
37395
|
-
const explicitFlag = typeof window !== 'undefined'
|
|
37787
|
+
const explicitFlag = typeof window !== 'undefined'
|
|
37788
|
+
? window.DEBUG_PTABLE
|
|
37789
|
+
: undefined;
|
|
37396
37790
|
if (explicitFlag === true)
|
|
37397
37791
|
return true;
|
|
37398
37792
|
if (explicitFlag === false)
|
|
@@ -37628,7 +38022,9 @@ class PraxisFilter {
|
|
|
37628
38022
|
// add-select doesn't require fixed ids; relies on panelClass
|
|
37629
38023
|
// Inicializa flag de mobile
|
|
37630
38024
|
this.isMobile = this.computeIsMobile();
|
|
37631
|
-
const cfg = this.configKey
|
|
38025
|
+
const cfg = this.configKey
|
|
38026
|
+
? await this.filterConfig.load(this.configKey)
|
|
38027
|
+
: undefined;
|
|
37632
38028
|
if (cfg) {
|
|
37633
38029
|
try {
|
|
37634
38030
|
this.lastSavedConfigJson = JSON.stringify(cfg);
|
|
@@ -37672,7 +38068,8 @@ class PraxisFilter {
|
|
|
37672
38068
|
if (cfg.alwaysColsLg !== undefined) {
|
|
37673
38069
|
this.alwaysColsLg = cfg.alwaysColsLg;
|
|
37674
38070
|
}
|
|
37675
|
-
if (cfg.selectedFieldIds &&
|
|
38071
|
+
if (cfg.selectedFieldIds &&
|
|
38072
|
+
(!this.selectedFieldIds || this.selectedFieldIds.length === 0)) {
|
|
37676
38073
|
this.selectedFieldIds = this.normalizeFieldIdList(cfg.selectedFieldIds);
|
|
37677
38074
|
}
|
|
37678
38075
|
if (cfg.confirmTagDelete !== undefined) {
|
|
@@ -37686,7 +38083,8 @@ class PraxisFilter {
|
|
|
37686
38083
|
if (cfg.overlayBackdrop !== undefined)
|
|
37687
38084
|
this.overlayBackdrop = !!cfg.overlayBackdrop;
|
|
37688
38085
|
if (cfg.advancedClearButtonsEnabled !== undefined) {
|
|
37689
|
-
this.advancedClearButtonsEnabled = !!cfg
|
|
38086
|
+
this.advancedClearButtonsEnabled = !!cfg
|
|
38087
|
+
.advancedClearButtonsEnabled;
|
|
37690
38088
|
}
|
|
37691
38089
|
if (cfg.tagColor)
|
|
37692
38090
|
this.tagColor = cfg.tagColor;
|
|
@@ -37699,7 +38097,8 @@ class PraxisFilter {
|
|
|
37699
38097
|
if (cfg.actionsVariant)
|
|
37700
38098
|
this.actionsVariant = cfg.actionsVariant;
|
|
37701
38099
|
if (cfg.useInlineSearchableSelectVariant !== undefined) {
|
|
37702
|
-
this.useInlineSearchableSelectVariant = !!cfg
|
|
38100
|
+
this.useInlineSearchableSelectVariant = !!cfg
|
|
38101
|
+
.useInlineSearchableSelectVariant;
|
|
37703
38102
|
}
|
|
37704
38103
|
if (cfg.useInlineRangeVariant !== undefined) {
|
|
37705
38104
|
this.useInlineRangeVariant = !!cfg.useInlineRangeVariant;
|
|
@@ -37708,16 +38107,19 @@ class PraxisFilter {
|
|
|
37708
38107
|
this.useInlineDateVariant = !!cfg.useInlineDateVariant;
|
|
37709
38108
|
}
|
|
37710
38109
|
if (cfg.useInlineDateRangeVariant !== undefined) {
|
|
37711
|
-
this.useInlineDateRangeVariant = !!cfg
|
|
38110
|
+
this.useInlineDateRangeVariant = !!cfg
|
|
38111
|
+
.useInlineDateRangeVariant;
|
|
37712
38112
|
}
|
|
37713
38113
|
if (cfg.useInlineTimeVariant !== undefined) {
|
|
37714
38114
|
this.useInlineTimeVariant = !!cfg.useInlineTimeVariant;
|
|
37715
38115
|
}
|
|
37716
38116
|
if (cfg.useInlineTimeRangeVariant !== undefined) {
|
|
37717
|
-
this.useInlineTimeRangeVariant = !!cfg
|
|
38117
|
+
this.useInlineTimeRangeVariant = !!cfg
|
|
38118
|
+
.useInlineTimeRangeVariant;
|
|
37718
38119
|
}
|
|
37719
38120
|
if (cfg.useInlineTreeSelectVariant !== undefined) {
|
|
37720
|
-
this.useInlineTreeSelectVariant = !!cfg
|
|
38121
|
+
this.useInlineTreeSelectVariant = !!cfg
|
|
38122
|
+
.useInlineTreeSelectVariant;
|
|
37721
38123
|
}
|
|
37722
38124
|
}
|
|
37723
38125
|
// Apply global defaults for filter UI when not specified in saved config or inputs
|
|
@@ -37853,22 +38255,28 @@ class PraxisFilter {
|
|
|
37853
38255
|
// Preferir a largura da barra completa para melhor alinhamento com ações
|
|
37854
38256
|
const bar = anchor?.closest?.('.praxis-filter-bar');
|
|
37855
38257
|
// Compute width preferring bar, fallback to anchor
|
|
37856
|
-
const barW = (() => {
|
|
37857
|
-
|
|
37858
|
-
|
|
37859
|
-
|
|
37860
|
-
|
|
37861
|
-
|
|
37862
|
-
|
|
37863
|
-
|
|
37864
|
-
|
|
37865
|
-
|
|
37866
|
-
|
|
37867
|
-
|
|
38258
|
+
const barW = (() => {
|
|
38259
|
+
try {
|
|
38260
|
+
return Math.floor(bar?.getBoundingClientRect?.().width || 0);
|
|
38261
|
+
}
|
|
38262
|
+
catch {
|
|
38263
|
+
return 0;
|
|
38264
|
+
}
|
|
38265
|
+
})();
|
|
38266
|
+
const anchorW = (() => {
|
|
38267
|
+
try {
|
|
38268
|
+
return Math.floor(anchor?.getBoundingClientRect?.().width || 0);
|
|
38269
|
+
}
|
|
38270
|
+
catch {
|
|
38271
|
+
return 0;
|
|
38272
|
+
}
|
|
38273
|
+
})();
|
|
37868
38274
|
const w = Math.max(0, barW > 0 ? barW : anchorW);
|
|
37869
38275
|
this.overlayWidth = w || 520;
|
|
37870
38276
|
}
|
|
37871
|
-
catch {
|
|
38277
|
+
catch {
|
|
38278
|
+
/* noop */
|
|
38279
|
+
}
|
|
37872
38280
|
}
|
|
37873
38281
|
// Helper para detectar viewport mobile (mantido simples e sem SSR)
|
|
37874
38282
|
computeIsMobile() {
|
|
@@ -37884,7 +38292,8 @@ class PraxisFilter {
|
|
|
37884
38292
|
(changes['filterId'] && !changes['filterId'].firstChange) ||
|
|
37885
38293
|
(changes['formId'] && !changes['formId'].firstChange) ||
|
|
37886
38294
|
(changes['persistenceKey'] && !changes['persistenceKey'].firstChange) ||
|
|
37887
|
-
(changes['componentInstanceId'] &&
|
|
38295
|
+
(changes['componentInstanceId'] &&
|
|
38296
|
+
!changes['componentInstanceId'].firstChange);
|
|
37888
38297
|
if (changes['resourcePath'] ||
|
|
37889
38298
|
changes['filterId'] ||
|
|
37890
38299
|
changes['formId'] ||
|
|
@@ -37954,12 +38363,14 @@ class PraxisFilter {
|
|
|
37954
38363
|
else if (!changes['fieldMetadata'].firstChange) {
|
|
37955
38364
|
this.schemaMetas = undefined;
|
|
37956
38365
|
if (!this.schemaLoading &&
|
|
37957
|
-
((this.alwaysVisibleFields?.length || 0) > 0 ||
|
|
38366
|
+
((this.alwaysVisibleFields?.length || 0) > 0 ||
|
|
38367
|
+
(this.selectedFieldIds?.length || 0) > 0)) {
|
|
37958
38368
|
this.loadSchema();
|
|
37959
38369
|
}
|
|
37960
38370
|
}
|
|
37961
38371
|
}
|
|
37962
|
-
if (changes['alwaysVisibleFields'] &&
|
|
38372
|
+
if (changes['alwaysVisibleFields'] &&
|
|
38373
|
+
!changes['alwaysVisibleFields'].firstChange) {
|
|
37963
38374
|
this.alwaysVisibleFields = this.normalizeFieldIdList(this.alwaysVisibleFields);
|
|
37964
38375
|
this.logFilterDebug('[PFILTER] ngOnChanges: alwaysVisibleFields changed', {
|
|
37965
38376
|
alwaysVisibleFields: this.alwaysVisibleFields,
|
|
@@ -37985,7 +38396,8 @@ class PraxisFilter {
|
|
|
37985
38396
|
this.applySchemaMetas();
|
|
37986
38397
|
}
|
|
37987
38398
|
}
|
|
37988
|
-
if (changes['selectedFieldIds'] &&
|
|
38399
|
+
if (changes['selectedFieldIds'] &&
|
|
38400
|
+
!changes['selectedFieldIds'].firstChange) {
|
|
37989
38401
|
this.selectedFieldIds = this.normalizeFieldIdList(this.selectedFieldIds);
|
|
37990
38402
|
if (this.addManagerOpen && this.isAddManagerDirty()) {
|
|
37991
38403
|
this.addManagerConflict = true;
|
|
@@ -38008,7 +38420,9 @@ class PraxisFilter {
|
|
|
38008
38420
|
if (changes['i18n']) {
|
|
38009
38421
|
this.mergeI18n();
|
|
38010
38422
|
}
|
|
38011
|
-
if (changes['notifyIfOutdated'] ||
|
|
38423
|
+
if (changes['notifyIfOutdated'] ||
|
|
38424
|
+
changes['snoozeMs'] ||
|
|
38425
|
+
changes['autoOpenSettingsOnOutdated']) {
|
|
38012
38426
|
this.resolveSchemaPrefs();
|
|
38013
38427
|
}
|
|
38014
38428
|
}
|
|
@@ -38085,12 +38499,14 @@ class PraxisFilter {
|
|
|
38085
38499
|
if (cfg.allowSaveTags !== undefined) {
|
|
38086
38500
|
this.allowSaveTags = cfg.allowSaveTags;
|
|
38087
38501
|
}
|
|
38088
|
-
if (cfg.changeDebounceMs !== undefined &&
|
|
38502
|
+
if (cfg.changeDebounceMs !== undefined &&
|
|
38503
|
+
cfg.changeDebounceMs !== this.changeDebounceMs) {
|
|
38089
38504
|
this.changeDebounceMs = cfg.changeDebounceMs;
|
|
38090
38505
|
this.bindAdvancedDebounce();
|
|
38091
38506
|
}
|
|
38092
38507
|
if (cfg.useInlineSearchableSelectVariant !== undefined) {
|
|
38093
|
-
this.useInlineSearchableSelectVariant = !!cfg
|
|
38508
|
+
this.useInlineSearchableSelectVariant = !!cfg
|
|
38509
|
+
.useInlineSearchableSelectVariant;
|
|
38094
38510
|
}
|
|
38095
38511
|
if (cfg.useInlineRangeVariant !== undefined) {
|
|
38096
38512
|
this.useInlineRangeVariant = !!cfg.useInlineRangeVariant;
|
|
@@ -38108,7 +38524,8 @@ class PraxisFilter {
|
|
|
38108
38524
|
this.useInlineTimeRangeVariant = !!cfg.useInlineTimeRangeVariant;
|
|
38109
38525
|
}
|
|
38110
38526
|
if (cfg.useInlineTreeSelectVariant !== undefined) {
|
|
38111
|
-
this.useInlineTreeSelectVariant = !!cfg
|
|
38527
|
+
this.useInlineTreeSelectVariant = !!cfg
|
|
38528
|
+
.useInlineTreeSelectVariant;
|
|
38112
38529
|
}
|
|
38113
38530
|
const inlineVariantsChanged = prevInlineSearchable !== this.useInlineSearchableSelectVariant ||
|
|
38114
38531
|
prevInlineRange !== this.useInlineRangeVariant ||
|
|
@@ -38117,14 +38534,19 @@ class PraxisFilter {
|
|
|
38117
38534
|
prevInlineTime !== this.useInlineTimeVariant ||
|
|
38118
38535
|
prevInlineTimeRange !== this.useInlineTimeRangeVariant ||
|
|
38119
38536
|
prevInlineTreeSelect !== this.useInlineTreeSelectVariant;
|
|
38120
|
-
if (alwaysChanged ||
|
|
38537
|
+
if (alwaysChanged ||
|
|
38538
|
+
selectedChanged ||
|
|
38539
|
+
overridesChanged ||
|
|
38540
|
+
fieldOverridesChanged ||
|
|
38541
|
+
inlineVariantsChanged) {
|
|
38121
38542
|
if (this.schemaMetas) {
|
|
38122
38543
|
this.applySchemaMetas();
|
|
38123
38544
|
}
|
|
38124
38545
|
else if (this.usesProvidedFieldMetadata()) {
|
|
38125
38546
|
this.applyProvidedFieldMetadata();
|
|
38126
38547
|
}
|
|
38127
|
-
else if (!this.schemaLoading &&
|
|
38548
|
+
else if (!this.schemaLoading &&
|
|
38549
|
+
(nextAlways.length > 0 || nextSelected.length > 0)) {
|
|
38128
38550
|
this.loadSchema();
|
|
38129
38551
|
}
|
|
38130
38552
|
this.updateAddItems();
|
|
@@ -38217,7 +38639,8 @@ class PraxisFilter {
|
|
|
38217
38639
|
this.advancedOpenMode = this.normalizeAdvancedOpenMode(cfg.advancedOpenMode);
|
|
38218
38640
|
}
|
|
38219
38641
|
if (cfg.advancedClearButtonsEnabled !== undefined) {
|
|
38220
|
-
this.advancedClearButtonsEnabled = !!cfg
|
|
38642
|
+
this.advancedClearButtonsEnabled = !!cfg
|
|
38643
|
+
.advancedClearButtonsEnabled;
|
|
38221
38644
|
}
|
|
38222
38645
|
if (cfg.tagColor)
|
|
38223
38646
|
this.tagColor = cfg.tagColor;
|
|
@@ -38230,7 +38653,8 @@ class PraxisFilter {
|
|
|
38230
38653
|
if (cfg.actionsVariant)
|
|
38231
38654
|
this.actionsVariant = cfg.actionsVariant;
|
|
38232
38655
|
if (cfg.useInlineSearchableSelectVariant !== undefined) {
|
|
38233
|
-
this.useInlineSearchableSelectVariant = !!cfg
|
|
38656
|
+
this.useInlineSearchableSelectVariant = !!cfg
|
|
38657
|
+
.useInlineSearchableSelectVariant;
|
|
38234
38658
|
}
|
|
38235
38659
|
if (cfg.useInlineRangeVariant !== undefined) {
|
|
38236
38660
|
this.useInlineRangeVariant = !!cfg.useInlineRangeVariant;
|
|
@@ -38239,16 +38663,19 @@ class PraxisFilter {
|
|
|
38239
38663
|
this.useInlineDateVariant = !!cfg.useInlineDateVariant;
|
|
38240
38664
|
}
|
|
38241
38665
|
if (cfg.useInlineDateRangeVariant !== undefined) {
|
|
38242
|
-
this.useInlineDateRangeVariant = !!cfg
|
|
38666
|
+
this.useInlineDateRangeVariant = !!cfg
|
|
38667
|
+
.useInlineDateRangeVariant;
|
|
38243
38668
|
}
|
|
38244
38669
|
if (cfg.useInlineTimeVariant !== undefined) {
|
|
38245
38670
|
this.useInlineTimeVariant = !!cfg.useInlineTimeVariant;
|
|
38246
38671
|
}
|
|
38247
38672
|
if (cfg.useInlineTimeRangeVariant !== undefined) {
|
|
38248
|
-
this.useInlineTimeRangeVariant = !!cfg
|
|
38673
|
+
this.useInlineTimeRangeVariant = !!cfg
|
|
38674
|
+
.useInlineTimeRangeVariant;
|
|
38249
38675
|
}
|
|
38250
38676
|
if (cfg.useInlineTreeSelectVariant !== undefined) {
|
|
38251
|
-
this.useInlineTreeSelectVariant = !!cfg
|
|
38677
|
+
this.useInlineTreeSelectVariant = !!cfg
|
|
38678
|
+
.useInlineTreeSelectVariant;
|
|
38252
38679
|
}
|
|
38253
38680
|
this.mergeI18n();
|
|
38254
38681
|
this.applySchemaMetas();
|
|
@@ -38261,7 +38688,7 @@ class PraxisFilter {
|
|
|
38261
38688
|
this.bindAdvancedDebounce();
|
|
38262
38689
|
}
|
|
38263
38690
|
};
|
|
38264
|
-
const persistConfig = (cfg, message) => {
|
|
38691
|
+
const persistConfig = async (cfg, message) => {
|
|
38265
38692
|
this.saving = true;
|
|
38266
38693
|
try {
|
|
38267
38694
|
const persistedCfg = {
|
|
@@ -38274,7 +38701,7 @@ class PraxisFilter {
|
|
|
38274
38701
|
})(),
|
|
38275
38702
|
};
|
|
38276
38703
|
if (this.configKey) {
|
|
38277
|
-
this.filterConfig.save(this.configKey, persistedCfg);
|
|
38704
|
+
await this.filterConfig.save(this.configKey, persistedCfg);
|
|
38278
38705
|
try {
|
|
38279
38706
|
this.lastSavedConfigJson = JSON.stringify(persistedCfg);
|
|
38280
38707
|
}
|
|
@@ -38282,13 +38709,17 @@ class PraxisFilter {
|
|
|
38282
38709
|
this.lastSavedConfigJson = null;
|
|
38283
38710
|
}
|
|
38284
38711
|
}
|
|
38285
|
-
this.
|
|
38712
|
+
if (!this.destroyRef.destroyed) {
|
|
38713
|
+
this.snackBar.open(message, 'Fechar', { duration: 3000 });
|
|
38714
|
+
}
|
|
38286
38715
|
}
|
|
38287
38716
|
catch (err) {
|
|
38288
38717
|
this.getLogger().error('PFILTER:config:save:error', this.buildFilterLogOptions({ error: err }, 'config.save'));
|
|
38289
|
-
this.
|
|
38290
|
-
|
|
38291
|
-
|
|
38718
|
+
if (!this.destroyRef.destroyed) {
|
|
38719
|
+
this.snackBar.open('Erro ao salvar configurações', 'Fechar', {
|
|
38720
|
+
duration: 3000,
|
|
38721
|
+
});
|
|
38722
|
+
}
|
|
38292
38723
|
}
|
|
38293
38724
|
finally {
|
|
38294
38725
|
this.saving = false;
|
|
@@ -38348,16 +38779,17 @@ class PraxisFilter {
|
|
|
38348
38779
|
overlayBackdrop: cfg.overlayBackdrop,
|
|
38349
38780
|
};
|
|
38350
38781
|
};
|
|
38351
|
-
ref.applied$.
|
|
38782
|
+
ref.applied$.subscribe((cfg) => {
|
|
38352
38783
|
const safe = validateConfig(cfg);
|
|
38353
38784
|
applyChanges(safe);
|
|
38354
|
-
|
|
38355
|
-
|
|
38785
|
+
this.snackBar.open('Pré-visualização aplicada', 'Fechar', {
|
|
38786
|
+
duration: 2000,
|
|
38787
|
+
});
|
|
38356
38788
|
});
|
|
38357
|
-
ref.saved$.
|
|
38789
|
+
ref.saved$.subscribe((cfg) => {
|
|
38358
38790
|
const safe = validateConfig(cfg);
|
|
38359
38791
|
applyChanges(safe);
|
|
38360
|
-
persistConfig(safe, 'Configurações salvas');
|
|
38792
|
+
void persistConfig(safe, 'Configurações salvas');
|
|
38361
38793
|
});
|
|
38362
38794
|
}
|
|
38363
38795
|
catch (err) {
|
|
@@ -38416,7 +38848,10 @@ class PraxisFilter {
|
|
|
38416
38848
|
if (this.confirmTagDelete) {
|
|
38417
38849
|
try {
|
|
38418
38850
|
const ref = this.snackBar.open(this.i18nLabels.shortcutRemoved, this.i18nLabels.undo, { duration: 4000 });
|
|
38419
|
-
ref
|
|
38851
|
+
ref
|
|
38852
|
+
.onAction()
|
|
38853
|
+
.pipe(take$1(1))
|
|
38854
|
+
.subscribe(() => {
|
|
38420
38855
|
const reinsertIndex = Math.min(index, this.savedTags.length);
|
|
38421
38856
|
this.savedTags.splice(reinsertIndex, 0, removed);
|
|
38422
38857
|
this.persistTags();
|
|
@@ -38491,7 +38926,9 @@ class PraxisFilter {
|
|
|
38491
38926
|
if (v instanceof Date)
|
|
38492
38927
|
return v.toISOString();
|
|
38493
38928
|
if (Array.isArray(v))
|
|
38494
|
-
return v
|
|
38929
|
+
return v
|
|
38930
|
+
.map((it) => this.normalizeForCompare(it))
|
|
38931
|
+
.filter((it) => it !== undefined);
|
|
38495
38932
|
if (typeof v === 'object') {
|
|
38496
38933
|
const out = {};
|
|
38497
38934
|
Object.keys(v)
|
|
@@ -38508,7 +38945,9 @@ class PraxisFilter {
|
|
|
38508
38945
|
// getFilterSchemaPath não é mais necessário, pois o serviço deriva o path via schemaUrl()
|
|
38509
38946
|
buildFilteredSchemaContext() {
|
|
38510
38947
|
// Derive path from schemaUrl (preserves prefixes) and ensure /filter suffix
|
|
38511
|
-
const basePath = (this.crud.schemaUrl() || '')
|
|
38948
|
+
const basePath = (this.crud.schemaUrl() || '')
|
|
38949
|
+
.replace(/\/+$/, '')
|
|
38950
|
+
.replace(/\/schemas$/, '');
|
|
38512
38951
|
let path = basePath ? `${basePath}/filter` : '';
|
|
38513
38952
|
if (!path) {
|
|
38514
38953
|
// Fallback path if schemaUrl is not available
|
|
@@ -38524,8 +38963,19 @@ class PraxisFilter {
|
|
|
38524
38963
|
}
|
|
38525
38964
|
catch { }
|
|
38526
38965
|
const tenant = this.global.getTenant();
|
|
38527
|
-
const locale =
|
|
38528
|
-
|
|
38966
|
+
const locale = typeof navigator !== 'undefined' && navigator.language
|
|
38967
|
+
? navigator.language
|
|
38968
|
+
: undefined;
|
|
38969
|
+
return {
|
|
38970
|
+
path,
|
|
38971
|
+
operation,
|
|
38972
|
+
schemaType,
|
|
38973
|
+
includeInternalSchemas: true,
|
|
38974
|
+
tenant,
|
|
38975
|
+
locale,
|
|
38976
|
+
baseUrl,
|
|
38977
|
+
apiOrigin,
|
|
38978
|
+
};
|
|
38529
38979
|
}
|
|
38530
38980
|
toSchemaIdContext(ctx) {
|
|
38531
38981
|
return {
|
|
@@ -38640,7 +39090,8 @@ class PraxisFilter {
|
|
|
38640
39090
|
}
|
|
38641
39091
|
saveStoredSchemaMeta(key, next, schemaId) {
|
|
38642
39092
|
const current = this.storedSchemaMetaCache.get(key) ?? null;
|
|
38643
|
-
if (this.stableSerialize(this.normalizeStoredSchemaMetaForComparison(current)) ===
|
|
39093
|
+
if (this.stableSerialize(this.normalizeStoredSchemaMetaForComparison(current)) ===
|
|
39094
|
+
this.stableSerialize(this.normalizeStoredSchemaMetaForComparison(next))) {
|
|
38644
39095
|
if (schemaId)
|
|
38645
39096
|
this.rememberSchemaMetaContext(schemaId);
|
|
38646
39097
|
return;
|
|
@@ -38721,7 +39172,8 @@ class PraxisFilter {
|
|
|
38721
39172
|
}
|
|
38722
39173
|
persistSchemaMeta(schemaId, context, serverHash) {
|
|
38723
39174
|
try {
|
|
38724
|
-
const key = this.filterSchemaMetaKeyForSchemaId(schemaId) ||
|
|
39175
|
+
const key = this.filterSchemaMetaKeyForSchemaId(schemaId) ||
|
|
39176
|
+
this.getSchemaMetaKey();
|
|
38725
39177
|
if (!key)
|
|
38726
39178
|
return;
|
|
38727
39179
|
const nowIso = new Date().toISOString();
|
|
@@ -38780,7 +39232,10 @@ class PraxisFilter {
|
|
|
38780
39232
|
const disableCache = this.global.get('cache.disableSchemaCache');
|
|
38781
39233
|
const adapter = disableCache
|
|
38782
39234
|
? new MemoryCacheAdapter()
|
|
38783
|
-
: new LocalStorageCacheAdapter({
|
|
39235
|
+
: new LocalStorageCacheAdapter({
|
|
39236
|
+
ttlMs: 30 * 60 * 1000,
|
|
39237
|
+
maxEntries: 200,
|
|
39238
|
+
});
|
|
38784
39239
|
try {
|
|
38785
39240
|
const client = new SchemaMetadataClient(adapter);
|
|
38786
39241
|
const entry = await client.getSchema({
|
|
@@ -38805,7 +39260,9 @@ class PraxisFilter {
|
|
|
38805
39260
|
// Runtime hardening: if /schemas/filtered returns HTML/redirect or invalid JSON,
|
|
38806
39261
|
// fallback to CRUD HttpClient path before failing the filter experience.
|
|
38807
39262
|
this.logFilterWarn('[PFILTER] loadSchemaViaClient: metadata client failed, trying CRUD fallback', {
|
|
38808
|
-
message: schemaClientError instanceof Error
|
|
39263
|
+
message: schemaClientError instanceof Error
|
|
39264
|
+
? schemaClientError.message
|
|
39265
|
+
: String(schemaClientError),
|
|
38809
39266
|
path: ctx.path,
|
|
38810
39267
|
baseUrl: ctx.baseUrl,
|
|
38811
39268
|
});
|
|
@@ -38921,7 +39378,7 @@ class PraxisFilter {
|
|
|
38921
39378
|
this.schemaMetas = metas;
|
|
38922
39379
|
this.logFilterDebug('[PFILTER] loadSchema: metas received', {
|
|
38923
39380
|
total: metas.length,
|
|
38924
|
-
names: metas.map(m => m.name),
|
|
39381
|
+
names: metas.map((m) => m.name),
|
|
38925
39382
|
});
|
|
38926
39383
|
this.applySchemaMetas();
|
|
38927
39384
|
});
|
|
@@ -39022,9 +39479,7 @@ class PraxisFilter {
|
|
|
39022
39479
|
meta?.dataType ||
|
|
39023
39480
|
meta?.fieldType ||
|
|
39024
39481
|
'');
|
|
39025
|
-
const formatTypeToken = normalizeControlTypeToken(meta?.format ||
|
|
39026
|
-
meta?.formatType ||
|
|
39027
|
-
'');
|
|
39482
|
+
const formatTypeToken = normalizeControlTypeToken(meta?.format || meta?.formatType || '');
|
|
39028
39483
|
const isSearchableSelect = controlType === FieldControlType.SEARCHABLE_SELECT ||
|
|
39029
39484
|
normalizedControlType === 'searchable-select' ||
|
|
39030
39485
|
controlTypeToken === 'searchableselect' ||
|
|
@@ -39044,7 +39499,8 @@ class PraxisFilter {
|
|
|
39044
39499
|
const isEntityLookup = controlType === FieldControlType.ENTITY_LOOKUP ||
|
|
39045
39500
|
normalizedControlType === 'entitylookup' ||
|
|
39046
39501
|
controlTypeToken === 'entitylookup' ||
|
|
39047
|
-
controlTypeToken ===
|
|
39502
|
+
controlTypeToken ===
|
|
39503
|
+
normalizeControlTypeToken(INLINE_ENTITY_LOOKUP_CONTROL_TYPE) ||
|
|
39048
39504
|
meta?.entityLookup === true;
|
|
39049
39505
|
const isPhone = controlType === FieldControlType.PHONE ||
|
|
39050
39506
|
normalizedControlType === 'phone' ||
|
|
@@ -39052,7 +39508,8 @@ class PraxisFilter {
|
|
|
39052
39508
|
controlTypeToken === 'phone' ||
|
|
39053
39509
|
controlTypeToken === 'telephone' ||
|
|
39054
39510
|
controlTypeToken === 'telefone' ||
|
|
39055
|
-
controlTypeToken ===
|
|
39511
|
+
controlTypeToken ===
|
|
39512
|
+
normalizeControlTypeToken(INLINE_PHONE_CONTROL_TYPE) ||
|
|
39056
39513
|
dataTypeToken === 'phone' ||
|
|
39057
39514
|
dataTypeToken === 'tel' ||
|
|
39058
39515
|
formatTypeToken === 'phone' ||
|
|
@@ -39112,38 +39569,54 @@ class PraxisFilter {
|
|
|
39112
39569
|
controlTypeToken === 'treeselect' ||
|
|
39113
39570
|
controlTypeToken === 'treeview';
|
|
39114
39571
|
const isInlineTimeExplicit = controlType === INLINE_TIME_CONTROL_TYPE ||
|
|
39115
|
-
controlTypeToken ===
|
|
39572
|
+
controlTypeToken ===
|
|
39573
|
+
normalizeControlTypeToken(INLINE_TIME_CONTROL_TYPE);
|
|
39116
39574
|
const isInlineTimeRangeExplicit = controlType === INLINE_TIME_RANGE_CONTROL_TYPE ||
|
|
39117
|
-
controlTypeToken ===
|
|
39575
|
+
controlTypeToken ===
|
|
39576
|
+
normalizeControlTypeToken(INLINE_TIME_RANGE_CONTROL_TYPE);
|
|
39118
39577
|
const isInlinePeriodRangeExplicit = controlType === INLINE_PERIOD_RANGE_CONTROL_TYPE ||
|
|
39119
|
-
controlTypeToken ===
|
|
39578
|
+
controlTypeToken ===
|
|
39579
|
+
normalizeControlTypeToken(INLINE_PERIOD_RANGE_CONTROL_TYPE);
|
|
39120
39580
|
const isInlineYearRangeExplicit = controlType === INLINE_YEAR_RANGE_CONTROL_TYPE ||
|
|
39121
|
-
controlTypeToken ===
|
|
39581
|
+
controlTypeToken ===
|
|
39582
|
+
normalizeControlTypeToken(INLINE_YEAR_RANGE_CONTROL_TYPE);
|
|
39122
39583
|
const isInlineMonthRangeExplicit = controlType === INLINE_MONTH_RANGE_CONTROL_TYPE ||
|
|
39123
|
-
controlTypeToken ===
|
|
39584
|
+
controlTypeToken ===
|
|
39585
|
+
normalizeControlTypeToken(INLINE_MONTH_RANGE_CONTROL_TYPE);
|
|
39124
39586
|
const isInlineTreeSelectExplicit = controlType === INLINE_TREE_SELECT_CONTROL_TYPE ||
|
|
39125
|
-
controlTypeToken ===
|
|
39587
|
+
controlTypeToken ===
|
|
39588
|
+
normalizeControlTypeToken(INLINE_TREE_SELECT_CONTROL_TYPE);
|
|
39126
39589
|
const isInlineRatingExplicit = controlType === INLINE_RATING_CONTROL_TYPE ||
|
|
39127
|
-
controlTypeToken ===
|
|
39590
|
+
controlTypeToken ===
|
|
39591
|
+
normalizeControlTypeToken(INLINE_RATING_CONTROL_TYPE);
|
|
39128
39592
|
const isInlineDistanceRadiusExplicit = controlType === INLINE_DISTANCE_RADIUS_CONTROL_TYPE ||
|
|
39129
|
-
controlTypeToken ===
|
|
39593
|
+
controlTypeToken ===
|
|
39594
|
+
normalizeControlTypeToken(INLINE_DISTANCE_RADIUS_CONTROL_TYPE);
|
|
39130
39595
|
const isInlinePipelineStatusExplicit = controlType === INLINE_PIPELINE_STATUS_CONTROL_TYPE ||
|
|
39131
|
-
controlTypeToken ===
|
|
39596
|
+
controlTypeToken ===
|
|
39597
|
+
normalizeControlTypeToken(INLINE_PIPELINE_STATUS_CONTROL_TYPE);
|
|
39132
39598
|
const isInlineScorePriorityExplicit = controlType === INLINE_SCORE_PRIORITY_CONTROL_TYPE ||
|
|
39133
|
-
controlTypeToken ===
|
|
39599
|
+
controlTypeToken ===
|
|
39600
|
+
normalizeControlTypeToken(INLINE_SCORE_PRIORITY_CONTROL_TYPE);
|
|
39134
39601
|
const isInlineRelativePeriodExplicit = controlType === INLINE_RELATIVE_PERIOD_CONTROL_TYPE ||
|
|
39135
|
-
controlTypeToken ===
|
|
39602
|
+
controlTypeToken ===
|
|
39603
|
+
normalizeControlTypeToken(INLINE_RELATIVE_PERIOD_CONTROL_TYPE);
|
|
39136
39604
|
const isInlineSentimentExplicit = controlType === INLINE_SENTIMENT_CONTROL_TYPE ||
|
|
39137
|
-
controlTypeToken ===
|
|
39605
|
+
controlTypeToken ===
|
|
39606
|
+
normalizeControlTypeToken(INLINE_SENTIMENT_CONTROL_TYPE);
|
|
39138
39607
|
const isInlineColorLabelExplicit = controlType === INLINE_COLOR_LABEL_CONTROL_TYPE ||
|
|
39139
|
-
controlTypeToken ===
|
|
39608
|
+
controlTypeToken ===
|
|
39609
|
+
normalizeControlTypeToken(INLINE_COLOR_LABEL_CONTROL_TYPE);
|
|
39140
39610
|
const isInlineMultiSelectExplicit = controlType === INLINE_MULTI_SELECT_CONTROL_TYPE ||
|
|
39141
|
-
controlTypeToken ===
|
|
39611
|
+
controlTypeToken ===
|
|
39612
|
+
normalizeControlTypeToken(INLINE_MULTI_SELECT_CONTROL_TYPE);
|
|
39142
39613
|
const isInlineRangeExplicit = controlType === INLINE_RANGE_CONTROL_TYPE ||
|
|
39143
|
-
controlTypeToken ===
|
|
39614
|
+
controlTypeToken ===
|
|
39615
|
+
normalizeControlTypeToken(INLINE_RANGE_CONTROL_TYPE);
|
|
39144
39616
|
const isMultipleSelection = isInlineMultiSelectExplicit ||
|
|
39145
39617
|
meta?.multiple === true ||
|
|
39146
|
-
normalizeControlTypeToken(meta?.selectionMode || '') ===
|
|
39618
|
+
normalizeControlTypeToken(meta?.selectionMode || '') ===
|
|
39619
|
+
'multiple';
|
|
39147
39620
|
const shouldUseInlineSearchableSelect = this.useInlineSearchableSelectVariant &&
|
|
39148
39621
|
!isMultipleSelection &&
|
|
39149
39622
|
isSearchableSelect;
|
|
@@ -39168,9 +39641,7 @@ class PraxisFilter {
|
|
|
39168
39641
|
normalizedControlType === 'input' ||
|
|
39169
39642
|
normalizedControlType === 'search' ||
|
|
39170
39643
|
controlTypeToken === 'searchinput');
|
|
39171
|
-
const shouldUseInlinePhone = this.useInlineInputVariant &&
|
|
39172
|
-
!isMultipleSelection &&
|
|
39173
|
-
isPhone;
|
|
39644
|
+
const shouldUseInlinePhone = this.useInlineInputVariant && !isMultipleSelection && isPhone;
|
|
39174
39645
|
const shouldUseInlineNumber = this.useInlineInputVariant &&
|
|
39175
39646
|
!isMultipleSelection &&
|
|
39176
39647
|
isNumeric &&
|
|
@@ -39198,7 +39669,7 @@ class PraxisFilter {
|
|
|
39198
39669
|
isMonthRange &&
|
|
39199
39670
|
normalizeControlTypeToken(meta?.mode || '') === 'range');
|
|
39200
39671
|
const periodRangeGranularity = isInlinePeriodRangeExplicit
|
|
39201
|
-
?
|
|
39672
|
+
? meta?.granularity || undefined
|
|
39202
39673
|
: shouldUseInlineYearRange
|
|
39203
39674
|
? 'year'
|
|
39204
39675
|
: shouldUseInlineMonthRange
|
|
@@ -39208,9 +39679,7 @@ class PraxisFilter {
|
|
|
39208
39679
|
shouldUseInlineYearRange ||
|
|
39209
39680
|
shouldUseInlineMonthRange;
|
|
39210
39681
|
const shouldUseInlineRange = isInlineRangeExplicit ||
|
|
39211
|
-
(this.useInlineRangeVariant &&
|
|
39212
|
-
!isMultipleSelection &&
|
|
39213
|
-
isRangeSlider);
|
|
39682
|
+
(this.useInlineRangeVariant && !isMultipleSelection && isRangeSlider);
|
|
39214
39683
|
const shouldUseInlineDate = this.useInlineDateVariant &&
|
|
39215
39684
|
!isMultipleSelection &&
|
|
39216
39685
|
(controlType === FieldControlType.DATE_PICKER ||
|
|
@@ -39234,8 +39703,10 @@ class PraxisFilter {
|
|
|
39234
39703
|
controlTypeToken === 'datetimerange' ||
|
|
39235
39704
|
controlTypeToken === 'materialdaterange');
|
|
39236
39705
|
const shouldUseInlineTime = isInlineTimeExplicit || (this.useInlineTimeVariant && isTimePicker);
|
|
39237
|
-
const shouldUseInlineTimeRange = isInlineTimeRangeExplicit ||
|
|
39238
|
-
|
|
39706
|
+
const shouldUseInlineTimeRange = isInlineTimeRangeExplicit ||
|
|
39707
|
+
(this.useInlineTimeRangeVariant && isTimeRange);
|
|
39708
|
+
const shouldUseInlineTreeSelect = isInlineTreeSelectExplicit ||
|
|
39709
|
+
(this.useInlineTreeSelectVariant && isTreeSelect);
|
|
39239
39710
|
const inlineControlType = shouldUseInlineEntityLookup
|
|
39240
39711
|
? INLINE_ENTITY_LOOKUP_CONTROL_TYPE
|
|
39241
39712
|
: shouldUseInlineAsyncSelect
|
|
@@ -39293,11 +39764,36 @@ class PraxisFilter {
|
|
|
39293
39764
|
supportsClearButtonControlType(controlType);
|
|
39294
39765
|
const existingClear = meta.clearButton;
|
|
39295
39766
|
let clearButton = existingClear;
|
|
39296
|
-
if (supportsInlineClear &&
|
|
39767
|
+
if (supportsInlineClear &&
|
|
39768
|
+
(shouldUseInlineSearchableSelect ||
|
|
39769
|
+
shouldUseInlineAsyncSelect ||
|
|
39770
|
+
shouldUseInlineEntityLookup ||
|
|
39771
|
+
shouldUseInlineAutocomplete ||
|
|
39772
|
+
shouldUseInlineSelect ||
|
|
39773
|
+
shouldUseInlineMultiSelect ||
|
|
39774
|
+
shouldUseInlineInput ||
|
|
39775
|
+
shouldUseInlinePhone ||
|
|
39776
|
+
shouldUseInlineNumber ||
|
|
39777
|
+
shouldUseInlineCurrency ||
|
|
39778
|
+
shouldUseInlineCurrencyRange ||
|
|
39779
|
+
shouldUseInlineRating ||
|
|
39780
|
+
shouldUseInlineDistanceRadius ||
|
|
39781
|
+
isInlinePipelineStatusExplicit ||
|
|
39782
|
+
isInlineScorePriorityExplicit ||
|
|
39783
|
+
shouldUseInlineToggle ||
|
|
39784
|
+
shouldUseInlinePeriodRange ||
|
|
39785
|
+
shouldUseInlineRange ||
|
|
39786
|
+
shouldUseInlineDate ||
|
|
39787
|
+
shouldUseInlineDateRange ||
|
|
39788
|
+
shouldUseInlineTime ||
|
|
39789
|
+
shouldUseInlineTimeRange ||
|
|
39790
|
+
shouldUseInlineTreeSelect)) {
|
|
39297
39791
|
if (existingClear === undefined || existingClear === true) {
|
|
39298
39792
|
clearButton = { enabled: true, showOnlyWhenFilled: true };
|
|
39299
39793
|
}
|
|
39300
|
-
else if (existingClear &&
|
|
39794
|
+
else if (existingClear &&
|
|
39795
|
+
typeof existingClear === 'object' &&
|
|
39796
|
+
existingClear.showOnlyWhenFilled === undefined) {
|
|
39301
39797
|
clearButton = { ...existingClear, showOnlyWhenFilled: true };
|
|
39302
39798
|
}
|
|
39303
39799
|
}
|
|
@@ -39308,14 +39804,15 @@ class PraxisFilter {
|
|
|
39308
39804
|
? (meta.showShortcuts ?? true)
|
|
39309
39805
|
: meta.showShortcuts;
|
|
39310
39806
|
const inlineQuickPresets = shouldUseInlineDateRange
|
|
39311
|
-
? (meta.inlineQuickPresets ??
|
|
39312
|
-
{ enabled: true, maxVisible: 5 })
|
|
39807
|
+
? (meta.inlineQuickPresets ?? { enabled: true, maxVisible: 5 })
|
|
39313
39808
|
: meta.inlineQuickPresets;
|
|
39314
39809
|
const inlineQuickPresetsApplyMode = shouldUseInlineDateRange
|
|
39315
39810
|
? (meta.inlineQuickPresetsApplyMode ?? 'auto')
|
|
39316
39811
|
: meta.inlineQuickPresetsApplyMode;
|
|
39317
39812
|
const shortcuts = shouldUseInlineDateRange
|
|
39318
|
-
?
|
|
39813
|
+
? existingShortcuts.length
|
|
39814
|
+
? existingShortcuts
|
|
39815
|
+
: [...INLINE_DATE_RANGE_CORPORATE_SHORTCUTS]
|
|
39319
39816
|
: meta.shortcuts;
|
|
39320
39817
|
return this.withFilterMaterialDesignPolicy({
|
|
39321
39818
|
...meta,
|
|
@@ -39324,13 +39821,20 @@ class PraxisFilter {
|
|
|
39324
39821
|
? (periodRangeGranularity ?? meta.granularity)
|
|
39325
39822
|
: meta.granularity,
|
|
39326
39823
|
multiple: shouldUseInlineMultiSelect ? true : meta.multiple,
|
|
39327
|
-
searchable: shouldUseInlineSearchableSelect ||
|
|
39824
|
+
searchable: shouldUseInlineSearchableSelect ||
|
|
39825
|
+
shouldUseInlineAsyncSelect ||
|
|
39826
|
+
shouldUseInlineEntityLookup ||
|
|
39827
|
+
shouldUseInlineAutocomplete
|
|
39828
|
+
? true
|
|
39829
|
+
: meta.searchable,
|
|
39328
39830
|
clearButton,
|
|
39329
39831
|
showShortcuts,
|
|
39330
39832
|
inlineQuickPresets,
|
|
39331
39833
|
inlineQuickPresetsApplyMode,
|
|
39332
39834
|
shortcuts,
|
|
39333
|
-
updateOn: isMultipleSelection
|
|
39835
|
+
updateOn: isMultipleSelection
|
|
39836
|
+
? (meta.updateOn ?? 'blur')
|
|
39837
|
+
: 'change',
|
|
39334
39838
|
density: 'compact',
|
|
39335
39839
|
});
|
|
39336
39840
|
};
|
|
@@ -39341,7 +39845,8 @@ class PraxisFilter {
|
|
|
39341
39845
|
// Separar toggles (booleans simples) para a faixa de ações, se habilitado
|
|
39342
39846
|
const isToggle = (m) => {
|
|
39343
39847
|
const ct = String(m.controlType || '').toLowerCase();
|
|
39344
|
-
return ct === String(FieldControlType.TOGGLE).toLowerCase() ||
|
|
39848
|
+
return (ct === String(FieldControlType.TOGGLE).toLowerCase() ||
|
|
39849
|
+
ct === INLINE_TOGGLE_CONTROL_TYPE);
|
|
39345
39850
|
};
|
|
39346
39851
|
const applyToggleDisplayPrefs = (m) => {
|
|
39347
39852
|
if (!isToggle(m))
|
|
@@ -39368,7 +39873,7 @@ class PraxisFilter {
|
|
|
39368
39873
|
...selectedWithTogglePrefs.filter(isToggle),
|
|
39369
39874
|
];
|
|
39370
39875
|
const seen = new Set();
|
|
39371
|
-
const toggles = toggleSet.filter((m) =>
|
|
39876
|
+
const toggles = toggleSet.filter((m) => seen.has(m.name) ? false : (seen.add(m.name), true));
|
|
39372
39877
|
this.toggleMetas = toggles;
|
|
39373
39878
|
this.selectedMetas = selectedWithTogglePrefs.filter((m) => !isToggle(m));
|
|
39374
39879
|
this.alwaysVisibleMetas = alwaysWithTogglePrefs.filter((m) => !isToggle(m));
|
|
@@ -39385,7 +39890,8 @@ class PraxisFilter {
|
|
|
39385
39890
|
this.compactAlwaysVisibleMetas = this.alwaysVisibleMetas.filter(isInlineCompactControl);
|
|
39386
39891
|
this.gridSelectedMetas = this.selectedMetas.filter((m) => !isInlineCompactControl(m));
|
|
39387
39892
|
this.gridAlwaysVisibleMetas = this.alwaysVisibleMetas.filter((m) => !isInlineCompactControl(m));
|
|
39388
|
-
if (this.activeEditableFieldName &&
|
|
39893
|
+
if (this.activeEditableFieldName &&
|
|
39894
|
+
!this.getEditableFieldMeta(this.activeEditableFieldName)) {
|
|
39389
39895
|
this.activeEditableFieldName = null;
|
|
39390
39896
|
}
|
|
39391
39897
|
// Registrar controles para ambos os grupos dentro do mesmo FormGroup
|
|
@@ -39395,12 +39901,16 @@ class PraxisFilter {
|
|
|
39395
39901
|
toggleCount: this.toggleMetas.length,
|
|
39396
39902
|
compactSelectedCount: this.compactSelectedMetas.length,
|
|
39397
39903
|
compactAlwaysCount: this.compactAlwaysVisibleMetas.length,
|
|
39398
|
-
selectedNames: this.selectedMetas.map(m => m.name),
|
|
39399
|
-
alwaysNames: this.alwaysVisibleMetas.map(m => m.name),
|
|
39400
|
-
toggleNames: this.toggleMetas.map(m => m.name),
|
|
39904
|
+
selectedNames: this.selectedMetas.map((m) => m.name),
|
|
39905
|
+
alwaysNames: this.alwaysVisibleMetas.map((m) => m.name),
|
|
39906
|
+
toggleNames: this.toggleMetas.map((m) => m.name),
|
|
39401
39907
|
});
|
|
39402
39908
|
const added = new Set();
|
|
39403
|
-
[
|
|
39909
|
+
[
|
|
39910
|
+
...this.selectedMetas,
|
|
39911
|
+
...this.alwaysVisibleMetas,
|
|
39912
|
+
...this.toggleMetas,
|
|
39913
|
+
].forEach((m) => {
|
|
39404
39914
|
const ctrl = this.dynamicForm.createControlFromMetadata(m);
|
|
39405
39915
|
const initial = this.dto[m.name];
|
|
39406
39916
|
if (initial !== undefined) {
|
|
@@ -39415,10 +39925,21 @@ class PraxisFilter {
|
|
|
39415
39925
|
controls: Object.keys(this.alwaysForm.controls),
|
|
39416
39926
|
});
|
|
39417
39927
|
this.alwaysForm.valueChanges
|
|
39418
|
-
.pipe(
|
|
39419
|
-
.subscribe((val) =>
|
|
39420
|
-
|
|
39421
|
-
.
|
|
39928
|
+
.pipe(takeUntil$1(this.alwaysFormReset$), takeUntilDestroyed(this.destroyRef))
|
|
39929
|
+
.subscribe((val) => {
|
|
39930
|
+
// O resumo visível é estado local da toolbar e precisa acompanhar a
|
|
39931
|
+
// interação imediatamente. Apenas a emissão externa permanece
|
|
39932
|
+
// debounced em bindAdvancedDebounce(). Evita a antiga espera dupla.
|
|
39933
|
+
Object.keys(val || {}).forEach((key) => {
|
|
39934
|
+
this.upsertDtoValue(key, val[key]);
|
|
39935
|
+
});
|
|
39936
|
+
this.setActiveFiltersCount(Object.keys(this.dto).length);
|
|
39937
|
+
this.advancedChange$.next(val);
|
|
39938
|
+
});
|
|
39939
|
+
let advancedMetas = this.getAdvancedCandidateMetas(metas).map((m) => ({
|
|
39940
|
+
...m,
|
|
39941
|
+
updateOn: 'change',
|
|
39942
|
+
}));
|
|
39422
39943
|
// Material's compact datepicker popup is unreliable inside the advanced dialog/drawer overlay.
|
|
39423
39944
|
// Use touch UI by default there, while preserving explicit metadata overrides.
|
|
39424
39945
|
advancedMetas = advancedMetas.map((m) => this.withAdvancedDatePickerTouchPolicy(m));
|
|
@@ -39432,13 +39953,22 @@ class PraxisFilter {
|
|
|
39432
39953
|
return m;
|
|
39433
39954
|
}
|
|
39434
39955
|
if (hasClearOverride && !clearButtonsEnabled) {
|
|
39435
|
-
return {
|
|
39956
|
+
return {
|
|
39957
|
+
...m,
|
|
39958
|
+
clearButton: { ...(existing || {}), enabled: false },
|
|
39959
|
+
};
|
|
39436
39960
|
}
|
|
39437
39961
|
if (!existing) {
|
|
39438
|
-
return {
|
|
39962
|
+
return {
|
|
39963
|
+
...m,
|
|
39964
|
+
clearButton: { enabled: true, showOnlyWhenFilled: true },
|
|
39965
|
+
};
|
|
39439
39966
|
}
|
|
39440
39967
|
if (existing.enabled === undefined) {
|
|
39441
|
-
return {
|
|
39968
|
+
return {
|
|
39969
|
+
...m,
|
|
39970
|
+
clearButton: { ...existing, enabled: true },
|
|
39971
|
+
};
|
|
39442
39972
|
}
|
|
39443
39973
|
return m;
|
|
39444
39974
|
});
|
|
@@ -39472,7 +40002,7 @@ class PraxisFilter {
|
|
|
39472
40002
|
};
|
|
39473
40003
|
this.logFilterDebug('[PFILTER] applySchemaMetas: advancedConfig set', {
|
|
39474
40004
|
count: advancedMetas.length,
|
|
39475
|
-
names: advancedMetas.map(m => m.name),
|
|
40005
|
+
names: advancedMetas.map((m) => m.name),
|
|
39476
40006
|
});
|
|
39477
40007
|
}
|
|
39478
40008
|
else {
|
|
@@ -39506,7 +40036,8 @@ class PraxisFilter {
|
|
|
39506
40036
|
if (Object.prototype.hasOwnProperty.call(meta, 'touchUi')) {
|
|
39507
40037
|
return meta;
|
|
39508
40038
|
}
|
|
39509
|
-
if (this.advancedOpenMode !== 'modal' &&
|
|
40039
|
+
if (this.advancedOpenMode !== 'modal' &&
|
|
40040
|
+
this.advancedOpenMode !== 'drawer') {
|
|
39510
40041
|
return meta;
|
|
39511
40042
|
}
|
|
39512
40043
|
return { ...meta, touchUi: true };
|
|
@@ -39528,8 +40059,19 @@ class PraxisFilter {
|
|
|
39528
40059
|
if (this.isCompositeRangeFilterField(meta)) {
|
|
39529
40060
|
column.className = 'filter-column--full filter-column--range';
|
|
39530
40061
|
}
|
|
40062
|
+
else if (this.isLongTextFilterField(meta)) {
|
|
40063
|
+
column.className = 'filter-column--full filter-column--text';
|
|
40064
|
+
}
|
|
39531
40065
|
return column;
|
|
39532
40066
|
}
|
|
40067
|
+
isLongTextFilterField(meta) {
|
|
40068
|
+
const token = normalizeControlTypeToken(meta?.controlType || '');
|
|
40069
|
+
return (token === 'input' ||
|
|
40070
|
+
token === 'text' ||
|
|
40071
|
+
token === 'textarea' ||
|
|
40072
|
+
token === 'materialinput' ||
|
|
40073
|
+
token === 'materialtext');
|
|
40074
|
+
}
|
|
39533
40075
|
isCompositeRangeFilterField(meta) {
|
|
39534
40076
|
const token = normalizeControlTypeToken(meta?.controlType || '');
|
|
39535
40077
|
return (token === 'pricerange' ||
|
|
@@ -39570,8 +40112,8 @@ class PraxisFilter {
|
|
|
39570
40112
|
normalizeFilterOptionEndpointMetadata(meta) {
|
|
39571
40113
|
const rawResourcePath = String(meta?.resourcePath ?? '').trim();
|
|
39572
40114
|
const rawEndpoint = String(meta?.endpoint ?? '').trim();
|
|
39573
|
-
const optionEndpointPath = this.toOwningResourcePathForOptionsFilter(rawResourcePath)
|
|
39574
|
-
|
|
40115
|
+
const optionEndpointPath = this.toOwningResourcePathForOptionsFilter(rawResourcePath) ||
|
|
40116
|
+
this.toOwningResourcePathForOptionsFilter(rawEndpoint);
|
|
39575
40117
|
if (!optionEndpointPath) {
|
|
39576
40118
|
return meta;
|
|
39577
40119
|
}
|
|
@@ -39749,7 +40291,9 @@ class PraxisFilter {
|
|
|
39749
40291
|
return this.sanitizeAlwaysVisibleMetadataOverrides(overrides);
|
|
39750
40292
|
}
|
|
39751
40293
|
sanitizeAlwaysVisibleMetadataOverrides(overrides) {
|
|
39752
|
-
if (!overrides ||
|
|
40294
|
+
if (!overrides ||
|
|
40295
|
+
typeof overrides !== 'object' ||
|
|
40296
|
+
Array.isArray(overrides)) {
|
|
39753
40297
|
return {};
|
|
39754
40298
|
}
|
|
39755
40299
|
const source = overrides;
|
|
@@ -39766,7 +40310,9 @@ class PraxisFilter {
|
|
|
39766
40310
|
return;
|
|
39767
40311
|
}
|
|
39768
40312
|
const sanitized = this.sanitizeMetadataOverrideValue(source[fieldName], 0);
|
|
39769
|
-
if (!sanitized ||
|
|
40313
|
+
if (!sanitized ||
|
|
40314
|
+
typeof sanitized !== 'object' ||
|
|
40315
|
+
Array.isArray(sanitized)) {
|
|
39770
40316
|
return;
|
|
39771
40317
|
}
|
|
39772
40318
|
if (!Object.keys(sanitized).length) {
|
|
@@ -39830,7 +40376,9 @@ class PraxisFilter {
|
|
|
39830
40376
|
return base;
|
|
39831
40377
|
}
|
|
39832
40378
|
const safeOverride = this.sanitizeMetadataOverrideValue(override, 0);
|
|
39833
|
-
if (!safeOverride ||
|
|
40379
|
+
if (!safeOverride ||
|
|
40380
|
+
typeof safeOverride !== 'object' ||
|
|
40381
|
+
Array.isArray(safeOverride)) {
|
|
39834
40382
|
return base;
|
|
39835
40383
|
}
|
|
39836
40384
|
const merged = {
|
|
@@ -39967,15 +40515,19 @@ class PraxisFilter {
|
|
|
39967
40515
|
if (typeof window === 'undefined' || !window?.localStorage) {
|
|
39968
40516
|
return false;
|
|
39969
40517
|
}
|
|
39970
|
-
const resourcePath = String(this.resourcePath || '')
|
|
39971
|
-
|
|
40518
|
+
const resourcePath = String(this.resourcePath || '')
|
|
40519
|
+
.trim()
|
|
40520
|
+
.toLowerCase();
|
|
40521
|
+
const componentInstanceId = String(this.componentInstanceId || '')
|
|
40522
|
+
.trim()
|
|
40523
|
+
.toLowerCase();
|
|
39972
40524
|
const isLocalHarness = resourcePath.startsWith('/local/') ||
|
|
39973
40525
|
resourcePath.includes('/e2e-') ||
|
|
39974
40526
|
componentInstanceId.includes('e2e');
|
|
39975
40527
|
if (!isLocalHarness) {
|
|
39976
40528
|
return false;
|
|
39977
40529
|
}
|
|
39978
|
-
return window.localStorage.getItem('praxis.customization.enabled') === 'true';
|
|
40530
|
+
return (window.localStorage.getItem('praxis.customization.enabled') === 'true');
|
|
39979
40531
|
}
|
|
39980
40532
|
openFieldMetadataEditorInternal(editorComponent, controlType, seed, fieldName) {
|
|
39981
40533
|
const ref = this.settingsPanel.open({
|
|
@@ -39989,37 +40541,54 @@ class PraxisFilter {
|
|
|
39989
40541
|
});
|
|
39990
40542
|
if (!ref)
|
|
39991
40543
|
return;
|
|
39992
|
-
const
|
|
40544
|
+
const baselineOverrides = this.cloneFieldMetadataOverrides(this.fieldMetadataOverrides);
|
|
40545
|
+
const handlePatch = (patch, persist) => {
|
|
39993
40546
|
if (!patch)
|
|
39994
40547
|
return;
|
|
39995
|
-
this.applyFieldMetadataPatch(fieldName, patch);
|
|
40548
|
+
this.applyFieldMetadataPatch(fieldName, patch, baselineOverrides, persist);
|
|
39996
40549
|
};
|
|
39997
40550
|
if (ref.applied$?.pipe) {
|
|
39998
40551
|
ref.applied$
|
|
39999
40552
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
40000
|
-
.subscribe((patch) => handlePatch(patch));
|
|
40553
|
+
.subscribe((patch) => handlePatch(patch, false));
|
|
40001
40554
|
}
|
|
40002
40555
|
if (ref.saved$?.pipe) {
|
|
40003
40556
|
ref.saved$
|
|
40004
40557
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
40005
|
-
.subscribe((patch) => handlePatch(patch));
|
|
40558
|
+
.subscribe((patch) => handlePatch(patch, true));
|
|
40006
40559
|
}
|
|
40007
40560
|
}
|
|
40008
|
-
applyFieldMetadataPatch(fieldName, patch) {
|
|
40009
|
-
const nextOverrides = this.cloneFieldMetadataOverrides(
|
|
40561
|
+
applyFieldMetadataPatch(fieldName, patch, baselineOverrides = this.fieldMetadataOverrides, persist = false) {
|
|
40562
|
+
const nextOverrides = this.cloneFieldMetadataOverrides(baselineOverrides);
|
|
40010
40563
|
const current = nextOverrides[fieldName] || {};
|
|
40011
|
-
|
|
40564
|
+
const merged = applyJsonMergePatch(current, patch);
|
|
40565
|
+
const sanitized = this.sanitizeMetadataOverrideValue(merged, 0);
|
|
40566
|
+
if (sanitized &&
|
|
40567
|
+
typeof sanitized === 'object' &&
|
|
40568
|
+
!Array.isArray(sanitized) &&
|
|
40569
|
+
Object.keys(sanitized).length) {
|
|
40570
|
+
nextOverrides[fieldName] = sanitized;
|
|
40571
|
+
}
|
|
40572
|
+
else {
|
|
40573
|
+
delete nextOverrides[fieldName];
|
|
40574
|
+
}
|
|
40012
40575
|
this.fieldMetadataOverrides = nextOverrides;
|
|
40013
40576
|
if (this.alwaysVisibleFields?.includes(fieldName)) {
|
|
40014
40577
|
const currentAlways = this.cloneAlwaysVisibleMetadataOverrides(this.alwaysVisibleFieldMetadataOverrides);
|
|
40015
|
-
|
|
40578
|
+
if (nextOverrides[fieldName]) {
|
|
40579
|
+
currentAlways[fieldName] = nextOverrides[fieldName];
|
|
40580
|
+
}
|
|
40581
|
+
else {
|
|
40582
|
+
delete currentAlways[fieldName];
|
|
40583
|
+
}
|
|
40016
40584
|
this.alwaysVisibleFieldMetadataOverrides = currentAlways;
|
|
40017
40585
|
}
|
|
40018
40586
|
if (this.schemaMetas?.length) {
|
|
40019
40587
|
this.applySchemaQueued = false;
|
|
40020
40588
|
this.applySchemaMetasNow();
|
|
40021
40589
|
}
|
|
40022
|
-
|
|
40590
|
+
if (persist)
|
|
40591
|
+
this.saveConfig();
|
|
40023
40592
|
}
|
|
40024
40593
|
buildFieldMetadataEditorSeed(meta) {
|
|
40025
40594
|
const source = this.sanitizeMetadataOverrideValue(meta, 0) || {};
|
|
@@ -40036,7 +40605,8 @@ class PraxisFilter {
|
|
|
40036
40605
|
}
|
|
40037
40606
|
catch { }
|
|
40038
40607
|
}
|
|
40039
|
-
if (meta.filterCriteria &&
|
|
40608
|
+
if (meta.filterCriteria &&
|
|
40609
|
+
typeof meta.filterCriteria === 'object') {
|
|
40040
40610
|
try {
|
|
40041
40611
|
seed['filterCriteria'] = JSON.stringify(meta.filterCriteria, null, 2);
|
|
40042
40612
|
}
|
|
@@ -40095,7 +40665,6 @@ class PraxisFilter {
|
|
|
40095
40665
|
}
|
|
40096
40666
|
this.updateAddItems();
|
|
40097
40667
|
}
|
|
40098
|
-
setTimeout(() => this.addManagerSearch?.focus());
|
|
40099
40668
|
}
|
|
40100
40669
|
else {
|
|
40101
40670
|
this.addQuery = '';
|
|
@@ -40116,7 +40685,10 @@ class PraxisFilter {
|
|
|
40116
40685
|
if (!this.addManagerOpen)
|
|
40117
40686
|
return;
|
|
40118
40687
|
this.onAddOpened(false);
|
|
40119
|
-
|
|
40688
|
+
queueMicrotask(() => this.addManagerOrigin?.nativeElement.focus());
|
|
40689
|
+
}
|
|
40690
|
+
focusAddManagerSearch() {
|
|
40691
|
+
queueMicrotask(() => this.addManagerSearch?.focus());
|
|
40120
40692
|
}
|
|
40121
40693
|
toggleManagedField(fieldId, checked) {
|
|
40122
40694
|
const current = new Set(this.addDraftSelectedFieldIds || []);
|
|
@@ -40126,13 +40698,15 @@ class PraxisFilter {
|
|
|
40126
40698
|
this.announceManagedFieldChange(fieldId, checked);
|
|
40127
40699
|
}
|
|
40128
40700
|
isAddManagerItemInMotion(fieldId, type) {
|
|
40129
|
-
return this.addManagerItemMotion?.id === fieldId &&
|
|
40701
|
+
return (this.addManagerItemMotion?.id === fieldId &&
|
|
40702
|
+
this.addManagerItemMotion.type === type);
|
|
40130
40703
|
}
|
|
40131
40704
|
startAddManagerItemMotion(fieldId, type) {
|
|
40132
40705
|
this.addManagerItemMotion = { id: fieldId, type };
|
|
40133
40706
|
this.cdr.markForCheck();
|
|
40134
40707
|
setTimeout(() => {
|
|
40135
|
-
if (this.addManagerItemMotion?.id !== fieldId ||
|
|
40708
|
+
if (this.addManagerItemMotion?.id !== fieldId ||
|
|
40709
|
+
this.addManagerItemMotion.type !== type)
|
|
40136
40710
|
return;
|
|
40137
40711
|
this.addManagerItemMotion = null;
|
|
40138
40712
|
this.cdr.markForCheck();
|
|
@@ -40151,7 +40725,8 @@ class PraxisFilter {
|
|
|
40151
40725
|
isAddManagerDirty() {
|
|
40152
40726
|
const current = this.normalizeFieldIdList(this.selectedFieldIds).sort();
|
|
40153
40727
|
const draft = this.normalizeFieldIdList(this.addDraftSelectedFieldIds).sort();
|
|
40154
|
-
return current.length !== draft.length ||
|
|
40728
|
+
return (current.length !== draft.length ||
|
|
40729
|
+
current.some((id, index) => id !== draft[index]));
|
|
40155
40730
|
}
|
|
40156
40731
|
getAddManagerChangeCount() {
|
|
40157
40732
|
const current = new Set(this.normalizeFieldIdList(this.selectedFieldIds));
|
|
@@ -40182,6 +40757,31 @@ class PraxisFilter {
|
|
|
40182
40757
|
const selected = new Set(this.addInitialSelectedFieldIds);
|
|
40183
40758
|
return this.addItems.filter((item) => selected.has(item.id));
|
|
40184
40759
|
}
|
|
40760
|
+
getAddManagerFixedItems() {
|
|
40761
|
+
const fixed = new Set(this.normalizeFieldIdList(this.alwaysVisibleFields));
|
|
40762
|
+
const query = this.addQuery.toLowerCase();
|
|
40763
|
+
return (this.alwaysVisibleMetas || [])
|
|
40764
|
+
.filter((meta) => fixed.has(meta.name) && !this.isFilterFieldHidden(meta))
|
|
40765
|
+
.map((meta) => {
|
|
40766
|
+
const description = this.getManagedFieldDescription(meta);
|
|
40767
|
+
return {
|
|
40768
|
+
id: meta.name,
|
|
40769
|
+
label: String(meta.label || meta.name),
|
|
40770
|
+
...(description ? { description } : {}),
|
|
40771
|
+
};
|
|
40772
|
+
})
|
|
40773
|
+
.filter((item) => !query ||
|
|
40774
|
+
item.id.toLowerCase().includes(query) ||
|
|
40775
|
+
item.label.toLowerCase().includes(query) ||
|
|
40776
|
+
(item.description || '').toLowerCase().includes(query));
|
|
40777
|
+
}
|
|
40778
|
+
getAddManagerFixedFieldAriaLabel(item) {
|
|
40779
|
+
const fixedDescription = this.i18nLabels.fixedFieldDescription ||
|
|
40780
|
+
'Campo fixo, sempre exibido na barra de filtros';
|
|
40781
|
+
return [item.label, fixedDescription, item.description]
|
|
40782
|
+
.filter(Boolean)
|
|
40783
|
+
.join('. ');
|
|
40784
|
+
}
|
|
40185
40785
|
getAddManagerAvailableItems() {
|
|
40186
40786
|
const selected = new Set(this.addInitialSelectedFieldIds);
|
|
40187
40787
|
return this.addItems.filter((item) => !selected.has(item.id));
|
|
@@ -40190,10 +40790,12 @@ class PraxisFilter {
|
|
|
40190
40790
|
return this.addDraftSelectedFieldIds.includes(fieldId);
|
|
40191
40791
|
}
|
|
40192
40792
|
isAddManagerFieldPendingAddition(fieldId) {
|
|
40193
|
-
return !this.addInitialSelectedFieldIds.includes(fieldId) &&
|
|
40793
|
+
return (!this.addInitialSelectedFieldIds.includes(fieldId) &&
|
|
40794
|
+
this.isAddManagerFieldSelected(fieldId));
|
|
40194
40795
|
}
|
|
40195
40796
|
isAddManagerFieldPendingRemoval(fieldId) {
|
|
40196
|
-
return this.addInitialSelectedFieldIds.includes(fieldId) &&
|
|
40797
|
+
return (this.addInitialSelectedFieldIds.includes(fieldId) &&
|
|
40798
|
+
!this.isAddManagerFieldSelected(fieldId));
|
|
40197
40799
|
}
|
|
40198
40800
|
getAddManagerFieldPendingLabel(fieldId) {
|
|
40199
40801
|
if (this.isAddManagerFieldPendingAddition(fieldId)) {
|
|
@@ -40205,7 +40807,10 @@ class PraxisFilter {
|
|
|
40205
40807
|
return '';
|
|
40206
40808
|
}
|
|
40207
40809
|
getAddManagerFieldAriaDescription(item) {
|
|
40208
|
-
const parts = [
|
|
40810
|
+
const parts = [
|
|
40811
|
+
item.description,
|
|
40812
|
+
this.getAddManagerFieldPendingLabel(item.id),
|
|
40813
|
+
].filter(Boolean);
|
|
40209
40814
|
return parts.length ? parts.join('. ') : null;
|
|
40210
40815
|
}
|
|
40211
40816
|
announceManagedFieldChange(fieldId, checked) {
|
|
@@ -40272,25 +40877,34 @@ class PraxisFilter {
|
|
|
40272
40877
|
* while an operator decides among similar filters (for example, date variants).
|
|
40273
40878
|
*/
|
|
40274
40879
|
getManagedFieldDescription(meta) {
|
|
40275
|
-
const candidates = [
|
|
40880
|
+
const candidates = [
|
|
40881
|
+
meta.description,
|
|
40882
|
+
meta.tooltip,
|
|
40883
|
+
meta.helpText,
|
|
40884
|
+
meta.hint,
|
|
40885
|
+
];
|
|
40276
40886
|
return candidates.find((candidate) => typeof candidate === 'string' && candidate.trim().length > 0);
|
|
40277
40887
|
}
|
|
40278
40888
|
updateAddItems() {
|
|
40279
|
-
this.addItems = this.getManageableFilterItems()
|
|
40889
|
+
this.addItems = this.getManageableFilterItems()
|
|
40890
|
+
.slice()
|
|
40891
|
+
.sort((a, b) => {
|
|
40280
40892
|
return a.label.localeCompare(b.label);
|
|
40281
40893
|
});
|
|
40282
40894
|
this.cdr.markForCheck();
|
|
40283
40895
|
}
|
|
40284
|
-
trackById(_idx, it) {
|
|
40896
|
+
trackById(_idx, it) {
|
|
40897
|
+
return it.id;
|
|
40898
|
+
}
|
|
40285
40899
|
isFilterFieldHidden(meta) {
|
|
40286
40900
|
if (!meta)
|
|
40287
40901
|
return false;
|
|
40288
40902
|
const raw = meta;
|
|
40289
40903
|
const xUi = raw['x-ui'] || raw.xUi || raw.ui || {};
|
|
40290
|
-
return raw.hidden === true ||
|
|
40904
|
+
return (raw.hidden === true ||
|
|
40291
40905
|
raw.hidden === 'true' ||
|
|
40292
40906
|
xUi.hidden === true ||
|
|
40293
|
-
xUi.hidden === 'true';
|
|
40907
|
+
xUi.hidden === 'true');
|
|
40294
40908
|
}
|
|
40295
40909
|
onAddSelectionChange(values) {
|
|
40296
40910
|
const arr = this.normalizeFieldIdList(values);
|
|
@@ -40322,15 +40936,32 @@ class PraxisFilter {
|
|
|
40322
40936
|
formatWithCount(tpl, count) {
|
|
40323
40937
|
return (tpl || '').replace('{count}', String(count));
|
|
40324
40938
|
}
|
|
40939
|
+
getVisibleFieldCount() {
|
|
40940
|
+
const visibleSchemaFields = this.schemaMetas
|
|
40941
|
+
? new Set(this.schemaMetas
|
|
40942
|
+
.filter((meta) => !this.isFilterFieldHidden(meta))
|
|
40943
|
+
.map((meta) => meta.name))
|
|
40944
|
+
: null;
|
|
40945
|
+
const visible = new Set([
|
|
40946
|
+
...this.normalizeFieldIdList(this.alwaysVisibleFields),
|
|
40947
|
+
...this.normalizeFieldIdList(this.selectedFieldIds),
|
|
40948
|
+
]);
|
|
40949
|
+
return visibleSchemaFields
|
|
40950
|
+
? [...visible].filter((fieldId) => visibleSchemaFields.has(fieldId))
|
|
40951
|
+
.length
|
|
40952
|
+
: visible.size;
|
|
40953
|
+
}
|
|
40325
40954
|
getAddAriaLabel() {
|
|
40326
40955
|
if (!this.hasAddableFields()) {
|
|
40327
|
-
return this.i18nLabels.addUnavailable || 'Todos os campos já estão visíveis';
|
|
40956
|
+
return (this.i18nLabels.addUnavailable || 'Todos os campos já estão visíveis');
|
|
40328
40957
|
}
|
|
40329
|
-
const c = this.
|
|
40958
|
+
const c = this.getVisibleFieldCount();
|
|
40330
40959
|
if (c > 0)
|
|
40331
40960
|
return this.formatWithCount(c === 1
|
|
40332
|
-
?
|
|
40333
|
-
|
|
40961
|
+
? this.i18nLabels.addCountSingular ||
|
|
40962
|
+
'Gerenciar campos de filtro ({count} exibido)'
|
|
40963
|
+
: this.i18nLabels.addCount ||
|
|
40964
|
+
'Gerenciar campos de filtro ({count} exibidos)', c);
|
|
40334
40965
|
return this.getAddTriggerLabel();
|
|
40335
40966
|
}
|
|
40336
40967
|
getAddTriggerLabel() {
|
|
@@ -40338,17 +40969,19 @@ class PraxisFilter {
|
|
|
40338
40969
|
return (this.i18n?.add ||
|
|
40339
40970
|
this.i18n?.filtersAdd ||
|
|
40340
40971
|
this.i18nLabels.add ||
|
|
40341
|
-
'Gerenciar
|
|
40972
|
+
'Gerenciar campos');
|
|
40342
40973
|
}
|
|
40343
40974
|
getAddTooltip() {
|
|
40344
40975
|
if (!this.hasAddableFields()) {
|
|
40345
|
-
return this.i18nLabels.addUnavailable || 'Todos os campos já estão visíveis';
|
|
40976
|
+
return (this.i18nLabels.addUnavailable || 'Todos os campos já estão visíveis');
|
|
40346
40977
|
}
|
|
40347
|
-
const c = this.
|
|
40978
|
+
const c = this.getVisibleFieldCount();
|
|
40348
40979
|
if (c > 0) {
|
|
40349
40980
|
return this.formatWithCount(c === 1
|
|
40350
|
-
?
|
|
40351
|
-
|
|
40981
|
+
? this.i18nLabels.addCountSingular ||
|
|
40982
|
+
'Gerenciar campos de filtro ({count} exibido)'
|
|
40983
|
+
: this.i18nLabels.addCount ||
|
|
40984
|
+
'Gerenciar campos de filtro ({count} exibidos)', c);
|
|
40352
40985
|
}
|
|
40353
40986
|
return (this.i18n?.manageFieldsDescription ||
|
|
40354
40987
|
this.i18nLabels.manageFieldsDescription ||
|
|
@@ -40361,14 +40994,14 @@ class PraxisFilter {
|
|
|
40361
40994
|
return this.formatWithCount(this.i18nLabels.activeFiltersCount || 'Filtros ativos: {count}', c);
|
|
40362
40995
|
}
|
|
40363
40996
|
isAllSelected() {
|
|
40364
|
-
const ids = this.addItems.map(i => i.id);
|
|
40997
|
+
const ids = this.addItems.map((i) => i.id);
|
|
40365
40998
|
const sel = new Set(this.addDraftSelectedFieldIds || []);
|
|
40366
|
-
return ids.length > 0 && ids.every(id => sel.has(id));
|
|
40999
|
+
return ids.length > 0 && ids.every((id) => sel.has(id));
|
|
40367
41000
|
}
|
|
40368
41001
|
isSomeSelected() {
|
|
40369
|
-
const ids = this.addItems.map(i => i.id);
|
|
41002
|
+
const ids = this.addItems.map((i) => i.id);
|
|
40370
41003
|
const sel = new Set(this.addDraftSelectedFieldIds || []);
|
|
40371
|
-
const count = ids.filter(id => sel.has(id)).length;
|
|
41004
|
+
const count = ids.filter((id) => sel.has(id)).length;
|
|
40372
41005
|
return count > 0 && count < ids.length;
|
|
40373
41006
|
}
|
|
40374
41007
|
toggleSelectAll() {
|
|
@@ -40491,7 +41124,10 @@ class PraxisFilter {
|
|
|
40491
41124
|
okLabel: this.i18nLabels.save,
|
|
40492
41125
|
cancelLabel: this.i18nLabels.cancel,
|
|
40493
41126
|
});
|
|
40494
|
-
ref
|
|
41127
|
+
ref
|
|
41128
|
+
.afterClosed()
|
|
41129
|
+
.pipe(take$1(1))
|
|
41130
|
+
.subscribe({
|
|
40495
41131
|
next: (value) => {
|
|
40496
41132
|
this.shortcutPromptOpen = false;
|
|
40497
41133
|
const label = typeof value === 'string' ? value.trim() : '';
|
|
@@ -40519,18 +41155,27 @@ class PraxisFilter {
|
|
|
40519
41155
|
// Helper A11y: label específico da ação Avançado; a contagem é global e exibida separadamente.
|
|
40520
41156
|
getAdvancedAriaLabel() {
|
|
40521
41157
|
if (!this.hasAdvancedFields()) {
|
|
40522
|
-
return this.i18nLabels.advancedUnavailable ||
|
|
41158
|
+
return (this.i18nLabels.advancedUnavailable ||
|
|
41159
|
+
'Todos os campos já estão visíveis na toolbar');
|
|
40523
41160
|
}
|
|
40524
41161
|
return this.i18nLabels.advanced;
|
|
40525
41162
|
}
|
|
40526
41163
|
getAdvancedTooltip() {
|
|
40527
41164
|
if (!this.hasAdvancedFields()) {
|
|
40528
|
-
return this.i18nLabels.advancedUnavailable ||
|
|
41165
|
+
return (this.i18nLabels.advancedUnavailable ||
|
|
41166
|
+
'Todos os campos já estão visíveis na toolbar');
|
|
40529
41167
|
}
|
|
40530
41168
|
return this.i18nLabels.advancedTitle || 'Abrir filtro avançado';
|
|
40531
41169
|
}
|
|
40532
41170
|
getSettingsAriaLabel() {
|
|
40533
|
-
return this.i18nLabels.settingsAriaLabel ||
|
|
41171
|
+
return (this.i18nLabels.settingsAriaLabel ||
|
|
41172
|
+
this.i18nLabels.settings ||
|
|
41173
|
+
'Configurações');
|
|
41174
|
+
}
|
|
41175
|
+
getFieldSettingsLabel() {
|
|
41176
|
+
const fieldLabel = String(this.activeEditableFieldLabel || '').trim();
|
|
41177
|
+
const settingsLabel = this.getSettingsAriaLabel();
|
|
41178
|
+
return fieldLabel ? `${settingsLabel}: ${fieldLabel}` : settingsLabel;
|
|
40534
41179
|
}
|
|
40535
41180
|
getSettingsTooltip() {
|
|
40536
41181
|
if (this.schemaOutdated)
|
|
@@ -40598,7 +41243,10 @@ class PraxisFilter {
|
|
|
40598
41243
|
this.configStorage.clearConfig(key).pipe(take$1(1)).subscribe();
|
|
40599
41244
|
}
|
|
40600
41245
|
else {
|
|
40601
|
-
this.configStorage
|
|
41246
|
+
this.configStorage
|
|
41247
|
+
.saveConfig(key, until.toISOString())
|
|
41248
|
+
.pipe(take$1(1))
|
|
41249
|
+
.subscribe();
|
|
40602
41250
|
}
|
|
40603
41251
|
}
|
|
40604
41252
|
catch { }
|
|
@@ -40675,7 +41323,8 @@ class PraxisFilter {
|
|
|
40675
41323
|
}
|
|
40676
41324
|
async runSchemaVerification(currentCtx, currentSchemaContext, currentSchemaId, verifyContextKey) {
|
|
40677
41325
|
try {
|
|
40678
|
-
const scopedMetaKey = this.getSchemaMetaKeyForContext(currentSchemaContext) ||
|
|
41326
|
+
const scopedMetaKey = this.getSchemaMetaKeyForContext(currentSchemaContext) ||
|
|
41327
|
+
this.getSchemaMetaKey();
|
|
40679
41328
|
if (!scopedMetaKey)
|
|
40680
41329
|
return;
|
|
40681
41330
|
// Build request to /schemas/filtered for filter (path=/.../filter, operation=post, schemaType=request)
|
|
@@ -40705,7 +41354,12 @@ class PraxisFilter {
|
|
|
40705
41354
|
}
|
|
40706
41355
|
const tenant = currentCtx.tenant;
|
|
40707
41356
|
const locale = currentCtx.locale;
|
|
40708
|
-
const res = await fetchWithETag({
|
|
41357
|
+
const res = await fetchWithETag({
|
|
41358
|
+
url: u.toString(),
|
|
41359
|
+
schemaHash: previousHash,
|
|
41360
|
+
tenant,
|
|
41361
|
+
locale,
|
|
41362
|
+
});
|
|
40709
41363
|
const nowIso = new Date().toISOString();
|
|
40710
41364
|
const metaToSave = { ...(persistedMeta || {}) };
|
|
40711
41365
|
metaToSave.schemaId = currentSchemaId;
|
|
@@ -40722,7 +41376,12 @@ class PraxisFilter {
|
|
|
40722
41376
|
this.lastSchemaVerificationByContext.set(verifyContextKey, Date.now());
|
|
40723
41377
|
if (this.schemaOutdated)
|
|
40724
41378
|
this.schemaOutdated = false;
|
|
40725
|
-
this.schemaStatusChange.emit({
|
|
41379
|
+
this.schemaStatusChange.emit({
|
|
41380
|
+
outdated: false,
|
|
41381
|
+
serverHash: metaToSave.serverHash,
|
|
41382
|
+
lastVerifiedAt: metaToSave.lastVerifiedAt,
|
|
41383
|
+
formId: this.formId,
|
|
41384
|
+
});
|
|
40726
41385
|
return;
|
|
40727
41386
|
}
|
|
40728
41387
|
// status === 200: server hash changed (or first verification without hash). Do not apply schema here.
|
|
@@ -40736,7 +41395,12 @@ class PraxisFilter {
|
|
|
40736
41395
|
// Only mark outdated when there was a previous base (hash or schemaMetas) and we are in edit mode
|
|
40737
41396
|
const hadBase = !!previousHash || !!this.schemaMetas?.length;
|
|
40738
41397
|
this.schemaOutdated = !!(this.enableCustomization && hadBase);
|
|
40739
|
-
this.schemaStatusChange.emit({
|
|
41398
|
+
this.schemaStatusChange.emit({
|
|
41399
|
+
outdated: this.schemaOutdated,
|
|
41400
|
+
serverHash: newHash,
|
|
41401
|
+
lastVerifiedAt: metaToSave.lastVerifiedAt,
|
|
41402
|
+
formId: this.formId,
|
|
41403
|
+
});
|
|
40740
41404
|
if (this.schemaOutdated) {
|
|
40741
41405
|
if (this._resolvedPrefs.autoOpenSettingsOnOutdated) {
|
|
40742
41406
|
this.openSettings();
|
|
@@ -40759,7 +41423,8 @@ class PraxisFilter {
|
|
|
40759
41423
|
const metaKey = this.getSchemaMetaKeyForContext(currentSchemaContext);
|
|
40760
41424
|
if (!metaKey)
|
|
40761
41425
|
return;
|
|
40762
|
-
const serverHash = (await this.loadStoredSchemaMeta(metaKey) || {})
|
|
41426
|
+
const serverHash = ((await this.loadStoredSchemaMeta(metaKey)) || {})
|
|
41427
|
+
?.serverHash;
|
|
40763
41428
|
if (!serverHash || !this.schemaOutdated)
|
|
40764
41429
|
return;
|
|
40765
41430
|
if (await this.isOutdatedIgnored(serverHash))
|
|
@@ -40767,7 +41432,8 @@ class PraxisFilter {
|
|
|
40767
41432
|
const snoozeUntil = (await this.getOutdatedSnoozeUntil(serverHash)) || 0;
|
|
40768
41433
|
if (snoozeUntil && Date.now() < snoozeUntil)
|
|
40769
41434
|
return;
|
|
40770
|
-
if (!(this._resolvedPrefs.notifyIfOutdated === 'snackbar' ||
|
|
41435
|
+
if (!(this._resolvedPrefs.notifyIfOutdated === 'snackbar' ||
|
|
41436
|
+
this._resolvedPrefs.notifyIfOutdated === 'both'))
|
|
40771
41437
|
return;
|
|
40772
41438
|
if (await this.wasOutdatedNotified(serverHash))
|
|
40773
41439
|
return;
|
|
@@ -40820,16 +41486,10 @@ class PraxisFilter {
|
|
|
40820
41486
|
try {
|
|
40821
41487
|
// Atualiza DTO primeiro
|
|
40822
41488
|
this.dto = { ...(tag.patch ?? {}) };
|
|
40823
|
-
//
|
|
40824
|
-
|
|
40825
|
-
|
|
40826
|
-
|
|
40827
|
-
ctrl.setValue(this.dto[k], { emitEvent: false });
|
|
40828
|
-
}
|
|
40829
|
-
});
|
|
40830
|
-
// Advanced form (patch em lote)
|
|
40831
|
-
this.advancedForm?.patchValue(this.dto, { emitEvent: false });
|
|
40832
|
-
this.refreshProgrammaticFilterFieldDisplays(Object.keys(this.dto));
|
|
41489
|
+
// Um atalho representa o estado completo da consulta. Sincronizar todos
|
|
41490
|
+
// os controles também limpa critérios que pertenciam ao estado anterior,
|
|
41491
|
+
// evitando que a UI continue exibindo valores ausentes no DTO aplicado.
|
|
41492
|
+
this.syncFormsFromDto();
|
|
40833
41493
|
// Atualiza contadores/resumo e persiste
|
|
40834
41494
|
this.setActiveFiltersCount(Object.keys(this.dto).length);
|
|
40835
41495
|
this.persist();
|
|
@@ -40972,7 +41632,7 @@ class PraxisFilter {
|
|
|
40972
41632
|
this.advancedOpen = true;
|
|
40973
41633
|
this.saveConfig();
|
|
40974
41634
|
try {
|
|
40975
|
-
const { FilterFormDialogHostComponent } = await import('./praxisui-table-filter-form-dialog-host.component-
|
|
41635
|
+
const { FilterFormDialogHostComponent } = await import('./praxisui-table-filter-form-dialog-host.component-DANYIQs6.mjs');
|
|
40976
41636
|
const formId = this.formId || this.filterId || 'filter';
|
|
40977
41637
|
const ref = this.dialog.open(FilterFormDialogHostComponent, {
|
|
40978
41638
|
width: '780px',
|
|
@@ -40987,6 +41647,7 @@ class PraxisFilter {
|
|
|
40987
41647
|
title: this.i18nLabels.advancedTitle || 'Filtro avançado',
|
|
40988
41648
|
i18n: {
|
|
40989
41649
|
saveAsShortcut: this.i18nLabels.saveAsShortcut,
|
|
41650
|
+
close: this.i18nLabels.close,
|
|
40990
41651
|
cancel: this.i18nLabels.cancel,
|
|
40991
41652
|
apply: this.i18nLabels.apply,
|
|
40992
41653
|
noData: this.i18nLabels.noData,
|
|
@@ -41084,7 +41745,9 @@ class PraxisFilter {
|
|
|
41084
41745
|
this.schemaLoadVersion += 1;
|
|
41085
41746
|
this.schemaError = false;
|
|
41086
41747
|
this.setSchemaLoading(false);
|
|
41087
|
-
this.schemaMetas = source.map((meta) => ({
|
|
41748
|
+
this.schemaMetas = source.map((meta) => ({
|
|
41749
|
+
...meta,
|
|
41750
|
+
}));
|
|
41088
41751
|
this.lastSchemaMeta = undefined;
|
|
41089
41752
|
this.clearSchemaMetaPersistence();
|
|
41090
41753
|
this.applySchemaMetas();
|
|
@@ -41139,7 +41802,9 @@ class PraxisFilter {
|
|
|
41139
41802
|
if (nextJson && nextJson === this.lastSavedConfigJson) {
|
|
41140
41803
|
return;
|
|
41141
41804
|
}
|
|
41142
|
-
this.filterConfig.save(this.configKey, config)
|
|
41805
|
+
void Promise.resolve(this.filterConfig.save(this.configKey, config)).catch((error) => {
|
|
41806
|
+
this.getLogger().error('PFILTER:config:save:error', this.buildFilterLogOptions({ error }, 'config.save'));
|
|
41807
|
+
});
|
|
41143
41808
|
this.lastSavedConfigJson = nextJson || null;
|
|
41144
41809
|
}
|
|
41145
41810
|
}
|
|
@@ -41187,7 +41852,10 @@ class PraxisFilter {
|
|
|
41187
41852
|
if (this.allowSaveTags) {
|
|
41188
41853
|
const key = this.filterTagsKey();
|
|
41189
41854
|
if (key) {
|
|
41190
|
-
this.configStorage
|
|
41855
|
+
this.configStorage
|
|
41856
|
+
.saveConfig(key, this.savedTags)
|
|
41857
|
+
.pipe(take$1(1))
|
|
41858
|
+
.subscribe();
|
|
41191
41859
|
}
|
|
41192
41860
|
}
|
|
41193
41861
|
}
|
|
@@ -41217,16 +41885,18 @@ class PraxisFilter {
|
|
|
41217
41885
|
return serializeEntityLookupValueForPayload(value, {
|
|
41218
41886
|
payloadMode: meta?.payloadMode,
|
|
41219
41887
|
multiple: meta?.multiple === true,
|
|
41220
|
-
entityType: String(meta?.optionSource?.entityKey || '').trim() ||
|
|
41888
|
+
entityType: String(meta?.optionSource?.entityKey || '').trim() ||
|
|
41889
|
+
undefined,
|
|
41221
41890
|
});
|
|
41222
41891
|
}
|
|
41223
41892
|
getFilterFieldMetaByName(fieldName) {
|
|
41224
41893
|
const normalizedFieldName = String(fieldName || '').trim();
|
|
41225
41894
|
if (!normalizedFieldName)
|
|
41226
41895
|
return null;
|
|
41227
|
-
return (this.schemaMetas?.find((meta) => meta.name === normalizedFieldName) ||
|
|
41896
|
+
return ((this.schemaMetas?.find((meta) => meta.name === normalizedFieldName) ||
|
|
41228
41897
|
(this.fieldMetadata || []).find((meta) => meta.name === normalizedFieldName) ||
|
|
41229
|
-
this.getEditableFieldMeta(normalizedFieldName)) ??
|
|
41898
|
+
this.getEditableFieldMeta(normalizedFieldName)) ??
|
|
41899
|
+
null);
|
|
41230
41900
|
}
|
|
41231
41901
|
isEntityLookupFilterField(meta) {
|
|
41232
41902
|
if (!meta)
|
|
@@ -41237,7 +41907,8 @@ class PraxisFilter {
|
|
|
41237
41907
|
return (controlType === FieldControlType.ENTITY_LOOKUP ||
|
|
41238
41908
|
normalizedControlType === 'entitylookup' ||
|
|
41239
41909
|
controlTypeToken === 'entitylookup' ||
|
|
41240
|
-
controlTypeToken ===
|
|
41910
|
+
controlTypeToken ===
|
|
41911
|
+
normalizeControlTypeToken(INLINE_ENTITY_LOOKUP_CONTROL_TYPE) ||
|
|
41241
41912
|
meta?.entityLookup === true);
|
|
41242
41913
|
}
|
|
41243
41914
|
isEffectivelyEmptyFilterValue(value) {
|
|
@@ -41250,7 +41921,8 @@ class PraxisFilter {
|
|
|
41250
41921
|
if (value instanceof Date)
|
|
41251
41922
|
return Number.isNaN(value.getTime());
|
|
41252
41923
|
if (Array.isArray(value)) {
|
|
41253
|
-
return value.length === 0 ||
|
|
41924
|
+
return (value.length === 0 ||
|
|
41925
|
+
value.every((item) => this.isEffectivelyEmptyFilterValue(item)));
|
|
41254
41926
|
}
|
|
41255
41927
|
if (value instanceof Set || value instanceof Map) {
|
|
41256
41928
|
return value.size === 0;
|
|
@@ -41293,7 +41965,10 @@ class PraxisFilter {
|
|
|
41293
41965
|
onGlobalKeydown(event) {
|
|
41294
41966
|
try {
|
|
41295
41967
|
// Atalho: "/" foca o quick, exceto quando já está digitando em um campo
|
|
41296
|
-
if (event.key === '/' &&
|
|
41968
|
+
if (event.key === '/' &&
|
|
41969
|
+
!event.altKey &&
|
|
41970
|
+
!event.ctrlKey &&
|
|
41971
|
+
!event.metaKey) {
|
|
41297
41972
|
const target = event.target;
|
|
41298
41973
|
if (!this.isEditableElement(target)) {
|
|
41299
41974
|
event.preventDefault();
|
|
@@ -41302,7 +41977,10 @@ class PraxisFilter {
|
|
|
41302
41977
|
}
|
|
41303
41978
|
}
|
|
41304
41979
|
// Atalho: "F" abre/fecha o seletor de Adicionar (quando não digitando em campo)
|
|
41305
|
-
if ((event.key === 'f' || event.key === 'F') &&
|
|
41980
|
+
if ((event.key === 'f' || event.key === 'F') &&
|
|
41981
|
+
!event.altKey &&
|
|
41982
|
+
!event.ctrlKey &&
|
|
41983
|
+
!event.metaKey) {
|
|
41306
41984
|
const target = event.target;
|
|
41307
41985
|
if (!this.isEditableElement(target)) {
|
|
41308
41986
|
event.preventDefault();
|
|
@@ -41352,7 +42030,7 @@ class PraxisFilter {
|
|
|
41352
42030
|
default: { baseUrl: '' },
|
|
41353
42031
|
}),
|
|
41354
42032
|
},
|
|
41355
|
-
], viewQueries: [{ propertyName: "addManagerOrigin", first: true, predicate: ["addManagerOrigin"], descendants: true, read: ElementRef }, { propertyName: "addManagerSearch", first: true, predicate: PdxCollectionSearchComponent, descendants: true }, { 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\">{{\n i18nLabels.errorLoadingFilters || \"Erro ao carregar filtros.\"\n }}</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<ng-template #filterTagsTemplate>\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\n [class.active]=\"isActiveTag(tag)\"\n [color]=\"\n tagVariant === 'outlined' || tagColor === 'basic'\n ? null\n : tagColor\n \"\n [highlighted]=\"tagVariant === 'filled' && tagColor !== 'basic'\"\n (click)=\"toggleTag(tag)\"\n (keydown.enter)=\"toggleTag(tag)\"\n (keydown.space)=\"toggleTag(tag)\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-pressed]=\"isActiveTag(tag)\"\n >\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\n praxisIconButton=\"more_vert\"\n size=\"compact\"\n [matMenuTriggerFor]=\"tagMenu\"\n (click)=\"$event.stopPropagation()\"\n [attr.aria-label]=\"getTagActionsAriaLabel(tag)\"\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\n class=\"chip-readonly\"\n [matTooltip]=\"i18nLabels.readonlyShortcut\"\n aria-hidden=\"true\"\n >\n <mat-icon [praxisIcon]=\"'lock'\" aria-hidden=\"true\"></mat-icon>\n </span>\n }\n } @else {\n <input\n matInput\n class=\"chip-editor\"\n [formControl]=\"editingTagLabel\"\n autofocus\n [matTooltip]=\"'Enter para salvar, Esc para cancelar'\"\n matTooltipPosition=\"below\"\n (keydown.enter)=\"commitEditTag(tag, $event)\"\n (keydown.escape)=\"cancelEditTag($event)\"\n (blur)=\"commitEditTag(tag, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n </mat-chip>\n }\n </mat-chip-set>\n </div>\n }\n</ng-template>\n\n<form\n class=\"praxis-filter-bar\"\n [class.is-open]=\"advancedOpen\"\n [class.has-compact]=\"\n compactSelectedMetas.length || compactAlwaysVisibleMetas.length\n \"\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>\n @if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <div class=\"compact-fields\">\n @if (compactSelectedMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"compactSelectedMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"\n ></ng-container>\n }\n @if (compactAlwaysVisibleMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"compactAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onAlwaysComponents($event)\"\n ></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\n dynamicFieldLoader\n [fields]=\"gridSelectedMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"\n ></ng-container>\n }\n @if (gridAlwaysVisibleMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"gridAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onAlwaysComponents($event)\"\n ></ng-container>\n }\n </div>\n }\n\n <div class=\"query-auxiliary\" data-filter-region=\"query-auxiliary\">\n @if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <ng-container [ngTemplateOutlet]=\"filterTagsTemplate\"></ng-container>\n }\n\n <div\n class=\"inline-actions\"\n [class.actions-outlined]=\"actionsVariant === 'outlined'\"\n >\n <div\n class=\"actions-anchor\"\n #anchorRef=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n ></div>\n @if (toggleMetas.length) {\n <div class=\"inline-toggles\">\n <ng-container\n dynamicFieldLoader\n [fields]=\"toggleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onToggleComponents($event)\"\n ></ng-container>\n </div>\n }\n\n @if (\n showAdvancedButton ||\n showAddButton ||\n showFilterSettings ||\n isFieldAuthoringEnabled()\n ) {\n <div class=\"action-cluster action-cluster--manage\">\n @if (showAdvancedButton) {\n <button\n #advancedButton\n praxisIconButton=\"filter_list\"\n size=\"compact\"\n class=\"cluster-btn\"\n [busy]=\"advancedOpening\"\n [class.is-opening]=\"advancedOpening\"\n [class.is-disabled]=\"!hasAdvancedFields()\"\n type=\"button\"\n (click)=\"toggleAdvanced()\"\n [attr.aria-label]=\"getAdvancedAriaLabel()\"\n [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 ></button>\n }\n @if (showAddButton) {\n <button\n #addManagerOrigin=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n mat-button\n class=\"cluster-btn add-trigger\"\n type=\"button\"\n data-testid=\"filter-manage-fields-trigger\"\n [attr.aria-label]=\"getAddAriaLabel()\"\n [matTooltip]=\"getAddTooltip()\"\n matTooltipPosition=\"below\"\n [class.is-disabled]=\"!hasAddableFields()\"\n [attr.aria-disabled]=\"!hasAddableFields()\"\n [attr.aria-expanded]=\"addManagerOpen\"\n aria-haspopup=\"dialog\"\n [attr.aria-controls]=\"addManagerOpen ? addManagerTitleId : null\"\n (click)=\"toggleAddManager()\"\n >\n <mat-icon\n [praxisIcon]=\"'filter_list'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span class=\"add-trigger-label\">{{ getAddTriggerLabel() }}</span>\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"addManagerOrigin\"\n [cdkConnectedOverlayOpen]=\"addManagerOpen\"\n [cdkConnectedOverlayPositions]=\"addOverlayPositions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAddManager()\"\n (detach)=\"closeAddManager()\"\n (overlayKeydown)=\"$event.key === 'Escape' && closeAddManager()\"\n >\n <section\n class=\"add-manager\"\n role=\"dialog\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"addManagerTitleId\"\n [attr.aria-describedby]=\"addManagerDescriptionId\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <header class=\"add-manager__header\">\n <div>\n <h2 [id]=\"addManagerTitleId\">\n {{\n i18nLabels.manageFieldsTitle ||\n \"Gerenciar campos de filtro\"\n }}\n </h2>\n <p [id]=\"addManagerDescriptionId\">\n {{\n i18nLabels.manageFieldsDescription ||\n \"Escolha os campos exibidos na barra de filtros.\"\n }}\n </p>\n </div>\n <button\n praxisIconButton=\"close\"\n size=\"compact\"\n type=\"button\"\n (click)=\"closeAddManager()\"\n [attr.aria-label]=\"i18nLabels.close || 'Fechar'\"\n ></button>\n </header>\n <div class=\"add-manager__search\">\n <pdx-collection-search\n [value]=\"addQuery\"\n [placeholder]=\"\n i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\n \"\n [ariaLabel]=\"\n i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\n \"\n [clearAriaLabel]=\"i18nLabels.clearSearch || 'Limpar busca'\"\n (valueChange)=\"onAddQuery($event)\"\n />\n </div>\n <div class=\"add-manager__bulk\">\n <mat-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected() && !isAllSelected()\"\n [disabled]=\"!addItems.length || addManagerConflict\"\n (change)=\"toggleSelectAll()\"\n >\n {{\n i18nLabels.selectAllResults ||\n i18nLabels.selectAll ||\n \"Selecionar todos os resultados\"\n }}\n </mat-checkbox>\n </div>\n <div\n class=\"add-manager__list\"\n role=\"group\"\n [attr.aria-label]=\"\n i18nLabels.manageFieldsTitle || 'Gerenciar campos de filtro'\n \"\n >\n @if (getAddManagerSelectedItems().length) {\n <section\n class=\"add-manager__section add-manager__section--selected\"\n [attr.aria-label]=\"\n i18nLabels.selectedFieldsSectionTitle ||\n 'Campos exibidos'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.selectedFieldsSectionTitle ||\n \"Campos exibidos\"\n }}\n <span>{{ getAddManagerSelectedFieldsSummary() }}</span>\n </h3>\n @for (\n it of getAddManagerSelectedItems();\n track trackById($index, it)\n ) {\n <mat-checkbox\n class=\"add-manager__item\"\n [attr.data-field-id]=\"it.id\"\n [checked]=\"isAddManagerFieldSelected(it.id)\"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n [attr.aria-description]=\"\n getAddManagerFieldAriaDescription(it)\n \"\n [class.add-manager__item--added]=\"\n isAddManagerItemInMotion(it.id, 'added')\n \"\n [class.add-manager__item--removed]=\"\n isAddManagerItemInMotion(it.id, 'removed')\n \"\n [class.add-manager__item--pending]=\"\n isAddManagerFieldPendingRemoval(it.id)\n \"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\"\n >\n {{ it.label }}\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n @if (\n getAddManagerFieldPendingLabel(it.id);\n as pendingLabel\n ) {\n <span class=\"add-manager__item-pending\">{{\n pendingLabel\n }}</span>\n }\n </mat-checkbox>\n }\n </section>\n }\n @if (getAddManagerAvailableItems().length) {\n <section\n class=\"add-manager__section\"\n [attr.aria-label]=\"\n i18nLabels.availableFieldsSectionTitle ||\n 'Campos dispon\u00EDveis'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.availableFieldsSectionTitle ||\n \"Campos dispon\u00EDveis\"\n }}\n </h3>\n @for (\n it of getAddManagerAvailableItems();\n track trackById($index, it)\n ) {\n <mat-checkbox\n class=\"add-manager__item\"\n [attr.data-field-id]=\"it.id\"\n [checked]=\"isAddManagerFieldSelected(it.id)\"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n [attr.aria-description]=\"\n getAddManagerFieldAriaDescription(it)\n \"\n [class.add-manager__item--added]=\"\n isAddManagerItemInMotion(it.id, 'added')\n \"\n [class.add-manager__item--removed]=\"\n isAddManagerItemInMotion(it.id, 'removed')\n \"\n [class.add-manager__item--pending]=\"\n isAddManagerFieldPendingAddition(it.id)\n \"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\"\n >\n {{ it.label }}\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n @if (\n getAddManagerFieldPendingLabel(it.id);\n as pendingLabel\n ) {\n <span class=\"add-manager__item-pending\">{{\n pendingLabel\n }}</span>\n }\n </mat-checkbox>\n }\n </section>\n }\n @if (!addItems.length) {\n <div class=\"add-manager__empty\" role=\"status\">\n <mat-icon\n [praxisIcon]=\"'search_off'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{\n addQuery\n ? i18nLabels.noFilterFieldsFound ||\n \"Nenhum campo encontrado.\"\n : i18nLabels.addUnavailable ||\n \"Todos os campos j\u00E1 est\u00E3o vis\u00EDveis\"\n }}</span>\n </div>\n }\n </div>\n <div class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {{ addManagerAnnouncement }}\n </div>\n @if (addManagerConflict) {\n <div\n class=\"add-manager__notice add-manager__notice--conflict\"\n role=\"alert\"\n >\n <mat-icon\n [praxisIcon]=\"'sync_problem'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{ i18nLabels.fieldSelectionConflict }}</span>\n </div>\n } @else if (getRemovedActiveFieldLabels().length) {\n <div\n class=\"add-manager__notice add-manager__notice--warning\"\n role=\"status\"\n >\n <mat-icon\n [praxisIcon]=\"'warning_amber'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span\n >{{ i18nLabels.removingActiveFields }}\n {{ getRemovedActiveFieldLabels().join(\", \") }}</span\n >\n </div>\n }\n <footer class=\"add-manager__footer\">\n <button mat-button type=\"button\" (click)=\"closeAddManager()\">\n {{ i18nLabels.cancel }}\n </button>\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!isAddManagerDirty() || addManagerConflict\"\n (click)=\"applyAddManager()\"\n >\n {{ i18nLabels.manageFieldsApply || \"Aplicar\" }}\n @if (isAddManagerDirty()) {\n ({{ getAddManagerChangeCount() }})\n }\n </button>\n </footer>\n </section>\n </ng-template>\n }\n @if (showFilterSettings) {\n <button\n praxisIconButton=\"settings\"\n size=\"compact\"\n class=\"cluster-btn separator-before\"\n type=\"button\"\n (click)=\"openSettings()\"\n [matBadge]=\"schemaOutdated ? '!' : ''\"\n [matBadgeHidden]=\"!schemaOutdated\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n [matTooltip]=\"getSettingsTooltip()\"\n matTooltipPosition=\"below\"\n [attr.aria-label]=\"getSettingsAriaLabel()\"\n ></button>\n }\n @if (isFieldAuthoringEnabled() && activeEditableFieldMeta) {\n <button\n praxisIconButton=\"tune\"\n size=\"compact\"\n class=\"cluster-btn\"\n type=\"button\"\n data-testid=\"filter-field-settings-trigger\"\n [attr.aria-label]=\"activeEditableFieldLabel\"\n (click)=\"openSelectedFieldEditor()\"\n ></button>\n }\n </div>\n }\n\n @if (activeFiltersCount > 0 || showSearchButton) {\n <div class=\"action-cluster action-cluster--query\">\n @if (activeFiltersCount > 0) {\n <span\n class=\"active-filter-summary\"\n data-testid=\"active-filter-summary\"\n >\n <mat-icon\n [praxisIcon]=\"'filter_alt'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{ getActiveFiltersLabel() }}</span>\n </span>\n }\n @if (showClearButton && activeFiltersCount > 0) {\n <button\n praxisIconButton=\"filter_alt_off\"\n size=\"compact\"\n class=\"cluster-btn\"\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 ></button>\n }\n @if (showSearchButton) {\n <button\n praxisIconButton=\"search\"\n size=\"compact\"\n class=\"cluster-btn\"\n type=\"submit\"\n [attr.aria-label]=\"i18nLabels.apply\"\n [matTooltip]=\"i18nLabels.apply\"\n matTooltipPosition=\"below\"\n ></button>\n }\n </div>\n }\n\n <span class=\"sr-only\" aria-live=\"polite\">{{\n advancedOpening\n ? i18nLabels.advancedOpening || \"Abrindo filtro avan\u00E7ado...\"\n : getAddAriaLabel()\n }}</span>\n </div>\n </div>\n\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n data-testid=\"active-filters-announcement\"\n >\n {{ getActiveFiltersLabel() }}\n </span>\n <button\n type=\"submit\"\n class=\"hidden-submit\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n ></button>\n</form>\n\n@if (!(compactSelectedMetas.length || compactAlwaysVisibleMetas.length)) {\n <ng-container [ngTemplateOutlet]=\"filterTagsTemplate\"></ng-container>\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( --praxis-theme-outline-strong, var(--md-sys-color-outline) )}:host{--border-color: var( --praxis-theme-outline, var(--md-sys-color-outline-variant) );--border-color-hover: var( --praxis-theme-outline-strong, var(--md-sys-color-outline) );--pfx-overlay-surface: var( --praxis-theme-surface-raised, var(--md-sys-color-surface-container) );--pfx-overlay-surface-elev: var( --praxis-theme-surface-overlay, var(--md-sys-color-surface-container-high) );--pfx-overlay-surface-variant: var( --praxis-theme-surface-raised, var(--md-sys-color-surface-variant) );--pfx-overlay-on-surface: var( --praxis-theme-on-surface, var(--md-sys-color-on-surface) );--pfx-overlay-on-surface-variant: var( --praxis-theme-on-surface-muted, var(--md-sys-color-on-surface-variant) );display:block;width:100%;min-width:0;flex:1 1 auto;container-name:praxis-filter;container-type:inline-size}.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}.query-auxiliary{grid-column:2;grid-row:1;display:flex;align-items:center;flex-wrap:nowrap;gap:6px;justify-self:end;align-self:center;width:fit-content;max-width:100%;min-width:0}.inline-actions{flex:0 0 auto;display:flex;gap:6px;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)}.active-filter-summary{display:inline-flex;align-items:center;min-height:30px;gap:5px;padding:0 9px;border-radius:var(--md-sys-shape-corner-full, 999px);background:var(--md-sys-color-secondary-container, var(--md-sys-color-primary-container));color:var(--md-sys-color-on-secondary-container, var(--md-sys-color-on-primary-container));font-size:.75rem;font-weight:600;line-height:1;letter-spacing:.01em;white-space:nowrap}.active-filter-summary mat-icon{width:16px;height:16px;font-size:16px}.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}.inline-actions.actions-outlined button[praxisIconButton]{border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:50%}.inline-actions.actions-outlined .action-cluster button[praxisIconButton]{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)}.query-auxiliary .praxis-filter-tags{flex:0 1 auto;min-width:0;min-height:var(--pfx-filter-h);display:inline-flex;align-items:center}.query-auxiliary .praxis-filter-tags mat-chip-set{min-width:0}: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),100cqw - 24px)!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}@container praxis-filter (max-width: 900px){.praxis-filter-bar.has-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.praxis-filter-bar.has-compact .compact-fields{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:thin;scroll-padding-inline:2px;padding-block:2px}.praxis-filter-bar.has-compact .query-auxiliary{justify-content:flex-end;flex-wrap:nowrap;width:fit-content}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell,praxis-field-shell),:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){flex:0 0 auto!important;width:clamp(var(--pfx-compact-field-min, 148px),30cqw,var(--pfx-compact-field-max, 190px))!important;min-width:min(var(--pfx-compact-field-min, 148px),100cqw - 12px)!important}}: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, 24px);--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, 24px)!important;height:var(--pdx-inline-clear-size, 24px)!important;min-width:var(--pdx-inline-clear-size, 24px)!important;place-items:center!important;width:var(--pdx-inline-clear-size, 24px)!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,.praxis-filter-tags .chip-readonly{display:inline-flex;align-items:center;flex:0 0 auto}.praxis-filter-tags .leading-check{width:18px;height:18px;font-size:18px;line-height:1}.praxis-filter-tags .chip-label{display:inline-flex;align-items:center;min-width:0;line-height:1.25}.praxis-filter-tags .chip-readonly{margin-inline-start:8px;color:var(--mat-sys-on-surface-variant, var(--md-sys-color-on-surface-variant))}.praxis-filter-tags .chip-readonly .mat-icon{width:16px;height:16px;font-size:16px;line-height:16px}.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)}@container praxis-filter (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))}}@container praxis-filter (max-width: 640px){.praxis-filter-bar.has-compact{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1;display:flex;flex-wrap:nowrap;align-items:center;width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:thin}.praxis-filter-bar.has-compact .query-auxiliary{grid-column:1;grid-row:2;justify-self:start;width:100%;height:auto;align-self:start}.praxis-filter-bar.has-compact .query-auxiliary .praxis-filter-tags{flex:0 1 auto;min-width:0;min-height:40px}.praxis-filter-bar.has-compact .query-auxiliary .praxis-filter-tags mat-chip-set,.praxis-filter-bar.has-compact .query-auxiliary .praxis-filter-tags mat-chip{max-width:100%}.praxis-filter-bar.has-compact .query-auxiliary .praxis-filter-tags mat-chip{min-height:44px}.praxis-filter-bar.has-compact .inline-actions .action-cluster{max-width:100%;min-height:44px;padding-block:0}: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>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){--pfx-field-shell-width: auto;--pfx-field-shell-field-width: auto;flex:0 0 auto!important;width:min(var(--pfx-compact-field-max, 190px),100cqw - 12px)!important;min-width:min(var(--pfx-compact-field-min, 148px),100cqw - 12px)!important;max-width:none!important}: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;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range{width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range .pdx-inline-date-range-root,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range .mat-mdc-form-field.pdx-inline-date-range{width:100%!important;max-width:100%!important;min-width:0!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),100cqw - 24px)!important}}@container praxis-filter (min-width: 960px){.fields-grid{gap:6px 10px}}@container praxis-filter (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(--praxis-theme-outline, var(--md-sys-color-outline-variant)));background:var(--praxis-theme-surface-raised, var(--md-sys-color-surface-container));color:var(--praxis-theme-on-surface, var(--md-sys-color-on-surface))}.add-manager{--_pfx-field-manager-surface: var( --pfx-field-manager-surface, var( --praxis-theme-surface-overlay, var(--md-sys-color-surface-container-highest) ) );--_pfx-field-manager-on-surface: var( --pfx-field-manager-on-surface, var(--praxis-theme-on-surface, var(--md-sys-color-on-surface)) );--_pfx-field-manager-on-surface-muted: var( --pfx-field-manager-on-surface-muted, var(--praxis-theme-on-surface-muted, var(--md-sys-color-on-surface-variant)) );--_pfx-field-manager-outline: var( --pfx-field-manager-outline, var( --pdx-inline-field-outline, var(--praxis-theme-outline, var(--md-sys-color-outline-variant)) ) );--_pfx-field-manager-focus-outline: var( --pfx-field-manager-focus-outline, var( --pdx-inline-field-focus-outline, var(--praxis-theme-focus-outline, var(--md-sys-color-primary)) ) );--_pfx-field-manager-scrollbar-thumb: var( --pfx-field-manager-scrollbar-thumb, color-mix( in srgb, var(--_pfx-field-manager-on-surface) 42%, var(--_pfx-field-manager-surface) ) );--_pfx-field-manager-scrollbar-thumb-hover: var( --pfx-field-manager-scrollbar-thumb-hover, color-mix( in srgb, var(--_pfx-field-manager-on-surface) 64%, var(--_pfx-field-manager-surface) ) );--_pfx-field-manager-scrollbar-track: var( --pfx-field-manager-scrollbar-track, transparent );--_pfx-field-manager-scrollbar-size: var( --pfx-field-manager-scrollbar-size, 10px );display:flex;flex-direction:column;width:min(400px,100vw - 24px);max-height:min(70vh,560px);overflow:hidden;border:1px solid var(--_pfx-field-manager-outline);border-radius:var(--pfx-overlay-radius, 16px);background:var(--_pfx-field-manager-surface);color:var(--_pfx-field-manager-on-surface);box-shadow:var(--praxis-theme-elevation, 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(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-body-small)}.add-manager__search{padding:8px 20px}.add-manager__bulk{padding:8px 20px;border-block:1px solid var(--_pfx-field-manager-outline)}.add-manager__list{display:flex;flex-direction:column;min-height:80px;overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--_pfx-field-manager-scrollbar-thumb) var(--_pfx-field-manager-scrollbar-track);scrollbar-gutter:stable;scrollbar-width:auto;padding:4px 12px 12px}.add-manager__list::-webkit-scrollbar{width:var(--_pfx-field-manager-scrollbar-size);height:var(--_pfx-field-manager-scrollbar-size)}.add-manager__list::-webkit-scrollbar-track{background:var(--_pfx-field-manager-scrollbar-track)}.add-manager__list::-webkit-scrollbar-thumb{min-height:32px;border:2px solid transparent;border-radius:999px;background:var(--_pfx-field-manager-scrollbar-thumb);background-clip:padding-box}.add-manager__list::-webkit-scrollbar-thumb:hover{background:var(--_pfx-field-manager-scrollbar-thumb-hover);background-clip:padding-box}.add-manager__section+.add-manager__section{margin-top:8px;padding-top:8px;border-top:1px solid var(--_pfx-field-manager-outline)}.add-manager__section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0;padding:8px 8px 4px;color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-medium)}.add-manager__section-title span{color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-small);white-space:nowrap}.add-manager__item{display:flex;align-items:center;min-height:48px;padding-inline:8px;border-radius:var(--pfx-control-radius, 8px)}::ng-deep .add-manager__item .mdc-form-field{align-items:center}::ng-deep .add-manager__item .mdc-label{display:inline-flex;align-items:center;min-height:20px}.add-manager__item:hover{background:color-mix(in srgb,var(--_pfx-field-manager-on-surface) 6%,var(--_pfx-field-manager-surface))}.add-manager__item-info{width:16px;height:16px;margin-left:4px;vertical-align:text-bottom;color:var(--_pfx-field-manager-on-surface-muted);font-size:16px}.add-manager__item-pending{display:inline-flex;align-items:center;margin-left:8px;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 14%,transparent);color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-small);white-space:nowrap}.add-manager__item--pending{background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}.add-manager__section--selected .add-manager__item{box-shadow:inset 2px 0 color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 56%,transparent)}.add-manager__item--added{animation:add-manager-item-added var(--md-sys-motion-duration-short4, .2s) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(.05, .7, .1, 1)) both}.add-manager__item--removed{animation:add-manager-item-removed var(--md-sys-motion-duration-short4, .2s) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(.05, .7, .1, 1)) both}@keyframes add-manager-item-added{0%{opacity:.72;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 24%,var(--_pfx-field-manager-surface))}to{opacity:1;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}}@keyframes add-manager-item-removed{0%{opacity:.72;background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 72%,transparent)}to{opacity:1;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}}@media(prefers-reduced-motion:reduce){.add-manager__item--added,.add-manager__item--removed{animation:none}}.add-manager__empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:96px;padding:16px;color:var(--_pfx-field-manager-on-surface-muted);text-align:center}.add-manager__footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--_pfx-field-manager-outline);background:var(--_pfx-field-manager-surface)}.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 .praxis-filter-bar.has-compact.tag-variant-filled pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected{background:var(--pfx-filter-tag-color);color:var(--pfx-filter-tag-on-color);box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-color)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected{background:transparent;color:var(--pfx-filter-tag-outline-color);box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-outline-color)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected .pdx-chip-trigger.is-active{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:inherit!important}: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: 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: "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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i14$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i15$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { 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: "component", type: PdxCollectionSearchComponent, selector: "pdx-collection-search", inputs: ["value", "placeholder", "ariaLabel", "clearAriaLabel", "disabled", "density", "icon", "clearIcon"], outputs: ["valueChange", "cleared"] }, { 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"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
42033
|
+
], viewQueries: [{ propertyName: "addManagerOrigin", first: true, predicate: ["addManagerOrigin"], descendants: true, read: ElementRef }, { propertyName: "addManagerSearch", first: true, predicate: ["addManagerSearch"], descendants: true }, { 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\">{{\n i18nLabels.errorLoadingFilters || \"Erro ao carregar filtros.\"\n }}</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<ng-template #filterTagsTemplate>\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\n [class.active]=\"isActiveTag(tag)\"\n [color]=\"\n tagVariant === 'outlined' || tagColor === 'basic'\n ? null\n : tagColor\n \"\n [highlighted]=\"\n tagVariant === 'filled' &&\n tagColor !== 'basic' &&\n isActiveTag(tag)\n \"\n (click)=\"toggleTag(tag)\"\n (keydown.enter)=\"toggleTag(tag)\"\n (keydown.space)=\"toggleTag(tag)\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-pressed]=\"isActiveTag(tag)\"\n >\n @if (editingTagId !== tag.id) {\n <span class=\"chip-content\">\n <span class=\"chip-leading\" aria-hidden=\"true\">\n <mat-icon\n class=\"leading-check\"\n [class.leading-check--hidden]=\"!isActiveTag(tag)\"\n >check</mat-icon\n >\n </span>\n <span class=\"chip-label\">{{ tag.label }}</span>\n @if (isUserTag(tag)) {\n <span class=\"chip-trailing\">\n <button\n praxisIconButton=\"more_vert\"\n size=\"compact\"\n [matMenuTriggerFor]=\"tagMenu\"\n (click)=\"$event.stopPropagation()\"\n [attr.aria-label]=\"getTagActionsAriaLabel(tag)\"\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=\"a11y-only\">{{\n i18nLabels.readonlyShortcut\n }}</span>\n <span\n class=\"chip-readonly\"\n [matTooltip]=\"i18nLabels.readonlyShortcut\"\n aria-hidden=\"true\"\n >\n <mat-icon\n [praxisIcon]=\"'lock'\"\n aria-hidden=\"true\"\n ></mat-icon>\n </span>\n }\n </span>\n } @else {\n <input\n matInput\n class=\"chip-editor\"\n [formControl]=\"editingTagLabel\"\n autofocus\n [matTooltip]=\"'Enter para salvar, Esc para cancelar'\"\n matTooltipPosition=\"below\"\n (keydown.enter)=\"commitEditTag(tag, $event)\"\n (keydown.escape)=\"cancelEditTag($event)\"\n (blur)=\"commitEditTag(tag, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n </mat-chip>\n }\n </mat-chip-set>\n </div>\n }\n</ng-template>\n\n<form\n class=\"praxis-filter-bar\"\n [class.is-open]=\"advancedOpen\"\n [class.has-compact]=\"\n compactSelectedMetas.length || compactAlwaysVisibleMetas.length\n \"\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>\n @if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <div class=\"compact-fields\">\n @if (compactSelectedMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"compactSelectedMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"\n ></ng-container>\n }\n @if (compactAlwaysVisibleMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"compactAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onAlwaysComponents($event)\"\n ></ng-container>\n }\n <ng-container [ngTemplateOutlet]=\"filterTagsTemplate\"></ng-container>\n </div>\n }\n\n @if (gridSelectedMetas.length || gridAlwaysVisibleMetas.length) {\n <div class=\"fields-grid\">\n @if (gridSelectedMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"gridSelectedMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"\n ></ng-container>\n }\n @if (gridAlwaysVisibleMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"gridAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onAlwaysComponents($event)\"\n ></ng-container>\n }\n </div>\n }\n\n <div class=\"query-auxiliary\" data-filter-region=\"query-auxiliary\">\n <div\n class=\"inline-actions\"\n [class.actions-outlined]=\"actionsVariant === 'outlined'\"\n >\n <div\n class=\"actions-anchor\"\n #anchorRef=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n ></div>\n @if (toggleMetas.length) {\n <div class=\"inline-toggles\">\n <ng-container\n dynamicFieldLoader\n [fields]=\"toggleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onToggleComponents($event)\"\n ></ng-container>\n </div>\n }\n\n @if (\n (showAdvancedButton && hasAdvancedFields()) ||\n showAddButton ||\n showFilterSettings ||\n isFieldAuthoringEnabled()\n ) {\n <div class=\"action-cluster action-cluster--manage\">\n @if (showAdvancedButton && hasAdvancedFields()) {\n <button\n #advancedButton\n praxisIconButton=\"filter_list\"\n size=\"compact\"\n class=\"cluster-btn\"\n [busy]=\"advancedOpening\"\n [class.is-opening]=\"advancedOpening\"\n [class.is-disabled]=\"!hasAdvancedFields()\"\n type=\"button\"\n (click)=\"toggleAdvanced()\"\n [attr.aria-label]=\"getAdvancedAriaLabel()\"\n [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 ></button>\n }\n @if (showAddButton) {\n <button\n #addManagerOrigin=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n mat-button\n class=\"cluster-btn add-trigger\"\n type=\"button\"\n data-testid=\"filter-manage-fields-trigger\"\n [attr.aria-label]=\"getAddAriaLabel()\"\n [matTooltip]=\"getAddTooltip()\"\n matTooltipPosition=\"below\"\n [class.is-disabled]=\"!hasAddableFields()\"\n [attr.aria-disabled]=\"!hasAddableFields()\"\n [attr.aria-expanded]=\"addManagerOpen\"\n aria-haspopup=\"dialog\"\n [attr.aria-controls]=\"addManagerOpen ? addManagerTitleId : null\"\n (click)=\"toggleAddManager()\"\n >\n <mat-icon\n [praxisIcon]=\"'checklist'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span class=\"add-trigger-label\">{{ getAddTriggerLabel() }}</span>\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"addManagerOrigin\"\n [cdkConnectedOverlayOpen]=\"addManagerOpen\"\n [cdkConnectedOverlayPositions]=\"addOverlayPositions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayViewportMargin]=\"addManagerViewportMargin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAddManager()\"\n (detach)=\"closeAddManager()\"\n (attach)=\"focusAddManagerSearch()\"\n (overlayKeydown)=\"$event.key === 'Escape' && closeAddManager()\"\n >\n <section\n class=\"add-manager\"\n role=\"dialog\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"addManagerTitleId\"\n [attr.aria-describedby]=\"addManagerDescriptionId\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"false\"\n >\n <header class=\"add-manager__header\">\n <div>\n <h2 [id]=\"addManagerTitleId\">\n {{\n i18nLabels.manageFieldsTitle ||\n \"Gerenciar campos de filtro\"\n }}\n </h2>\n <p [id]=\"addManagerDescriptionId\">\n {{\n i18nLabels.manageFieldsDescription ||\n \"Escolha os campos exibidos na barra de filtros.\"\n }}\n </p>\n </div>\n <button\n praxisIconButton=\"close\"\n size=\"compact\"\n type=\"button\"\n (click)=\"closeAddManager()\"\n [attr.aria-label]=\"i18nLabels.close || 'Fechar'\"\n ></button>\n </header>\n <div class=\"add-manager__search\">\n <pdx-collection-search\n #addManagerSearch\n [value]=\"addQuery\"\n [placeholder]=\"\n i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\n \"\n [ariaLabel]=\"\n i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\n \"\n [clearAriaLabel]=\"i18nLabels.clearSearch || 'Limpar busca'\"\n (valueChange)=\"onAddQuery($event)\"\n />\n </div>\n <div class=\"add-manager__bulk\">\n <mat-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected() && !isAllSelected()\"\n [disabled]=\"!addItems.length || addManagerConflict\"\n (change)=\"toggleSelectAll()\"\n >\n {{\n i18nLabels.selectAllResults ||\n i18nLabels.selectAll ||\n \"Selecionar todos os resultados\"\n }}\n </mat-checkbox>\n </div>\n <div\n class=\"add-manager__list\"\n role=\"group\"\n [attr.aria-label]=\"\n i18nLabels.manageFieldsTitle || 'Gerenciar campos de filtro'\n \"\n >\n @if (getAddManagerFixedItems().length) {\n <section\n class=\"add-manager__section add-manager__section--fixed\"\n [attr.aria-label]=\"\n i18nLabels.fixedFieldsSectionTitle || 'Campos fixos'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.fixedFieldsSectionTitle || \"Campos fixos\"\n }}\n </h3>\n <ul class=\"add-manager__fixed-list\">\n @for (\n it of getAddManagerFixedItems();\n track trackById($index, it)\n ) {\n <li\n class=\"add-manager__item add-manager__item--fixed\"\n [attr.data-field-id]=\"it.id\"\n [attr.aria-label]=\"\n getAddManagerFixedFieldAriaLabel(it)\n \"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n [praxisIcon]=\"'lock'\"\n aria-hidden=\"true\"\n />\n <span>{{ it.label }}</span>\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n </li>\n }\n </ul>\n </section>\n }\n @if (getAddManagerSelectedItems().length) {\n <section\n class=\"add-manager__section add-manager__section--selected\"\n [attr.aria-label]=\"\n i18nLabels.selectedFieldsSectionTitle ||\n 'Campos exibidos'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.selectedFieldsSectionTitle ||\n \"Campos exibidos\"\n }}\n <span>{{ getAddManagerSelectedFieldsSummary() }}</span>\n </h3>\n @for (\n it of getAddManagerSelectedItems();\n track trackById($index, it)\n ) {\n <mat-checkbox\n class=\"add-manager__item\"\n [attr.data-field-id]=\"it.id\"\n [checked]=\"isAddManagerFieldSelected(it.id)\"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n [attr.aria-description]=\"\n getAddManagerFieldAriaDescription(it)\n \"\n [class.add-manager__item--added]=\"\n isAddManagerItemInMotion(it.id, 'added')\n \"\n [class.add-manager__item--removed]=\"\n isAddManagerItemInMotion(it.id, 'removed')\n \"\n [class.add-manager__item--pending]=\"\n isAddManagerFieldPendingRemoval(it.id)\n \"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\"\n >\n {{ it.label }}\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n @if (\n getAddManagerFieldPendingLabel(it.id);\n as pendingLabel\n ) {\n <span class=\"add-manager__item-pending\">{{\n pendingLabel\n }}</span>\n }\n </mat-checkbox>\n }\n </section>\n }\n @if (getAddManagerAvailableItems().length) {\n <section\n class=\"add-manager__section\"\n [attr.aria-label]=\"\n i18nLabels.availableFieldsSectionTitle ||\n 'Campos dispon\u00EDveis'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.availableFieldsSectionTitle ||\n \"Campos dispon\u00EDveis\"\n }}\n </h3>\n @for (\n it of getAddManagerAvailableItems();\n track trackById($index, it)\n ) {\n <mat-checkbox\n class=\"add-manager__item\"\n [attr.data-field-id]=\"it.id\"\n [checked]=\"isAddManagerFieldSelected(it.id)\"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n [attr.aria-description]=\"\n getAddManagerFieldAriaDescription(it)\n \"\n [class.add-manager__item--added]=\"\n isAddManagerItemInMotion(it.id, 'added')\n \"\n [class.add-manager__item--removed]=\"\n isAddManagerItemInMotion(it.id, 'removed')\n \"\n [class.add-manager__item--pending]=\"\n isAddManagerFieldPendingAddition(it.id)\n \"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\"\n >\n {{ it.label }}\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n @if (\n getAddManagerFieldPendingLabel(it.id);\n as pendingLabel\n ) {\n <span class=\"add-manager__item-pending\">{{\n pendingLabel\n }}</span>\n }\n </mat-checkbox>\n }\n </section>\n }\n @if (!addItems.length && !getAddManagerFixedItems().length) {\n <div class=\"add-manager__empty\" role=\"status\">\n <mat-icon\n [praxisIcon]=\"'search_off'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{\n addQuery\n ? i18nLabels.noFilterFieldsFound ||\n \"Nenhum campo encontrado.\"\n : i18nLabels.addUnavailable ||\n \"Todos os campos j\u00E1 est\u00E3o vis\u00EDveis\"\n }}</span>\n </div>\n }\n </div>\n <div class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {{ addManagerAnnouncement }}\n </div>\n @if (addManagerConflict) {\n <div\n class=\"add-manager__notice add-manager__notice--conflict\"\n role=\"alert\"\n >\n <mat-icon\n [praxisIcon]=\"'sync_problem'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{ i18nLabels.fieldSelectionConflict }}</span>\n </div>\n } @else if (getRemovedActiveFieldLabels().length) {\n <div\n class=\"add-manager__notice add-manager__notice--warning\"\n role=\"status\"\n >\n <mat-icon\n [praxisIcon]=\"'warning_amber'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span\n >{{ i18nLabels.removingActiveFields }}\n {{ getRemovedActiveFieldLabels().join(\", \") }}</span\n >\n </div>\n }\n <footer class=\"add-manager__footer\">\n <button mat-button type=\"button\" (click)=\"closeAddManager()\">\n {{ i18nLabels.cancel }}\n </button>\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!isAddManagerDirty() || addManagerConflict\"\n (click)=\"applyAddManager()\"\n >\n {{ i18nLabels.manageFieldsApply || \"Aplicar\" }}\n @if (isAddManagerDirty()) {\n ({{ getAddManagerChangeCount() }})\n }\n </button>\n </footer>\n </section>\n </ng-template>\n }\n @if (showFilterSettings) {\n <button\n praxisIconButton=\"settings\"\n size=\"compact\"\n class=\"cluster-btn separator-before\"\n type=\"button\"\n (click)=\"openSettings()\"\n [matBadge]=\"schemaOutdated ? '!' : ''\"\n [matBadgeHidden]=\"!schemaOutdated\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n [matTooltip]=\"getSettingsTooltip()\"\n matTooltipPosition=\"below\"\n [attr.aria-label]=\"getSettingsAriaLabel()\"\n ></button>\n }\n @if (isFieldAuthoringEnabled() && activeEditableFieldMeta) {\n <button\n praxisIconButton=\"tune\"\n size=\"compact\"\n class=\"cluster-btn\"\n type=\"button\"\n data-testid=\"filter-field-settings-trigger\"\n [attr.aria-label]=\"getFieldSettingsLabel()\"\n [matTooltip]=\"getFieldSettingsLabel()\"\n matTooltipPosition=\"below\"\n (click)=\"openSelectedFieldEditor()\"\n ></button>\n }\n </div>\n }\n\n @if (activeFiltersCount > 0 || showSearchButton) {\n <div class=\"action-cluster action-cluster--query\">\n @if (activeFiltersCount > 0) {\n <span\n class=\"active-filter-summary\"\n data-testid=\"active-filter-summary\"\n >\n <mat-icon\n [praxisIcon]=\"'filter_alt'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{ getActiveFiltersLabel() }}</span>\n </span>\n }\n @if (showClearButton && activeFiltersCount > 0) {\n <button\n praxisIconButton=\"filter_alt_off\"\n size=\"compact\"\n class=\"cluster-btn\"\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 ></button>\n }\n @if (showSearchButton) {\n <button\n praxisIconButton=\"search\"\n size=\"compact\"\n class=\"cluster-btn\"\n type=\"submit\"\n [attr.aria-label]=\"i18nLabels.apply\"\n [matTooltip]=\"i18nLabels.apply\"\n matTooltipPosition=\"below\"\n ></button>\n }\n </div>\n }\n\n <span class=\"sr-only\" aria-live=\"polite\">{{\n advancedOpening\n ? i18nLabels.advancedOpening || \"Abrindo filtro avan\u00E7ado...\"\n : getAddAriaLabel()\n }}</span>\n </div>\n </div>\n\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n data-testid=\"active-filters-announcement\"\n >\n {{ getActiveFiltersLabel() }}\n </span>\n <button\n type=\"submit\"\n class=\"hidden-submit\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n ></button>\n</form>\n\n@if (!(compactSelectedMetas.length || compactAlwaysVisibleMetas.length)) {\n <ng-container [ngTemplateOutlet]=\"filterTagsTemplate\"></ng-container>\n}\n", styles: ["@charset \"UTF-8\";:host{--pfx-filter-h: 40px;--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( --praxis-theme-outline-strong, var(--md-sys-color-outline) )}:host{--border-color: var( --praxis-theme-outline, var(--md-sys-color-outline-variant) );--border-color-hover: var( --praxis-theme-outline-strong, var(--md-sys-color-outline) );--pfx-overlay-surface: var( --praxis-theme-surface-raised, var(--md-sys-color-surface-container) );--pfx-overlay-surface-elev: var( --praxis-theme-surface-overlay, var(--md-sys-color-surface-container-high) );--pfx-overlay-surface-variant: var( --praxis-theme-surface-raised, var(--md-sys-color-surface-variant) );--pfx-overlay-on-surface: var( --praxis-theme-on-surface, var(--md-sys-color-on-surface) );--pfx-overlay-on-surface-variant: var( --praxis-theme-on-surface-muted, var(--md-sys-color-on-surface-variant) );display:block;width:100%;min-width:0;flex:1 1 auto;container-name:praxis-filter;container-type:inline-size}.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}.query-auxiliary{grid-column:2;grid-row:1;display:flex;align-items:center;flex-wrap:nowrap;gap:6px;justify-self:end;align-self:center;width:fit-content;max-width:100%;min-width:0}.inline-actions{flex:0 0 auto;display:flex;gap:6px;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:var(--pfx-filter-h);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;gap:6px;padding:0;border:0;background:transparent}.action-cluster--query{gap:6px;padding:0;border:0;background:transparent}:host ::ng-deep :is(.action-cluster--manage,.action-cluster--query) button[praxisIconButton]{border:0;border-radius:999px;background:transparent}:host ::ng-deep :is(.action-cluster--manage,.action-cluster--query) button[praxisIconButton] .praxis-icon-button__surface{width:var(--pfx-filter-h);height:var(--pfx-filter-h);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 32%,var(--md-sys-color-outline-variant));border-radius:var(--praxis-action-control-radius, 8px);background:var(--md-sys-color-surface-container-high)}.active-filter-summary{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--pfx-filter-h);min-height:var(--pfx-filter-h);gap:6px;padding:0 4px;border:0;border-radius:0;background:transparent;color:var(--md-sys-color-on-surface-variant);font-family:var(--md-sys-typescale-label-large-font, inherit);font-size:var(--md-sys-typescale-label-large-size, .875rem);font-weight:var(--md-sys-typescale-label-large-weight, 500);line-height:1;letter-spacing:.01em;white-space:nowrap}.active-filter-summary mat-icon{width:16px;height:16px;font-size:16px}.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}.inline-actions.actions-outlined button[praxisIconButton]{border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:50%}.inline-actions.actions-outlined .action-cluster button[praxisIconButton]{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)}.compact-fields .praxis-filter-tags{flex:0 1 auto;min-width:0;min-height:var(--pfx-filter-h);display:inline-flex;align-items:center}.compact-fields .praxis-filter-tags mat-chip-set{min-width:0}.compact-fields .praxis-filter-tags mat-chip{margin-block:0}: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),100cqw - 24px)!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:auto}.praxis-filter-bar.has-compact{grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .fields-grid{grid-column:1;grid-row:auto}.praxis-filter-bar.has-compact .query-auxiliary{grid-column:1;grid-row:auto;justify-self:start;justify-content:flex-start;align-self:start;width:100%}@container praxis-filter (max-width: 1024px){.praxis-filter-bar.has-compact{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:auto;display:flex;flex-wrap:wrap;align-items:center;width:100%;overflow:visible;gap:8px;padding-block:4px}.praxis-filter-bar.has-compact .query-auxiliary{grid-column:1;grid-row:auto;justify-self:start;justify-content:flex-start;align-self:start;flex-wrap:wrap;width:100%;gap:8px}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell,praxis-field-shell),:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){flex:1 1 min(var(--pfx-compact-field-min, 148px),100%)!important;width:clamp(var(--pfx-compact-field-min, 148px),30cqw,var(--pfx-compact-field-max, 190px))!important;min-width:min(var(--pfx-compact-field-min, 148px),100cqw - 12px)!important;max-width:var(--pfx-compact-field-max, 190px)!important}}: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, 40px);--pdx-inline-control-height-mobile: var( --pfx-filter-inline-control-height-mobile, 44px );--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, 24px);--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, 24px)!important;height:var(--pdx-inline-clear-size, 24px)!important;min-width:var(--pdx-inline-clear-size, 24px)!important;place-items:center!important;width:var(--pdx-inline-clear-size, 24px)!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 .chip-content{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:20px;line-height:20px;font-family:var(--md-sys-typescale-body-large-font, inherit);font-size:var(--md-sys-typescale-body-large-size, 1rem);font-weight:500;vertical-align:middle}.praxis-filter-tags .chip-leading,.praxis-filter-tags .chip-trailing,.praxis-filter-tags .chip-readonly{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.praxis-filter-tags .chip-leading,.praxis-filter-tags .chip-readonly{width:20px;height:20px}.praxis-filter-tags .leading-check{width:18px;height:18px;font-size:18px;line-height:1}.praxis-filter-tags .leading-check--hidden{visibility:hidden}.praxis-filter-tags .chip-label{display:inline-flex;align-items:center;min-width:0;min-height:20px;line-height:20px}.praxis-filter-tags .chip-readonly{color:var(--mat-sys-on-surface-variant, var(--md-sys-color-on-surface-variant))}.praxis-filter-tags .chip-readonly .mat-icon{width:16px;height:16px;font-size:16px;line-height:16px}.a11y-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.praxis-filter-tags .mat-mdc-standard-chip{--mat-chip-container-height: var(--pfx-filter-h);--mdc-chip-container-height: var(--pfx-filter-h);min-height:var(--pfx-filter-h)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .praxis-filter-tags mat-chip:not(.active).mat-mdc-standard-chip{--mdc-chip-elevated-container-color: var( --md-sys-color-surface-container-high );--mdc-chip-label-text-color: var(--md-sys-color-on-surface);background:var(--md-sys-color-surface-container-high)!important;color:var(--md-sys-color-on-surface)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .praxis-filter-tags mat-chip:not(.active) :where(.chip-label,.chip-readonly,.mat-icon){color:var(--md-sys-color-on-surface)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .praxis-filter-tags mat-chip.active.mat-mdc-standard-chip{--mdc-chip-elevated-container-color: var(--pfx-filter-tag-color);--mdc-chip-label-text-color: var(--pfx-filter-tag-on-color);background:var(--pfx-filter-tag-color)!important;color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .praxis-filter-tags mat-chip.active :where(.chip-label,.leading-check,.chip-readonly,.mat-icon){color:var(--pfx-filter-tag-on-color)!important}.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)}@container praxis-filter (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))}}@container praxis-filter (max-width: 640px){.praxis-filter-bar.has-compact{--pdx-inline-control-height: var( --pfx-filter-inline-control-height-mobile, 44px );--pdx-inline-control-height-mobile: var( --pfx-filter-inline-control-height-mobile, 44px );display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:auto;display:flex;flex-wrap:wrap;align-items:center;width:100%;overflow:visible;gap:8px}.praxis-filter-bar.has-compact .query-auxiliary{grid-column:1;grid-row:auto;justify-self:start;justify-content:flex-start;width:100%;height:auto;align-self:start;flex-wrap:wrap;gap:8px}.praxis-filter-bar.has-compact .compact-fields .praxis-filter-tags{flex:0 1 auto;min-width:0;min-height:40px}.praxis-filter-bar.has-compact .compact-fields .praxis-filter-tags mat-chip-set,.praxis-filter-bar.has-compact .compact-fields .praxis-filter-tags mat-chip{max-width:100%}.praxis-filter-bar.has-compact .compact-fields .praxis-filter-tags mat-chip{min-height:44px}.praxis-filter-bar.has-compact .active-filter-summary,.praxis-filter-bar.has-compact .inline-actions .add-trigger{min-height:44px;height:44px}:host ::ng-deep .praxis-filter-bar.has-compact :is(.action-cluster--manage,.action-cluster--query) button[praxisIconButton] .praxis-icon-button__surface{width:44px;height:44px}.praxis-filter-bar.has-compact .inline-actions .action-cluster{max-width:100%;min-height:44px;padding-block:0}.praxis-filter-bar.has-compact .inline-actions{width:100%;height:auto;min-height:44px;padding:0;flex-wrap:wrap}: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>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){--pfx-field-shell-width: auto;--pfx-field-shell-field-width: auto;flex:1 1 min(var(--pfx-compact-field-min, 148px),100%)!important;width:auto!important;min-width:min(var(--pfx-compact-field-min, 148px),100cqw - 12px)!important;max-width:min(360px,100%)!important}:host ::ng-deep .praxis-filter-bar.has-compact .action-cluster--manage>button{min-height:44px}: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;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range{width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range .pdx-inline-date-range-root,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range .mat-mdc-form-field.pdx-inline-date-range{width:100%!important;max-width:100%!important;min-width:0!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),100cqw - 24px)!important}}@container praxis-filter (max-width: 1024px){:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell[data-control-type=inlineToggle],praxis-field-shell[data-control-type=inlineToggle]){flex:1 1 min(260px,100%)!important;width:clamp(260px,42cqw,360px)!important;min-width:min(260px,100cqw - 12px)!important;max-width:min(360px,100%)!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-host [data-field-type]:not([data-field-type=inlineTime]){width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-host [data-field-type]:not([data-field-type=inlineTime])>:first-child{width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields [data-field-type=inlineCurrencyRange] .pdx-inline-currency-range-root{width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell[data-control-type=inlineDateRange],praxis-field-shell[data-control-type=inlineDateRange]){flex:1 1 min(220px,100%)!important;width:clamp(220px,36cqw,320px)!important;min-width:min(220px,100cqw - 12px)!important;max-width:min(320px,100%)!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell[data-control-type=inlineCurrencyRange],praxis-field-shell[data-control-type=inlineCurrencyRange]){flex:1 1 min(320px,100%)!important;width:clamp(280px,42cqw,360px)!important;min-width:min(280px,100cqw - 12px)!important;max-width:min(360px,100%)!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :is(.mat-mdc-form-field,.mat-mdc-text-field-wrapper,.pdx-chip-main,.pdx-chip-trigger,.pdx-inline-range-chip,.pdx-inline-currency-range-chip,.pdx-inline-distance-chip,.pdx-inline-score-chip,.pdx-inline-relative-chip,.pdx-inline-relative-period-chip,.pdx-inline-rating-chip,.pdx-inline-pipeline-chip,.pdx-inline-sentiment-chip,.pdx-inline-color-label-chip,.pdx-inline-time-range-chip,.pdx-inline-toggle-pill){width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :is(.mat-mdc-form-field-flex,.mat-mdc-form-field-infix,.pdx-chip-main .mdc-button__label,.pdx-chip-main .pdx-chip-label){width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-chip-main .pdx-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :is(.mat-mdc-text-field-wrapper,.mat-mdc-form-field-flex,.mat-mdc-form-field-infix,.pdx-chip-main){overflow:hidden}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :is(.pfx-field-shell-wrapper,.pfx-field-shell-host,pdx-inline-toggle,pdx-inline-date-range){width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineDateRange] :is(.pdx-inline-date-range-root,.mat-mdc-form-field.pdx-inline-date-range){width:100%!important;max-width:100%!important;min-width:0!important}}@container praxis-filter (max-width: 640px){:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell[data-control-type=inlineDateRange],praxis-field-shell[data-control-type=inlineDateRange],.pfx-field-shell[data-control-type=inlineCurrencyRange],praxis-field-shell[data-control-type=inlineCurrencyRange],.pfx-field-shell[data-control-type=inlineMultiSelect],praxis-field-shell[data-control-type=inlineMultiSelect]){flex:1 1 100%!important;width:100%!important;min-width:min(220px,100%)!important;max-width:100%!important}: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{flex:0 1 auto!important;width:fit-content!important;max-width:100%!important}}@container praxis-filter (max-width: 420px){:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell,praxis-field-shell),:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){--pfx-field-shell-width: 100%;--pfx-field-shell-field-width: 100%;flex:1 1 100%!important;width:100%!important;min-width:0!important;max-width:100%!important}: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] :is(.pfx-field-shell-wrapper,.pfx-field-shell-host),:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{--pfx-field-shell-width: 100%;--pfx-field-shell-field-width: 100%;flex:1 1 100%!important;width:100%!important;inline-size:100%!important;min-width:0!important;max-width:100%!important}}@container praxis-filter (min-width: 960px){.fields-grid{gap:6px 10px}}@container praxis-filter (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(--praxis-theme-outline, var(--md-sys-color-outline-variant)));background:var(--praxis-theme-surface-raised, var(--md-sys-color-surface-container));color:var(--praxis-theme-on-surface, var(--md-sys-color-on-surface))}.add-manager{--_pfx-field-manager-surface: var( --pfx-field-manager-surface, var( --praxis-theme-surface-overlay, var(--md-sys-color-surface-container-highest) ) );--_pfx-field-manager-on-surface: var( --pfx-field-manager-on-surface, var(--praxis-theme-on-surface, var(--md-sys-color-on-surface)) );--_pfx-field-manager-on-surface-muted: var( --pfx-field-manager-on-surface-muted, var(--praxis-theme-on-surface-muted, var(--md-sys-color-on-surface-variant)) );--_pfx-field-manager-outline: var( --pfx-field-manager-outline, var( --pdx-inline-field-outline, var(--praxis-theme-outline, var(--md-sys-color-outline-variant)) ) );--_pfx-field-manager-focus-outline: var( --pfx-field-manager-focus-outline, var( --pdx-inline-field-focus-outline, var(--praxis-theme-focus-outline, var(--md-sys-color-primary)) ) );--_pfx-field-manager-scrollbar-thumb: var( --pfx-field-manager-scrollbar-thumb, color-mix( in srgb, var(--_pfx-field-manager-on-surface) 42%, var(--_pfx-field-manager-surface) ) );--_pfx-field-manager-scrollbar-thumb-hover: var( --pfx-field-manager-scrollbar-thumb-hover, color-mix( in srgb, var(--_pfx-field-manager-on-surface) 64%, var(--_pfx-field-manager-surface) ) );--_pfx-field-manager-scrollbar-track: var( --pfx-field-manager-scrollbar-track, transparent );--_pfx-field-manager-scrollbar-size: var( --pfx-field-manager-scrollbar-size, 10px );display:flex;flex-direction:column;width:min(400px,100vw - 24px);max-height:min(70vh,560px);overflow:hidden;border:1px solid var(--_pfx-field-manager-outline);border-radius:var(--pfx-overlay-radius, 16px);background:var(--_pfx-field-manager-surface);color:var(--_pfx-field-manager-on-surface);box-shadow:var(--praxis-theme-elevation, 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(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-body-small)}.add-manager__search{padding:8px 20px}.add-manager__bulk{padding:8px 20px;border-block:1px solid var(--_pfx-field-manager-outline)}.add-manager__list{display:flex;flex-direction:column;min-height:80px;overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--_pfx-field-manager-scrollbar-thumb) var(--_pfx-field-manager-scrollbar-track);scrollbar-gutter:stable;scrollbar-width:auto;padding:4px 12px 12px}.add-manager__list::-webkit-scrollbar{width:var(--_pfx-field-manager-scrollbar-size);height:var(--_pfx-field-manager-scrollbar-size)}.add-manager__list::-webkit-scrollbar-track{background:var(--_pfx-field-manager-scrollbar-track)}.add-manager__list::-webkit-scrollbar-thumb{min-height:32px;border:2px solid transparent;border-radius:999px;background:var(--_pfx-field-manager-scrollbar-thumb);background-clip:padding-box}.add-manager__list::-webkit-scrollbar-thumb:hover{background:var(--_pfx-field-manager-scrollbar-thumb-hover);background-clip:padding-box}.add-manager__section+.add-manager__section{margin-top:8px;padding-top:8px;border-top:1px solid var(--_pfx-field-manager-outline)}.add-manager__section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0;padding:8px 8px 4px;color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-medium)}.add-manager__section-title span{color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-small);white-space:nowrap}.add-manager__item{display:flex;align-items:center;min-height:48px;padding-inline:8px;border-radius:var(--pfx-control-radius, 8px)}::ng-deep .add-manager__item .mdc-form-field{align-items:center}::ng-deep .add-manager__item .mdc-label{display:inline-flex;align-items:center;min-height:20px}.add-manager__item:hover{background:color-mix(in srgb,var(--_pfx-field-manager-on-surface) 6%,var(--_pfx-field-manager-surface))}.add-manager__item--fixed{gap:10px;color:var(--_pfx-field-manager-on-surface)}.add-manager__fixed-list{margin:0;padding:0;list-style:none}.add-manager__item--fixed>.mat-icon:first-child{width:18px;height:18px;flex:0 0 18px;color:var(--_pfx-field-manager-on-surface-muted);font-size:18px}.add-manager__section--fixed .add-manager__item{box-shadow:inset 2px 0 color-mix(in srgb,var(--_pfx-field-manager-on-surface-muted) 44%,transparent)}.add-manager__item-info{width:16px;height:16px;margin-left:4px;vertical-align:text-bottom;color:var(--_pfx-field-manager-on-surface-muted);font-size:16px}.add-manager__item-pending{display:inline-flex;align-items:center;margin-left:8px;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 14%,transparent);color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-small);white-space:nowrap}.add-manager__item--pending{background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}.add-manager__section--selected .add-manager__item{box-shadow:inset 2px 0 color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 56%,transparent)}.add-manager__item--added{animation:add-manager-item-added var(--md-sys-motion-duration-short4, .2s) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(.05, .7, .1, 1)) both}.add-manager__item--removed{animation:add-manager-item-removed var(--md-sys-motion-duration-short4, .2s) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(.05, .7, .1, 1)) both}@keyframes add-manager-item-added{0%{opacity:.72;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 24%,var(--_pfx-field-manager-surface))}to{opacity:1;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}}@keyframes add-manager-item-removed{0%{opacity:.72;background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 72%,transparent)}to{opacity:1;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}}@media(prefers-reduced-motion:reduce){.add-manager__item--added,.add-manager__item--removed{animation:none}}.add-manager__empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:96px;padding:16px;color:var(--_pfx-field-manager-on-surface-muted);text-align:center}.add-manager__footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--_pfx-field-manager-outline);background:var(--_pfx-field-manager-surface)}.add-manager__footer .mat-mdc-unelevated-button.mat-primary:is(:disabled,.mat-mdc-button-disabled){--mdc-filled-button-container-color: color-mix( in srgb, var(--md-sys-color-on-surface) 12%, transparent );--mdc-filled-button-label-text-color: color-mix( in srgb, var(--md-sys-color-on-surface) 38%, transparent );background:color-mix(in srgb,var(--md-sys-color-on-surface) 12%,transparent)!important;background-image:none!important;color:color-mix(in srgb,var(--md-sys-color-on-surface) 38%,transparent)!important;box-shadow:none!important;filter:none!important;opacity:1!important}.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:var(--pfx-filter-h);min-height:var(--pfx-filter-h);width:auto;max-width:min(100%,220px);min-width:0;padding:0 10px;border-radius:var(--praxis-action-control-radius, 8px);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 32%,var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-high);overflow:visible}.inline-actions .add-trigger--icon{justify-content:center;width:var(--pfx-filter-h);min-width:var(--pfx-filter-h);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 .praxis-filter-bar.has-compact.tag-variant-filled pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected{background:var(--pfx-filter-tag-color);color:var(--pfx-filter-tag-on-color);box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-color)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected{background:transparent;color:var(--pfx-filter-tag-outline-color);box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-outline-color)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected .pdx-chip-trigger.is-active{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:inherit!important}: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: 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: "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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i14$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i15$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { 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: "component", type: PdxCollectionSearchComponent, selector: "pdx-collection-search", inputs: ["value", "placeholder", "ariaLabel", "clearAriaLabel", "disabled", "density", "icon", "clearIcon"], outputs: ["valueChange", "cleared"] }, { 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"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
41356
42034
|
}
|
|
41357
42035
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisFilter, decorators: [{
|
|
41358
42036
|
type: Component,
|
|
@@ -41387,7 +42065,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41387
42065
|
'[style.--pfx-always-min]': 'alwaysMinWidth + "px"',
|
|
41388
42066
|
'[style.--pfx-always-cols-md]': 'alwaysColsMd',
|
|
41389
42067
|
'[style.--pfx-always-cols-lg]': 'alwaysColsLg',
|
|
41390
|
-
}, 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\">{{\n i18nLabels.errorLoadingFilters || \"Erro ao carregar filtros.\"\n }}</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<ng-template #filterTagsTemplate>\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\n [class.active]=\"isActiveTag(tag)\"\n [color]=\"\n tagVariant === 'outlined' || tagColor === 'basic'\n ? null\n : tagColor\n \"\n [highlighted]=\"tagVariant === 'filled' && tagColor !== 'basic'\"\n (click)=\"toggleTag(tag)\"\n (keydown.enter)=\"toggleTag(tag)\"\n (keydown.space)=\"toggleTag(tag)\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-pressed]=\"isActiveTag(tag)\"\n >\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\n praxisIconButton=\"more_vert\"\n size=\"compact\"\n [matMenuTriggerFor]=\"tagMenu\"\n (click)=\"$event.stopPropagation()\"\n [attr.aria-label]=\"getTagActionsAriaLabel(tag)\"\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\n class=\"chip-readonly\"\n [matTooltip]=\"i18nLabels.readonlyShortcut\"\n aria-hidden=\"true\"\n >\n <mat-icon [praxisIcon]=\"'lock'\" aria-hidden=\"true\"></mat-icon>\n </span>\n }\n } @else {\n <input\n matInput\n class=\"chip-editor\"\n [formControl]=\"editingTagLabel\"\n autofocus\n [matTooltip]=\"'Enter para salvar, Esc para cancelar'\"\n matTooltipPosition=\"below\"\n (keydown.enter)=\"commitEditTag(tag, $event)\"\n (keydown.escape)=\"cancelEditTag($event)\"\n (blur)=\"commitEditTag(tag, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n </mat-chip>\n }\n </mat-chip-set>\n </div>\n }\n</ng-template>\n\n<form\n class=\"praxis-filter-bar\"\n [class.is-open]=\"advancedOpen\"\n [class.has-compact]=\"\n compactSelectedMetas.length || compactAlwaysVisibleMetas.length\n \"\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>\n @if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <div class=\"compact-fields\">\n @if (compactSelectedMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"compactSelectedMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"\n ></ng-container>\n }\n @if (compactAlwaysVisibleMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"compactAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onAlwaysComponents($event)\"\n ></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\n dynamicFieldLoader\n [fields]=\"gridSelectedMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"\n ></ng-container>\n }\n @if (gridAlwaysVisibleMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"gridAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onAlwaysComponents($event)\"\n ></ng-container>\n }\n </div>\n }\n\n <div class=\"query-auxiliary\" data-filter-region=\"query-auxiliary\">\n @if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <ng-container [ngTemplateOutlet]=\"filterTagsTemplate\"></ng-container>\n }\n\n <div\n class=\"inline-actions\"\n [class.actions-outlined]=\"actionsVariant === 'outlined'\"\n >\n <div\n class=\"actions-anchor\"\n #anchorRef=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n ></div>\n @if (toggleMetas.length) {\n <div class=\"inline-toggles\">\n <ng-container\n dynamicFieldLoader\n [fields]=\"toggleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onToggleComponents($event)\"\n ></ng-container>\n </div>\n }\n\n @if (\n showAdvancedButton ||\n showAddButton ||\n showFilterSettings ||\n isFieldAuthoringEnabled()\n ) {\n <div class=\"action-cluster action-cluster--manage\">\n @if (showAdvancedButton) {\n <button\n #advancedButton\n praxisIconButton=\"filter_list\"\n size=\"compact\"\n class=\"cluster-btn\"\n [busy]=\"advancedOpening\"\n [class.is-opening]=\"advancedOpening\"\n [class.is-disabled]=\"!hasAdvancedFields()\"\n type=\"button\"\n (click)=\"toggleAdvanced()\"\n [attr.aria-label]=\"getAdvancedAriaLabel()\"\n [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 ></button>\n }\n @if (showAddButton) {\n <button\n #addManagerOrigin=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n mat-button\n class=\"cluster-btn add-trigger\"\n type=\"button\"\n data-testid=\"filter-manage-fields-trigger\"\n [attr.aria-label]=\"getAddAriaLabel()\"\n [matTooltip]=\"getAddTooltip()\"\n matTooltipPosition=\"below\"\n [class.is-disabled]=\"!hasAddableFields()\"\n [attr.aria-disabled]=\"!hasAddableFields()\"\n [attr.aria-expanded]=\"addManagerOpen\"\n aria-haspopup=\"dialog\"\n [attr.aria-controls]=\"addManagerOpen ? addManagerTitleId : null\"\n (click)=\"toggleAddManager()\"\n >\n <mat-icon\n [praxisIcon]=\"'filter_list'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span class=\"add-trigger-label\">{{ getAddTriggerLabel() }}</span>\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"addManagerOrigin\"\n [cdkConnectedOverlayOpen]=\"addManagerOpen\"\n [cdkConnectedOverlayPositions]=\"addOverlayPositions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAddManager()\"\n (detach)=\"closeAddManager()\"\n (overlayKeydown)=\"$event.key === 'Escape' && closeAddManager()\"\n >\n <section\n class=\"add-manager\"\n role=\"dialog\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"addManagerTitleId\"\n [attr.aria-describedby]=\"addManagerDescriptionId\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <header class=\"add-manager__header\">\n <div>\n <h2 [id]=\"addManagerTitleId\">\n {{\n i18nLabels.manageFieldsTitle ||\n \"Gerenciar campos de filtro\"\n }}\n </h2>\n <p [id]=\"addManagerDescriptionId\">\n {{\n i18nLabels.manageFieldsDescription ||\n \"Escolha os campos exibidos na barra de filtros.\"\n }}\n </p>\n </div>\n <button\n praxisIconButton=\"close\"\n size=\"compact\"\n type=\"button\"\n (click)=\"closeAddManager()\"\n [attr.aria-label]=\"i18nLabels.close || 'Fechar'\"\n ></button>\n </header>\n <div class=\"add-manager__search\">\n <pdx-collection-search\n [value]=\"addQuery\"\n [placeholder]=\"\n i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\n \"\n [ariaLabel]=\"\n i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\n \"\n [clearAriaLabel]=\"i18nLabels.clearSearch || 'Limpar busca'\"\n (valueChange)=\"onAddQuery($event)\"\n />\n </div>\n <div class=\"add-manager__bulk\">\n <mat-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected() && !isAllSelected()\"\n [disabled]=\"!addItems.length || addManagerConflict\"\n (change)=\"toggleSelectAll()\"\n >\n {{\n i18nLabels.selectAllResults ||\n i18nLabels.selectAll ||\n \"Selecionar todos os resultados\"\n }}\n </mat-checkbox>\n </div>\n <div\n class=\"add-manager__list\"\n role=\"group\"\n [attr.aria-label]=\"\n i18nLabels.manageFieldsTitle || 'Gerenciar campos de filtro'\n \"\n >\n @if (getAddManagerSelectedItems().length) {\n <section\n class=\"add-manager__section add-manager__section--selected\"\n [attr.aria-label]=\"\n i18nLabels.selectedFieldsSectionTitle ||\n 'Campos exibidos'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.selectedFieldsSectionTitle ||\n \"Campos exibidos\"\n }}\n <span>{{ getAddManagerSelectedFieldsSummary() }}</span>\n </h3>\n @for (\n it of getAddManagerSelectedItems();\n track trackById($index, it)\n ) {\n <mat-checkbox\n class=\"add-manager__item\"\n [attr.data-field-id]=\"it.id\"\n [checked]=\"isAddManagerFieldSelected(it.id)\"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n [attr.aria-description]=\"\n getAddManagerFieldAriaDescription(it)\n \"\n [class.add-manager__item--added]=\"\n isAddManagerItemInMotion(it.id, 'added')\n \"\n [class.add-manager__item--removed]=\"\n isAddManagerItemInMotion(it.id, 'removed')\n \"\n [class.add-manager__item--pending]=\"\n isAddManagerFieldPendingRemoval(it.id)\n \"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\"\n >\n {{ it.label }}\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n @if (\n getAddManagerFieldPendingLabel(it.id);\n as pendingLabel\n ) {\n <span class=\"add-manager__item-pending\">{{\n pendingLabel\n }}</span>\n }\n </mat-checkbox>\n }\n </section>\n }\n @if (getAddManagerAvailableItems().length) {\n <section\n class=\"add-manager__section\"\n [attr.aria-label]=\"\n i18nLabels.availableFieldsSectionTitle ||\n 'Campos dispon\u00EDveis'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.availableFieldsSectionTitle ||\n \"Campos dispon\u00EDveis\"\n }}\n </h3>\n @for (\n it of getAddManagerAvailableItems();\n track trackById($index, it)\n ) {\n <mat-checkbox\n class=\"add-manager__item\"\n [attr.data-field-id]=\"it.id\"\n [checked]=\"isAddManagerFieldSelected(it.id)\"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n [attr.aria-description]=\"\n getAddManagerFieldAriaDescription(it)\n \"\n [class.add-manager__item--added]=\"\n isAddManagerItemInMotion(it.id, 'added')\n \"\n [class.add-manager__item--removed]=\"\n isAddManagerItemInMotion(it.id, 'removed')\n \"\n [class.add-manager__item--pending]=\"\n isAddManagerFieldPendingAddition(it.id)\n \"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\"\n >\n {{ it.label }}\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n @if (\n getAddManagerFieldPendingLabel(it.id);\n as pendingLabel\n ) {\n <span class=\"add-manager__item-pending\">{{\n pendingLabel\n }}</span>\n }\n </mat-checkbox>\n }\n </section>\n }\n @if (!addItems.length) {\n <div class=\"add-manager__empty\" role=\"status\">\n <mat-icon\n [praxisIcon]=\"'search_off'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{\n addQuery\n ? i18nLabels.noFilterFieldsFound ||\n \"Nenhum campo encontrado.\"\n : i18nLabels.addUnavailable ||\n \"Todos os campos j\u00E1 est\u00E3o vis\u00EDveis\"\n }}</span>\n </div>\n }\n </div>\n <div class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {{ addManagerAnnouncement }}\n </div>\n @if (addManagerConflict) {\n <div\n class=\"add-manager__notice add-manager__notice--conflict\"\n role=\"alert\"\n >\n <mat-icon\n [praxisIcon]=\"'sync_problem'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{ i18nLabels.fieldSelectionConflict }}</span>\n </div>\n } @else if (getRemovedActiveFieldLabels().length) {\n <div\n class=\"add-manager__notice add-manager__notice--warning\"\n role=\"status\"\n >\n <mat-icon\n [praxisIcon]=\"'warning_amber'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span\n >{{ i18nLabels.removingActiveFields }}\n {{ getRemovedActiveFieldLabels().join(\", \") }}</span\n >\n </div>\n }\n <footer class=\"add-manager__footer\">\n <button mat-button type=\"button\" (click)=\"closeAddManager()\">\n {{ i18nLabels.cancel }}\n </button>\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!isAddManagerDirty() || addManagerConflict\"\n (click)=\"applyAddManager()\"\n >\n {{ i18nLabels.manageFieldsApply || \"Aplicar\" }}\n @if (isAddManagerDirty()) {\n ({{ getAddManagerChangeCount() }})\n }\n </button>\n </footer>\n </section>\n </ng-template>\n }\n @if (showFilterSettings) {\n <button\n praxisIconButton=\"settings\"\n size=\"compact\"\n class=\"cluster-btn separator-before\"\n type=\"button\"\n (click)=\"openSettings()\"\n [matBadge]=\"schemaOutdated ? '!' : ''\"\n [matBadgeHidden]=\"!schemaOutdated\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n [matTooltip]=\"getSettingsTooltip()\"\n matTooltipPosition=\"below\"\n [attr.aria-label]=\"getSettingsAriaLabel()\"\n ></button>\n }\n @if (isFieldAuthoringEnabled() && activeEditableFieldMeta) {\n <button\n praxisIconButton=\"tune\"\n size=\"compact\"\n class=\"cluster-btn\"\n type=\"button\"\n data-testid=\"filter-field-settings-trigger\"\n [attr.aria-label]=\"activeEditableFieldLabel\"\n (click)=\"openSelectedFieldEditor()\"\n ></button>\n }\n </div>\n }\n\n @if (activeFiltersCount > 0 || showSearchButton) {\n <div class=\"action-cluster action-cluster--query\">\n @if (activeFiltersCount > 0) {\n <span\n class=\"active-filter-summary\"\n data-testid=\"active-filter-summary\"\n >\n <mat-icon\n [praxisIcon]=\"'filter_alt'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{ getActiveFiltersLabel() }}</span>\n </span>\n }\n @if (showClearButton && activeFiltersCount > 0) {\n <button\n praxisIconButton=\"filter_alt_off\"\n size=\"compact\"\n class=\"cluster-btn\"\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 ></button>\n }\n @if (showSearchButton) {\n <button\n praxisIconButton=\"search\"\n size=\"compact\"\n class=\"cluster-btn\"\n type=\"submit\"\n [attr.aria-label]=\"i18nLabels.apply\"\n [matTooltip]=\"i18nLabels.apply\"\n matTooltipPosition=\"below\"\n ></button>\n }\n </div>\n }\n\n <span class=\"sr-only\" aria-live=\"polite\">{{\n advancedOpening\n ? i18nLabels.advancedOpening || \"Abrindo filtro avan\u00E7ado...\"\n : getAddAriaLabel()\n }}</span>\n </div>\n </div>\n\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n data-testid=\"active-filters-announcement\"\n >\n {{ getActiveFiltersLabel() }}\n </span>\n <button\n type=\"submit\"\n class=\"hidden-submit\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n ></button>\n</form>\n\n@if (!(compactSelectedMetas.length || compactAlwaysVisibleMetas.length)) {\n <ng-container [ngTemplateOutlet]=\"filterTagsTemplate\"></ng-container>\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( --praxis-theme-outline-strong, var(--md-sys-color-outline) )}:host{--border-color: var( --praxis-theme-outline, var(--md-sys-color-outline-variant) );--border-color-hover: var( --praxis-theme-outline-strong, var(--md-sys-color-outline) );--pfx-overlay-surface: var( --praxis-theme-surface-raised, var(--md-sys-color-surface-container) );--pfx-overlay-surface-elev: var( --praxis-theme-surface-overlay, var(--md-sys-color-surface-container-high) );--pfx-overlay-surface-variant: var( --praxis-theme-surface-raised, var(--md-sys-color-surface-variant) );--pfx-overlay-on-surface: var( --praxis-theme-on-surface, var(--md-sys-color-on-surface) );--pfx-overlay-on-surface-variant: var( --praxis-theme-on-surface-muted, var(--md-sys-color-on-surface-variant) );display:block;width:100%;min-width:0;flex:1 1 auto;container-name:praxis-filter;container-type:inline-size}.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}.query-auxiliary{grid-column:2;grid-row:1;display:flex;align-items:center;flex-wrap:nowrap;gap:6px;justify-self:end;align-self:center;width:fit-content;max-width:100%;min-width:0}.inline-actions{flex:0 0 auto;display:flex;gap:6px;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)}.active-filter-summary{display:inline-flex;align-items:center;min-height:30px;gap:5px;padding:0 9px;border-radius:var(--md-sys-shape-corner-full, 999px);background:var(--md-sys-color-secondary-container, var(--md-sys-color-primary-container));color:var(--md-sys-color-on-secondary-container, var(--md-sys-color-on-primary-container));font-size:.75rem;font-weight:600;line-height:1;letter-spacing:.01em;white-space:nowrap}.active-filter-summary mat-icon{width:16px;height:16px;font-size:16px}.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}.inline-actions.actions-outlined button[praxisIconButton]{border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:50%}.inline-actions.actions-outlined .action-cluster button[praxisIconButton]{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)}.query-auxiliary .praxis-filter-tags{flex:0 1 auto;min-width:0;min-height:var(--pfx-filter-h);display:inline-flex;align-items:center}.query-auxiliary .praxis-filter-tags mat-chip-set{min-width:0}: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),100cqw - 24px)!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}@container praxis-filter (max-width: 900px){.praxis-filter-bar.has-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.praxis-filter-bar.has-compact .compact-fields{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:thin;scroll-padding-inline:2px;padding-block:2px}.praxis-filter-bar.has-compact .query-auxiliary{justify-content:flex-end;flex-wrap:nowrap;width:fit-content}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell,praxis-field-shell),:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){flex:0 0 auto!important;width:clamp(var(--pfx-compact-field-min, 148px),30cqw,var(--pfx-compact-field-max, 190px))!important;min-width:min(var(--pfx-compact-field-min, 148px),100cqw - 12px)!important}}: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, 24px);--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, 24px)!important;height:var(--pdx-inline-clear-size, 24px)!important;min-width:var(--pdx-inline-clear-size, 24px)!important;place-items:center!important;width:var(--pdx-inline-clear-size, 24px)!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,.praxis-filter-tags .chip-readonly{display:inline-flex;align-items:center;flex:0 0 auto}.praxis-filter-tags .leading-check{width:18px;height:18px;font-size:18px;line-height:1}.praxis-filter-tags .chip-label{display:inline-flex;align-items:center;min-width:0;line-height:1.25}.praxis-filter-tags .chip-readonly{margin-inline-start:8px;color:var(--mat-sys-on-surface-variant, var(--md-sys-color-on-surface-variant))}.praxis-filter-tags .chip-readonly .mat-icon{width:16px;height:16px;font-size:16px;line-height:16px}.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)}@container praxis-filter (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))}}@container praxis-filter (max-width: 640px){.praxis-filter-bar.has-compact{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:1;display:flex;flex-wrap:nowrap;align-items:center;width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:thin}.praxis-filter-bar.has-compact .query-auxiliary{grid-column:1;grid-row:2;justify-self:start;width:100%;height:auto;align-self:start}.praxis-filter-bar.has-compact .query-auxiliary .praxis-filter-tags{flex:0 1 auto;min-width:0;min-height:40px}.praxis-filter-bar.has-compact .query-auxiliary .praxis-filter-tags mat-chip-set,.praxis-filter-bar.has-compact .query-auxiliary .praxis-filter-tags mat-chip{max-width:100%}.praxis-filter-bar.has-compact .query-auxiliary .praxis-filter-tags mat-chip{min-height:44px}.praxis-filter-bar.has-compact .inline-actions .action-cluster{max-width:100%;min-height:44px;padding-block:0}: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>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){--pfx-field-shell-width: auto;--pfx-field-shell-field-width: auto;flex:0 0 auto!important;width:min(var(--pfx-compact-field-max, 190px),100cqw - 12px)!important;min-width:min(var(--pfx-compact-field-min, 148px),100cqw - 12px)!important;max-width:none!important}: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;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range{width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range .pdx-inline-date-range-root,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range .mat-mdc-form-field.pdx-inline-date-range{width:100%!important;max-width:100%!important;min-width:0!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),100cqw - 24px)!important}}@container praxis-filter (min-width: 960px){.fields-grid{gap:6px 10px}}@container praxis-filter (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(--praxis-theme-outline, var(--md-sys-color-outline-variant)));background:var(--praxis-theme-surface-raised, var(--md-sys-color-surface-container));color:var(--praxis-theme-on-surface, var(--md-sys-color-on-surface))}.add-manager{--_pfx-field-manager-surface: var( --pfx-field-manager-surface, var( --praxis-theme-surface-overlay, var(--md-sys-color-surface-container-highest) ) );--_pfx-field-manager-on-surface: var( --pfx-field-manager-on-surface, var(--praxis-theme-on-surface, var(--md-sys-color-on-surface)) );--_pfx-field-manager-on-surface-muted: var( --pfx-field-manager-on-surface-muted, var(--praxis-theme-on-surface-muted, var(--md-sys-color-on-surface-variant)) );--_pfx-field-manager-outline: var( --pfx-field-manager-outline, var( --pdx-inline-field-outline, var(--praxis-theme-outline, var(--md-sys-color-outline-variant)) ) );--_pfx-field-manager-focus-outline: var( --pfx-field-manager-focus-outline, var( --pdx-inline-field-focus-outline, var(--praxis-theme-focus-outline, var(--md-sys-color-primary)) ) );--_pfx-field-manager-scrollbar-thumb: var( --pfx-field-manager-scrollbar-thumb, color-mix( in srgb, var(--_pfx-field-manager-on-surface) 42%, var(--_pfx-field-manager-surface) ) );--_pfx-field-manager-scrollbar-thumb-hover: var( --pfx-field-manager-scrollbar-thumb-hover, color-mix( in srgb, var(--_pfx-field-manager-on-surface) 64%, var(--_pfx-field-manager-surface) ) );--_pfx-field-manager-scrollbar-track: var( --pfx-field-manager-scrollbar-track, transparent );--_pfx-field-manager-scrollbar-size: var( --pfx-field-manager-scrollbar-size, 10px );display:flex;flex-direction:column;width:min(400px,100vw - 24px);max-height:min(70vh,560px);overflow:hidden;border:1px solid var(--_pfx-field-manager-outline);border-radius:var(--pfx-overlay-radius, 16px);background:var(--_pfx-field-manager-surface);color:var(--_pfx-field-manager-on-surface);box-shadow:var(--praxis-theme-elevation, 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(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-body-small)}.add-manager__search{padding:8px 20px}.add-manager__bulk{padding:8px 20px;border-block:1px solid var(--_pfx-field-manager-outline)}.add-manager__list{display:flex;flex-direction:column;min-height:80px;overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--_pfx-field-manager-scrollbar-thumb) var(--_pfx-field-manager-scrollbar-track);scrollbar-gutter:stable;scrollbar-width:auto;padding:4px 12px 12px}.add-manager__list::-webkit-scrollbar{width:var(--_pfx-field-manager-scrollbar-size);height:var(--_pfx-field-manager-scrollbar-size)}.add-manager__list::-webkit-scrollbar-track{background:var(--_pfx-field-manager-scrollbar-track)}.add-manager__list::-webkit-scrollbar-thumb{min-height:32px;border:2px solid transparent;border-radius:999px;background:var(--_pfx-field-manager-scrollbar-thumb);background-clip:padding-box}.add-manager__list::-webkit-scrollbar-thumb:hover{background:var(--_pfx-field-manager-scrollbar-thumb-hover);background-clip:padding-box}.add-manager__section+.add-manager__section{margin-top:8px;padding-top:8px;border-top:1px solid var(--_pfx-field-manager-outline)}.add-manager__section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0;padding:8px 8px 4px;color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-medium)}.add-manager__section-title span{color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-small);white-space:nowrap}.add-manager__item{display:flex;align-items:center;min-height:48px;padding-inline:8px;border-radius:var(--pfx-control-radius, 8px)}::ng-deep .add-manager__item .mdc-form-field{align-items:center}::ng-deep .add-manager__item .mdc-label{display:inline-flex;align-items:center;min-height:20px}.add-manager__item:hover{background:color-mix(in srgb,var(--_pfx-field-manager-on-surface) 6%,var(--_pfx-field-manager-surface))}.add-manager__item-info{width:16px;height:16px;margin-left:4px;vertical-align:text-bottom;color:var(--_pfx-field-manager-on-surface-muted);font-size:16px}.add-manager__item-pending{display:inline-flex;align-items:center;margin-left:8px;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 14%,transparent);color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-small);white-space:nowrap}.add-manager__item--pending{background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}.add-manager__section--selected .add-manager__item{box-shadow:inset 2px 0 color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 56%,transparent)}.add-manager__item--added{animation:add-manager-item-added var(--md-sys-motion-duration-short4, .2s) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(.05, .7, .1, 1)) both}.add-manager__item--removed{animation:add-manager-item-removed var(--md-sys-motion-duration-short4, .2s) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(.05, .7, .1, 1)) both}@keyframes add-manager-item-added{0%{opacity:.72;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 24%,var(--_pfx-field-manager-surface))}to{opacity:1;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}}@keyframes add-manager-item-removed{0%{opacity:.72;background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 72%,transparent)}to{opacity:1;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}}@media(prefers-reduced-motion:reduce){.add-manager__item--added,.add-manager__item--removed{animation:none}}.add-manager__empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:96px;padding:16px;color:var(--_pfx-field-manager-on-surface-muted);text-align:center}.add-manager__footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--_pfx-field-manager-outline);background:var(--_pfx-field-manager-surface)}.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 .praxis-filter-bar.has-compact.tag-variant-filled pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected{background:var(--pfx-filter-tag-color);color:var(--pfx-filter-tag-on-color);box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-color)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected{background:transparent;color:var(--pfx-filter-tag-outline-color);box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-outline-color)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected .pdx-chip-trigger.is-active{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:inherit!important}: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"] }]
|
|
42068
|
+
}, 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\">{{\n i18nLabels.errorLoadingFilters || \"Erro ao carregar filtros.\"\n }}</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<ng-template #filterTagsTemplate>\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\n [class.active]=\"isActiveTag(tag)\"\n [color]=\"\n tagVariant === 'outlined' || tagColor === 'basic'\n ? null\n : tagColor\n \"\n [highlighted]=\"\n tagVariant === 'filled' &&\n tagColor !== 'basic' &&\n isActiveTag(tag)\n \"\n (click)=\"toggleTag(tag)\"\n (keydown.enter)=\"toggleTag(tag)\"\n (keydown.space)=\"toggleTag(tag)\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-pressed]=\"isActiveTag(tag)\"\n >\n @if (editingTagId !== tag.id) {\n <span class=\"chip-content\">\n <span class=\"chip-leading\" aria-hidden=\"true\">\n <mat-icon\n class=\"leading-check\"\n [class.leading-check--hidden]=\"!isActiveTag(tag)\"\n >check</mat-icon\n >\n </span>\n <span class=\"chip-label\">{{ tag.label }}</span>\n @if (isUserTag(tag)) {\n <span class=\"chip-trailing\">\n <button\n praxisIconButton=\"more_vert\"\n size=\"compact\"\n [matMenuTriggerFor]=\"tagMenu\"\n (click)=\"$event.stopPropagation()\"\n [attr.aria-label]=\"getTagActionsAriaLabel(tag)\"\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=\"a11y-only\">{{\n i18nLabels.readonlyShortcut\n }}</span>\n <span\n class=\"chip-readonly\"\n [matTooltip]=\"i18nLabels.readonlyShortcut\"\n aria-hidden=\"true\"\n >\n <mat-icon\n [praxisIcon]=\"'lock'\"\n aria-hidden=\"true\"\n ></mat-icon>\n </span>\n }\n </span>\n } @else {\n <input\n matInput\n class=\"chip-editor\"\n [formControl]=\"editingTagLabel\"\n autofocus\n [matTooltip]=\"'Enter para salvar, Esc para cancelar'\"\n matTooltipPosition=\"below\"\n (keydown.enter)=\"commitEditTag(tag, $event)\"\n (keydown.escape)=\"cancelEditTag($event)\"\n (blur)=\"commitEditTag(tag, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n </mat-chip>\n }\n </mat-chip-set>\n </div>\n }\n</ng-template>\n\n<form\n class=\"praxis-filter-bar\"\n [class.is-open]=\"advancedOpen\"\n [class.has-compact]=\"\n compactSelectedMetas.length || compactAlwaysVisibleMetas.length\n \"\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>\n @if (compactSelectedMetas.length || compactAlwaysVisibleMetas.length) {\n <div class=\"compact-fields\">\n @if (compactSelectedMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"compactSelectedMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"\n ></ng-container>\n }\n @if (compactAlwaysVisibleMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"compactAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onAlwaysComponents($event)\"\n ></ng-container>\n }\n <ng-container [ngTemplateOutlet]=\"filterTagsTemplate\"></ng-container>\n </div>\n }\n\n @if (gridSelectedMetas.length || gridAlwaysVisibleMetas.length) {\n <div class=\"fields-grid\">\n @if (gridSelectedMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"gridSelectedMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onSelectedComponents($event)\"\n ></ng-container>\n }\n @if (gridAlwaysVisibleMetas.length) {\n <ng-container\n dynamicFieldLoader\n [fields]=\"gridAlwaysVisibleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onAlwaysComponents($event)\"\n ></ng-container>\n }\n </div>\n }\n\n <div class=\"query-auxiliary\" data-filter-region=\"query-auxiliary\">\n <div\n class=\"inline-actions\"\n [class.actions-outlined]=\"actionsVariant === 'outlined'\"\n >\n <div\n class=\"actions-anchor\"\n #anchorRef=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n ></div>\n @if (toggleMetas.length) {\n <div class=\"inline-toggles\">\n <ng-container\n dynamicFieldLoader\n [fields]=\"toggleMetas\"\n [formGroup]=\"alwaysForm\"\n (componentsCreated)=\"onToggleComponents($event)\"\n ></ng-container>\n </div>\n }\n\n @if (\n (showAdvancedButton && hasAdvancedFields()) ||\n showAddButton ||\n showFilterSettings ||\n isFieldAuthoringEnabled()\n ) {\n <div class=\"action-cluster action-cluster--manage\">\n @if (showAdvancedButton && hasAdvancedFields()) {\n <button\n #advancedButton\n praxisIconButton=\"filter_list\"\n size=\"compact\"\n class=\"cluster-btn\"\n [busy]=\"advancedOpening\"\n [class.is-opening]=\"advancedOpening\"\n [class.is-disabled]=\"!hasAdvancedFields()\"\n type=\"button\"\n (click)=\"toggleAdvanced()\"\n [attr.aria-label]=\"getAdvancedAriaLabel()\"\n [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 ></button>\n }\n @if (showAddButton) {\n <button\n #addManagerOrigin=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n mat-button\n class=\"cluster-btn add-trigger\"\n type=\"button\"\n data-testid=\"filter-manage-fields-trigger\"\n [attr.aria-label]=\"getAddAriaLabel()\"\n [matTooltip]=\"getAddTooltip()\"\n matTooltipPosition=\"below\"\n [class.is-disabled]=\"!hasAddableFields()\"\n [attr.aria-disabled]=\"!hasAddableFields()\"\n [attr.aria-expanded]=\"addManagerOpen\"\n aria-haspopup=\"dialog\"\n [attr.aria-controls]=\"addManagerOpen ? addManagerTitleId : null\"\n (click)=\"toggleAddManager()\"\n >\n <mat-icon\n [praxisIcon]=\"'checklist'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span class=\"add-trigger-label\">{{ getAddTriggerLabel() }}</span>\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"addManagerOrigin\"\n [cdkConnectedOverlayOpen]=\"addManagerOpen\"\n [cdkConnectedOverlayPositions]=\"addOverlayPositions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayViewportMargin]=\"addManagerViewportMargin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAddManager()\"\n (detach)=\"closeAddManager()\"\n (attach)=\"focusAddManagerSearch()\"\n (overlayKeydown)=\"$event.key === 'Escape' && closeAddManager()\"\n >\n <section\n class=\"add-manager\"\n role=\"dialog\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"addManagerTitleId\"\n [attr.aria-describedby]=\"addManagerDescriptionId\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"false\"\n >\n <header class=\"add-manager__header\">\n <div>\n <h2 [id]=\"addManagerTitleId\">\n {{\n i18nLabels.manageFieldsTitle ||\n \"Gerenciar campos de filtro\"\n }}\n </h2>\n <p [id]=\"addManagerDescriptionId\">\n {{\n i18nLabels.manageFieldsDescription ||\n \"Escolha os campos exibidos na barra de filtros.\"\n }}\n </p>\n </div>\n <button\n praxisIconButton=\"close\"\n size=\"compact\"\n type=\"button\"\n (click)=\"closeAddManager()\"\n [attr.aria-label]=\"i18nLabels.close || 'Fechar'\"\n ></button>\n </header>\n <div class=\"add-manager__search\">\n <pdx-collection-search\n #addManagerSearch\n [value]=\"addQuery\"\n [placeholder]=\"\n i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\n \"\n [ariaLabel]=\"\n i18nLabels.filtersSearch || i18nLabels.searchPlaceholder\n \"\n [clearAriaLabel]=\"i18nLabels.clearSearch || 'Limpar busca'\"\n (valueChange)=\"onAddQuery($event)\"\n />\n </div>\n <div class=\"add-manager__bulk\">\n <mat-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected() && !isAllSelected()\"\n [disabled]=\"!addItems.length || addManagerConflict\"\n (change)=\"toggleSelectAll()\"\n >\n {{\n i18nLabels.selectAllResults ||\n i18nLabels.selectAll ||\n \"Selecionar todos os resultados\"\n }}\n </mat-checkbox>\n </div>\n <div\n class=\"add-manager__list\"\n role=\"group\"\n [attr.aria-label]=\"\n i18nLabels.manageFieldsTitle || 'Gerenciar campos de filtro'\n \"\n >\n @if (getAddManagerFixedItems().length) {\n <section\n class=\"add-manager__section add-manager__section--fixed\"\n [attr.aria-label]=\"\n i18nLabels.fixedFieldsSectionTitle || 'Campos fixos'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.fixedFieldsSectionTitle || \"Campos fixos\"\n }}\n </h3>\n <ul class=\"add-manager__fixed-list\">\n @for (\n it of getAddManagerFixedItems();\n track trackById($index, it)\n ) {\n <li\n class=\"add-manager__item add-manager__item--fixed\"\n [attr.data-field-id]=\"it.id\"\n [attr.aria-label]=\"\n getAddManagerFixedFieldAriaLabel(it)\n \"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n [praxisIcon]=\"'lock'\"\n aria-hidden=\"true\"\n />\n <span>{{ it.label }}</span>\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n </li>\n }\n </ul>\n </section>\n }\n @if (getAddManagerSelectedItems().length) {\n <section\n class=\"add-manager__section add-manager__section--selected\"\n [attr.aria-label]=\"\n i18nLabels.selectedFieldsSectionTitle ||\n 'Campos exibidos'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.selectedFieldsSectionTitle ||\n \"Campos exibidos\"\n }}\n <span>{{ getAddManagerSelectedFieldsSummary() }}</span>\n </h3>\n @for (\n it of getAddManagerSelectedItems();\n track trackById($index, it)\n ) {\n <mat-checkbox\n class=\"add-manager__item\"\n [attr.data-field-id]=\"it.id\"\n [checked]=\"isAddManagerFieldSelected(it.id)\"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n [attr.aria-description]=\"\n getAddManagerFieldAriaDescription(it)\n \"\n [class.add-manager__item--added]=\"\n isAddManagerItemInMotion(it.id, 'added')\n \"\n [class.add-manager__item--removed]=\"\n isAddManagerItemInMotion(it.id, 'removed')\n \"\n [class.add-manager__item--pending]=\"\n isAddManagerFieldPendingRemoval(it.id)\n \"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\"\n >\n {{ it.label }}\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n @if (\n getAddManagerFieldPendingLabel(it.id);\n as pendingLabel\n ) {\n <span class=\"add-manager__item-pending\">{{\n pendingLabel\n }}</span>\n }\n </mat-checkbox>\n }\n </section>\n }\n @if (getAddManagerAvailableItems().length) {\n <section\n class=\"add-manager__section\"\n [attr.aria-label]=\"\n i18nLabels.availableFieldsSectionTitle ||\n 'Campos dispon\u00EDveis'\n \"\n >\n <h3 class=\"add-manager__section-title\">\n {{\n i18nLabels.availableFieldsSectionTitle ||\n \"Campos dispon\u00EDveis\"\n }}\n </h3>\n @for (\n it of getAddManagerAvailableItems();\n track trackById($index, it)\n ) {\n <mat-checkbox\n class=\"add-manager__item\"\n [attr.data-field-id]=\"it.id\"\n [checked]=\"isAddManagerFieldSelected(it.id)\"\n [matTooltip]=\"it.description || ''\"\n [matTooltipDisabled]=\"!it.description\"\n matTooltipPosition=\"above\"\n [attr.aria-description]=\"\n getAddManagerFieldAriaDescription(it)\n \"\n [class.add-manager__item--added]=\"\n isAddManagerItemInMotion(it.id, 'added')\n \"\n [class.add-manager__item--removed]=\"\n isAddManagerItemInMotion(it.id, 'removed')\n \"\n [class.add-manager__item--pending]=\"\n isAddManagerFieldPendingAddition(it.id)\n \"\n [disabled]=\"addManagerConflict\"\n (change)=\"toggleManagedField(it.id, $event.checked)\"\n >\n {{ it.label }}\n @if (it.description) {\n <mat-icon\n class=\"add-manager__item-info\"\n [praxisIcon]=\"'info_outline'\"\n aria-hidden=\"true\"\n ></mat-icon>\n }\n @if (\n getAddManagerFieldPendingLabel(it.id);\n as pendingLabel\n ) {\n <span class=\"add-manager__item-pending\">{{\n pendingLabel\n }}</span>\n }\n </mat-checkbox>\n }\n </section>\n }\n @if (!addItems.length && !getAddManagerFixedItems().length) {\n <div class=\"add-manager__empty\" role=\"status\">\n <mat-icon\n [praxisIcon]=\"'search_off'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{\n addQuery\n ? i18nLabels.noFilterFieldsFound ||\n \"Nenhum campo encontrado.\"\n : i18nLabels.addUnavailable ||\n \"Todos os campos j\u00E1 est\u00E3o vis\u00EDveis\"\n }}</span>\n </div>\n }\n </div>\n <div class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {{ addManagerAnnouncement }}\n </div>\n @if (addManagerConflict) {\n <div\n class=\"add-manager__notice add-manager__notice--conflict\"\n role=\"alert\"\n >\n <mat-icon\n [praxisIcon]=\"'sync_problem'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{ i18nLabels.fieldSelectionConflict }}</span>\n </div>\n } @else if (getRemovedActiveFieldLabels().length) {\n <div\n class=\"add-manager__notice add-manager__notice--warning\"\n role=\"status\"\n >\n <mat-icon\n [praxisIcon]=\"'warning_amber'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span\n >{{ i18nLabels.removingActiveFields }}\n {{ getRemovedActiveFieldLabels().join(\", \") }}</span\n >\n </div>\n }\n <footer class=\"add-manager__footer\">\n <button mat-button type=\"button\" (click)=\"closeAddManager()\">\n {{ i18nLabels.cancel }}\n </button>\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!isAddManagerDirty() || addManagerConflict\"\n (click)=\"applyAddManager()\"\n >\n {{ i18nLabels.manageFieldsApply || \"Aplicar\" }}\n @if (isAddManagerDirty()) {\n ({{ getAddManagerChangeCount() }})\n }\n </button>\n </footer>\n </section>\n </ng-template>\n }\n @if (showFilterSettings) {\n <button\n praxisIconButton=\"settings\"\n size=\"compact\"\n class=\"cluster-btn separator-before\"\n type=\"button\"\n (click)=\"openSettings()\"\n [matBadge]=\"schemaOutdated ? '!' : ''\"\n [matBadgeHidden]=\"!schemaOutdated\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n [matTooltip]=\"getSettingsTooltip()\"\n matTooltipPosition=\"below\"\n [attr.aria-label]=\"getSettingsAriaLabel()\"\n ></button>\n }\n @if (isFieldAuthoringEnabled() && activeEditableFieldMeta) {\n <button\n praxisIconButton=\"tune\"\n size=\"compact\"\n class=\"cluster-btn\"\n type=\"button\"\n data-testid=\"filter-field-settings-trigger\"\n [attr.aria-label]=\"getFieldSettingsLabel()\"\n [matTooltip]=\"getFieldSettingsLabel()\"\n matTooltipPosition=\"below\"\n (click)=\"openSelectedFieldEditor()\"\n ></button>\n }\n </div>\n }\n\n @if (activeFiltersCount > 0 || showSearchButton) {\n <div class=\"action-cluster action-cluster--query\">\n @if (activeFiltersCount > 0) {\n <span\n class=\"active-filter-summary\"\n data-testid=\"active-filter-summary\"\n >\n <mat-icon\n [praxisIcon]=\"'filter_alt'\"\n aria-hidden=\"true\"\n ></mat-icon>\n <span>{{ getActiveFiltersLabel() }}</span>\n </span>\n }\n @if (showClearButton && activeFiltersCount > 0) {\n <button\n praxisIconButton=\"filter_alt_off\"\n size=\"compact\"\n class=\"cluster-btn\"\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 ></button>\n }\n @if (showSearchButton) {\n <button\n praxisIconButton=\"search\"\n size=\"compact\"\n class=\"cluster-btn\"\n type=\"submit\"\n [attr.aria-label]=\"i18nLabels.apply\"\n [matTooltip]=\"i18nLabels.apply\"\n matTooltipPosition=\"below\"\n ></button>\n }\n </div>\n }\n\n <span class=\"sr-only\" aria-live=\"polite\">{{\n advancedOpening\n ? i18nLabels.advancedOpening || \"Abrindo filtro avan\u00E7ado...\"\n : getAddAriaLabel()\n }}</span>\n </div>\n </div>\n\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n data-testid=\"active-filters-announcement\"\n >\n {{ getActiveFiltersLabel() }}\n </span>\n <button\n type=\"submit\"\n class=\"hidden-submit\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n ></button>\n</form>\n\n@if (!(compactSelectedMetas.length || compactAlwaysVisibleMetas.length)) {\n <ng-container [ngTemplateOutlet]=\"filterTagsTemplate\"></ng-container>\n}\n", styles: ["@charset \"UTF-8\";:host{--pfx-filter-h: 40px;--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( --praxis-theme-outline-strong, var(--md-sys-color-outline) )}:host{--border-color: var( --praxis-theme-outline, var(--md-sys-color-outline-variant) );--border-color-hover: var( --praxis-theme-outline-strong, var(--md-sys-color-outline) );--pfx-overlay-surface: var( --praxis-theme-surface-raised, var(--md-sys-color-surface-container) );--pfx-overlay-surface-elev: var( --praxis-theme-surface-overlay, var(--md-sys-color-surface-container-high) );--pfx-overlay-surface-variant: var( --praxis-theme-surface-raised, var(--md-sys-color-surface-variant) );--pfx-overlay-on-surface: var( --praxis-theme-on-surface, var(--md-sys-color-on-surface) );--pfx-overlay-on-surface-variant: var( --praxis-theme-on-surface-muted, var(--md-sys-color-on-surface-variant) );display:block;width:100%;min-width:0;flex:1 1 auto;container-name:praxis-filter;container-type:inline-size}.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}.query-auxiliary{grid-column:2;grid-row:1;display:flex;align-items:center;flex-wrap:nowrap;gap:6px;justify-self:end;align-self:center;width:fit-content;max-width:100%;min-width:0}.inline-actions{flex:0 0 auto;display:flex;gap:6px;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:var(--pfx-filter-h);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;gap:6px;padding:0;border:0;background:transparent}.action-cluster--query{gap:6px;padding:0;border:0;background:transparent}:host ::ng-deep :is(.action-cluster--manage,.action-cluster--query) button[praxisIconButton]{border:0;border-radius:999px;background:transparent}:host ::ng-deep :is(.action-cluster--manage,.action-cluster--query) button[praxisIconButton] .praxis-icon-button__surface{width:var(--pfx-filter-h);height:var(--pfx-filter-h);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 32%,var(--md-sys-color-outline-variant));border-radius:var(--praxis-action-control-radius, 8px);background:var(--md-sys-color-surface-container-high)}.active-filter-summary{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--pfx-filter-h);min-height:var(--pfx-filter-h);gap:6px;padding:0 4px;border:0;border-radius:0;background:transparent;color:var(--md-sys-color-on-surface-variant);font-family:var(--md-sys-typescale-label-large-font, inherit);font-size:var(--md-sys-typescale-label-large-size, .875rem);font-weight:var(--md-sys-typescale-label-large-weight, 500);line-height:1;letter-spacing:.01em;white-space:nowrap}.active-filter-summary mat-icon{width:16px;height:16px;font-size:16px}.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}.inline-actions.actions-outlined button[praxisIconButton]{border:1px solid var(--pfx-surface-border, var(--md-sys-color-outline-variant));border-radius:50%}.inline-actions.actions-outlined .action-cluster button[praxisIconButton]{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)}.compact-fields .praxis-filter-tags{flex:0 1 auto;min-width:0;min-height:var(--pfx-filter-h);display:inline-flex;align-items:center}.compact-fields .praxis-filter-tags mat-chip-set{min-width:0}.compact-fields .praxis-filter-tags mat-chip{margin-block:0}: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),100cqw - 24px)!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:auto}.praxis-filter-bar.has-compact{grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .fields-grid{grid-column:1;grid-row:auto}.praxis-filter-bar.has-compact .query-auxiliary{grid-column:1;grid-row:auto;justify-self:start;justify-content:flex-start;align-self:start;width:100%}@container praxis-filter (max-width: 1024px){.praxis-filter-bar.has-compact{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:auto;display:flex;flex-wrap:wrap;align-items:center;width:100%;overflow:visible;gap:8px;padding-block:4px}.praxis-filter-bar.has-compact .query-auxiliary{grid-column:1;grid-row:auto;justify-self:start;justify-content:flex-start;align-self:start;flex-wrap:wrap;width:100%;gap:8px}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell,praxis-field-shell),:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){flex:1 1 min(var(--pfx-compact-field-min, 148px),100%)!important;width:clamp(var(--pfx-compact-field-min, 148px),30cqw,var(--pfx-compact-field-max, 190px))!important;min-width:min(var(--pfx-compact-field-min, 148px),100cqw - 12px)!important;max-width:var(--pfx-compact-field-max, 190px)!important}}: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, 40px);--pdx-inline-control-height-mobile: var( --pfx-filter-inline-control-height-mobile, 44px );--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, 24px);--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, 24px)!important;height:var(--pdx-inline-clear-size, 24px)!important;min-width:var(--pdx-inline-clear-size, 24px)!important;place-items:center!important;width:var(--pdx-inline-clear-size, 24px)!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 .chip-content{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:20px;line-height:20px;font-family:var(--md-sys-typescale-body-large-font, inherit);font-size:var(--md-sys-typescale-body-large-size, 1rem);font-weight:500;vertical-align:middle}.praxis-filter-tags .chip-leading,.praxis-filter-tags .chip-trailing,.praxis-filter-tags .chip-readonly{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.praxis-filter-tags .chip-leading,.praxis-filter-tags .chip-readonly{width:20px;height:20px}.praxis-filter-tags .leading-check{width:18px;height:18px;font-size:18px;line-height:1}.praxis-filter-tags .leading-check--hidden{visibility:hidden}.praxis-filter-tags .chip-label{display:inline-flex;align-items:center;min-width:0;min-height:20px;line-height:20px}.praxis-filter-tags .chip-readonly{color:var(--mat-sys-on-surface-variant, var(--md-sys-color-on-surface-variant))}.praxis-filter-tags .chip-readonly .mat-icon{width:16px;height:16px;font-size:16px;line-height:16px}.a11y-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.praxis-filter-tags .mat-mdc-standard-chip{--mat-chip-container-height: var(--pfx-filter-h);--mdc-chip-container-height: var(--pfx-filter-h);min-height:var(--pfx-filter-h)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .praxis-filter-tags mat-chip:not(.active).mat-mdc-standard-chip{--mdc-chip-elevated-container-color: var( --md-sys-color-surface-container-high );--mdc-chip-label-text-color: var(--md-sys-color-on-surface);background:var(--md-sys-color-surface-container-high)!important;color:var(--md-sys-color-on-surface)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .praxis-filter-tags mat-chip:not(.active) :where(.chip-label,.chip-readonly,.mat-icon){color:var(--md-sys-color-on-surface)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .praxis-filter-tags mat-chip.active.mat-mdc-standard-chip{--mdc-chip-elevated-container-color: var(--pfx-filter-tag-color);--mdc-chip-label-text-color: var(--pfx-filter-tag-on-color);background:var(--pfx-filter-tag-color)!important;color:var(--pfx-filter-tag-on-color)!important}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-filled .praxis-filter-tags mat-chip.active :where(.chip-label,.leading-check,.chip-readonly,.mat-icon){color:var(--pfx-filter-tag-on-color)!important}.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)}@container praxis-filter (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))}}@container praxis-filter (max-width: 640px){.praxis-filter-bar.has-compact{--pdx-inline-control-height: var( --pfx-filter-inline-control-height-mobile, 44px );--pdx-inline-control-height-mobile: var( --pfx-filter-inline-control-height-mobile, 44px );display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.praxis-filter-bar.has-compact .compact-fields{grid-column:1;grid-row:auto;display:flex;flex-wrap:wrap;align-items:center;width:100%;overflow:visible;gap:8px}.praxis-filter-bar.has-compact .query-auxiliary{grid-column:1;grid-row:auto;justify-self:start;justify-content:flex-start;width:100%;height:auto;align-self:start;flex-wrap:wrap;gap:8px}.praxis-filter-bar.has-compact .compact-fields .praxis-filter-tags{flex:0 1 auto;min-width:0;min-height:40px}.praxis-filter-bar.has-compact .compact-fields .praxis-filter-tags mat-chip-set,.praxis-filter-bar.has-compact .compact-fields .praxis-filter-tags mat-chip{max-width:100%}.praxis-filter-bar.has-compact .compact-fields .praxis-filter-tags mat-chip{min-height:44px}.praxis-filter-bar.has-compact .active-filter-summary,.praxis-filter-bar.has-compact .inline-actions .add-trigger{min-height:44px;height:44px}:host ::ng-deep .praxis-filter-bar.has-compact :is(.action-cluster--manage,.action-cluster--query) button[praxisIconButton] .praxis-icon-button__surface{width:44px;height:44px}.praxis-filter-bar.has-compact .inline-actions .action-cluster{max-width:100%;min-height:44px;padding-block:0}.praxis-filter-bar.has-compact .inline-actions{width:100%;height:auto;min-height:44px;padding:0;flex-wrap:wrap}: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>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){--pfx-field-shell-width: auto;--pfx-field-shell-field-width: auto;flex:1 1 min(var(--pfx-compact-field-min, 148px),100%)!important;width:auto!important;min-width:min(var(--pfx-compact-field-min, 148px),100cqw - 12px)!important;max-width:min(360px,100%)!important}:host ::ng-deep .praxis-filter-bar.has-compact .action-cluster--manage>button{min-height:44px}: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;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range{width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range .pdx-inline-date-range-root,:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields pdx-inline-date-range .mat-mdc-form-field.pdx-inline-date-range{width:100%!important;max-width:100%!important;min-width:0!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),100cqw - 24px)!important}}@container praxis-filter (max-width: 1024px){:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell[data-control-type=inlineToggle],praxis-field-shell[data-control-type=inlineToggle]){flex:1 1 min(260px,100%)!important;width:clamp(260px,42cqw,360px)!important;min-width:min(260px,100cqw - 12px)!important;max-width:min(360px,100%)!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-host [data-field-type]:not([data-field-type=inlineTime]){width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell-host [data-field-type]:not([data-field-type=inlineTime])>:first-child{width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields [data-field-type=inlineCurrencyRange] .pdx-inline-currency-range-root{width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell[data-control-type=inlineDateRange],praxis-field-shell[data-control-type=inlineDateRange]){flex:1 1 min(220px,100%)!important;width:clamp(220px,36cqw,320px)!important;min-width:min(220px,100cqw - 12px)!important;max-width:min(320px,100%)!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell[data-control-type=inlineCurrencyRange],praxis-field-shell[data-control-type=inlineCurrencyRange]){flex:1 1 min(320px,100%)!important;width:clamp(280px,42cqw,360px)!important;min-width:min(280px,100cqw - 12px)!important;max-width:min(360px,100%)!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :is(.mat-mdc-form-field,.mat-mdc-text-field-wrapper,.pdx-chip-main,.pdx-chip-trigger,.pdx-inline-range-chip,.pdx-inline-currency-range-chip,.pdx-inline-distance-chip,.pdx-inline-score-chip,.pdx-inline-relative-chip,.pdx-inline-relative-period-chip,.pdx-inline-rating-chip,.pdx-inline-pipeline-chip,.pdx-inline-sentiment-chip,.pdx-inline-color-label-chip,.pdx-inline-time-range-chip,.pdx-inline-toggle-pill){width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :is(.mat-mdc-form-field-flex,.mat-mdc-form-field-infix,.pdx-chip-main .mdc-button__label,.pdx-chip-main .pdx-chip-label){width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pdx-chip-main .pdx-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :is(.mat-mdc-text-field-wrapper,.mat-mdc-form-field-flex,.mat-mdc-form-field-infix,.pdx-chip-main){overflow:hidden}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields :is(.pfx-field-shell-wrapper,.pfx-field-shell-host,pdx-inline-toggle,pdx-inline-date-range){width:100%!important;max-width:100%!important;min-width:0!important}:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineDateRange] :is(.pdx-inline-date-range-root,.mat-mdc-form-field.pdx-inline-date-range){width:100%!important;max-width:100%!important;min-width:0!important}}@container praxis-filter (max-width: 640px){:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell[data-control-type=inlineDateRange],praxis-field-shell[data-control-type=inlineDateRange],.pfx-field-shell[data-control-type=inlineCurrencyRange],praxis-field-shell[data-control-type=inlineCurrencyRange],.pfx-field-shell[data-control-type=inlineMultiSelect],praxis-field-shell[data-control-type=inlineMultiSelect]){flex:1 1 100%!important;width:100%!important;min-width:min(220px,100%)!important;max-width:100%!important}: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{flex:0 1 auto!important;width:fit-content!important;max-width:100%!important}}@container praxis-filter (max-width: 420px){:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>:is(.pfx-field-shell,praxis-field-shell),:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields>dynamic-field-loader>:is(.pfx-field-shell,praxis-field-shell){--pfx-field-shell-width: 100%;--pfx-field-shell-field-width: 100%;flex:1 1 100%!important;width:100%!important;min-width:0!important;max-width:100%!important}: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] :is(.pfx-field-shell-wrapper,.pfx-field-shell-host),:host ::ng-deep .praxis-filter-bar.has-compact .compact-fields .pfx-field-shell[data-control-type=inlineTime] .mat-mdc-form-field.pdx-inline-time{--pfx-field-shell-width: 100%;--pfx-field-shell-field-width: 100%;flex:1 1 100%!important;width:100%!important;inline-size:100%!important;min-width:0!important;max-width:100%!important}}@container praxis-filter (min-width: 960px){.fields-grid{gap:6px 10px}}@container praxis-filter (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(--praxis-theme-outline, var(--md-sys-color-outline-variant)));background:var(--praxis-theme-surface-raised, var(--md-sys-color-surface-container));color:var(--praxis-theme-on-surface, var(--md-sys-color-on-surface))}.add-manager{--_pfx-field-manager-surface: var( --pfx-field-manager-surface, var( --praxis-theme-surface-overlay, var(--md-sys-color-surface-container-highest) ) );--_pfx-field-manager-on-surface: var( --pfx-field-manager-on-surface, var(--praxis-theme-on-surface, var(--md-sys-color-on-surface)) );--_pfx-field-manager-on-surface-muted: var( --pfx-field-manager-on-surface-muted, var(--praxis-theme-on-surface-muted, var(--md-sys-color-on-surface-variant)) );--_pfx-field-manager-outline: var( --pfx-field-manager-outline, var( --pdx-inline-field-outline, var(--praxis-theme-outline, var(--md-sys-color-outline-variant)) ) );--_pfx-field-manager-focus-outline: var( --pfx-field-manager-focus-outline, var( --pdx-inline-field-focus-outline, var(--praxis-theme-focus-outline, var(--md-sys-color-primary)) ) );--_pfx-field-manager-scrollbar-thumb: var( --pfx-field-manager-scrollbar-thumb, color-mix( in srgb, var(--_pfx-field-manager-on-surface) 42%, var(--_pfx-field-manager-surface) ) );--_pfx-field-manager-scrollbar-thumb-hover: var( --pfx-field-manager-scrollbar-thumb-hover, color-mix( in srgb, var(--_pfx-field-manager-on-surface) 64%, var(--_pfx-field-manager-surface) ) );--_pfx-field-manager-scrollbar-track: var( --pfx-field-manager-scrollbar-track, transparent );--_pfx-field-manager-scrollbar-size: var( --pfx-field-manager-scrollbar-size, 10px );display:flex;flex-direction:column;width:min(400px,100vw - 24px);max-height:min(70vh,560px);overflow:hidden;border:1px solid var(--_pfx-field-manager-outline);border-radius:var(--pfx-overlay-radius, 16px);background:var(--_pfx-field-manager-surface);color:var(--_pfx-field-manager-on-surface);box-shadow:var(--praxis-theme-elevation, 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(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-body-small)}.add-manager__search{padding:8px 20px}.add-manager__bulk{padding:8px 20px;border-block:1px solid var(--_pfx-field-manager-outline)}.add-manager__list{display:flex;flex-direction:column;min-height:80px;overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--_pfx-field-manager-scrollbar-thumb) var(--_pfx-field-manager-scrollbar-track);scrollbar-gutter:stable;scrollbar-width:auto;padding:4px 12px 12px}.add-manager__list::-webkit-scrollbar{width:var(--_pfx-field-manager-scrollbar-size);height:var(--_pfx-field-manager-scrollbar-size)}.add-manager__list::-webkit-scrollbar-track{background:var(--_pfx-field-manager-scrollbar-track)}.add-manager__list::-webkit-scrollbar-thumb{min-height:32px;border:2px solid transparent;border-radius:999px;background:var(--_pfx-field-manager-scrollbar-thumb);background-clip:padding-box}.add-manager__list::-webkit-scrollbar-thumb:hover{background:var(--_pfx-field-manager-scrollbar-thumb-hover);background-clip:padding-box}.add-manager__section+.add-manager__section{margin-top:8px;padding-top:8px;border-top:1px solid var(--_pfx-field-manager-outline)}.add-manager__section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0;padding:8px 8px 4px;color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-medium)}.add-manager__section-title span{color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-small);white-space:nowrap}.add-manager__item{display:flex;align-items:center;min-height:48px;padding-inline:8px;border-radius:var(--pfx-control-radius, 8px)}::ng-deep .add-manager__item .mdc-form-field{align-items:center}::ng-deep .add-manager__item .mdc-label{display:inline-flex;align-items:center;min-height:20px}.add-manager__item:hover{background:color-mix(in srgb,var(--_pfx-field-manager-on-surface) 6%,var(--_pfx-field-manager-surface))}.add-manager__item--fixed{gap:10px;color:var(--_pfx-field-manager-on-surface)}.add-manager__fixed-list{margin:0;padding:0;list-style:none}.add-manager__item--fixed>.mat-icon:first-child{width:18px;height:18px;flex:0 0 18px;color:var(--_pfx-field-manager-on-surface-muted);font-size:18px}.add-manager__section--fixed .add-manager__item{box-shadow:inset 2px 0 color-mix(in srgb,var(--_pfx-field-manager-on-surface-muted) 44%,transparent)}.add-manager__item-info{width:16px;height:16px;margin-left:4px;vertical-align:text-bottom;color:var(--_pfx-field-manager-on-surface-muted);font-size:16px}.add-manager__item-pending{display:inline-flex;align-items:center;margin-left:8px;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 14%,transparent);color:var(--_pfx-field-manager-on-surface-muted);font:var(--md-sys-typescale-label-small);white-space:nowrap}.add-manager__item--pending{background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}.add-manager__section--selected .add-manager__item{box-shadow:inset 2px 0 color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 56%,transparent)}.add-manager__item--added{animation:add-manager-item-added var(--md-sys-motion-duration-short4, .2s) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(.05, .7, .1, 1)) both}.add-manager__item--removed{animation:add-manager-item-removed var(--md-sys-motion-duration-short4, .2s) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(.05, .7, .1, 1)) both}@keyframes add-manager-item-added{0%{opacity:.72;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 24%,var(--_pfx-field-manager-surface))}to{opacity:1;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}}@keyframes add-manager-item-removed{0%{opacity:.72;background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 72%,transparent)}to{opacity:1;background:color-mix(in srgb,var(--_pfx-field-manager-focus-outline) 8%,var(--_pfx-field-manager-surface))}}@media(prefers-reduced-motion:reduce){.add-manager__item--added,.add-manager__item--removed{animation:none}}.add-manager__empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:96px;padding:16px;color:var(--_pfx-field-manager-on-surface-muted);text-align:center}.add-manager__footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--_pfx-field-manager-outline);background:var(--_pfx-field-manager-surface)}.add-manager__footer .mat-mdc-unelevated-button.mat-primary:is(:disabled,.mat-mdc-button-disabled){--mdc-filled-button-container-color: color-mix( in srgb, var(--md-sys-color-on-surface) 12%, transparent );--mdc-filled-button-label-text-color: color-mix( in srgb, var(--md-sys-color-on-surface) 38%, transparent );background:color-mix(in srgb,var(--md-sys-color-on-surface) 12%,transparent)!important;background-image:none!important;color:color-mix(in srgb,var(--md-sys-color-on-surface) 38%,transparent)!important;box-shadow:none!important;filter:none!important;opacity:1!important}.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:var(--pfx-filter-h);min-height:var(--pfx-filter-h);width:auto;max-width:min(100%,220px);min-width:0;padding:0 10px;border-radius:var(--praxis-action-control-radius, 8px);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 32%,var(--md-sys-color-outline-variant));background:var(--md-sys-color-surface-container-high);overflow:visible}.inline-actions .add-trigger--icon{justify-content:center;width:var(--pfx-filter-h);min-width:var(--pfx-filter-h);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 .praxis-filter-bar.has-compact.tag-variant-filled pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected{background:var(--pfx-filter-tag-color);color:var(--pfx-filter-tag-on-color);box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-color)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected{background:transparent;color:var(--pfx-filter-tag-outline-color);box-shadow:inset 0 0 0 1px var(--pfx-filter-tag-outline-color)}:host ::ng-deep .praxis-filter-bar.has-compact.tag-variant-outlined pdx-inline-entity-lookup.pdx-entity-lookup-host-inline.pdx-entity-lookup-host-selected .pdx-chip-trigger.is-active{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:inherit!important}: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"] }]
|
|
41391
42069
|
}], ctorParameters: () => [{ type: i1.GenericCrudService }, { type: undefined, decorators: [{
|
|
41392
42070
|
type: Inject,
|
|
41393
42071
|
args: [ASYNC_CONFIG_STORAGE]
|
|
@@ -41403,7 +42081,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41403
42081
|
args: ['addManagerOrigin', { read: ElementRef }]
|
|
41404
42082
|
}], addManagerSearch: [{
|
|
41405
42083
|
type: ViewChild,
|
|
41406
|
-
args: [
|
|
42084
|
+
args: ['addManagerSearch']
|
|
41407
42085
|
}], resourcePath: [{
|
|
41408
42086
|
type: Input,
|
|
41409
42087
|
args: [{ required: true }]
|
|
@@ -45386,7 +46064,7 @@ class PraxisTable {
|
|
|
45386
46064
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
45387
46065
|
return;
|
|
45388
46066
|
this.aiAdapterLoadStarted = true;
|
|
45389
|
-
import('./praxisui-table-table-ai.adapter-
|
|
46067
|
+
import('./praxisui-table-table-ai.adapter-6-ZGVEFf.mjs')
|
|
45390
46068
|
.then(({ TableAiAdapter }) => {
|
|
45391
46069
|
if (!this.isAiAssistantEnabled()) {
|
|
45392
46070
|
this.aiAssistantOpenAfterAdapterLoad = false;
|
|
@@ -46132,7 +46810,7 @@ class PraxisTable {
|
|
|
46132
46810
|
initializeAiAssistantController() {
|
|
46133
46811
|
if (!this.aiAdapter || this.aiAssistantController)
|
|
46134
46812
|
return;
|
|
46135
|
-
import('./praxisui-table-table-agentic-authoring-turn-flow-
|
|
46813
|
+
import('./praxisui-table-table-agentic-authoring-turn-flow-DlPu7OOk.mjs')
|
|
46136
46814
|
.then(({ TableAgenticAuthoringTurnFlow }) => {
|
|
46137
46815
|
if (this.aiAssistantController || !this.aiAdapter)
|
|
46138
46816
|
return;
|
|
@@ -52858,8 +53536,10 @@ class PraxisTable {
|
|
|
52858
53536
|
trigger: inputsTrigger,
|
|
52859
53537
|
});
|
|
52860
53538
|
}
|
|
52861
|
-
|
|
52862
|
-
|
|
53539
|
+
const filterKey = this.filterConfigKey();
|
|
53540
|
+
const operationCount = persistenceOps.length + (filterKey ? 1 : 0);
|
|
53541
|
+
resetPersistenceState.attempted = operationCount;
|
|
53542
|
+
resetPersistenceState.pending = operationCount;
|
|
52863
53543
|
persistenceOps.forEach((op) => {
|
|
52864
53544
|
this.clearConfigWithAck(op.key, op.trigger, {
|
|
52865
53545
|
onSettled: (persisted) => {
|
|
@@ -52872,15 +53552,23 @@ class PraxisTable {
|
|
|
52872
53552
|
},
|
|
52873
53553
|
});
|
|
52874
53554
|
});
|
|
52875
|
-
|
|
52876
|
-
|
|
52877
|
-
|
|
52878
|
-
|
|
53555
|
+
if (filterKey) {
|
|
53556
|
+
void Promise.resolve(this.filterConfig.save(filterKey, {}))
|
|
53557
|
+
.then(() => {
|
|
53558
|
+
resetPersistenceState.pending = Math.max(0, resetPersistenceState.pending - 1);
|
|
53559
|
+
if (resetPersistenceState.pending === 0 &&
|
|
53560
|
+
!resetPersistenceState.failed) {
|
|
53561
|
+
this.showResetSuccessFeedback(successTrigger);
|
|
53562
|
+
}
|
|
53563
|
+
})
|
|
53564
|
+
.catch(() => {
|
|
53565
|
+
resetPersistenceState.pending = Math.max(0, resetPersistenceState.pending - 1);
|
|
53566
|
+
onResetPersistenceSettled(false, 'reset-filter-config');
|
|
53567
|
+
});
|
|
52879
53568
|
}
|
|
52880
|
-
catch { }
|
|
52881
53569
|
const defaults = this.tableDefaultsProvider.getDefaults(this.tableId);
|
|
52882
53570
|
this.applyTableConfig(defaults);
|
|
52883
|
-
if (
|
|
53571
|
+
if (operationCount === 0) {
|
|
52884
53572
|
this.showResetSuccessFeedback(successTrigger);
|
|
52885
53573
|
}
|
|
52886
53574
|
}
|