@praxisui/table 1.0.0-beta.67 → 1.0.0-beta.68
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/README.md +14 -2
- package/fesm2022/praxisui-table.mjs +6 -5
- package/fesm2022/praxisui-table.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -64,6 +64,18 @@ last_updated: "2026-03-07"
|
|
|
64
64
|
|
|
65
65
|
> Componente de tabela empresarial avançado com arquitetura unificada
|
|
66
66
|
|
|
67
|
+
## Customization Mode Contract
|
|
68
|
+
|
|
69
|
+
- `editModeEnabled` is the canonical public input for runtime customization mode.
|
|
70
|
+
- The default is `false`; hosts opt in when they want settings, authoring affordances and schema-drift UX.
|
|
71
|
+
- Customization mode does not change the table data mode. It only gates configuration/editorial surfaces.
|
|
72
|
+
|
|
73
|
+
## Migration Note
|
|
74
|
+
|
|
75
|
+
- This release treats `editModeEnabled=false` as the canonical default.
|
|
76
|
+
- Hosts that relied on the previous implicit authoring behavior must now declare `[editModeEnabled]="true"` explicitly.
|
|
77
|
+
- This is an intentional breaking change for enterprise governance: authoring is opt-in, not ambient.
|
|
78
|
+
|
|
67
79
|
## 🌟 Visão Geral
|
|
68
80
|
|
|
69
81
|
A biblioteca `@praxisui/table` fornece um componente de tabela robusto e altamente configurável para aplicações Angular empresariais. Com a nova arquitetura unificada, oferece uma experiência de desenvolvimento simplificada mantendo todos os recursos avançados.
|
|
@@ -368,7 +380,7 @@ Neste exemplo:
|
|
|
368
380
|
|
|
369
381
|
- `resourcePath="human-resources/departamentos"` instrui a tabela a se comunicar com o endpoint `/api/human-resources/departamentos`.
|
|
370
382
|
- A tabela fará requisições como `POST /api/human-resources/departamentos/filter` para obter os dados e `GET /api/human-resources/departamentos/schemas` para obter a configuração das colunas.
|
|
371
|
-
- `editModeEnabled` controla explicitamente o gate de edição visual.
|
|
383
|
+
- `editModeEnabled` controla explicitamente o gate de edição visual. O default canônico agora é `false`; declare `[editModeEnabled]="true"` quando o host quiser expor customização e surfaces editoriais.
|
|
372
384
|
|
|
373
385
|
### Empty State + Quick Connect (sem `resourcePath`)
|
|
374
386
|
|
|
@@ -945,7 +957,7 @@ sequenceDiagram
|
|
|
945
957
|
|
|
946
958
|
## 🎨 Edição Visual da Tabela: O Poder do Low-Code
|
|
947
959
|
|
|
948
|
-
A `<praxis-table>` vem com um poderoso editor de configuração visual que permite personalizar quase todos os aspectos da sua tabela em tempo real, sem escrever uma única linha de código.
|
|
960
|
+
A `<praxis-table>` vem com um poderoso editor de configuração visual que permite personalizar quase todos os aspectos da sua tabela em tempo real, sem escrever uma única linha de código. O runtime expõe esse editor somente quando o host ativa `[editModeEnabled]="true"`.
|
|
949
961
|
|
|
950
962
|
A seguir, veja os principais recursos que você pode configurar visualmente:
|
|
951
963
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Output, Input, Optional, Component, ChangeDetectionStrategy, Injectable, LOCALE_ID, Inject, inject, DestroyRef, Directive, ElementRef, ChangeDetectorRef, ViewChild, InjectionToken, HostListener, HostBinding, ContentChild, ENVIRONMENT_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Output, Input, Optional, Component, ChangeDetectionStrategy, Injectable, LOCALE_ID, Inject, inject, DestroyRef, Directive, ElementRef, ChangeDetectorRef, ViewChild, InjectionToken, HostListener, booleanAttribute, HostBinding, ContentChild, ENVIRONMENT_INITIALIZER } from '@angular/core';
|
|
3
3
|
import * as i1$2 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i8$1 from '@angular/material/table';
|
|
@@ -34421,7 +34421,7 @@ class PraxisTable {
|
|
|
34421
34421
|
meta: null
|
|
34422
34422
|
};
|
|
34423
34423
|
schemaOutdated = false;
|
|
34424
|
-
editModeEnabled =
|
|
34424
|
+
editModeEnabled = false;
|
|
34425
34425
|
_resolvedPrefs = {};
|
|
34426
34426
|
set resolvedPrefs(val) { this._resolvedPrefs = val; }
|
|
34427
34427
|
get resolvedPrefs() { return this._resolvedPrefs; }
|
|
@@ -41970,7 +41970,7 @@ class PraxisTable {
|
|
|
41970
41970
|
disposePraxisTableDslRuntimeRegistry(this.dslRuntimeContextKey);
|
|
41971
41971
|
}
|
|
41972
41972
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PraxisTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i3$1.SettingsPanelService }, { token: i1.GenericCrudService }, { token: TableDefaultsProvider }, { token: FilterConfigService }, { token: DataFormattingService }, { token: i6$3.PraxisDialog }, { token: i2$1.MatSnackBar }, { token: ASYNC_CONFIG_STORAGE }, { token: CONNECTION_STORAGE }, { token: i0.ElementRef }, { token: i1.GlobalConfigService }, { token: i1.ComponentKeyService }, { token: i1.LoadingOrchestrator }, { token: PRAXIS_LOADING_RENDERER, optional: true }, { token: i6$2.ActivatedRoute, optional: true }, { token: i1.LoggerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
41973
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: PraxisTable, isStandalone: true, selector: "praxis-table", inputs: { config: "config", resourcePath: "resourcePath", data: "data", tableId: "tableId", componentInstanceId: "componentInstanceId", title: "title", subtitle: "subtitle", icon: "icon", autoDelete: "autoDelete", notifyIfOutdated: "notifyIfOutdated", snoozeMs: "snoozeMs", autoOpenSettingsOnOutdated: "autoOpenSettingsOnOutdated", crudContext: "crudContext", dslFunctionRegistry: "dslFunctionRegistry", editModeEnabled: "editModeEnabled", dense: "dense" }, outputs: { rowClick: "rowClick", rowDoubleClick: "rowDoubleClick", rowExpansionChange: "rowExpansionChange", rowAction: "rowAction", toolbarAction: "toolbarAction", bulkAction: "bulkAction", columnReorder: "columnReorder", columnReorderAttempt: "columnReorderAttempt", beforeDelete: "beforeDelete", afterDelete: "afterDelete", deleteError: "deleteError", beforeBulkDelete: "beforeBulkDelete", afterBulkDelete: "afterBulkDelete", bulkDeleteError: "bulkDeleteError", schemaStatusChange: "schemaStatusChange", metadataChange: "metadataChange", loadingStateChange: "loadingStateChange" }, host: { properties: { "class.density-compact": "this.hostDensityCompactClass", "class.density-comfortable": "this.hostDensityComfortableClass", "class.density-spacious": "this.hostDensitySpaciousClass", "class.row-borders": "this.hostRowBordersClass", "class.col-borders": "this.hostColumnBordersClass" } }, providers: [
|
|
41973
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: PraxisTable, isStandalone: true, selector: "praxis-table", inputs: { config: "config", resourcePath: "resourcePath", data: "data", tableId: "tableId", componentInstanceId: "componentInstanceId", title: "title", subtitle: "subtitle", icon: "icon", autoDelete: "autoDelete", notifyIfOutdated: "notifyIfOutdated", snoozeMs: "snoozeMs", autoOpenSettingsOnOutdated: "autoOpenSettingsOnOutdated", crudContext: "crudContext", dslFunctionRegistry: "dslFunctionRegistry", editModeEnabled: ["editModeEnabled", "editModeEnabled", booleanAttribute], dense: "dense" }, outputs: { rowClick: "rowClick", rowDoubleClick: "rowDoubleClick", rowExpansionChange: "rowExpansionChange", rowAction: "rowAction", toolbarAction: "toolbarAction", bulkAction: "bulkAction", columnReorder: "columnReorder", columnReorderAttempt: "columnReorderAttempt", beforeDelete: "beforeDelete", afterDelete: "afterDelete", deleteError: "deleteError", beforeBulkDelete: "beforeBulkDelete", afterBulkDelete: "afterBulkDelete", bulkDeleteError: "bulkDeleteError", schemaStatusChange: "schemaStatusChange", metadataChange: "metadataChange", loadingStateChange: "loadingStateChange" }, host: { properties: { "class.density-compact": "this.hostDensityCompactClass", "class.density-comfortable": "this.hostDensityComfortableClass", "class.density-spacious": "this.hostDensitySpaciousClass", "class.row-borders": "this.hostRowBordersClass", "class.col-borders": "this.hostColumnBordersClass" } }, providers: [
|
|
41974
41974
|
GenericCrudService,
|
|
41975
41975
|
TableDefaultsProvider,
|
|
41976
41976
|
FilterConfigService,
|
|
@@ -42104,7 +42104,8 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "20.3.17", n
|
|
|
42104
42104
|
type: ContentChild,
|
|
42105
42105
|
args: ['projectedFilter']
|
|
42106
42106
|
}], editModeEnabled: [{
|
|
42107
|
-
type: Input
|
|
42107
|
+
type: Input,
|
|
42108
|
+
args: [{ transform: booleanAttribute }]
|
|
42108
42109
|
}], dense: [{
|
|
42109
42110
|
type: Input
|
|
42110
42111
|
}], hostDensityCompactClass: [{
|
|
@@ -42239,7 +42240,7 @@ const PRAXIS_TABLE_COMPONENT_METADATA = {
|
|
|
42239
42240
|
{
|
|
42240
42241
|
name: 'editModeEnabled',
|
|
42241
42242
|
type: 'boolean',
|
|
42242
|
-
default:
|
|
42243
|
+
default: false,
|
|
42243
42244
|
description: 'Permite edição de layout',
|
|
42244
42245
|
},
|
|
42245
42246
|
{
|