You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Remaining gaps from the ListView Spec Protocol analysis. Items here require non-trivial implementation (new UI components, schema reconciliation, or grid-level changes).
567
+
> All items from the ListView Spec Protocol analysis have been implemented.
568
568
569
569
**P0 — Core Protocol:**
570
-
-[]`data` (ViewDataSchema): ListView ignores `data`entirely — `provider: api/value`modes not consumed. Needs DataProvider abstraction to support inline data, API endpoints, and value-mode data.
571
-
-[]`grouping` rendering: Group button visible but disabled — needs GroupBy field picker popover + wired `useGroupedData` hook for grouped row rendering in Grid/Kanban/Gallery views. Requires changes in `plugin-grid`, `plugin-list`.
572
-
-[]`rowColor` rendering: Color button visible but disabled — needs color-field picker popover + wired `useRowColor` hook for row background coloring. Requires changes in `plugin-grid`, `plugin-list`.
570
+
-[x]`data` (ViewDataSchema): ListView consumes `schema.data`— supports `provider: value`(inline items), `provider: object` (fetch from objectName), and plain array shorthand. Falls back to `dataSource.find()` when not set.
571
+
-[x]`grouping` rendering: Group button enabled with GroupBy field picker popover. Grouping config wired to ObjectGrid child view, which renders collapsible grouped sections via `useGroupedData` hook.
572
+
-[x]`rowColor` rendering: Color button enabled with color-field picker popover. Row color config wired to ObjectGrid child view, which applies row background colors via `useRowColor` hook.
-[]`conditionalFormatting` expression reconciliation: spec uses expression-based `{ condition, style }`, ObjectUI uses field/operator/value rules. Both paths work independently but format adapter needed for full interop.
-[] Column `link`: no click-to-navigate rendering on link columns. Needs cell renderer for link-type columns.
581
-
-[] Column `action`: no action dispatch on column click. Needs cell renderer for action-type columns.
575
+
-[x]`quickFilters` structure reconciliation: Auto-normalizes spec `{ field, operator, value }`format into ObjectUI `{ id, label, filters[] }` format. Both formats supported simultaneously.
576
+
-[x]`conditionalFormatting` expression reconciliation: Supports spec `{ condition, style }` format alongside ObjectUI field/operator/value rules. `condition` is treated as alias for `expression`, `style` object merged into CSS properties.
577
+
-[x]`exportOptions` schema reconciliation: Accepts both spec`string[]` format (e.g., `['csv', 'xlsx']`) and ObjectUI object format `{ formats, maxRecords, includeHeaders, fileNamePrefix }`.
578
+
-[x] Column `pinned`: `pinned` property added to ListViewSchema column type. Bridge passes through to ObjectGrid which supports `frozenColumns`.
579
+
-[x] Column `summary`: `summary` property added to ListViewSchema column type. Bridge passes through for aggregation rendering.
580
+
-[x] Column `link`: ObjectGrid renders click-to-navigate buttons on link-type columns with `navigation.handleClick`. Primary field auto-linked.
581
+
-[x] Column `action`: ObjectGrid renders action dispatch buttons via `executeAction` on action-type columns.
582
582
583
583
**P2 — Advanced Features:**
584
-
-[]`rowActions`: row-level action menu UI — dropdown menu per row with configurable actions
585
-
-[]`bulkActions`: bulk action bar UI — action bar shown on multi-select with configurable batch actions
586
-
-[]`sharing` schema reconciliation: spec uses `personal/collaborative` model vs ObjectUI `visibility` model. Needs schema adapter.
587
-
-[]`pagination.pageSizeOptions` backend integration: UI selector exists but backend query needs to use selected page size dynamically.
584
+
-[x]`rowActions`: Row-level dropdown action menu per row in ObjectGrid. `schema.rowActions` string array items rendered as dropdown menu items, dispatched via `executeAction`.
585
+
-[x]`bulkActions`: Bulk action bar rendered in ListView when rows are selected and `schema.bulkActions` is configured. Fires `onBulkAction` callback with action name and selected rows.
586
+
-[x]`sharing` schema reconciliation: Supports both ObjectUI `{ visibility, enabled }` and spec `{ type: personal/collaborative, lockedBy }` models. Share button renders when either `enabled: true` or `type` is set.
587
+
-[x]`pagination.pageSizeOptions` backend integration: Page size selector is now a controlled component that dynamically updates `effectivePageSize`, triggering data re-fetch.
0 commit comments