@object-ui/plugin-list 17.3.0 → 17.6.0
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/CHANGELOG.md +944 -0
- package/README.md +65 -19
- package/dist/ListView.d.ts +138 -6
- package/dist/ListView.d.ts.map +1 -1
- package/dist/ListViewBlock.d.ts +69 -0
- package/dist/ListViewBlock.d.ts.map +1 -0
- package/dist/UserFilters.d.ts.map +1 -1
- package/dist/ViewSwitcher.d.ts.map +1 -1
- package/dist/components/TabBar.d.ts.map +1 -1
- package/dist/components/ViewSettingsPopover.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1437 -1230
- package/dist/index.umd.cjs +3 -3
- package/package.json +22 -22
package/README.md
CHANGED
|
@@ -180,6 +180,42 @@ interface ListViewSchema {
|
|
|
180
180
|
}
|
|
181
181
|
```
|
|
182
182
|
|
|
183
|
+
## Page binding — `dataSource` (referencing a saved view by name)
|
|
184
|
+
|
|
185
|
+
On a metadata page, a `list-view` component can bind its data through the spec's
|
|
186
|
+
per-element data source (`PageComponentSchema.dataSource`,
|
|
187
|
+
`ElementDataSourceSchema`) instead of spelling `objectName` and inlining the
|
|
188
|
+
view's configuration:
|
|
189
|
+
|
|
190
|
+
```json
|
|
191
|
+
{
|
|
192
|
+
"type": "list-view",
|
|
193
|
+
"dataSource": { "object": "account", "view": "hot", "limit": 10 }
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
`view` names a **saved view** of that object — either one embedded in the object
|
|
198
|
+
definition (`listViews`) or one created in the UI (the metadata overlay an
|
|
199
|
+
adapter serves from `listViews()`). Its `columns`, `filter`, `sort`, page size
|
|
200
|
+
and view kind are applied to the render, so a page no longer has to keep a second
|
|
201
|
+
copy of a view's configuration in sync with the view itself. Both the short key
|
|
202
|
+
(`hot`) and the qualified id (`account.hot`) resolve.
|
|
203
|
+
|
|
204
|
+
**Precedence.** `dataSource.*` keys are authoritative — the author wrote them on
|
|
205
|
+
this placement, and they beat the component's own same-named key. Values that
|
|
206
|
+
come from the named view are a *baseline*: a key written on the component itself
|
|
207
|
+
is more specific than the view it points at, so the component's key wins
|
|
208
|
+
(an empty `columns: []` counts as "not authored"). `filter` is the exception —
|
|
209
|
+
the spec calls `dataSource.filter` "additional filter criteria", so the
|
|
210
|
+
component's filter, the view's filter and the binding's filter all AND together.
|
|
211
|
+
A binding can narrow what the view selects, never widen it.
|
|
212
|
+
|
|
213
|
+
**An unresolvable `view` is an error, not an empty table.** If the named view
|
|
214
|
+
does not exist, the block renders a configuration error listing the object's
|
|
215
|
+
actual views, and issues no query. It deliberately does not fall back to the
|
|
216
|
+
object's default view: that would turn a typo into a silently *wider* answer on a
|
|
217
|
+
page that still looks like it works.
|
|
218
|
+
|
|
183
219
|
## Sorting (and why relational columns are not offered)
|
|
184
220
|
|
|
185
221
|
The toolbar sort becomes a server `$orderby` on the **flat field name**, so the
|
|
@@ -191,30 +227,40 @@ user's side). The server cannot order by the related name without a join, and
|
|
|
191
227
|
`objectstack#4256` settled that it will not add one.
|
|
192
228
|
|
|
193
229
|
So the sort picker withholds relational fields and says so. To sort by a related
|
|
194
|
-
record's name, denormalize
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
230
|
+
record's name, denormalize that name onto this object as a **stored field,
|
|
231
|
+
written when the source changes**, then sort by that field — the remedy the
|
|
232
|
+
server's own refusal prescribes, in the same words the sort panel's hint uses.
|
|
233
|
+
|
|
234
|
+
**Not a formula field.** A formula value is computed on read, so no driver
|
|
235
|
+
materializes a column behind it, and since `objectstack#6994` the server answers
|
|
236
|
+
a sort that names one with a hard `400 INVALID_SORT` (before that it degraded
|
|
237
|
+
silently: the rows came back in an arbitrary order under a `200`, `asc` and
|
|
238
|
+
`desc` identical). The picker withholds formula fields for the same reason
|
|
239
|
+
(`objectui#4243`), so there is no formula column here to sort "like any other
|
|
240
|
+
text column" — the column you sort is the stored one the denormalization writes.
|
|
241
|
+
|
|
242
|
+
A field the view's CURRENT sort already uses stays listed under both rules —
|
|
243
|
+
relational ones labelled `(by ID)` — so existing view metadata round-trips
|
|
244
|
+
instead of silently losing its sort, and a sort the server would refuse can
|
|
245
|
+
still be edited away in the picker that otherwise hides its field.
|
|
246
|
+
|
|
247
|
+
Column-header sorting inside the grid follows the **same two rules**, because a
|
|
248
|
+
header click is a server `$orderby` as well whenever the grid is showing one
|
|
249
|
+
window of a larger collection (`objectui#3106`) — not a client-side reorder of
|
|
250
|
+
the loaded rows. So on that path a relational or formula column carries no
|
|
251
|
+
clickable header either (`objectui#3950`); offering one would have been the same
|
|
252
|
+
illusion through a different control.
|
|
253
|
+
|
|
254
|
+
Where the sort really does stay in the browser — inline `data`, or the grouped
|
|
255
|
+
view, which holds every row it groups — both kinds of header stay live and order
|
|
256
|
+
by the value the cell shows: the resolved label for a relational column, the
|
|
257
|
+
server-hydrated result for a formula one (see `getSortValue` in
|
|
258
|
+
`@object-ui/core`).
|
|
202
259
|
|
|
203
260
|
## View Persistence
|
|
204
261
|
|
|
205
262
|
The ListView automatically persists the user's view type preference in localStorage using the key `listview-{objectName}-view`.
|
|
206
263
|
|
|
207
|
-
<!-- release-metadata:v3.3.0 -->
|
|
208
|
-
|
|
209
|
-
## Compatibility
|
|
210
|
-
|
|
211
|
-
- **React:** 18.x or 19.x
|
|
212
|
-
- **Node.js:** ≥ 18
|
|
213
|
-
- **TypeScript:** ≥ 5.0 (strict mode)
|
|
214
|
-
- **`@objectstack/spec`:** ^3.3.0
|
|
215
|
-
- **`@objectstack/client`:** ^3.3.0
|
|
216
|
-
- **Tailwind CSS:** ≥ 3.4 (for packages with UI)
|
|
217
|
-
|
|
218
264
|
## Links
|
|
219
265
|
|
|
220
266
|
- 📚 [Documentation](https://www.objectui.org/docs/plugins/plugin-list)
|
package/dist/ListView.d.ts
CHANGED
|
@@ -9,9 +9,77 @@ import { ListViewSchema } from '@object-ui/types';
|
|
|
9
9
|
* LICENSE file in the root directory of this source tree.
|
|
10
10
|
*/
|
|
11
11
|
import * as React from 'react';
|
|
12
|
+
/**
|
|
13
|
+
* The `case 'map'` branch below builds an `object-map` schema by flattening
|
|
14
|
+
* `schema.options.map`'s CONTENTS to the top level. Whitelisted to these keys —
|
|
15
|
+
* `ObjectMapConfigSchema`'s shape minus `style` — rather than the whole bag:
|
|
16
|
+
* `style` is ALSO `BaseSchema.style` (inline CSS, legal on every node), and
|
|
17
|
+
* spreading the raw `map` block collapsed the two namespaces onto one key
|
|
18
|
+
* (objectui#5177).
|
|
19
|
+
*
|
|
20
|
+
* HAND-LISTED, not derived at runtime — deliberately, and only here (`plugin-
|
|
21
|
+
* map`'s own `FLAT_MAP_CONFIG_KEYS` in `ObjectMap.tsx` DOES derive from
|
|
22
|
+
* `ObjectMapConfigSchema.shape`, and should stay that way): this file is
|
|
23
|
+
* reachable from `examples/console-starter`'s own `src/`, so it is part of the
|
|
24
|
+
* import graph `vite-alias-closure.test.ts` walks. That walker resolves a bare
|
|
25
|
+
* `@object-ui/*` specifier with plain `index.<ext>` conventions and cannot find
|
|
26
|
+
* `@object-ui/types/zod`'s actual barrel file (`zod/index.zod.ts` — a
|
|
27
|
+
* non-standard name) — a REAL runtime import of it here reproducibly fails
|
|
28
|
+
* that gate (measured on objectui#5177's first PR, PR #5231, CI run
|
|
29
|
+
* 32160288416), even though Vite's own alias table already resolves the
|
|
30
|
+
* specifier correctly (`examples/console-starter/vite.config.ts` has carried
|
|
31
|
+
* an explicit `@object-ui/types/zod` entry since PR #5156). `ObjectMap.tsx`
|
|
32
|
+
* gets away with the runtime import only because nothing in
|
|
33
|
+
* console-starter's graph reaches `@object-ui/plugin-map` today.
|
|
34
|
+
*
|
|
35
|
+
* Anti-drift is a TEST, not this comment: `ListView.mapFlatten.test.tsx` pins
|
|
36
|
+
* this exact list against `ObjectMapConfigSchema.shape` — imported only from
|
|
37
|
+
* that TEST file, which the alias-closure walker explicitly excludes from
|
|
38
|
+
* traversal — so a key added to or removed from the declaration still fails
|
|
39
|
+
* here, loudly and by name, without reintroducing the runtime edge that
|
|
40
|
+
* breaks the walker.
|
|
41
|
+
*/
|
|
42
|
+
export declare const FLAT_MAP_CONFIG_KEYS: readonly ["latitudeField", "longitudeField", "locationField", "titleField", "descriptionField", "zoom", "center"];
|
|
43
|
+
/**
|
|
44
|
+
* The list view's props.
|
|
45
|
+
*
|
|
46
|
+
* ## Why there is no `[key: string]: any` here (objectui#4528)
|
|
47
|
+
*
|
|
48
|
+
* There used to be one, and it erased this entire interface. A string index
|
|
49
|
+
* signature puts `string` into `keyof Props`, so `'ref' extends keyof Props` is
|
|
50
|
+
* always true and React's `PropsWithoutRef` takes its `Omit` branch — and
|
|
51
|
+
* `Omit` over a type carrying a string index signature keeps ONLY the index
|
|
52
|
+
* signature. Every declared property below was dropped from the resolved type.
|
|
53
|
+
* Measured on the pre-fix source:
|
|
54
|
+
* `keyof React.ComponentProps< typeof ListView >` was `string | number`, and
|
|
55
|
+
* `React.ComponentProps< typeof ListView >['onRowClick']` was `any`, while this
|
|
56
|
+
* interface went on declaring `(record: Record< string, unknown >) => void`.
|
|
57
|
+
*
|
|
58
|
+
* The same trap, in `packages/components`, is objectui#4422 / PR #4438; this is
|
|
59
|
+
* the sweep of the two packages that issue left unswept.
|
|
60
|
+
*
|
|
61
|
+
* ## The props that were only ever reachable through it
|
|
62
|
+
*
|
|
63
|
+
* `ListView` reads several props it never declared, because the index signature
|
|
64
|
+
* was answering for them — `dataSource`, `onAddRecord`, `onBulkAction`,
|
|
65
|
+
* `onPageSizeChange` are read directly, and `onEdit` / `onDelete` /
|
|
66
|
+
* `onBulkDelete` ride the `{...props}` forward into the active view component
|
|
67
|
+
* (`ObjectGrid` declares all three). They are declared by name below, at the
|
|
68
|
+
* type each one actually lands on, rather than left to an index signature that
|
|
69
|
+
* types them `any` and erases everything around them.
|
|
70
|
+
*/
|
|
12
71
|
export interface ListViewProps {
|
|
13
72
|
schema: ListViewSchema;
|
|
14
73
|
className?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Data-source adapter. Read directly (`dataSource.find`,
|
|
76
|
+
* `dataSource.getObjectSchema`, `dataSource.onMutation`) and forwarded to the
|
|
77
|
+
* active view component. Typed `any` deliberately: that is what it resolved
|
|
78
|
+
* to before objectui#4528, so declaring it changes what is DECLARED without
|
|
79
|
+
* changing what any call site is held to. Narrowing it to a real adapter type
|
|
80
|
+
* is a separate change with its own consumer sweep.
|
|
81
|
+
*/
|
|
82
|
+
dataSource?: any;
|
|
15
83
|
onViewChange?: (view: ViewType) => void;
|
|
16
84
|
onFilterChange?: (filters: any) => void;
|
|
17
85
|
onSortChange?: (sort: any) => void;
|
|
@@ -42,7 +110,21 @@ export interface ListViewProps {
|
|
|
42
110
|
initialFilters?: FilterGroup;
|
|
43
111
|
/** Initial search term to restore at mount (same one-shot semantics as `initialFilters`). */
|
|
44
112
|
initialSearchTerm?: string;
|
|
45
|
-
|
|
113
|
+
/** Called when the user asks for a new record (toolbar "+ New" and the empty-state CTA). */
|
|
114
|
+
onAddRecord?: () => void;
|
|
115
|
+
/** Called with a non-delete bulk action key and the currently selected rows. */
|
|
116
|
+
onBulkAction?: (action: string, records: any[]) => void;
|
|
117
|
+
/** Called when the user picks a different page size in the pager. */
|
|
118
|
+
onPageSizeChange?: (pageSize: number) => void;
|
|
119
|
+
/**
|
|
120
|
+
* Row-level affordances forwarded to the active view component. `ObjectGrid`
|
|
121
|
+
* declares all three with exactly these signatures; they are named here so the
|
|
122
|
+
* hosts that pass them (`ObjectView`, `StudioDesignSurface`) are held to a
|
|
123
|
+
* contract instead of to an index signature.
|
|
124
|
+
*/
|
|
125
|
+
onEdit?: (record: any) => void;
|
|
126
|
+
onDelete?: (record: any) => void;
|
|
127
|
+
onBulkDelete?: (records: any[]) => void;
|
|
46
128
|
}
|
|
47
129
|
/**
|
|
48
130
|
* Filter-builder / view operator → filter-AST operator.
|
|
@@ -56,16 +138,34 @@ export interface ListViewProps {
|
|
|
56
138
|
* Exported for that test. @internal
|
|
57
139
|
*/
|
|
58
140
|
export declare function mapOperator(op: string): string;
|
|
141
|
+
/**
|
|
142
|
+
* Opt-in `FilterBuilder` operators the list toolbar offers — deliberately NONE
|
|
143
|
+
* (objectui#4736).
|
|
144
|
+
*
|
|
145
|
+
* `OPT_IN_OPERATORS` in `@object-ui/components` withholds the operator ids that
|
|
146
|
+
* only the MongoDB-style criteria dialect can carry. This toolbar persists into
|
|
147
|
+
* the other two, and into BOTH of them at once:
|
|
148
|
+
*
|
|
149
|
+
* - the array/triplet filter AST, via `mapOperator` above, for the live grid;
|
|
150
|
+
* - `ViewFilterRule[]`, via app-shell's `foldFilterGroupToSpecRules`, when the
|
|
151
|
+
* user saves the panel's group as a view.
|
|
152
|
+
*
|
|
153
|
+
* Neither vocabulary has a case-insensitive contains or an existence operator,
|
|
154
|
+
* so this surface opts into nothing. Named and passed explicitly rather than
|
|
155
|
+
* omitted at the call site: this constant is the handle
|
|
156
|
+
* `list-offered-operator-expressible-parity.test.ts` reads to compute what the
|
|
157
|
+
* toolbar actually offers, and an inline `extraOperators` added later would
|
|
158
|
+
* otherwise widen the dropdown without the parity test noticing.
|
|
159
|
+
*
|
|
160
|
+
* @internal exported for that test
|
|
161
|
+
*/
|
|
162
|
+
export declare const LIST_VIEW_EXTRA_OPERATORS: readonly string[];
|
|
59
163
|
/**
|
|
60
164
|
* Normalize a single filter condition: convert `in`/not-in operators
|
|
61
165
|
* into backend-compatible `or`/`and` of equality conditions.
|
|
62
166
|
* E.g., ['status', 'in', ['a','b']] → ['or', ['status','=','a'], ['status','=','b']]
|
|
63
167
|
*/
|
|
64
168
|
export declare function normalizeFilterCondition(condition: any[]): any[];
|
|
65
|
-
/**
|
|
66
|
-
* Format an action identifier string into a human-readable label.
|
|
67
|
-
* e.g., 'send_email' → 'Send Email'
|
|
68
|
-
*/
|
|
69
169
|
/**
|
|
70
170
|
* Normalize a view's `sort` declaration to SortItem[]. @objectstack/spec
|
|
71
171
|
* ListViewSchema.sort is `string | Array<{ field, order }>` — the TOP-LEVEL
|
|
@@ -92,6 +192,37 @@ export declare function resolveAddRecordPlacement(position: unknown): {
|
|
|
92
192
|
top: boolean;
|
|
93
193
|
bottom: boolean;
|
|
94
194
|
};
|
|
195
|
+
/**
|
|
196
|
+
* The date axis a timeline view renders on.
|
|
197
|
+
*
|
|
198
|
+
* ONE resolution, consumed by both read-sites that decide the timeline's fate:
|
|
199
|
+
* the capability gate (may this view offer the Timeline visualization?) and the
|
|
200
|
+
* timeline render branch (which field does it bucket by?). Those two used to
|
|
201
|
+
* carry separate, unequal source lists, and the gate was the wider of the pair —
|
|
202
|
+
* it accepted `options.calendar.startDateField` as a timeline-resolvable axis
|
|
203
|
+
* while the render branch never read calendar config at all. A view that binds
|
|
204
|
+
* its dates under `calendar` therefore got the Timeline option offered and then
|
|
205
|
+
* bucketed every record into "No date" (objectui#3129), which is exactly the
|
|
206
|
+
* shape the report isolated: the same fields render fine in Calendar and Gantt.
|
|
207
|
+
*
|
|
208
|
+
* A calendar binding IS a legitimate timeline axis in this product, not a
|
|
209
|
+
* lenient fallback bolted on here: the capability gate has always said so, and
|
|
210
|
+
* `InterfaceListPage` derives a timeline's default binding from the very same
|
|
211
|
+
* `defaultCalendarFromObject` helper it uses for calendars. What was missing is
|
|
212
|
+
* that one of the two read-sites never honoured the promise the other made.
|
|
213
|
+
*
|
|
214
|
+
* Both nestings are read at each level, spec-canonical key first: the
|
|
215
|
+
* spec-authored `schema.timeline` / `schema.calendar` and the legacy
|
|
216
|
+
* `schema.options.*` twin that app-shell's object pages still emit. `dateField`
|
|
217
|
+
* is the pre-#2231 alias for `startDateField`.
|
|
218
|
+
*
|
|
219
|
+
* Exported for the regression suite, which pins each authoring shape.
|
|
220
|
+
*/
|
|
221
|
+
export declare function resolveTimelineDateBinding(schema: any): {
|
|
222
|
+
startDateField?: string;
|
|
223
|
+
endDateField?: string;
|
|
224
|
+
titleField?: string;
|
|
225
|
+
};
|
|
95
226
|
/**
|
|
96
227
|
* Normalize an array of filter conditions, expanding `in`/`not in` operators
|
|
97
228
|
* and ensuring consistent AST structure.
|
|
@@ -141,6 +272,7 @@ export declare function convertFilterGroupToAST(group: FilterGroup): any[];
|
|
|
141
272
|
* `$expand` substituted for it (see `toPredicateRecord`).
|
|
142
273
|
*/
|
|
143
274
|
export declare function evaluateConditionalFormatting(record: Record<string, unknown>, rules?: ListViewSchema['conditionalFormatting'], scope?: Record<string, unknown>, fields?: unknown): React.CSSProperties;
|
|
275
|
+
export declare const LIST_DEFAULT_TRANSLATIONS: Record<string, string>;
|
|
144
276
|
/**
|
|
145
277
|
* Imperative handle exposed by ListView via React.forwardRef.
|
|
146
278
|
* Allows parent components to trigger a data refresh programmatically.
|
|
@@ -157,5 +289,5 @@ export interface ListViewHandle {
|
|
|
157
289
|
/** Force the ListView to re-fetch data from the DataSource */
|
|
158
290
|
refresh(): void;
|
|
159
291
|
}
|
|
160
|
-
export declare const ListView: React.ForwardRefExoticComponent<
|
|
292
|
+
export declare const ListView: React.ForwardRefExoticComponent<ListViewProps & React.RefAttributes<ListViewHandle>>;
|
|
161
293
|
//# sourceMappingURL=ListView.d.ts.map
|
package/dist/ListView.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../src/ListView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../src/ListView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ListViewHandle, ListViewProps } from './ListView';
|
|
3
|
+
/**
|
|
4
|
+
* Registry entry point for `<ListView>` — two bridges in one component.
|
|
5
|
+
*
|
|
6
|
+
* ## 1. The data-source ADAPTER (#3144)
|
|
7
|
+
*
|
|
8
|
+
* `ListView` reads `props.dataSource` (the injected adapter), and
|
|
9
|
+
* `SchemaRenderer` never passes it — it only puts the data source on
|
|
10
|
+
* `SchemaRendererContext`. Registering the component bare meant that on the
|
|
11
|
+
* registry/SDUI path (a metadata page, a `kind:'react'` page, the designer
|
|
12
|
+
* preview) it received no data source at all: its `getObjectSchema` effect
|
|
13
|
+
* returned immediately, nothing was ever fetched, and it rendered the "Nothing
|
|
14
|
+
* here" empty state — while its registry `inputs` declared `objectName`
|
|
15
|
+
* **required**. The app never showed this because the console reaches ListView
|
|
16
|
+
* through `ObjectView`'s `renderListView` render-prop, which passes a data
|
|
17
|
+
* source itself. That is the objectstack#4413 shape (a declared binding nothing
|
|
18
|
+
* can consume), caught by
|
|
19
|
+
* `apps/console/src/__tests__/public-block-binding-reach.test.tsx` rather than by
|
|
20
|
+
* hand. `object-form`, `object-kanban` and `object-calendar` carry the same
|
|
21
|
+
* one-line bridge.
|
|
22
|
+
*
|
|
23
|
+
* An explicit `dataSource` prop still wins — hosts that pass their own (as
|
|
24
|
+
* `ObjectView` does) are unaffected. `useContext` rather than
|
|
25
|
+
* `useSchemaContext()` because the latter throws outside a provider, and a bare
|
|
26
|
+
* `<ListView>` with a host-supplied data source must keep working.
|
|
27
|
+
*
|
|
28
|
+
* ## 2. The spec's per-element data BINDING (objectstack#5576)
|
|
29
|
+
*
|
|
30
|
+
* `PageComponentSchema.dataSource` — `{ object, view?, filter?, sort?, limit? }` —
|
|
31
|
+
* is how a page component declares what to query. It was published and unread:
|
|
32
|
+
* `resolveElementDataSource` dropped `view`, had no caller outside its own test,
|
|
33
|
+
* and nothing mapped `object` onto `objectName`. Worse, the binding and the
|
|
34
|
+
* adapter above collide by NAME, so a page that wrote the binding the spec
|
|
35
|
+
* documents got the plain `{ object, view }` object where the adapter belongs:
|
|
36
|
+
* the first `dataSource.find(…)` threw `dataSource.find is not a function` and
|
|
37
|
+
* the list rendered **"Couldn't load records"**. Three `list-view` components on
|
|
38
|
+
* one home page, the two without `dataSource` fine and the spec-compliant one
|
|
39
|
+
* broken, is the single-variable reproduction in the issue.
|
|
40
|
+
*
|
|
41
|
+
* `SchemaRenderer` no longer spreads the schema's `dataSource` as a prop, which
|
|
42
|
+
* removes the collision at its source. This component completes the other half:
|
|
43
|
+
* it maps the binding onto the props `ListView` actually reads, resolving a named
|
|
44
|
+
* saved view through `ElementDataSourceGate`.
|
|
45
|
+
*
|
|
46
|
+
* ### Where the precedence table lives (objectui#4038)
|
|
47
|
+
*
|
|
48
|
+
* It is NOT here. objectstack#5576 landed this block's own ~45-line copy of
|
|
49
|
+
* "binding overrides the component key / a view is only a baseline / `filter`
|
|
50
|
+
* AND-combines / an empty `columns` counts as unauthored / the row cap lands on
|
|
51
|
+
* `pagination.pageSize` / `viewType` only when undeclared", and objectstack#6953
|
|
52
|
+
* then lifted that same table into `@object-ui/react` when the other eight
|
|
53
|
+
* object-bound blocks needed it. Two copies of one table is how the spec's
|
|
54
|
+
* "*additional* filter criteria" quietly becomes two dialects — the next person
|
|
55
|
+
* to change the rules changes one side. So the table now lives ONCE, in
|
|
56
|
+
* {@link ElementDataSourceGate}, and this block contributes only the part that is
|
|
57
|
+
* genuinely its own: {@link LIST_VIEW_DATA_SOURCE}, the names of the keys it
|
|
58
|
+
* reads. The behaviour is unchanged in both directions — that objectstack#5576's
|
|
59
|
+
* whole suite passes here untouched is the acceptance criterion of the
|
|
60
|
+
* convergence, not a happy accident.
|
|
61
|
+
*
|
|
62
|
+
* An unresolvable `view` still fails loudly (the gate renders the configuration
|
|
63
|
+
* error rather than falling back to the object's default view): silently widening
|
|
64
|
+
* a named view to "all records" is the failure class the binding exists to
|
|
65
|
+
* remove, and the one an AI-authored page hides best.
|
|
66
|
+
*/
|
|
67
|
+
declare const ListViewBlock: React.ForwardRefExoticComponent<ListViewProps & React.RefAttributes<ListViewHandle>>;
|
|
68
|
+
export { ListViewBlock };
|
|
69
|
+
//# sourceMappingURL=ListViewBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListViewBlock.d.ts","sourceRoot":"","sources":["../src/ListViewBlock.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAqB,MAAM,OAAO,CAAC;AAO1C,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAqB/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,QAAA,MAAM,aAAa,sFAwBjB,CAAC;AAGH,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFilters.d.ts","sourceRoot":"","sources":["../src/UserFilters.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"UserFilters.d.ts","sourceRoot":"","sources":["../src/UserFilters.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAmDvD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,GAAG,OAAO,GAAG,MAAM,CAMpG,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,wDAAwD;IACxD,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,yCAAyC;IACzC,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACrE;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;CAC7F;AA6ED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,SAAS,EACT,IAAS,EACT,cAAc,EACd,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,gBAAgB,4BA+ClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSwitcher.d.ts","sourceRoot":"","sources":["../src/ViewSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ViewSwitcher.d.ts","sourceRoot":"","sources":["../src/ViewSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,GACV,UAAU,GACV,OAAO,GACP,KAAK,GACL,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0GD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0G5D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwDpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../src/components/TabBar.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../src/components/TabBar.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkED;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA6DxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAsE9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSettingsPopover.d.ts","sourceRoot":"","sources":["../../src/components/ViewSettingsPopover.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IACvC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAE/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAExC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IAChF,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IAElG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAE9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEjD,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"ViewSettingsPopover.d.ts","sourceRoot":"","sources":["../../src/components/ViewSettingsPopover.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IACvC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAE/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAExC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IAChF,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IAElG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAE9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEjD,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,qBAwNlE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { ListView } from './ListView';
|
|
2
|
+
import { ListViewBlock } from './ListViewBlock';
|
|
2
3
|
import { ViewSwitcher } from './ViewSwitcher';
|
|
3
4
|
import { ObjectGallery } from './ObjectGallery';
|
|
4
|
-
export { ListView, ViewSwitcher, ObjectGallery };
|
|
5
|
+
export { ListView, ListViewBlock, ViewSwitcher, ObjectGallery };
|
|
5
6
|
export { ViewSwitcherDropdown } from './ViewSwitcher';
|
|
6
7
|
export { TabBar, TabBarSelect } from './components/TabBar';
|
|
7
8
|
export type { TabBarProps, ViewTab } from './components/TabBar';
|
|
8
9
|
export { UserFilters } from './UserFilters';
|
|
9
10
|
export type { UserFiltersProps } from './UserFilters';
|
|
10
11
|
export { evaluateConditionalFormatting, normalizeFilterCondition, normalizeFilters } from './ListView';
|
|
12
|
+
export { LIST_DEFAULT_TRANSLATIONS } from './ListView';
|
|
11
13
|
export type { ListViewProps, ListViewHandle } from './ListView';
|
|
12
14
|
export type { ObjectGalleryProps } from './ObjectGallery';
|
|
13
15
|
export type { ViewSwitcherProps, ViewType } from './ViewSwitcher';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGvG,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|