@praxisui/list 9.0.0-beta.6 → 9.0.0-beta.7
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/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/list",
|
|
3
|
-
"version": "9.0.0-beta.
|
|
3
|
+
"version": "9.0.0-beta.7",
|
|
4
4
|
"description": "List components and helpers for Praxis UI.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
7
7
|
"@angular/core": "^21.0.0",
|
|
8
8
|
"@angular/material": "^21.0.0",
|
|
9
|
-
"@praxisui/dynamic-fields": "^9.0.0-beta.
|
|
9
|
+
"@praxisui/dynamic-fields": "^9.0.0-beta.7",
|
|
10
10
|
"rxjs": ">=7 <9",
|
|
11
11
|
"@angular/forms": "^21.0.0",
|
|
12
12
|
"@angular/router": "^21.0.0",
|
|
13
|
-
"@praxisui/ai": "^9.0.0-beta.
|
|
14
|
-
"@praxisui/core": "^9.0.0-beta.
|
|
15
|
-
"@praxisui/rich-content": "^9.0.0-beta.
|
|
16
|
-
"@praxisui/settings-panel": "^9.0.0-beta.
|
|
13
|
+
"@praxisui/ai": "^9.0.0-beta.7",
|
|
14
|
+
"@praxisui/core": "^9.0.0-beta.7",
|
|
15
|
+
"@praxisui/rich-content": "^9.0.0-beta.7",
|
|
16
|
+
"@praxisui/settings-panel": "^9.0.0-beta.7"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"tslib": "^2.3.0",
|
|
@@ -312,6 +312,10 @@ A integracao com host ocorre por `SettingsValueProvider`:
|
|
|
312
312
|
| `layout.stickySectionHeader` | Active | Toggle dedicado. |
|
|
313
313
|
| `layout.virtualScroll` | Active | Toggle dedicado (mesmo que runtime possa nao aplicar). |
|
|
314
314
|
| `layout.pageSize` | Active | Numero inteiro >= 1. |
|
|
315
|
+
| `layout.rowLayout.type/columns/gap/itemAlignY/class/style` | Active | Editor guiado de colunas estaveis para listas corporativas. |
|
|
316
|
+
| `export.enabled/formats/general.*` | Active | Editor guiado de formatos, escopo, cabecalhos, limite, nome de arquivo, formatacao e campos incluidos. |
|
|
317
|
+
| `interaction.expandable/expandTrigger/expandMode/expandPlacement` | Active | Editor guiado de comportamento expansivel da linha. |
|
|
318
|
+
| `expansion.sections/rendering` | Active | Editor guiado para secoes inline e shell visual da expansao. |
|
|
315
319
|
| `skin.type` | Active | Presets + selecao manual. |
|
|
316
320
|
| `skin.gradient/radius/shadow/border/backdropBlur/class/inlineStyle` | Active | Edicao direta + presets. |
|
|
317
321
|
| `selection.mode` | Active | `none/single/multiple`. |
|
|
@@ -336,7 +340,18 @@ A integracao com host ocorre por `SettingsValueProvider`:
|
|
|
336
340
|
| `ui.showRange` | Active | Toggle dedicado. |
|
|
337
341
|
| `i18n.locale/currency` | Active | Usado em formatacao de preview/runtime. |
|
|
338
342
|
| `a11y.ariaLabel/ariaLabelledBy/highContrast/reduceMotion` | Active | Editavel no tab de acessibilidade. |
|
|
339
|
-
| `events.itemClick/actionClick/selectionChange/loaded` | Active | Mapeamentos editaveis no tab de eventos. |
|
|
343
|
+
| `events.itemClick/actionClick/selectionChange/exportAction/loaded` | Active | Mapeamentos editaveis no tab de eventos. |
|
|
344
|
+
|
|
345
|
+
### Coverage inventory for runtime/editor parity
|
|
346
|
+
|
|
347
|
+
| Area | Adherence | Current editor coverage | Recommended next step |
|
|
348
|
+
| --- | --- | --- | --- |
|
|
349
|
+
| `events.exportAction` | ja-suportado-so-ux | Campo visual no tab de eventos. | Manter coberto por spec focal de round-trip. |
|
|
350
|
+
| `layout.rowLayout` | ja-suportado-so-ux | Editor guiado cobre ativacao, preset corporativo, tipo, colunas, largura, alinhamento, gap e CSS avancado. | Evoluir depois com preview visual por slot e warnings inline para slots sem template. |
|
|
351
|
+
| `export` | ja-suportado-so-ux | Editor guiado cobre habilitacao, formatos, escopo, cabecalhos, limite, nome de arquivo, formatacao e campos incluidos. | Evoluir depois com preview do payload de exportacao e validacao visual de campo inexistente. |
|
|
352
|
+
| `interaction`/`expansion` | suportado-parcialmente | Editor guiado cobre interacao expansivel, secoes inline e rendering; `dataSource` remoto e `schemaContract` continuam JSON-only. | Evoluir fonte remota/schemaContract apenas com validacao de seguranca e prova runtime. |
|
|
353
|
+
| `rules.itemStyles`/`rules.slotOverrides` | suportado-parcialmente | Runtime e validacao aplicam regras condicionais; authoring visual dedicado ainda ausente. | Criar editor de regras com Json Logic assistido e preview de impacto por slot. |
|
|
354
|
+
| `dataSource.data` | ja-suportado-mal-nomeado-ou-mal-materializado | Round-trip por JSON, sem editor visual de dataset local. | Manter JSON-only para datasets grandes; considerar import/preview separado se houver demanda operacional. |
|
|
340
355
|
|
|
341
356
|
### Validacao Estrutural
|
|
342
357
|
|
|
@@ -429,9 +444,13 @@ ref.saved$.subscribe((payload) => {
|
|
|
429
444
|
### Known limitations and pending investigation
|
|
430
445
|
|
|
431
446
|
1. Nao existe editor dedicado para `dataSource.data` (dataset local grande).
|
|
432
|
-
2.
|
|
433
|
-
3. `
|
|
434
|
-
4.
|
|
447
|
+
2. `rules` possui suporte runtime/capability maior do que a cobertura visual atual do editor; essa area deve evoluir por configurador guiado, nao por contrato paralelo.
|
|
448
|
+
3. `layout.rowLayout` possui editor guiado basico, mas ainda nao tem preview visual por slot nem warnings inline dedicados para slots sem template.
|
|
449
|
+
4. `export` possui editor guiado basico, mas ainda nao tem preview do payload final nem validacao visual dedicada para campo inexistente em `includeFields`.
|
|
450
|
+
5. `expansion.dataSource` remoto e `expansion.schemaContract` permanecem JSON-only ate existir validacao visual e prova runtime especifica no componente.
|
|
451
|
+
6. O editor preserva em JSON/config campos declared-only que podem nao ter efeito no runtime final, mas nao deve promove-los como controles visuais ativos.
|
|
452
|
+
7. `isDirty$` usa comparacao por snapshot JSON; mudancas de ordenacao de chaves/objetos podem gerar ruido em cenarios extremos.
|
|
453
|
+
8. Conversao automatica de `globalAction.payload` string para JSON e heuristica (so quando formato parece objeto/array).
|
|
435
454
|
|
|
436
455
|
### Source references
|
|
437
456
|
|
package/types/praxisui-list.d.ts
CHANGED
|
@@ -1142,6 +1142,7 @@ type NormalizedListConfig = Omit<PraxisListConfig, 'dataSource' | 'layout' | 'se
|
|
|
1142
1142
|
stickySectionHeader?: boolean;
|
|
1143
1143
|
virtualScroll?: boolean;
|
|
1144
1144
|
pageSize?: number;
|
|
1145
|
+
rowLayout?: NonNullable<PraxisListConfig['layout']>['rowLayout'];
|
|
1145
1146
|
};
|
|
1146
1147
|
skin: {
|
|
1147
1148
|
type: 'pill-soft' | 'gradient-tile' | 'glass' | 'elevated' | 'outline' | 'flat' | 'neumorphism' | 'custom';
|
|
@@ -1175,6 +1176,9 @@ type NormalizedListConfig = Omit<PraxisListConfig, 'dataSource' | 'layout' | 'se
|
|
|
1175
1176
|
};
|
|
1176
1177
|
type SkinType = NormalizedListConfig['skin']['type'];
|
|
1177
1178
|
type SkinPreset = Exclude<SkinType, 'custom'>;
|
|
1179
|
+
type RowLayoutColumn = NonNullable<NonNullable<NonNullable<PraxisListConfig['layout']>['rowLayout']>['columns']>[number];
|
|
1180
|
+
type RowLayoutAlign = NonNullable<NonNullable<NonNullable<PraxisListConfig['layout']>['rowLayout']>['align']>;
|
|
1181
|
+
type ListExpansionRendering = NonNullable<NonNullable<PraxisListConfig['expansion']>['rendering']>;
|
|
1178
1182
|
declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
|
|
1179
1183
|
config: PraxisListConfig;
|
|
1180
1184
|
listId?: string;
|
|
@@ -1320,6 +1324,18 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
|
|
|
1320
1324
|
field?: string;
|
|
1321
1325
|
dir?: 'asc' | 'desc';
|
|
1322
1326
|
}>;
|
|
1327
|
+
readonly rowLayoutSlotOptions: ListRowLayoutSlot[];
|
|
1328
|
+
readonly rowLayoutAlignOptions: RowLayoutAlign[];
|
|
1329
|
+
readonly rowLayoutColumnAlignOptions: Array<NonNullable<RowLayoutColumn['align']>>;
|
|
1330
|
+
readonly rowLayoutJustifyOptions: Array<NonNullable<RowLayoutColumn['justify']>>;
|
|
1331
|
+
readonly exportFormatOptions: PraxisExportFormat[];
|
|
1332
|
+
readonly exportScopeOptions: PraxisExportScope[];
|
|
1333
|
+
readonly expandTriggerOptions: Array<NonNullable<NonNullable<PraxisListConfig['interaction']>['expandTrigger']>>;
|
|
1334
|
+
readonly expandModeOptions: Array<NonNullable<NonNullable<PraxisListConfig['interaction']>['expandMode']>>;
|
|
1335
|
+
readonly expandPlacementOptions: Array<NonNullable<NonNullable<PraxisListConfig['interaction']>['expandPlacement']>>;
|
|
1336
|
+
readonly expansionSectionTypeOptions: ListExpansionSectionType[];
|
|
1337
|
+
readonly expansionShellOptions: Array<NonNullable<ListExpansionRendering['shell']>>;
|
|
1338
|
+
readonly expansionColumnOptions: Array<NonNullable<ListExpansionRendering['columns']>>;
|
|
1323
1339
|
mappingMetaFields: string[];
|
|
1324
1340
|
mappingMetaSeparator: string;
|
|
1325
1341
|
mappingMetaWrapSecondInParens: boolean;
|
|
@@ -1482,6 +1498,16 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
|
|
|
1482
1498
|
ngDoCheck(): void;
|
|
1483
1499
|
reset(): void;
|
|
1484
1500
|
onLayoutChanged(): void;
|
|
1501
|
+
rowLayoutEnabled(): boolean;
|
|
1502
|
+
onRowLayoutEnabledChange(enabled: boolean): void;
|
|
1503
|
+
applyCorporateRowLayoutPreset(): void;
|
|
1504
|
+
addRowLayoutColumn(): void;
|
|
1505
|
+
removeRowLayoutColumn(index: number): void;
|
|
1506
|
+
moveRowLayoutColumn(index: number, direction: -1 | 1): void;
|
|
1507
|
+
onRowLayoutChanged(): void;
|
|
1508
|
+
private ensureRowLayoutDraft;
|
|
1509
|
+
private defaultRowLayout;
|
|
1510
|
+
private nextRowLayoutSlot;
|
|
1485
1511
|
onSelectionChanged(): void;
|
|
1486
1512
|
onSkinGradientChanged(prop: 'from' | 'to' | 'angle', value: string | number): void;
|
|
1487
1513
|
onSkinTypeChanged(type: SkinType): void;
|
|
@@ -1490,6 +1516,43 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
|
|
|
1490
1516
|
onQueryChanged(value: string): void;
|
|
1491
1517
|
onPageSizeChange(value: any): void;
|
|
1492
1518
|
onUiChanged(): void;
|
|
1519
|
+
exportEnabled(): boolean;
|
|
1520
|
+
onExportEnabledChange(enabled: boolean): void;
|
|
1521
|
+
onExportChanged(): void;
|
|
1522
|
+
getExportFormatsModel(): PraxisExportFormat[];
|
|
1523
|
+
getExportScopeModel(): PraxisExportScope;
|
|
1524
|
+
getExportIncludeHeadersModel(): boolean;
|
|
1525
|
+
getExportApplyFormattingModel(): boolean;
|
|
1526
|
+
getExportMaxRowsModel(): number | undefined;
|
|
1527
|
+
getExportDefaultFileNameModel(): string;
|
|
1528
|
+
onExportFormatsChange(formats: PraxisExportFormat[]): void;
|
|
1529
|
+
onExportScopeChange(scope: PraxisExportScope): void;
|
|
1530
|
+
onExportDefaultFileNameChange(value: string): void;
|
|
1531
|
+
onExportIncludeHeadersChange(value: boolean): void;
|
|
1532
|
+
onExportApplyFormattingChange(value: boolean): void;
|
|
1533
|
+
onExportMaxRowsChange(value: any): void;
|
|
1534
|
+
getExportIncludeFieldsText(): string;
|
|
1535
|
+
onExportIncludeFieldsTextChange(value: string): void;
|
|
1536
|
+
private ensureExportDraft;
|
|
1537
|
+
expansionEnabled(): boolean;
|
|
1538
|
+
onExpansionEnabledChange(enabled: boolean): void;
|
|
1539
|
+
onExpansionChanged(): void;
|
|
1540
|
+
getExpandTriggerModel(): NonNullable<NonNullable<PraxisListConfig['interaction']>['expandTrigger']>;
|
|
1541
|
+
getExpandModeModel(): NonNullable<NonNullable<PraxisListConfig['interaction']>['expandMode']>;
|
|
1542
|
+
getExpandPlacementModel(): NonNullable<NonNullable<PraxisListConfig['interaction']>['expandPlacement']>;
|
|
1543
|
+
onExpansionInteractionChanged(prop: 'expandTrigger' | 'expandMode' | 'expandPlacement', value: string): void;
|
|
1544
|
+
getExpansionShellModel(): NonNullable<ListExpansionRendering['shell']>;
|
|
1545
|
+
getExpansionColumnsModel(): NonNullable<ListExpansionRendering['columns']>;
|
|
1546
|
+
getExpansionGapModel(): string;
|
|
1547
|
+
getExpansionPaddingModel(): string;
|
|
1548
|
+
onExpansionRenderingChanged(prop: 'shell' | 'columns' | 'gap' | 'padding', value: string | number): void;
|
|
1549
|
+
addExpansionSection(): void;
|
|
1550
|
+
removeExpansionSection(index: number): void;
|
|
1551
|
+
moveExpansionSection(index: number, direction: -1 | 1): void;
|
|
1552
|
+
onExpansionSectionShowIfChanged(section: ListExpansionSectionDef, raw: string): void;
|
|
1553
|
+
getExpansionSectionShowIfText(section: ListExpansionSectionDef): string;
|
|
1554
|
+
private ensureExpansionDraft;
|
|
1555
|
+
private defaultExpansionSection;
|
|
1493
1556
|
onSkeletonChanged(value: any): void;
|
|
1494
1557
|
addUiSortRow(): void;
|
|
1495
1558
|
removeUiSortRow(i: number): void;
|