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
feat(spec)!: element:record_picker.filter converges onto the ViewFilterRule array form — the last record-form filter in ComponentPropsMap (objectui#6206 Option B) (#15456)
* wip: element:record_picker.filter converges onto the ViewFilterRule array form
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G4138K1EG7kQ81FNba5Kp4
* wip: rejection and census tests, regenerated docs and export-origins
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G4138K1EG7kQ81FNba5Kp4
* wip: regenerate api-surface for ElementRecordPickerPropsParsed
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G4138K1EG7kQ81FNba5Kp4
* fix(spec): state the filter-door census correctly in the shipped prose; migrate command listed by --from 17
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G4138K1EG7kQ81FNba5Kp4
* fix(spec): reword the picker filter description without an apostrophe; regenerate followers after merging main
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G4138K1EG7kQ81FNba5Kp4
---------
Co-authored-by: Claude <noreply@anthropic.com>
feat(spec)!: `ComponentPropsMap['element:record_picker'].filter` converges onto the `ViewFilterRule` array form — the last record-form `filter` in the map (#14406, objectui#6206 Option B)
Copy file name to clipboardExpand all lines: content/docs/references/ui/component.mdx
+11-1Lines changed: 11 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -212,7 +212,7 @@ View filter rule
212
212
|**labelField**|`string`| optional | Field rendered as each row's text (default `name`) |
213
213
|**valueField**|`string`| optional | Field whose value is written into the bound page variable (default `id`) |
214
214
|**label**|`string \| Record<string, string>`| optional | Control label rendered above the select |
215
-
|**filter**|`any`| optional | Filter criteria for available records |
215
+
|**filter**|`{ field: string; operator: Enum<'equals' \| 'not_equals' \| 'contains' \| 'not_contains' \| 'icontains' \| …>; value?: string \| number \| boolean \| null \| (string \| number)[] }[]`| optional | Filter rules narrowing which records the picker offers — the ViewFilterRule array form `[{ field, operator, value }, ...]`, the one filter orthography the array-declared `filter` doors of this map share. The MongoDB-style record form is refused — see migration `element-record-picker-filter-rule-array`. The binding-level `dataSource.filter` wins outright when both are set|
216
216
|**sort**|`{ field: string; order: Enum<'asc' \| 'desc'> }[]`| optional | Row order — synonym of the component-level `dataSource.sort`, which takes precedence when both are set |
217
217
|**limit**|`integer`| optional | Max records offered — synonym of the component-level `dataSource.limit`, which takes precedence when both are set (renderer default 50) |
218
218
|**targetVariable**|`never`| optional |[REMOVED]`element:record_picker` property `targetVariable` was removed in @objectstack/spec 17 (ADR-0049) — it was a declarative hint no renderer ever read: the live binding runs the other direction, resolved from the page variable whose `source` names this component's `id`, so authoring only `targetVariable` bound nothing while reporting success. Delete the key; to bind the picked record id, declare it on the variable — `variables: [{ name: '<var>', type: 'record_id', source: '<this component id>' }]`. Run `os migrate meta --from 17` to list the mechanical edits for existing sources; apply them by hand. |
@@ -223,6 +223,16 @@ View filter rule
223
223
|**multiple**|`never`| optional |[REMOVED]`element:record_picker` property `multiple` was removed in @objectstack/spec 17.0.0 (ADR-0049) — the picker is a single-select `Select` and the bound page variable holds one record id, so `multiple: true` selected nothing extra and reported success. Delete the key; multi-record selection is not implemented on this element. Run `os migrate meta --from 16` to list the mechanical edits for existing sources; apply them by hand. |
|**value**|`string \| number \| boolean \| null \| (string \| number)[]`| optional | Filter value. The accepted SHAPE depends on the operator: `in` / `not_in` take an array (any length, including []), `between` takes exactly [min, max], every other operator takes a scalar. The unary operators (is_empty / is_not_empty / is_null / is_not_null) take their direction from the operator name and ignore this key. |
0 commit comments