@praxisui/list 9.0.0-beta.7 → 9.0.0-beta.9

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.7",
3
+ "version": "9.0.0-beta.9",
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.7",
9
+ "@praxisui/dynamic-fields": "^9.0.0-beta.9",
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.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"
13
+ "@praxisui/ai": "^9.0.0-beta.9",
14
+ "@praxisui/core": "^9.0.0-beta.9",
15
+ "@praxisui/rich-content": "^9.0.0-beta.9",
16
+ "@praxisui/settings-panel": "^9.0.0-beta.9"
17
17
  },
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0",
@@ -302,7 +302,7 @@ A integracao com host ocorre por `SettingsValueProvider`:
302
302
  | `dataSource.resourcePath` | Active | Campo principal para schema remoto. |
303
303
  | `dataSource.query` | Active | JSON editavel com validacao sintatica. |
304
304
  | `dataSource.sort` | Active | Gerado por `sortField/sortDir` e por UI sort rows. |
305
- | `dataSource.data` | Declared-only | Nao possui editor dedicado para dataset local. |
305
+ | `dataSource.data` | Active | Preservado no objeto; editor mostra resumo, colunas de amostra e aviso de precedencia sobre `resourcePath`. |
306
306
  | `layout.variant` | Active | `list/cards/tiles`. |
307
307
  | `layout.model` | Active | `standard/media/hotel`. |
308
308
  | `layout.lines` | Active | `1/2/3`. |
@@ -316,6 +316,7 @@ A integracao com host ocorre por `SettingsValueProvider`:
316
316
  | `export.enabled/formats/general.*` | Active | Editor guiado de formatos, escopo, cabecalhos, limite, nome de arquivo, formatacao e campos incluidos. |
317
317
  | `interaction.expandable/expandTrigger/expandMode/expandPlacement` | Active | Editor guiado de comportamento expansivel da linha. |
318
318
  | `expansion.sections/rendering` | Active | Editor guiado para secoes inline e shell visual da expansao. |
319
+ | `rules.itemStyles/slotOverrides` | Active | Editor guiado basico para Json Logic, classe, estilo, template de slot, ocultacao e primeiro `effects[]` canonico. |
319
320
  | `skin.type` | Active | Presets + selecao manual. |
320
321
  | `skin.gradient/radius/shadow/border/backdropBlur/class/inlineStyle` | Active | Edicao direta + presets. |
321
322
  | `selection.mode` | Active | `none/single/multiple`. |
@@ -347,11 +348,11 @@ A integracao com host ocorre por `SettingsValueProvider`:
347
348
  | Area | Adherence | Current editor coverage | Recommended next step |
348
349
  | --- | --- | --- | --- |
