@praxisui/list 8.0.0-beta.11 → 8.0.0-beta.13
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 +24 -4
- package/fesm2022/praxisui-list.mjs +599 -82
- package/index.d.ts +79 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -96,6 +96,7 @@ import { PraxisList } from '@praxisui/list';
|
|
|
96
96
|
(itemClick)="onItem($event)"
|
|
97
97
|
(actionClick)="onAction($event)"
|
|
98
98
|
(selectionChange)="onSelection($event)"
|
|
99
|
+
(exportAction)="onExport($event)"
|
|
99
100
|
/>
|
|
100
101
|
`,
|
|
101
102
|
})
|
|
@@ -122,14 +123,31 @@ export class ListDemoComponent {
|
|
|
122
123
|
{ id: 'favorite', icon: 'favorite', label: 'Like' },
|
|
123
124
|
{ id: 'buy', icon: 'shopping_cart', kind: 'button', buttonVariant: 'stroked', label: 'Buy' },
|
|
124
125
|
],
|
|
126
|
+
export: {
|
|
127
|
+
enabled: true,
|
|
128
|
+
formats: ['csv', 'json'],
|
|
129
|
+
general: { scope: 'auto', includeFields: ['id', 'name', 'price'] },
|
|
130
|
+
},
|
|
125
131
|
} satisfies import('@praxisui/list').PraxisListConfig;
|
|
126
132
|
|
|
127
133
|
onItem(e: any) { console.log('itemClick', e); }
|
|
128
134
|
onAction(e: any) { console.log('actionClick', e); }
|
|
129
135
|
onSelection(e: any) { console.log('selectionChange', e); }
|
|
136
|
+
onExport(e: any) { console.log('exportAction', e); }
|
|
130
137
|
}
|
|
131
138
|
```
|
|
132
139
|
|
|
140
|
+
## Collection Export
|
|
141
|
+
|
|
142
|
+
`@praxisui/list` uses the shared collection export contract from `@praxisui/core`, the same platform surface used by table exports.
|
|
143
|
+
|
|
144
|
+
- `export.enabled` renders the export action menu.
|
|
145
|
+
- `export.formats` accepts `csv`, `json`, `excel`, `pdf`, and `print`.
|
|
146
|
+
- `export.general.scope` accepts `auto`, `selected`, `filtered`, `currentPage`, and `all`.
|
|
147
|
+
- Local CSV/JSON exports run in the browser with formula escaping from `PraxisCollectionExportService`.
|
|
148
|
+
- Remote `filtered`/`all` exports and advanced formats require a host-level `PRAXIS_COLLECTION_EXPORT_PROVIDER`.
|
|
149
|
+
- Deferred exports and provider failures surface visible feedback through snackbar and live-region status.
|
|
150
|
+
|
|
133
151
|
## Runtime Contract (Data Mode and Precedence)
|
|
134
152
|
|
|
135
153
|
Effective data mode resolution follows `ListDataService.stream()`:
|
|
@@ -151,6 +169,8 @@ Decision matrix (runtime today):
|
|
|
151
169
|
|
|
152
170
|
Important behavior:
|
|
153
171
|
- pagination/search/sort controls from `ui.*` are rendered only when `dataSource.resourcePath` is defined.
|
|
172
|
+
- remote pagination uses Angular Material `mat-paginator` to keep the same paginator chrome and accessibility behavior used by the dynamic table.
|
|
173
|
+
- when `ui.showRange` is `false`, the Material range text is hidden but the remote footer still exposes the total count.
|
|
154
174
|
- remote mode uses `GenericCrudService.filter(query, pageable)` and falls back to `getAll()` when `/filter` fails.
|
|
155
175
|
|
|
156
176
|
## Runtime Status Matrix (High-Impact Paths)
|
|
@@ -347,10 +367,10 @@ Outputs:
|
|
|
347
367
|
|
|
348
368
|
- **Component ID:** `praxis-list`
|
|
349
369
|
- **Config Schema:** `PraxisListConfig`
|
|
350
|
-
- **Editable targets:**
|
|
351
|
-
- **Operation families:**
|
|
352
|
-
- **Validation:**
|
|
353
|
-
- **Examples/evals:**
|
|
370
|
+
- **Editable targets:** the manifest exposes explicit targets for template slots, text, avatar, badge, item actions, empty state, selection, layout, row layout, data binding, interaction, expansion, rules, metadata, skin, toolbar UI, collection export, localization, accessibility and declarative event mappings.
|
|
371
|
+
- **Operation families:** operations cover the required list authoring brief plus supported extensions for metadata, local/remote data, row layout, skin, interaction/expansion, conditional rules, executive template slots, features, skeleton, toolbar UI, export, i18n, accessibility and declarative event mappings.
|
|
372
|
+
- **Validation:** deterministic validators cover field binding, stable action/rule/section IDs, destructive action removal, remote resource binding, local/remote precedence, enum support, query/sort support, row layout placement reachability, expansion schema safety, Json Logic, global actions, declared-only runtime warnings and editor round-trip preservation.
|
|
373
|
+
- **Examples/evals:** fixtures cover every operation family in the manifest, including title/subtitle binding, action creation/update/removal, status badge, selection mode, missing field rejection, skin, toolbar, export, accessibility, event mapping, row layout, expansion, data modes, i18n, empty state and conditional row styling.
|
|
354
374
|
- **Declared-only semantics:** fields documented as declared-only remain authorable only as config/editor round-trip fields and are guarded by `declared-only-runtime-warning`; the manifest does not claim runtime behavior that the component does not implement.
|
|
355
375
|
|
|
356
376
|
## Known limitations and mismatches
|