@praxisui/crud 10.0.0-rc.31 → 10.0.0-rc.32
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-crud.mjs +85 -33
- package/package.json +7 -7
- package/types/praxisui-crud.d.ts +19 -7
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"generatedAt": "2026-10-17T14:44:09.509Z",
|
|
4
4
|
"packageName": "@praxisui/crud",
|
|
5
|
-
"packageVersion": "10.0.0-rc.
|
|
5
|
+
"packageVersion": "10.0.0-rc.32",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 2,
|
|
@@ -10,7 +10,7 @@ import { MatSnackBar } from '@angular/material/snack-bar';
|
|
|
10
10
|
import { Subscription, firstValueFrom, BehaviorSubject } from 'rxjs';
|
|
11
11
|
import { take, filter } from 'rxjs/operators';
|
|
12
12
|
import * as i2$1 from '@praxisui/core';
|
|
13
|
-
import { PraxisBulkClientService, PraxisI18nService, generateBulkIdempotencyKey, isBulkExecutionTerminal, API_URL, SafeExpressionEvaluator, buildApiUrl, ASYNC_CONFIG_STORAGE, GlobalConfigService, CrudOperationResolutionService, LoggerService, SurfaceNavigationError, fillUndefined, GenericCrudService, SETTINGS_PANEL_DATA, buildBaseColumnFromDef, PraxisIconDirective, providePraxisI18nConfig, SchemaNormalizerService,
|
|
13
|
+
import { PraxisBulkClientService, PraxisI18nService, generateBulkIdempotencyKey, isBulkExecutionTerminal, API_URL, SafeExpressionEvaluator, buildApiUrl, ASYNC_CONFIG_STORAGE, GlobalConfigService, CrudOperationResolutionService, LoggerService, SurfaceNavigationError, fillUndefined, GenericCrudService, SETTINGS_PANEL_DATA, buildBaseColumnFromDef, PraxisIconDirective, providePraxisI18nConfig, SchemaNormalizerService, PraxisWidgetEventBus, EnterpriseRuntimeContextService, GLOBAL_SURFACE_SERVICE, SurfaceOutletRegistryService, ComponentKeyService, ResourceDiscoveryService, ResourceActionOpenAdapterService, ResourceSurfaceOpenAdapterService, composeHeadersWithVersion, normalizeSurfaceOperationContext, createDefaultTableConfig, SURFACE_DRAWER_REF, translateUnavailableWorkflowMessage, isSurfaceNavigationError, translateSurfaceNavigationRejected, normalizeUnknownError, EmptyStateCardComponent, RESOURCE_DISCOVERY_I18N_CONFIG, SURFACE_DRAWER_CONTENT_DATA, PraxisIconButtonComponent, PraxisResourceIdentityComponent, ComponentMetadataRegistry, PraxisCustomizationModeService } from '@praxisui/core';
|
|
14
14
|
export { createDynamicRecord, extractRecordId, isDynamicDataRecord, resolveDataField } from '@praxisui/core';
|
|
15
15
|
import * as i1 from '@angular/common';
|
|
16
16
|
import { CommonModule } from '@angular/common';
|
|
@@ -9631,6 +9631,12 @@ class PraxisCrudComponent {
|
|
|
9631
9631
|
filterTeleport = false;
|
|
9632
9632
|
/** Desabilita auto-abertura da gaveta analítica no clique de linha (Issue #39) */
|
|
9633
9633
|
disableAutoDrawer = false;
|
|
9634
|
+
tableSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "tableSignal" }] : /* istanbul ignore next */ []));
|
|
9635
|
+
/** Signal reativo do TemplateRef de filtro da tabela interna (usado por PraxisFilterOutlet) */
|
|
9636
|
+
filterTemplateSignal = computed(() => {
|
|
9637
|
+
const tbl = this.tableSignal();
|
|
9638
|
+
return tbl ? tbl.filterTemplateSignal() : undefined;
|
|
9639
|
+
}, ...(ngDevMode ? [{ debugName: "filterTemplateSignal" }] : /* istanbul ignore next */ []));
|
|
9634
9640
|
get filterTemplate() {
|
|
9635
9641
|
return this.table?.filterTemplate;
|
|
9636
9642
|
}
|
|
@@ -9664,6 +9670,8 @@ class PraxisCrudComponent {
|
|
|
9664
9670
|
drawerClose = new EventEmitter();
|
|
9665
9671
|
crudAuthoringDocumentApplied = new EventEmitter();
|
|
9666
9672
|
crudAuthoringDocumentSaved = new EventEmitter();
|
|
9673
|
+
/** Emite sempre que os critérios de filtro ativos na tabela interna são alterados pelo usuário */
|
|
9674
|
+
filterCriteriaChange = new EventEmitter();
|
|
9667
9675
|
/** Evento emitido ao clicar em um card da faixa declarativa de KPIs (Issue #33) */
|
|
9668
9676
|
kpiCardClick = new EventEmitter();
|
|
9669
9677
|
get resolvedKpiBandConfig() {
|
|
@@ -9698,12 +9706,13 @@ class PraxisCrudComponent {
|
|
|
9698
9706
|
if (this.table) {
|
|
9699
9707
|
this.table.applyAdvancedFilterCriteria(this.tableFilterCriteria);
|
|
9700
9708
|
}
|
|
9709
|
+
this.filterCriteriaChange.emit({ ...this.tableFilterCriteria });
|
|
9701
9710
|
this.cdr.markForCheck();
|
|
9702
9711
|
}
|
|
9703
9712
|
}
|
|
9704
9713
|
resolvedMetadata;
|
|
9705
9714
|
effectiveTableConfig;
|
|
9706
|
-
tableConfigForBinding =
|
|
9715
|
+
tableConfigForBinding = { columns: [] };
|
|
9707
9716
|
tableQueryContext = null;
|
|
9708
9717
|
tableFilterCriteria = {};
|
|
9709
9718
|
tableCrudContext;
|
|
@@ -9713,7 +9722,14 @@ class PraxisCrudComponent {
|
|
|
9713
9722
|
destroyRef = inject(DestroyRef);
|
|
9714
9723
|
cdr = inject(ChangeDetectorRef);
|
|
9715
9724
|
widgetEventBus = inject(PraxisWidgetEventBus, { optional: true });
|
|
9716
|
-
|
|
9725
|
+
_table;
|
|
9726
|
+
set table(value) {
|
|
9727
|
+
this._table = value;
|
|
9728
|
+
this.tableSignal.set(value);
|
|
9729
|
+
}
|
|
9730
|
+
get table() {
|
|
9731
|
+
return this._table;
|
|
9732
|
+
}
|
|
9717
9733
|
storage = inject(ASYNC_CONFIG_STORAGE);
|
|
9718
9734
|
settingsPanel = inject(SettingsPanelService);
|
|
9719
9735
|
enterpriseRuntimeContext = inject(EnterpriseRuntimeContextService, { optional: true });
|
|
@@ -10911,7 +10927,7 @@ class PraxisCrudComponent {
|
|
|
10911
10927
|
applyResolvedCrudState(meta) {
|
|
10912
10928
|
this.effectiveTableConfig = this.buildEffectiveTableConfig(meta, this.collectionCapabilities);
|
|
10913
10929
|
const nextTableConfig = this.effectiveTableConfig ||
|
|
10914
|
-
(meta.table ??
|
|
10930
|
+
(meta.table ?? { columns: [] });
|
|
10915
10931
|
this.assignTableConfigForBinding(nextTableConfig);
|
|
10916
10932
|
this.assignTableCrudContext(this.buildTableCrudContext(meta, this.collectionCapabilities));
|
|
10917
10933
|
this.lastAppliedResourceIdentity = this.resolveCrudResourceIdentity(meta);
|
|
@@ -10958,18 +10974,40 @@ class PraxisCrudComponent {
|
|
|
10958
10974
|
return this.isRecord(meta?.queryContext) ? meta.queryContext : null;
|
|
10959
10975
|
}
|
|
10960
10976
|
resolveFilterCriteria(meta) {
|
|
10961
|
-
|
|
10962
|
-
|
|
10963
|
-
|
|
10977
|
+
if (this.isRecord(this.filterCriteria)) {
|
|
10978
|
+
return { ...this.filterCriteria };
|
|
10979
|
+
}
|
|
10980
|
+
return this.isRecord(meta?.filterCriteria) ? { ...meta.filterCriteria } : {};
|
|
10981
|
+
}
|
|
10982
|
+
areFilterCriteriaEquivalent(a, b) {
|
|
10983
|
+
const normA = a || {};
|
|
10984
|
+
const normB = b || {};
|
|
10985
|
+
const keysA = Object.keys(normA).sort();
|
|
10986
|
+
const keysB = Object.keys(normB).sort();
|
|
10987
|
+
if (keysA.length !== keysB.length)
|
|
10988
|
+
return false;
|
|
10989
|
+
return keysA.every((k, idx) => k === keysB[idx] && JSON.stringify(normA[k]) === JSON.stringify(normB[k]));
|
|
10990
|
+
}
|
|
10991
|
+
onTableFilterCriteriaChange(criteria) {
|
|
10992
|
+
const next = this.isRecord(criteria) ? { ...criteria } : {};
|
|
10993
|
+
if (this.areFilterCriteriaEquivalent(this.tableFilterCriteria, next)) {
|
|
10994
|
+
return;
|
|
10995
|
+
}
|
|
10996
|
+
this.tableFilterCriteria = next;
|
|
10997
|
+
this.filterCriteriaChange.emit({ ...next });
|
|
10998
|
+
this.cdr.markForCheck();
|
|
10964
10999
|
}
|
|
10965
11000
|
/**
|
|
10966
11001
|
* Aplica critérios de busca avançada na tabela interna do CRUD (Issue #11).
|
|
10967
11002
|
*/
|
|
10968
11003
|
applyFilterCriteria(criteria) {
|
|
10969
|
-
|
|
10970
|
-
...
|
|
10971
|
-
|
|
10972
|
-
|
|
11004
|
+
const nextCriteria = this.isRecord(criteria)
|
|
11005
|
+
? { ...criteria }
|
|
11006
|
+
: this.resolveFilterCriteria(this.resolvedMetadata);
|
|
11007
|
+
if (this.areFilterCriteriaEquivalent(this.tableFilterCriteria, nextCriteria)) {
|
|
11008
|
+
return;
|
|
11009
|
+
}
|
|
11010
|
+
this.tableFilterCriteria = nextCriteria;
|
|
10973
11011
|
if (this.table) {
|
|
10974
11012
|
this.table.applyAdvancedFilterCriteria(this.tableFilterCriteria);
|
|
10975
11013
|
}
|
|
@@ -10983,6 +11021,7 @@ class PraxisCrudComponent {
|
|
|
10983
11021
|
if (this.table) {
|
|
10984
11022
|
this.table.clearAdvancedFilter();
|
|
10985
11023
|
}
|
|
11024
|
+
this.filterCriteriaChange.emit({});
|
|
10986
11025
|
this.cdr.markForCheck();
|
|
10987
11026
|
}
|
|
10988
11027
|
extractRowFromEvent(event) {
|
|
@@ -11545,7 +11584,7 @@ class PraxisCrudComponent {
|
|
|
11545
11584
|
const nextResourceIdentity = this.resolveCrudResourceIdentity(meta);
|
|
11546
11585
|
const cfg = base
|
|
11547
11586
|
? JSON.parse(JSON.stringify(base))
|
|
11548
|
-
:
|
|
11587
|
+
: { columns: [] };
|
|
11549
11588
|
let changed = false;
|
|
11550
11589
|
if (this.isInspectOnly(meta)) {
|
|
11551
11590
|
return this.buildInspectOnlyTableConfig(cfg);
|
|
@@ -11573,7 +11612,7 @@ class PraxisCrudComponent {
|
|
|
11573
11612
|
}
|
|
11574
11613
|
const ensureToolbar = () => {
|
|
11575
11614
|
if (!cfg.toolbar) {
|
|
11576
|
-
cfg.toolbar = { visible: true
|
|
11615
|
+
cfg.toolbar = { visible: true };
|
|
11577
11616
|
}
|
|
11578
11617
|
return cfg.toolbar;
|
|
11579
11618
|
};
|
|
@@ -11581,7 +11620,7 @@ class PraxisCrudComponent {
|
|
|
11581
11620
|
const fb = meta.filterBar;
|
|
11582
11621
|
const toolbar = ensureToolbar();
|
|
11583
11622
|
toolbar.visible = true;
|
|
11584
|
-
toolbar.filters = toolbar.filters || { enabled: true
|
|
11623
|
+
toolbar.filters = toolbar.filters || { enabled: true };
|
|
11585
11624
|
toolbar.filters.enabled = true;
|
|
11586
11625
|
if (fb.showAdvanced !== undefined) {
|
|
11587
11626
|
toolbar.filters.showAdvancedButton = fb.showAdvanced;
|
|
@@ -11597,11 +11636,12 @@ class PraxisCrudComponent {
|
|
|
11597
11636
|
}
|
|
11598
11637
|
if (Array.isArray(fb.inlineFields) && fb.inlineFields.length > 0) {
|
|
11599
11638
|
const behavior = (cfg.behavior = cfg.behavior || {});
|
|
11600
|
-
const filtering = (behavior.filtering =
|
|
11601
|
-
|
|
11602
|
-
|
|
11603
|
-
|
|
11604
|
-
|
|
11639
|
+
const filtering = (behavior.filtering =
|
|
11640
|
+
behavior.filtering ||
|
|
11641
|
+
{
|
|
11642
|
+
enabled: true,
|
|
11643
|
+
strategy: 'server',
|
|
11644
|
+
});
|
|
11605
11645
|
filtering.enabled = true;
|
|
11606
11646
|
const advancedFilters = (filtering.advancedFilters = filtering.advancedFilters || { enabled: true });
|
|
11607
11647
|
advancedFilters.enabled = true;
|
|
@@ -11626,7 +11666,7 @@ class PraxisCrudComponent {
|
|
|
11626
11666
|
else if (this.supportsFilterCapability(capabilities) && !cfg.toolbar?.filters && !cfg.behavior?.filtering?.advancedFilters) {
|
|
11627
11667
|
const toolbar = ensureToolbar();
|
|
11628
11668
|
toolbar.visible = true;
|
|
11629
|
-
toolbar.filters = toolbar.filters || { enabled: true
|
|
11669
|
+
toolbar.filters = toolbar.filters || { enabled: true };
|
|
11630
11670
|
toolbar.filters.enabled = true;
|
|
11631
11671
|
changed = true;
|
|
11632
11672
|
}
|
|
@@ -11651,7 +11691,7 @@ class PraxisCrudComponent {
|
|
|
11651
11691
|
changed = true;
|
|
11652
11692
|
}
|
|
11653
11693
|
if (!toolbar.filters) {
|
|
11654
|
-
toolbar.filters = { enabled: true
|
|
11694
|
+
toolbar.filters = { enabled: true };
|
|
11655
11695
|
changed = true;
|
|
11656
11696
|
}
|
|
11657
11697
|
else if (toolbar.filters.enabled === undefined) {
|
|
@@ -11803,11 +11843,10 @@ class PraxisCrudComponent {
|
|
|
11803
11843
|
const discoveredBulkActions = this.resolveDiscoveredBulkTableActions(capabilities);
|
|
11804
11844
|
if (discoveredBulkActions.length > 0) {
|
|
11805
11845
|
cfg.actions = cfg.actions || {};
|
|
11806
|
-
const existingBulk = cfg.actions.bulk || {
|
|
11846
|
+
const existingBulk = (cfg.actions.bulk || {
|
|
11807
11847
|
enabled: true,
|
|
11808
|
-
position: 'both',
|
|
11809
11848
|
actions: [],
|
|
11810
|
-
};
|
|
11849
|
+
});
|
|
11811
11850
|
const mergedActions = Array.isArray(existingBulk.actions) ? [...existingBulk.actions] : [];
|
|
11812
11851
|
for (const discovered of discoveredBulkActions) {
|
|
11813
11852
|
const idx = mergedActions.findIndex((candidate) => String(candidate?.action || candidate?.id || '').trim().toLowerCase() ===
|
|
@@ -11823,9 +11862,10 @@ class PraxisCrudComponent {
|
|
|
11823
11862
|
mergedActions.push(discovered);
|
|
11824
11863
|
}
|
|
11825
11864
|
}
|
|
11865
|
+
const globalBulkPosition = this.global?.get('table.actions.bulk.position');
|
|
11826
11866
|
cfg.actions.bulk = {
|
|
11827
11867
|
...existingBulk,
|
|
11828
|
-
position: existingBulk.position || 'both',
|
|
11868
|
+
position: existingBulk.position || globalBulkPosition || 'both',
|
|
11829
11869
|
enabled: existingBulk.enabled !== false,
|
|
11830
11870
|
actions: mergedActions,
|
|
11831
11871
|
};
|
|
@@ -11836,11 +11876,19 @@ class PraxisCrudComponent {
|
|
|
11836
11876
|
...prevSelection,
|
|
11837
11877
|
enabled: true,
|
|
11838
11878
|
type: prevSelection?.type || 'multiple',
|
|
11839
|
-
mode: prevSelection
|
|
11840
|
-
|
|
11841
|
-
|
|
11842
|
-
|
|
11843
|
-
|
|
11879
|
+
...(prevSelection?.mode ? { mode: prevSelection.mode } : {}),
|
|
11880
|
+
...(prevSelection?.allowSelectAll !== undefined
|
|
11881
|
+
? { allowSelectAll: prevSelection.allowSelectAll }
|
|
11882
|
+
: {}),
|
|
11883
|
+
...(prevSelection?.checkboxPosition
|
|
11884
|
+
? { checkboxPosition: prevSelection.checkboxPosition }
|
|
11885
|
+
: {}),
|
|
11886
|
+
...(prevSelection?.persistSelection !== undefined
|
|
11887
|
+
? { persistSelection: prevSelection.persistSelection }
|
|
11888
|
+
: {}),
|
|
11889
|
+
...(prevSelection?.persistOnDataUpdate !== undefined
|
|
11890
|
+
? { persistOnDataUpdate: prevSelection.persistOnDataUpdate }
|
|
11891
|
+
: {}),
|
|
11844
11892
|
};
|
|
11845
11893
|
}
|
|
11846
11894
|
changed = true;
|
|
@@ -12391,7 +12439,7 @@ class PraxisCrudComponent {
|
|
|
12391
12439
|
return Object.entries(params).reduce((current, [name, value]) => current.split(`{${name}}`).join(value), text);
|
|
12392
12440
|
}
|
|
12393
12441
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisCrudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12394
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisCrudComponent, isStandalone: true, selector: "praxis-crud", inputs: { metadata: "metadata", crudId: "crudId", resource: "resource", componentInstanceId: "componentInstanceId", tableConfigPersistenceStrategy: "tableConfigPersistenceStrategy", context: "context", enableCustomization: "enableCustomization", showResourceIdentityKey: "showResourceIdentityKey", authoringCapability: "authoringCapability", filterCriteria: "filterCriteria", filterTeleport: ["filterTeleport", "filterTeleport", booleanAttribute], disableAutoDrawer: ["disableAutoDrawer", "disableAutoDrawer", booleanAttribute] }, outputs: { configureRequested: "configureRequested", afterOpen: "afterOpen", afterClose: "afterClose", afterSave: "afterSave", afterDelete: "afterDelete", reactiveDeterminationExecuted: "reactiveDeterminationExecuted", reactiveDeterminationPendingChange: "reactiveDeterminationPendingChange", reactiveDeterminationStabilityChange: "reactiveDeterminationStabilityChange", error: "error", rowClick: "rowClick", rowAction: "rowAction", selectionChange: "selectionChange", resourceEvent: "resourceEvent", tableRuntimeConfigChange: "tableRuntimeConfigChange", drawerOpen: "drawerOpen", drawerClose: "drawerClose", crudAuthoringDocumentApplied: "crudAuthoringDocumentApplied", crudAuthoringDocumentSaved: "crudAuthoringDocumentSaved", kpiCardClick: "kpiCardClick" }, providers: [
|
|
12442
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisCrudComponent, isStandalone: true, selector: "praxis-crud", inputs: { metadata: "metadata", crudId: "crudId", resource: "resource", componentInstanceId: "componentInstanceId", tableConfigPersistenceStrategy: "tableConfigPersistenceStrategy", context: "context", enableCustomization: "enableCustomization", showResourceIdentityKey: "showResourceIdentityKey", authoringCapability: "authoringCapability", filterCriteria: "filterCriteria", filterTeleport: ["filterTeleport", "filterTeleport", booleanAttribute], disableAutoDrawer: ["disableAutoDrawer", "disableAutoDrawer", booleanAttribute] }, outputs: { configureRequested: "configureRequested", afterOpen: "afterOpen", afterClose: "afterClose", afterSave: "afterSave", afterDelete: "afterDelete", reactiveDeterminationExecuted: "reactiveDeterminationExecuted", reactiveDeterminationPendingChange: "reactiveDeterminationPendingChange", reactiveDeterminationStabilityChange: "reactiveDeterminationStabilityChange", error: "error", rowClick: "rowClick", rowAction: "rowAction", selectionChange: "selectionChange", resourceEvent: "resourceEvent", tableRuntimeConfigChange: "tableRuntimeConfigChange", drawerOpen: "drawerOpen", drawerClose: "drawerClose", crudAuthoringDocumentApplied: "crudAuthoringDocumentApplied", crudAuthoringDocumentSaved: "crudAuthoringDocumentSaved", filterCriteriaChange: "filterCriteriaChange", kpiCardClick: "kpiCardClick" }, providers: [
|
|
12395
12443
|
providePraxisI18nConfig(RESOURCE_DISCOVERY_I18N_CONFIG),
|
|
12396
12444
|
providePraxisI18nConfig(PRAXIS_CRUD_RUNTIME_I18N_CONFIG),
|
|
12397
12445
|
], viewQueries: [{ propertyName: "table", first: true, predicate: PraxisTable, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
@@ -12437,6 +12485,7 @@ class PraxisCrudComponent {
|
|
|
12437
12485
|
(loadingStateChange)="onTableLoadingStateChange($event)"
|
|
12438
12486
|
(drawerOpen)="onTableDrawerOpen($event)"
|
|
12439
12487
|
(drawerClose)="onTableDrawerClose()"
|
|
12488
|
+
(filterCriteriaChange)="onTableFilterCriteriaChange($event)"
|
|
12440
12489
|
></praxis-table>
|
|
12441
12490
|
} @else {
|
|
12442
12491
|
@if (isCustomizationAvailable()) {
|
|
@@ -12449,7 +12498,7 @@ class PraxisCrudComponent {
|
|
|
12449
12498
|
}
|
|
12450
12499
|
}
|
|
12451
12500
|
</div>
|
|
12452
|
-
`, isInline: true, styles: [":host{display:block;width:100%;min-width:0;max-width:100%}.praxis-crud-runtime{position:relative;min-width:0}.praxis-crud-opening-status{position:absolute;z-index:6;top:.7rem;right:.7rem;display:inline-flex;align-items:center;gap:.55rem;min-height:2.25rem;max-width:min(24rem,calc(100% - 1.4rem));padding:.48rem .72rem;border:1px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 32%,transparent);border-radius:999px;color:var(--md-sys-color-on-surface, currentColor);background:color-mix(in srgb,var(--md-sys-color-surface-container-high, #fff) 94%,transparent);box-shadow:0 10px 28px #0f172a29;font-size:.82rem;font-weight:650;line-height:1.25;pointer-events:none}.praxis-crud-opening-status__spinner{width:.95rem;height:.95rem;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 26%,transparent);border-top-color:var(--md-sys-color-primary, #3f51b5);border-radius:50%;animation:praxis-crud-opening-spin .72s linear infinite}@keyframes praxis-crud-opening-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-crud-opening-status__spinner{animation:none;border-top-color:currentColor}}\n"], dependencies: [{ kind: "component", type: PraxisTable, selector: "praxis-table", inputs: ["config", "resourcePath", "data", "tableId", "componentInstanceId", "configPersistenceStrategy", "title", "subtitle", "icon", "autoDelete", "notifyIfOutdated", "snoozeMs", "autoOpenSettingsOnOutdated", "crudContext", "filterCriteria", "filterTeleport", "widgetId", "queryContext", "aiContext", "aiAssistantVoiceInputMode", "aiAssistantVoiceLanguage", "horizontalScroll", "enableCustomization", "authoringCapability", "dense"], outputs: ["queryContextClear", "queryContextChange", "rowClick", "widgetEvent", "resourceEvent", "rowDoubleClick", "rowExpansionChange", "rowAction", "toolbarAction", "bulkAction", "exportAction", "columnReorder", "columnReorderAttempt", "columnResize", "beforeDelete", "afterDelete", "deleteError", "beforeBulkDelete", "afterBulkDelete", "bulkDeleteError", "schemaStatusChange", "configChange", "metadataChange", "loadingStateChange", "collectionLinksChange", "selectionChange", "drawerOpen", "drawerClose", "drawerTabChange"] }, { kind: "component", type: EmptyStateCardComponent, selector: "praxis-empty-state-card", inputs: ["icon", "title", "description", "primaryAction", "secondaryActions", "inline", "tone", "variant", "alignment", "density", "iconContainer"] }, { kind: "component", type: PraxisKpiBandComponent, selector: "praxis-kpi-band", inputs: ["config", "dataContext", "isInteractiveHost", "activeFilter"], outputs: ["cardClick", "statsLoaded", "statsError", "refreshClick"] }] });
|
|
12501
|
+
`, isInline: true, styles: [":host{display:block;width:100%;min-width:0;max-width:100%}.praxis-crud-runtime{position:relative;min-width:0}.praxis-crud-opening-status{position:absolute;z-index:6;top:.7rem;right:.7rem;display:inline-flex;align-items:center;gap:.55rem;min-height:2.25rem;max-width:min(24rem,calc(100% - 1.4rem));padding:.48rem .72rem;border:1px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 32%,transparent);border-radius:999px;color:var(--md-sys-color-on-surface, currentColor);background:color-mix(in srgb,var(--md-sys-color-surface-container-high, #fff) 94%,transparent);box-shadow:0 10px 28px #0f172a29;font-size:.82rem;font-weight:650;line-height:1.25;pointer-events:none}.praxis-crud-opening-status__spinner{width:.95rem;height:.95rem;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 26%,transparent);border-top-color:var(--md-sys-color-primary, #3f51b5);border-radius:50%;animation:praxis-crud-opening-spin .72s linear infinite}@keyframes praxis-crud-opening-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-crud-opening-status__spinner{animation:none;border-top-color:currentColor}}\n"], dependencies: [{ kind: "component", type: PraxisTable, selector: "praxis-table", inputs: ["config", "resourcePath", "data", "tableId", "componentInstanceId", "configPersistenceStrategy", "title", "subtitle", "icon", "autoDelete", "notifyIfOutdated", "snoozeMs", "autoOpenSettingsOnOutdated", "crudContext", "filterCriteria", "filterTeleport", "widgetId", "queryContext", "aiContext", "aiAssistantVoiceInputMode", "aiAssistantVoiceLanguage", "horizontalScroll", "enableCustomization", "authoringCapability", "dense"], outputs: ["filterCriteriaChange", "queryContextClear", "queryContextChange", "rowClick", "widgetEvent", "resourceEvent", "rowDoubleClick", "rowExpansionChange", "rowAction", "toolbarAction", "bulkAction", "exportAction", "columnReorder", "columnReorderAttempt", "columnResize", "beforeDelete", "afterDelete", "deleteError", "beforeBulkDelete", "afterBulkDelete", "bulkDeleteError", "schemaStatusChange", "configChange", "metadataChange", "loadingStateChange", "collectionLinksChange", "selectionChange", "drawerOpen", "drawerClose", "drawerTabChange"] }, { kind: "component", type: EmptyStateCardComponent, selector: "praxis-empty-state-card", inputs: ["icon", "title", "description", "primaryAction", "secondaryActions", "inline", "tone", "variant", "alignment", "density", "iconContainer"] }, { kind: "component", type: PraxisKpiBandComponent, selector: "praxis-kpi-band", inputs: ["config", "dataContext", "isInteractiveHost", "activeFilter"], outputs: ["cardClick", "statsLoaded", "statsError", "refreshClick"] }] });
|
|
12453
12502
|
}
|
|
12454
12503
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisCrudComponent, decorators: [{
|
|
12455
12504
|
type: Component,
|
|
@@ -12499,6 +12548,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
12499
12548
|
(loadingStateChange)="onTableLoadingStateChange($event)"
|
|
12500
12549
|
(drawerOpen)="onTableDrawerOpen($event)"
|
|
12501
12550
|
(drawerClose)="onTableDrawerClose()"
|
|
12551
|
+
(filterCriteriaChange)="onTableFilterCriteriaChange($event)"
|
|
12502
12552
|
></praxis-table>
|
|
12503
12553
|
} @else {
|
|
12504
12554
|
@if (isCustomizationAvailable()) {
|
|
@@ -12572,6 +12622,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
12572
12622
|
type: Output
|
|
12573
12623
|
}], crudAuthoringDocumentSaved: [{
|
|
12574
12624
|
type: Output
|
|
12625
|
+
}], filterCriteriaChange: [{
|
|
12626
|
+
type: Output
|
|
12575
12627
|
}], kpiCardClick: [{
|
|
12576
12628
|
type: Output
|
|
12577
12629
|
}], table: [{
|
|
@@ -15580,7 +15632,7 @@ class PraxisResourcePage {
|
|
|
15580
15632
|
}
|
|
15581
15633
|
}
|
|
15582
15634
|
</div>
|
|
15583
|
-
`, isInline: true, styles: [":host{display:block;width:100%;min-height:100%;box-sizing:border-box}.praxis-resource-page{width:100%;display:flex;flex-direction:column;gap:20px;padding:var(--praxis-page-padding, 24px);box-sizing:border-box;max-width:1540px;margin:0 auto}.praxis-resource-page__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.praxis-resource-page__header-main{min-width:0;display:flex;flex-direction:column}.praxis-resource-page__domain-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;align-self:flex-start;background:var(--praxis-domain-badge-bg, rgba(255, 255, 255, .08));color:var(--praxis-domain-badge-color, inherit);border:1px solid var(--praxis-domain-badge-border, rgba(255, 255, 255, .1))}.praxis-resource-page__domain-badge.tone-primary,.praxis-resource-page__domain-badge.tone-info{background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,transparent);color:var(--praxis-info, #38bdf8);border-color:color-mix(in srgb,var(--praxis-info, #0284c7) 30%,transparent)}.praxis-resource-page__domain-badge.tone-success{background:color-mix(in srgb,var(--praxis-success, #059669) 14%,transparent);color:var(--praxis-success, #34d399);border-color:color-mix(in srgb,var(--praxis-success, #059669) 30%,transparent)}.praxis-resource-page__domain-badge.tone-warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 14%,transparent);color:var(--praxis-warning, #fbbf24);border-color:color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent)}.praxis-resource-page__domain-badge.tone-danger,.praxis-resource-page__domain-badge.tone-error{background:color-mix(in srgb,var(--praxis-error, #dc2626) 14%,transparent);color:var(--praxis-error, #f87171);border-color:color-mix(in srgb,var(--praxis-error, #dc2626) 30%,transparent)}.praxis-resource-page__domain-badge span.material-symbols-outlined{font-size:14px}.praxis-resource-page__title{margin:0 0 6px;font-size:var(--praxis-page-title-size, 2rem);font-weight:800;letter-spacing:-.02em;color:var(--praxis-page-title-color, var(--foreground, inherit));line-height:1.2}.praxis-resource-page__subtitle{margin:0;font-size:var(--praxis-page-subtitle-size, .9rem);color:var(--muted-foreground, #94a3b8);max-width:800px;line-height:1.5}.praxis-resource-page__header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.praxis-resource-page__configure-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--praxis-primary, #6366f1) 35%,transparent);background:color-mix(in srgb,var(--praxis-primary, #6366f1) 14%,transparent);color:var(--praxis-primary, #818cf8);font-size:13px;font-weight:600;cursor:pointer;transition:all .16s ease}.praxis-resource-page__configure-btn:hover{background:color-mix(in srgb,var(--praxis-primary, #6366f1) 22%,transparent)}.praxis-resource-page__configure-btn .material-symbols-outlined{font-size:18px}.praxis-resource-page__crud-surface{width:100%;border-radius:var(--praxis-surface-radius, 16px);overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PraxisCrudComponent, selector: "praxis-crud", inputs: ["metadata", "crudId", "resource", "componentInstanceId", "tableConfigPersistenceStrategy", "context", "enableCustomization", "showResourceIdentityKey", "authoringCapability", "filterCriteria", "filterTeleport", "disableAutoDrawer"], outputs: ["configureRequested", "afterOpen", "afterClose", "afterSave", "afterDelete", "reactiveDeterminationExecuted", "reactiveDeterminationPendingChange", "reactiveDeterminationStabilityChange", "error", "rowClick", "rowAction", "selectionChange", "resourceEvent", "tableRuntimeConfigChange", "drawerOpen", "drawerClose", "crudAuthoringDocumentApplied", "crudAuthoringDocumentSaved", "kpiCardClick"] }, { kind: "component", type: PraxisScopeBarComponent, selector: "praxis-scope-bar", inputs: ["items", "activeId", "showOmnibox", "omniboxPlaceholder", "omniboxValue", "omniboxDebounceMs", "leadIcon", "leadLabel", "showClearButton", "clearLabel", "target", "targetWidgetId", "scopeBarId", "searchField"], outputs: ["activeIdChange", "omniboxValueChange", "scopeChange", "searchChange", "filterCriteriaChange", "clear"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15635
|
+
`, isInline: true, styles: [":host{display:block;width:100%;min-height:100%;box-sizing:border-box}.praxis-resource-page{width:100%;display:flex;flex-direction:column;gap:20px;padding:var(--praxis-page-padding, 24px);box-sizing:border-box;max-width:1540px;margin:0 auto}.praxis-resource-page__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.praxis-resource-page__header-main{min-width:0;display:flex;flex-direction:column}.praxis-resource-page__domain-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;align-self:flex-start;background:var(--praxis-domain-badge-bg, rgba(255, 255, 255, .08));color:var(--praxis-domain-badge-color, inherit);border:1px solid var(--praxis-domain-badge-border, rgba(255, 255, 255, .1))}.praxis-resource-page__domain-badge.tone-primary,.praxis-resource-page__domain-badge.tone-info{background:color-mix(in srgb,var(--praxis-info, #0284c7) 14%,transparent);color:var(--praxis-info, #38bdf8);border-color:color-mix(in srgb,var(--praxis-info, #0284c7) 30%,transparent)}.praxis-resource-page__domain-badge.tone-success{background:color-mix(in srgb,var(--praxis-success, #059669) 14%,transparent);color:var(--praxis-success, #34d399);border-color:color-mix(in srgb,var(--praxis-success, #059669) 30%,transparent)}.praxis-resource-page__domain-badge.tone-warning{background:color-mix(in srgb,var(--praxis-warning, #d97706) 14%,transparent);color:var(--praxis-warning, #fbbf24);border-color:color-mix(in srgb,var(--praxis-warning, #d97706) 30%,transparent)}.praxis-resource-page__domain-badge.tone-danger,.praxis-resource-page__domain-badge.tone-error{background:color-mix(in srgb,var(--praxis-error, #dc2626) 14%,transparent);color:var(--praxis-error, #f87171);border-color:color-mix(in srgb,var(--praxis-error, #dc2626) 30%,transparent)}.praxis-resource-page__domain-badge span.material-symbols-outlined{font-size:14px}.praxis-resource-page__title{margin:0 0 6px;font-size:var(--praxis-page-title-size, 2rem);font-weight:800;letter-spacing:-.02em;color:var(--praxis-page-title-color, var(--foreground, inherit));line-height:1.2}.praxis-resource-page__subtitle{margin:0;font-size:var(--praxis-page-subtitle-size, .9rem);color:var(--muted-foreground, #94a3b8);max-width:800px;line-height:1.5}.praxis-resource-page__header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.praxis-resource-page__configure-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--praxis-primary, #6366f1) 35%,transparent);background:color-mix(in srgb,var(--praxis-primary, #6366f1) 14%,transparent);color:var(--praxis-primary, #818cf8);font-size:13px;font-weight:600;cursor:pointer;transition:all .16s ease}.praxis-resource-page__configure-btn:hover{background:color-mix(in srgb,var(--praxis-primary, #6366f1) 22%,transparent)}.praxis-resource-page__configure-btn .material-symbols-outlined{font-size:18px}.praxis-resource-page__crud-surface{width:100%;border-radius:var(--praxis-surface-radius, 16px);overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PraxisCrudComponent, selector: "praxis-crud", inputs: ["metadata", "crudId", "resource", "componentInstanceId", "tableConfigPersistenceStrategy", "context", "enableCustomization", "showResourceIdentityKey", "authoringCapability", "filterCriteria", "filterTeleport", "disableAutoDrawer"], outputs: ["configureRequested", "afterOpen", "afterClose", "afterSave", "afterDelete", "reactiveDeterminationExecuted", "reactiveDeterminationPendingChange", "reactiveDeterminationStabilityChange", "error", "rowClick", "rowAction", "selectionChange", "resourceEvent", "tableRuntimeConfigChange", "drawerOpen", "drawerClose", "crudAuthoringDocumentApplied", "crudAuthoringDocumentSaved", "filterCriteriaChange", "kpiCardClick"] }, { kind: "component", type: PraxisScopeBarComponent, selector: "praxis-scope-bar", inputs: ["items", "activeId", "showOmnibox", "omniboxPlaceholder", "omniboxValue", "omniboxDebounceMs", "leadIcon", "leadLabel", "showClearButton", "clearLabel", "target", "targetWidgetId", "scopeBarId", "searchField"], outputs: ["activeIdChange", "omniboxValueChange", "scopeChange", "searchChange", "filterCriteriaChange", "clear"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15584
15636
|
}
|
|
15585
15637
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisResourcePage, decorators: [{
|
|
15586
15638
|
type: Component,
|
package/package.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/crud",
|
|
3
|
-
"version": "10.0.0-rc.
|
|
3
|
+
"version": "10.0.0-rc.32",
|
|
4
4
|
"description": "CRUD building blocks for Praxis UI: integrates dynamic forms and tables with unified configuration and services.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
7
7
|
"@angular/core": "^21.0.0",
|
|
8
|
-
"@praxisui/dynamic-form": "^10.0.0-rc.
|
|
9
|
-
"@praxisui/table": "^10.0.0-rc.
|
|
10
|
-
"@praxisui/core": "^10.0.0-rc.
|
|
11
|
-
"@praxisui/dynamic-fields": "^10.0.0-rc.
|
|
12
|
-
"@praxisui/settings-panel": "^10.0.0-rc.
|
|
8
|
+
"@praxisui/dynamic-form": "^10.0.0-rc.32",
|
|
9
|
+
"@praxisui/table": "^10.0.0-rc.32",
|
|
10
|
+
"@praxisui/core": "^10.0.0-rc.32",
|
|
11
|
+
"@praxisui/dynamic-fields": "^10.0.0-rc.32",
|
|
12
|
+
"@praxisui/settings-panel": "^10.0.0-rc.32",
|
|
13
13
|
"@angular/cdk": "^21.0.0",
|
|
14
14
|
"@angular/forms": "^21.0.0",
|
|
15
15
|
"@angular/material": "^21.0.0",
|
|
16
16
|
"@angular/router": "^21.0.0",
|
|
17
|
-
"@praxisui/ai": "^10.0.0-rc.
|
|
17
|
+
"@praxisui/ai": "^10.0.0-rc.32",
|
|
18
18
|
"rxjs": "~7.8.0"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
package/types/praxisui-crud.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _praxisui_core from '@praxisui/core';
|
|
2
|
-
import { RowAction, ToolbarAction, ApiEndpoint, ApiUrlEntry, DynamicFormLayoutPolicy, BackConfig, ResourceBulkExecutionContract, ResourceSurfaceCatalogItem, MaterializedResourceIdentity,
|
|
2
|
+
import { RowAction, ToolbarAction, ApiEndpoint, ApiUrlEntry, DynamicFormLayoutPolicy, BackConfig, ResourceBulkExecutionContract, ResourceSurfaceCatalogItem, MaterializedResourceIdentity, TableConfigInput, PraxisKpiBandConfig, PraxisKpiBandCard, PraxisDataQueryContext, FormConfig, ReactiveDeterminationExecutionEvent, DynamicDataRecord, PraxisResourceEvent, TableConfig, LoadingState, RestApiLinks, ResourceCapabilitySnapshot, SurfaceDrawerRef, GenericCrudService, AsyncConfigStorage, ComponentDocMeta, AiCapabilityCatalog, AiCapability, AiCapabilityCategory, AiValueKind, ComponentAuthoringManifest, SettingsValueProvider, ColumnDefinition, ResourceActionCatalogItem, ResourceBulkTarget, BulkProposalItemResult, BulkItemResult, ResourceBulkProposalDiagnostic } from '@praxisui/core';
|
|
3
3
|
export { BackConfig, DynamicDataCollection, DynamicDataRecord, createDynamicRecord, extractRecordId, isDynamicDataRecord, resolveDataField } from '@praxisui/core';
|
|
4
4
|
import * as _angular_core from '@angular/core';
|
|
5
5
|
import { NgZone, OnChanges, TemplateRef, EventEmitter, SimpleChanges, Injector, OnInit, AfterViewInit, Provider, OnDestroy } from '@angular/core';
|
|
@@ -149,11 +149,14 @@ interface CrudFilterBarConfig {
|
|
|
149
149
|
quickFilters?: boolean | CrudFilterBarQuickFilter[];
|
|
150
150
|
/** Exibir botão para abrir o construtor de filtros avançados (padrão: true) */
|
|
151
151
|
showAdvanced?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Define onde a barra de filtros inline e avançados (`<praxis-filter>`) deve ser exibida:
|
|
154
|
+
* - `'table-toolbar'` (padrão): na barra de ferramentas da tabela dinâmica.
|
|
155
|
+
* - `'scope-bar'`: teleportada para dentro do card `<praxis-scope-bar>` superior.
|
|
156
|
+
*/
|
|
157
|
+
placement?: 'table-toolbar' | 'scope-bar';
|
|
152
158
|
}
|
|
153
|
-
type CrudTableConfig =
|
|
154
|
-
/** Definições de colunas (opcional no CrudMetadata quando columnProjection estiver presente ou colunas forem providas via schema) */
|
|
155
|
-
columns?: TableConfig['columns'];
|
|
156
|
-
};
|
|
159
|
+
type CrudTableConfig = TableConfigInput;
|
|
157
160
|
interface CrudMetadata {
|
|
158
161
|
component: 'praxis-crud';
|
|
159
162
|
/**
|
|
@@ -251,6 +254,9 @@ declare class PraxisCrudComponent implements OnChanges {
|
|
|
251
254
|
filterTeleport: boolean;
|
|
252
255
|
/** Desabilita auto-abertura da gaveta analítica no clique de linha (Issue #39) */
|
|
253
256
|
disableAutoDrawer: boolean;
|
|
257
|
+
private readonly tableSignal;
|
|
258
|
+
/** Signal reativo do TemplateRef de filtro da tabela interna (usado por PraxisFilterOutlet) */
|
|
259
|
+
readonly filterTemplateSignal: _angular_core.Signal<TemplateRef<unknown> | undefined>;
|
|
254
260
|
get filterTemplate(): TemplateRef<unknown> | undefined;
|
|
255
261
|
get internalTable(): PraxisTable | undefined;
|
|
256
262
|
openAnalyticalDrawer(row: any, tabId?: string): void;
|
|
@@ -290,6 +296,8 @@ declare class PraxisCrudComponent implements OnChanges {
|
|
|
290
296
|
drawerClose: EventEmitter<void>;
|
|
291
297
|
crudAuthoringDocumentApplied: EventEmitter<CrudAuthoringWidgetPersistenceEvent>;
|
|
292
298
|
crudAuthoringDocumentSaved: EventEmitter<CrudAuthoringWidgetPersistenceEvent>;
|
|
299
|
+
/** Emite sempre que os critérios de filtro ativos na tabela interna são alterados pelo usuário */
|
|
300
|
+
filterCriteriaChange: EventEmitter<Record<string, unknown>>;
|
|
293
301
|
/** Evento emitido ao clicar em um card da faixa declarativa de KPIs (Issue #33) */
|
|
294
302
|
kpiCardClick: EventEmitter<{
|
|
295
303
|
card: PraxisKpiBandCard;
|
|
@@ -316,7 +324,9 @@ declare class PraxisCrudComponent implements OnChanges {
|
|
|
316
324
|
private readonly destroyRef;
|
|
317
325
|
private readonly cdr;
|
|
318
326
|
private readonly widgetEventBus;
|
|
319
|
-
private
|
|
327
|
+
private _table?;
|
|
328
|
+
private set table(value);
|
|
329
|
+
private get table();
|
|
320
330
|
private readonly storage;
|
|
321
331
|
private readonly settingsPanel;
|
|
322
332
|
private readonly enterpriseRuntimeContext;
|
|
@@ -408,6 +418,8 @@ declare class PraxisCrudComponent implements OnChanges {
|
|
|
408
418
|
private syncRuntimeBindings;
|
|
409
419
|
private resolveQueryContext;
|
|
410
420
|
private resolveFilterCriteria;
|
|
421
|
+
private areFilterCriteriaEquivalent;
|
|
422
|
+
onTableFilterCriteriaChange(criteria: Record<string, unknown>): void;
|
|
411
423
|
/**
|
|
412
424
|
* Aplica critérios de busca avançada na tabela interna do CRUD (Issue #11).
|
|
413
425
|
*/
|
|
@@ -492,7 +504,7 @@ declare class PraxisCrudComponent implements OnChanges {
|
|
|
492
504
|
private txWithParams;
|
|
493
505
|
private interpolateTranslationParams;
|
|
494
506
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisCrudComponent, never>;
|
|
495
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisCrudComponent, "praxis-crud", never, { "metadata": { "alias": "metadata"; "required": false; }; "crudId": { "alias": "crudId"; "required": false; }; "resource": { "alias": "resource"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "tableConfigPersistenceStrategy": { "alias": "tableConfigPersistenceStrategy"; "required": false; }; "context": { "alias": "context"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showResourceIdentityKey": { "alias": "showResourceIdentityKey"; "required": false; }; "authoringCapability": { "alias": "authoringCapability"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "filterTeleport": { "alias": "filterTeleport"; "required": false; }; "disableAutoDrawer": { "alias": "disableAutoDrawer"; "required": false; }; }, { "configureRequested": "configureRequested"; "afterOpen": "afterOpen"; "afterClose": "afterClose"; "afterSave": "afterSave"; "afterDelete": "afterDelete"; "reactiveDeterminationExecuted": "reactiveDeterminationExecuted"; "reactiveDeterminationPendingChange": "reactiveDeterminationPendingChange"; "reactiveDeterminationStabilityChange": "reactiveDeterminationStabilityChange"; "error": "error"; "rowClick": "rowClick"; "rowAction": "rowAction"; "selectionChange": "selectionChange"; "resourceEvent": "resourceEvent"; "tableRuntimeConfigChange": "tableRuntimeConfigChange"; "drawerOpen": "drawerOpen"; "drawerClose": "drawerClose"; "crudAuthoringDocumentApplied": "crudAuthoringDocumentApplied"; "crudAuthoringDocumentSaved": "crudAuthoringDocumentSaved"; "kpiCardClick": "kpiCardClick"; }, never, never, true, never>;
|
|
507
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisCrudComponent, "praxis-crud", never, { "metadata": { "alias": "metadata"; "required": false; }; "crudId": { "alias": "crudId"; "required": false; }; "resource": { "alias": "resource"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "tableConfigPersistenceStrategy": { "alias": "tableConfigPersistenceStrategy"; "required": false; }; "context": { "alias": "context"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showResourceIdentityKey": { "alias": "showResourceIdentityKey"; "required": false; }; "authoringCapability": { "alias": "authoringCapability"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "filterTeleport": { "alias": "filterTeleport"; "required": false; }; "disableAutoDrawer": { "alias": "disableAutoDrawer"; "required": false; }; }, { "configureRequested": "configureRequested"; "afterOpen": "afterOpen"; "afterClose": "afterClose"; "afterSave": "afterSave"; "afterDelete": "afterDelete"; "reactiveDeterminationExecuted": "reactiveDeterminationExecuted"; "reactiveDeterminationPendingChange": "reactiveDeterminationPendingChange"; "reactiveDeterminationStabilityChange": "reactiveDeterminationStabilityChange"; "error": "error"; "rowClick": "rowClick"; "rowAction": "rowAction"; "selectionChange": "selectionChange"; "resourceEvent": "resourceEvent"; "tableRuntimeConfigChange": "tableRuntimeConfigChange"; "drawerOpen": "drawerOpen"; "drawerClose": "drawerClose"; "crudAuthoringDocumentApplied": "crudAuthoringDocumentApplied"; "crudAuthoringDocumentSaved": "crudAuthoringDocumentSaved"; "filterCriteriaChange": "filterCriteriaChange"; "kpiCardClick": "kpiCardClick"; }, never, never, true, never>;
|
|
496
508
|
static ngAcceptInputType_filterTeleport: unknown;
|
|
497
509
|
static ngAcceptInputType_disableAutoDrawer: unknown;
|
|
498
510
|
}
|