349
350
  | `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. |
351
+ | `layout.rowLayout` | ja-suportado-so-ux | Editor guiado cobre ativacao, preset corporativo, tipo, colunas, largura, alinhamento, gap, CSS avancado e warnings inline para slots sem materializacao. | Evoluir depois com preview visual por slot. |
352
+ | `export` | ja-suportado-so-ux | Editor guiado cobre habilitacao, formatos, escopo, cabecalhos, limite, nome de arquivo, formatacao, campos incluidos, warning para campo inexistente quando o schema esta carregado e preview compacto de colunas/amostra. | Evoluir depois com preview fiel do payload final gerado pelo runtime. |
353
+ | `interaction`/`expansion` | suportado-parcialmente | Editor guiado cobre interacao expansivel, secoes inline, rendering e diagnostico de `dataSource`/`schemaContract` remotos preservados por JSON. | Evoluir fonte remota/schemaContract apenas com validacao de seguranca e prova runtime. |
354
+ | `rules.itemStyles`/`rules.slotOverrides` | ja-suportado-so-ux | Editor guiado cobre condicao Json Logic, estilo de item, override de slot, template basico, ocultacao e primeira materializacao canonica `effects[0]`. | Evoluir depois com builder visual de Json Logic, preview por item e suporte multi-effect se o runtime passar a consumir mais de um efeito. |
355
+ | `dataSource.data` | ja-suportado-mal-nomeado-ou-mal-materializado | Round-trip por JSON com resumo visual, colunas de amostra e aviso de precedencia sobre `resourcePath`. | Manter JSON-only para datasets grandes; considerar import dedicado apenas se houver demanda operacional. |
355
356
 
356
357
  ### Validacao Estrutural
357
358
 
@@ -443,11 +444,11 @@ ref.saved$.subscribe((payload) => {
443
444
 
444
445
  ### Known limitations and pending investigation
445
446
 
446
- 1. Nao existe editor dedicado para `dataSource.data` (dataset local grande).
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.
447
+ 1. Nao existe editor dedicado para alterar `dataSource.data` (dataset local grande); o editor mostra resumo, amostra e precedencia para evitar erro silencioso.
448
+ 2. `rules` possui editor guiado basico com `effects[0]`, mas ainda nao tem builder visual de Json Logic, preview de impacto por item ou authoring multi-effect. O runtime atualmente materializa o primeiro efeito valido.
449
+ 3. `layout.rowLayout` possui editor guiado com warnings inline para slots sem materializacao, mas ainda nao tem preview visual por slot.
450
+ 4. `export` possui editor guiado com warning de `includeFields` desconhecido e preview compacto de colunas/amostra, mas ainda nao tem preview fiel do payload final gerado pelo runtime.
451
+ 5. `expansion.dataSource` remoto e `expansion.schemaContract` permanecem JSON-only para authoring; o editor mostra diagnostico de seguranca e preservacao ate existir prova runtime especifica de carregamento remoto.
451
452
  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
453
  7. `isDirty$` usa comparacao por snapshot JSON; mudancas de ordenacao de chaves/objetos podem gerar ruido em cenarios extremos.
453
454
  8. Conversao automatica de `globalAction.payload` string para JSON e heuristica (so quando formato parece objeto/array).
@@ -1179,6 +1179,7 @@ type SkinPreset = Exclude<SkinType, 'custom'>;
1179
1179
  type RowLayoutColumn = NonNullable<NonNullable<NonNullable<PraxisListConfig['layout']>['rowLayout']>['columns']>[number];
1180
1180
  type RowLayoutAlign = NonNullable<NonNullable<NonNullable<PraxisListConfig['layout']>['rowLayout']>['align']>;
1181
1181
  type ListExpansionRendering = NonNullable<NonNullable<PraxisListConfig['expansion']>['rendering']>;
1182
+ type ExportPreviewRow = Record<string, string>;
1182
1183
  declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1183
1184
  config: PraxisListConfig;
1184
1185
  listId?: string;
@@ -1328,6 +1329,7 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1328
1329
  readonly rowLayoutAlignOptions: RowLayoutAlign[];
1329
1330
  readonly rowLayoutColumnAlignOptions: Array<NonNullable<RowLayoutColumn['align']>>;
1330
1331
  readonly rowLayoutJustifyOptions: Array<NonNullable<RowLayoutColumn['justify']>>;
1332
+ readonly rowLayoutStructuralSlots: Set<ListRowLayoutSlot>;
1331
1333
  readonly exportFormatOptions: PraxisExportFormat[];
1332
1334
  readonly exportScopeOptions: PraxisExportScope[];
1333
1335
  readonly expandTriggerOptions: Array<NonNullable<NonNullable<PraxisListConfig['interaction']>['expandTrigger']>>;
@@ -1336,6 +1338,8 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1336
1338
  readonly expansionSectionTypeOptions: ListExpansionSectionType[];
1337
1339
  readonly expansionShellOptions: Array<NonNullable<ListExpansionRendering['shell']>>;
1338
1340
  readonly expansionColumnOptions: Array<NonNullable<ListExpansionRendering['columns']>>;
1341
+ readonly ruleSlotOptions: ListSlotOverrideRule['slot'][];
1342
+ readonly ruleTemplateTypeOptions: TemplateType[];
1339
1343
  mappingMetaFields: string[];
1340
1344
  mappingMetaSeparator: string;
1341
1345
  mappingMetaWrapSecondInParens: boolean;
@@ -1382,6 +1386,11 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1382
1386
  private resetVisualMappingState;
1383
1387
  private setupSchemaWatcher;
1384
1388
  onResourcePathChange(value: string): void;
1389
+ getLocalDataRows(): any[];
1390
+ getLocalDataSummary(): string;
1391
+ getLocalDataPrecedenceWarning(): string;
1392
+ getLocalDataColumns(): string[];
1393
+ getLocalDataPreviewRows(): Array<Record<string, string>>;
1385
1394
  applySkinPreset(preset: SkinPreset): void;
1386
1395
  applyLayoutPreset(preset: 'tiles-modern'): void;
1387
1396
  private defaultPresetLocale;
@@ -1505,6 +1514,8 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1505
1514
  removeRowLayoutColumn(index: number): void;
1506
1515
  moveRowLayoutColumn(index: number, direction: -1 | 1): void;
1507
1516
  onRowLayoutChanged(): void;
1517
+ rowLayoutColumnWarning(column: RowLayoutColumn): string;
1518
+ private rowLayoutSlotHasMaterialization;
1508
1519
  private ensureRowLayoutDraft;
1509
1520
  private defaultRowLayout;
1510
1521
  private nextRowLayoutSlot;
@@ -1532,7 +1543,14 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1532
1543
  onExportApplyFormattingChange(value: boolean): void;
1533
1544
  onExportMaxRowsChange(value: any): void;
1534
1545
  getExportIncludeFieldsText(): string;
1546
+ getExportPreviewColumns(): string[];
1547
+ getExportPreviewRows(): ExportPreviewRow[];
1548
+ getExportPreviewSummary(): string;
1549
+ getExportIncludeFieldsWarning(): string;
1550
+ getExportUnknownIncludeFields(): string[];
1535
1551
  onExportIncludeFieldsTextChange(value: string): void;
1552
+ private readExportPreviewValue;
1553
+ private formatExportPreviewValue;
1536
1554
  private ensureExportDraft;
1537
1555
  expansionEnabled(): boolean;
1538
1556
  onExpansionEnabledChange(enabled: boolean): void;
@@ -1545,6 +1563,8 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1545
1563
  getExpansionColumnsModel(): NonNullable<ListExpansionRendering['columns']>;
1546
1564
  getExpansionGapModel(): string;
1547
1565
  getExpansionPaddingModel(): string;
1566
+ getExpansionRemoteSummary(): string;
1567
+ getExpansionRemoteWarnings(): string[];
1548
1568
  onExpansionRenderingChanged(prop: 'shell' | 'columns' | 'gap' | 'padding', value: string | number): void;
1549
1569
  addExpansionSection(): void;
1550
1570
  removeExpansionSection(index: number): void;
@@ -1553,6 +1573,37 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1553
1573
  getExpansionSectionShowIfText(section: ListExpansionSectionDef): string;
1554
1574
  private ensureExpansionDraft;
1555
1575
  private defaultExpansionSection;
1576
+ addItemStyleRule(): void;
1577
+ removeItemStyleRule(index: number): void;
1578
+ addSlotOverrideRule(): void;
1579
+ removeSlotOverrideRule(index: number): void;
1580
+ onRulesChanged(): void;
1581
+ getRuleConditionText(rule: {
1582
+ condition?: JsonLogicExpression | null;
1583
+ }): string;
1584
+ onRuleConditionChanged(rule: {
1585
+ condition?: JsonLogicExpression | null;
1586
+ }, raw: string): void;
1587
+ getItemStyleEffect(rule: ListItemStyleRule): ListItemStyleEffect | undefined;
1588
+ ensureItemStyleEffect(rule: ListItemStyleRule): void;
1589
+ clearItemStyleEffects(rule: ListItemStyleRule): void;
1590
+ getSlotOverrideEffect(rule: ListSlotOverrideRule): ListSlotOverrideEffect | undefined;
1591
+ ensureSlotOverrideEffect(rule: ListSlotOverrideRule): void;
1592
+ clearSlotOverrideEffects(rule: ListSlotOverrideRule): void;
1593
+ getSlotOverrideTemplateExpr(rule: {
1594
+ template?: TemplateDef;
1595
+ }): string;
1596
+ onSlotOverrideTemplateExprChanged(rule: {
1597
+ template?: TemplateDef;
1598
+ }, expr: string): void;
1599
+ getSlotOverrideTemplateType(rule: {
1600
+ template?: TemplateDef;
1601
+ }): TemplateType;
1602
+ onSlotOverrideTemplateTypeChanged(rule: {
1603
+ template?: TemplateDef;
1604
+ }, type: TemplateType): void;
1605
+ private defaultItemStyleRule;
1606
+ private defaultSlotOverrideRule;
1556
1607
  onSkeletonChanged(value: any): void;
1557
1608
  addUiSortRow(): void;
1558
1609
  removeUiSortRow(i: number): void;