@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 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. No runtime atual o default já é `true`; declare `[editModeEnabled]="false"` quando o host precisar publicar a tabela em modo estritamente read-only.
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. No runtime atual, o editor nasce habilitado por padrão; use `[editModeEnabled]="false"` quando o host precisar bloquear customização e manter a tabela em modo estritamente operacional.
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 = true; // Default to true for now as table settings are always accessible
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: true,
42243
+ default: false,
42243
42244
  description: 'Permite edição de layout',
42244
42245
  },
42245
42246
  {