@object-ui/plugin-timeline 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 +400 -0
- package/README.md +0 -11
- package/dist/ObjectTimeline.d.ts +35 -0
- package/dist/ObjectTimeline.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +151 -135
- package/dist/index.umd.cjs +1 -1
- package/dist/renderer.d.ts +19 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/useTimelineTranslation.d.ts +25 -0
- package/dist/useTimelineTranslation.d.ts.map +1 -1
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,400 @@
|
|
|
1
1
|
# @object-ui/plugin-timeline
|
|
2
2
|
|
|
3
|
+
## 17.6.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [88085e3]
|
|
8
|
+
- Updated dependencies [69251bf]
|
|
9
|
+
- Updated dependencies [57e668f]
|
|
10
|
+
- Updated dependencies [516663d]
|
|
11
|
+
- Updated dependencies [41ac1b7]
|
|
12
|
+
- Updated dependencies [1eaf0a1]
|
|
13
|
+
- Updated dependencies [460c4d0]
|
|
14
|
+
- Updated dependencies [0ae27f7]
|
|
15
|
+
- Updated dependencies [2533ec5]
|
|
16
|
+
- Updated dependencies [78c0f9a]
|
|
17
|
+
- Updated dependencies [bbe8b86]
|
|
18
|
+
- Updated dependencies [8477be5]
|
|
19
|
+
- Updated dependencies [279fb13]
|
|
20
|
+
- Updated dependencies [2e82ab2]
|
|
21
|
+
- Updated dependencies [ad07b65]
|
|
22
|
+
- Updated dependencies [41f498b]
|
|
23
|
+
- Updated dependencies [ef0d150]
|
|
24
|
+
- Updated dependencies [f34226e]
|
|
25
|
+
- Updated dependencies [564b605]
|
|
26
|
+
- Updated dependencies [e1d4251]
|
|
27
|
+
- Updated dependencies [40d3a33]
|
|
28
|
+
- Updated dependencies [8b9dc62]
|
|
29
|
+
- Updated dependencies [1184192]
|
|
30
|
+
- Updated dependencies [a2a9747]
|
|
31
|
+
- Updated dependencies [a1609a6]
|
|
32
|
+
- Updated dependencies [53f23bc]
|
|
33
|
+
- Updated dependencies [c4533dc]
|
|
34
|
+
- Updated dependencies [be60815]
|
|
35
|
+
- Updated dependencies [37f6844]
|
|
36
|
+
- Updated dependencies [93de4f6]
|
|
37
|
+
- Updated dependencies [2b50261]
|
|
38
|
+
- Updated dependencies [384f30d]
|
|
39
|
+
- Updated dependencies [ac600e5]
|
|
40
|
+
- Updated dependencies [97fba31]
|
|
41
|
+
- Updated dependencies [232f61a]
|
|
42
|
+
- Updated dependencies [d374caf]
|
|
43
|
+
- Updated dependencies [5673576]
|
|
44
|
+
- Updated dependencies [c1ef923]
|
|
45
|
+
- Updated dependencies [911ceaa]
|
|
46
|
+
- Updated dependencies [98eab36]
|
|
47
|
+
- Updated dependencies [af5e292]
|
|
48
|
+
- Updated dependencies [3fbbea1]
|
|
49
|
+
- Updated dependencies [5458414]
|
|
50
|
+
- Updated dependencies [7f96b10]
|
|
51
|
+
- Updated dependencies [167ec42]
|
|
52
|
+
- Updated dependencies [616a2a5]
|
|
53
|
+
- Updated dependencies [0046d8f]
|
|
54
|
+
- Updated dependencies [f1d4748]
|
|
55
|
+
- Updated dependencies [bea374e]
|
|
56
|
+
- Updated dependencies [b1119ec]
|
|
57
|
+
- Updated dependencies [9f23d2b]
|
|
58
|
+
- Updated dependencies [578e025]
|
|
59
|
+
- Updated dependencies [af025ee]
|
|
60
|
+
- Updated dependencies [d109a4d]
|
|
61
|
+
- Updated dependencies [598c89a]
|
|
62
|
+
- Updated dependencies [4a0bd17]
|
|
63
|
+
- Updated dependencies [b8b9af4]
|
|
64
|
+
- Updated dependencies [31676be]
|
|
65
|
+
- Updated dependencies [8c0d52e]
|
|
66
|
+
- Updated dependencies [aff10e2]
|
|
67
|
+
- Updated dependencies [70a774b]
|
|
68
|
+
- Updated dependencies [9ce096f]
|
|
69
|
+
- Updated dependencies [e05db88]
|
|
70
|
+
- Updated dependencies [7458a41]
|
|
71
|
+
- Updated dependencies [ad13d63]
|
|
72
|
+
- Updated dependencies [5ffcc14]
|
|
73
|
+
- Updated dependencies [d971e51]
|
|
74
|
+
- Updated dependencies [97abb24]
|
|
75
|
+
- Updated dependencies [deb157a]
|
|
76
|
+
- Updated dependencies [9c60144]
|
|
77
|
+
- Updated dependencies [d2ce342]
|
|
78
|
+
- Updated dependencies [9695da7]
|
|
79
|
+
- Updated dependencies [75444e3]
|
|
80
|
+
- Updated dependencies [58b8346]
|
|
81
|
+
- Updated dependencies [2d0bd16]
|
|
82
|
+
- Updated dependencies [a9e17b4]
|
|
83
|
+
- Updated dependencies [b8ce7dc]
|
|
84
|
+
- Updated dependencies [dad51e5]
|
|
85
|
+
- Updated dependencies [1c9c342]
|
|
86
|
+
- Updated dependencies [787c738]
|
|
87
|
+
- Updated dependencies [8396656]
|
|
88
|
+
- Updated dependencies [dbbd38a]
|
|
89
|
+
- Updated dependencies [8871c14]
|
|
90
|
+
- Updated dependencies [93fe362]
|
|
91
|
+
- Updated dependencies [dfc6975]
|
|
92
|
+
- Updated dependencies [3cf4de0]
|
|
93
|
+
- Updated dependencies [c9dc811]
|
|
94
|
+
- Updated dependencies [144ef9b]
|
|
95
|
+
- Updated dependencies [138ab04]
|
|
96
|
+
- Updated dependencies [a0b9e91]
|
|
97
|
+
- Updated dependencies [99bd015]
|
|
98
|
+
- Updated dependencies [21e4585]
|
|
99
|
+
- @object-ui/types@17.6.0
|
|
100
|
+
- @object-ui/i18n@17.6.0
|
|
101
|
+
- @object-ui/react@17.6.0
|
|
102
|
+
- @object-ui/components@17.6.0
|
|
103
|
+
- @object-ui/core@17.6.0
|
|
104
|
+
- @object-ui/mobile@17.6.0
|
|
105
|
+
|
|
106
|
+
## 17.5.0
|
|
107
|
+
|
|
108
|
+
### Minor Changes
|
|
109
|
+
|
|
110
|
+
- 01c9188: fix(plugin-timeline): dates follow the active locale instead of a hardcoded en-US
|
|
111
|
+
|
|
112
|
+
A `zh` console rendered a fully Chinese timeline widget whose axis read
|
|
113
|
+
`Aug 11` / `Sep 2026` and whose item dates read `August 11, 2026`
|
|
114
|
+
(objectui#4513). `renderer.tsx` handed `Intl` a literal `'en-US'` at four sites
|
|
115
|
+
— the hour, day and month gantt headers, and the `long` item date — so nothing
|
|
116
|
+
a user or a tenant configured could reach them.
|
|
117
|
+
|
|
118
|
+
A fifth site was the same defect spelled as an omission: the `short` item date
|
|
119
|
+
called `toLocaleDateString()` with no tag at all, which means the _machine's_
|
|
120
|
+
locale. It agreed with the other four only by the accident of an en-US runner,
|
|
121
|
+
and rendered a third locale on anyone else's machine.
|
|
122
|
+
|
|
123
|
+
All five now resolve through `useDisplayLocale()` from `@object-ui/i18n`
|
|
124
|
+
(tenant regional default → active UI language → `en`) — the one channel every
|
|
125
|
+
field, number and currency renderer already uses, converged there in
|
|
126
|
+
objectui#4468. The locale is read once in `TimelineRenderer` and threaded into
|
|
127
|
+
the two module-level date helpers, which cannot host a hook themselves.
|
|
128
|
+
|
|
129
|
+
English output is byte-identical at all five sites: `'en'` and the retired
|
|
130
|
+
`'en-US'` produce the same forms, and `generateTimeScaleHeaders` gained an
|
|
131
|
+
optional trailing `locale` parameter that defaults to `'en'`, so existing
|
|
132
|
+
three-argument callers are unaffected. The locale-free header vocabularies
|
|
133
|
+
(`Week n`, `Qn YYYY`, `YYYY`) and all non-date rendering are untouched.
|
|
134
|
+
|
|
135
|
+
- 0082db8: The timeline's gantt bucket labels and its row-label default speak the session language
|
|
136
|
+
|
|
137
|
+
objectui#4513 routed every `Intl` call in the timeline renderer through `useDisplayLocale()`, so a Chinese session renders `2026年8月` on the month axis and `2026年8月11日` on item dates. Three sibling strings in the same renderer never went through `Intl` at all and stayed English on that same Chinese axis: the `week` header (`Week 1`), the `quarter` header (`Q3 2026`), and the gantt row-label column default (`Items`). The half-fixed state was the visible one — a Chinese date axis with English bucket labels beside it.
|
|
138
|
+
|
|
139
|
+
They are a translation concern rather than a locale-resolver one, and that distinction is the fix: a locale TAG formats a date, only a TRANSLATION spells a word. All three now resolve through the package's existing channel — `useTimelineTranslation` / `TIMELINE_DEFAULT_TRANSLATIONS`, the `createSafeTranslation` factory `ObjectTimeline` already uses for `timeline.bucket.*` — under three new keys carried by all ten locale packs: `timeline.scale.week`, `timeline.scale.quarter`, `timeline.gantt.rowLabel`.
|
|
140
|
+
|
|
141
|
+
The week number and the quarter/year ride the channel's own `{{hole}}` parameters rather than being concatenated, because the word order belongs to the translation: Chinese puts the year first (`2026年第3季度`), which no `Q${q} ${year}` template can produce at all. Only the row-label DEFAULT moved — an author who writes `rowLabel` still supplies their own string, and the `year` scale stays a bare `String(getFullYear())` with no vocabulary in it to translate.
|
|
142
|
+
|
|
143
|
+
English output is byte-identical to the retired literals: the `en` pack values are the same two templates the code used to interpolate by hand. `generateTimeScaleHeaders` is a pure exported function and cannot host a hook, so the translate fn is threaded in as an optional fifth parameter on the seam #4513 opened for `locale`, defaulting to the package's own defaults table — the same lookup the channel serves with no `I18nProvider` mounted. Existing three- and four-argument call sites are unaffected.
|
|
144
|
+
|
|
145
|
+
One consequence is worth stating because it looks like a bug and is not: dates and vocabulary resolve through different channels on purpose. `useDisplayLocale()` puts the tenant's regional default first (how this organization writes dates), while `t` follows the UI language (what this user reads). A tenant configured `en` whose user reads Chinese chrome therefore sees `Aug 2026` beside `第 1 周` — the same split `timeline.bucket.*` has always had.
|
|
146
|
+
|
|
147
|
+
### Patch Changes
|
|
148
|
+
|
|
149
|
+
- Updated dependencies [0e67b53]
|
|
150
|
+
- Updated dependencies [ceccdcf]
|
|
151
|
+
- Updated dependencies [d6e5124]
|
|
152
|
+
- Updated dependencies [debad27]
|
|
153
|
+
- Updated dependencies [dc2aa3e]
|
|
154
|
+
- Updated dependencies [ee66e2e]
|
|
155
|
+
- Updated dependencies [ee26e65]
|
|
156
|
+
- Updated dependencies [5900ac5]
|
|
157
|
+
- Updated dependencies [932cbcd]
|
|
158
|
+
- Updated dependencies [734d186]
|
|
159
|
+
- Updated dependencies [f650253]
|
|
160
|
+
- Updated dependencies [3d9769a]
|
|
161
|
+
- Updated dependencies [8f85f8b]
|
|
162
|
+
- Updated dependencies [d0c3b26]
|
|
163
|
+
- Updated dependencies [3fc2971]
|
|
164
|
+
- Updated dependencies [aca27fa]
|
|
165
|
+
- Updated dependencies [dde7283]
|
|
166
|
+
- Updated dependencies [f7c6430]
|
|
167
|
+
- Updated dependencies [4dadf0d]
|
|
168
|
+
- Updated dependencies [ae10a01]
|
|
169
|
+
- Updated dependencies [92876f0]
|
|
170
|
+
- Updated dependencies [f279deb]
|
|
171
|
+
- Updated dependencies [4b70d28]
|
|
172
|
+
- Updated dependencies [eb7f586]
|
|
173
|
+
- Updated dependencies [e901131]
|
|
174
|
+
- Updated dependencies [d9d3463]
|
|
175
|
+
- Updated dependencies [2a40f69]
|
|
176
|
+
- Updated dependencies [bec3e14]
|
|
177
|
+
- Updated dependencies [613b167]
|
|
178
|
+
- Updated dependencies [b4d3c22]
|
|
179
|
+
- Updated dependencies [1f9b905]
|
|
180
|
+
- Updated dependencies [cb13400]
|
|
181
|
+
- Updated dependencies [828549a]
|
|
182
|
+
- Updated dependencies [e1ade8f]
|
|
183
|
+
- Updated dependencies [bc64bfe]
|
|
184
|
+
- Updated dependencies [abb0f81]
|
|
185
|
+
- Updated dependencies [38ab505]
|
|
186
|
+
- Updated dependencies [3e19fe7]
|
|
187
|
+
- Updated dependencies [bb58d1d]
|
|
188
|
+
- Updated dependencies [5cc847c]
|
|
189
|
+
- Updated dependencies [fa21254]
|
|
190
|
+
- Updated dependencies [33c32bf]
|
|
191
|
+
- Updated dependencies [66fb4fa]
|
|
192
|
+
- Updated dependencies [b953a97]
|
|
193
|
+
- Updated dependencies [d7f3e30]
|
|
194
|
+
- Updated dependencies [6d641c9]
|
|
195
|
+
- Updated dependencies [7e4f0e5]
|
|
196
|
+
- Updated dependencies [c911544]
|
|
197
|
+
- Updated dependencies [a84385b]
|
|
198
|
+
- Updated dependencies [45e1949]
|
|
199
|
+
- Updated dependencies [92250d6]
|
|
200
|
+
- Updated dependencies [c1d939f]
|
|
201
|
+
- Updated dependencies [58bebf6]
|
|
202
|
+
- Updated dependencies [405e808]
|
|
203
|
+
- Updated dependencies [49ae9f4]
|
|
204
|
+
- Updated dependencies [a3ae404]
|
|
205
|
+
- Updated dependencies [bfdf3d4]
|
|
206
|
+
- Updated dependencies [bb68488]
|
|
207
|
+
- Updated dependencies [c0f9a4b]
|
|
208
|
+
- Updated dependencies [b1e42d0]
|
|
209
|
+
- Updated dependencies [2459a3e]
|
|
210
|
+
- Updated dependencies [ac853ce]
|
|
211
|
+
- Updated dependencies [fa51109]
|
|
212
|
+
- Updated dependencies [d6aa172]
|
|
213
|
+
- Updated dependencies [fe52a04]
|
|
214
|
+
- Updated dependencies [d46f9b8]
|
|
215
|
+
- Updated dependencies [3f5f87c]
|
|
216
|
+
- Updated dependencies [2fea4d2]
|
|
217
|
+
- Updated dependencies [f5e1143]
|
|
218
|
+
- Updated dependencies [7f1cb33]
|
|
219
|
+
- Updated dependencies [f148a64]
|
|
220
|
+
- Updated dependencies [bb68488]
|
|
221
|
+
- Updated dependencies [2e3b0c0]
|
|
222
|
+
- Updated dependencies [9461dd3]
|
|
223
|
+
- Updated dependencies [78fa331]
|
|
224
|
+
- Updated dependencies [47f551b]
|
|
225
|
+
- Updated dependencies [31ab1ac]
|
|
226
|
+
- Updated dependencies [0082db8]
|
|
227
|
+
- Updated dependencies [ab04728]
|
|
228
|
+
- Updated dependencies [5bf09fd]
|
|
229
|
+
- Updated dependencies [06915b0]
|
|
230
|
+
- Updated dependencies [ff84b05]
|
|
231
|
+
- @object-ui/i18n@17.5.0
|
|
232
|
+
- @object-ui/react@17.5.0
|
|
233
|
+
- @object-ui/components@17.5.0
|
|
234
|
+
- @object-ui/core@17.5.0
|
|
235
|
+
- @object-ui/types@17.5.0
|
|
236
|
+
- @object-ui/mobile@17.5.0
|
|
237
|
+
|
|
238
|
+
## 17.4.0
|
|
239
|
+
|
|
240
|
+
### Patch Changes
|
|
241
|
+
|
|
242
|
+
- 022002a: `PageComponentSchema.dataSource` now reaches the remaining object-bound public
|
|
243
|
+
blocks: `object-gantt` / `object-timeline` / `object-map` / `object-pivot` /
|
|
244
|
+
`object-master-detail-form` / `embeddable-form` / `record:line_items`
|
|
245
|
+
(objectstack#7121).
|
|
246
|
+
|
|
247
|
+
objectstack#6953 wired the spec's per-element data binding
|
|
248
|
+
(`dataSource: { object, view?, filter?, sort?, limit? }`) to the eight blocks it
|
|
249
|
+
named and left the same declaration inert on these seven. Each gates its fetch on
|
|
250
|
+
its own object key and nothing mapped `dataSource.object` onto it, so a page
|
|
251
|
+
written the way the spec documents rendered an empty gantt / an empty timeline
|
|
252
|
+
rail / a map with no markers / an empty cross-tab / a field-less form — with no
|
|
253
|
+
request and no diagnostic anywhere. Spec-valid metadata rendering nothing is the
|
|
254
|
+
objectstack#4413 shape.
|
|
255
|
+
|
|
256
|
+
Composition follows objectstack#5576's landed semantics unchanged, through the
|
|
257
|
+
shared `ElementDataSourceGate` (no change to it or to the resolution layer): a
|
|
258
|
+
named saved view supplies the baseline, a key written on the component itself
|
|
259
|
+
overrides it, an explicit binding key overrides both, `filter` AND-combines
|
|
260
|
+
("additional filter criteria" — a binding can narrow a view, never widen it), and
|
|
261
|
+
a `view` name that does not resolve renders a configuration error on every one of
|
|
262
|
+
these blocks instead of degrading to the object's full scope.
|
|
263
|
+
|
|
264
|
+
Each block maps **only** the keys it genuinely reads, which for this batch means
|
|
265
|
+
several keys stay deliberately unmapped rather than being parked somewhere
|
|
266
|
+
plausible:
|
|
267
|
+
|
|
268
|
+
- `object-gantt` and `object-map` take `object` / `filter` / `sort`; neither has a
|
|
269
|
+
row cap or a field-list read site.
|
|
270
|
+
- `object-pivot` takes `object` / `filter`; a cross-tab orders itself by its own
|
|
271
|
+
row/column grouping and cannot be computed over a truncated page.
|
|
272
|
+
- `object-timeline` takes `object` only — its fetch is
|
|
273
|
+
`find(objectName, { options: { $top: 100 } })`, with no filter/sort read site
|
|
274
|
+
at all, so a named view is error-checked and then contributes nothing.
|
|
275
|
+
- `embeddable-form` and `object-master-detail-form` take `object` only (the
|
|
276
|
+
parent object, in the master-detail case); a form that writes one record has no
|
|
277
|
+
collection query for `filter` / `sort` / `limit` to narrow.
|
|
278
|
+
- `record:line_items` takes `object` onto **`childObject`** — the collection it
|
|
279
|
+
actually lists — and nothing else: its query is the parent FK plus a fixed
|
|
280
|
+
`$top: 500`, and its `columns` are editable `GridColumn` objects rather than a
|
|
281
|
+
field-name projection a view could supply.
|
|
282
|
+
|
|
283
|
+
The per-block coverage table, including every residual gap named above, is in
|
|
284
|
+
`content/docs/guide/data-source.md`.
|
|
285
|
+
|
|
286
|
+
No behaviour change for a block that carries no `dataSource`: the binding-free
|
|
287
|
+
path returns the schema by reference, so nothing remounts and nothing refetches.
|
|
288
|
+
|
|
289
|
+
- 523be48: `object-timeline` and `record:line_items` now apply the filter / sort / row cap they are given, so a named `dataSource.view` narrows them instead of contributing nothing
|
|
290
|
+
|
|
291
|
+
These were the two residual gaps in objectstack#7121's per-block coverage table
|
|
292
|
+
(objectstack#7137). Both blocks are object-bound lists, both accepted the spec's
|
|
293
|
+
per-element `dataSource` binding, and neither had a read site for `filter` or
|
|
294
|
+
`sort` anywhere in its fetch:
|
|
295
|
+
|
|
296
|
+
- `object-timeline`'s entire query was
|
|
297
|
+
`find(objectName, { options: { $top: 100 } })`.
|
|
298
|
+
- `record:line_items`' was the parent FK plus a fixed `$top: 500`.
|
|
299
|
+
|
|
300
|
+
So `dataSource: { object, view: 'hot' }` resolved the view — a typo still reported
|
|
301
|
+
a configuration error, it never degraded into an unfiltered query — and then
|
|
302
|
+
dropped everything the view said. The rendered rows could be **wider than the view
|
|
303
|
+
they named**, silently, which is exactly the class of mistake AI-authored metadata
|
|
304
|
+
hides best: the page looks like it works. objectstack#7121 deliberately left the
|
|
305
|
+
keys unmapped and recorded the gap rather than writing composed values onto schema
|
|
306
|
+
keys nobody read; this closes it at the fetch instead.
|
|
307
|
+
|
|
308
|
+
What each block now reads:
|
|
309
|
+
|
|
310
|
+
- **`object-timeline`** — `$filter: schema.filter`,
|
|
311
|
+
`$orderby: convertSortToQueryParams(schema.sort)`, and
|
|
312
|
+
`$top: schema.limit ?? 100`, matching the form `object-gantt` / `object-map` /
|
|
313
|
+
`object-calendar` already use. Its registry mapping gains
|
|
314
|
+
`filter` / `sort` / `limit`; `columns` stays unmapped, because a timeline
|
|
315
|
+
projects the fields its `timeline` config names.
|
|
316
|
+
- **`record:line_items`** — the composed filter is **AND-combined** with the parent
|
|
317
|
+
relationship condition through `mergeFilterNodes`, never substituted for it, the
|
|
318
|
+
same way `record:related_list` composes its own since objectstack#7118: a
|
|
319
|
+
line-items panel is always scoped to the record it sits on, so an _additional_
|
|
320
|
+
criterion can only narrow this parent's children and can never surface another
|
|
321
|
+
parent's rows. `sort` becomes the load order and `limit` the row cap (default
|
|
322
|
+
500). `columns` stays unmapped — here they are `GridColumn[]` driving an editable
|
|
323
|
+
grid, not a field-name projection, so a view's column list would be the wrong
|
|
324
|
+
_shape_ rather than merely a wider answer.
|
|
325
|
+
|
|
326
|
+
**Behaviour change worth knowing about:** the timeline's default window is now a
|
|
327
|
+
real cap. `{ options: { $top: 100 } }` nested the limit under a key that is not a
|
|
328
|
+
`QueryParams` field and that no adapter in this repo reads (`convertQueryParams`
|
|
329
|
+
maps `params.$top`), so the intended window never reached the wire and a timeline
|
|
330
|
+
over a large object fetched whatever the server chose to return. It is now sent as
|
|
331
|
+
`$top`, and authorable via `limit` or a view's `pagination.pageSize`.
|
|
332
|
+
|
|
333
|
+
`@object-ui/core` gains `convertSortToQueryParams`, the sort→`$orderby` lowering
|
|
334
|
+
the three sibling blocks each inline privately. It is shared rather than copied
|
|
335
|
+
twice more, and is slightly more faithful to the declared contract than those
|
|
336
|
+
copies: a sort entry that omits `order` means ascending instead of being dropped
|
|
337
|
+
(the string spelling `"amount"` already meant ascending in the same copies), and
|
|
338
|
+
nothing orderable yields `undefined` rather than a truthy empty `{}`. Migrating
|
|
339
|
+
the three existing copies onto it is objectstack#7148 and is not done here.
|
|
340
|
+
|
|
341
|
+
- Updated dependencies [794c497]
|
|
342
|
+
- Updated dependencies [993336f]
|
|
343
|
+
- Updated dependencies [f0a625a]
|
|
344
|
+
- Updated dependencies [b5980f4]
|
|
345
|
+
- Updated dependencies [8aad9fd]
|
|
346
|
+
- Updated dependencies [6719877]
|
|
347
|
+
- Updated dependencies [56ff091]
|
|
348
|
+
- Updated dependencies [7864f03]
|
|
349
|
+
- Updated dependencies [0cbdca8]
|
|
350
|
+
- Updated dependencies [d229dfa]
|
|
351
|
+
- Updated dependencies [ecae400]
|
|
352
|
+
- Updated dependencies [4bc6c23]
|
|
353
|
+
- Updated dependencies [d3e738a]
|
|
354
|
+
- Updated dependencies [c3b01a7]
|
|
355
|
+
- Updated dependencies [f5f8744]
|
|
356
|
+
- Updated dependencies [7ed3360]
|
|
357
|
+
- Updated dependencies [69becd2]
|
|
358
|
+
- Updated dependencies [5e52495]
|
|
359
|
+
- Updated dependencies [0fa5e4d]
|
|
360
|
+
- Updated dependencies [b750823]
|
|
361
|
+
- Updated dependencies [5bfaabd]
|
|
362
|
+
- Updated dependencies [e06810e]
|
|
363
|
+
- Updated dependencies [ab3ad4f]
|
|
364
|
+
- Updated dependencies [c2fd122]
|
|
365
|
+
- Updated dependencies [ac2139c]
|
|
366
|
+
- Updated dependencies [b14ab3a]
|
|
367
|
+
- Updated dependencies [e24d767]
|
|
368
|
+
- Updated dependencies [8c60819]
|
|
369
|
+
- Updated dependencies [aca561a]
|
|
370
|
+
- Updated dependencies [e64a52e]
|
|
371
|
+
- Updated dependencies [844d17f]
|
|
372
|
+
- Updated dependencies [48132f7]
|
|
373
|
+
- Updated dependencies [4dcd52a]
|
|
374
|
+
- Updated dependencies [42ae5c6]
|
|
375
|
+
- Updated dependencies [0ef9dfd]
|
|
376
|
+
- Updated dependencies [1d723e3]
|
|
377
|
+
- Updated dependencies [0109f54]
|
|
378
|
+
- Updated dependencies [7e5bb5d]
|
|
379
|
+
- Updated dependencies [fbc23e0]
|
|
380
|
+
- Updated dependencies [6d762da]
|
|
381
|
+
- Updated dependencies [e6fdbdc]
|
|
382
|
+
- Updated dependencies [54233b1]
|
|
383
|
+
- Updated dependencies [f9faa7d]
|
|
384
|
+
- Updated dependencies [97b63d7]
|
|
385
|
+
- Updated dependencies [6bb454a]
|
|
386
|
+
- Updated dependencies [523be48]
|
|
387
|
+
- Updated dependencies [7e2b7e9]
|
|
388
|
+
- Updated dependencies [33526fd]
|
|
389
|
+
- Updated dependencies [32413ec]
|
|
390
|
+
- Updated dependencies [c1e1e6b]
|
|
391
|
+
- @object-ui/components@17.4.0
|
|
392
|
+
- @object-ui/react@17.4.0
|
|
393
|
+
- @object-ui/core@17.4.0
|
|
394
|
+
- @object-ui/i18n@17.4.0
|
|
395
|
+
- @object-ui/types@17.4.0
|
|
396
|
+
- @object-ui/mobile@17.4.0
|
|
397
|
+
|
|
3
398
|
## 17.3.0
|
|
4
399
|
|
|
5
400
|
### Patch Changes
|
|
@@ -1078,6 +1473,7 @@
|
|
|
1078
1473
|
### Patch Changes
|
|
1079
1474
|
|
|
1080
1475
|
- 1b6dc64: fix: complete Tailwind v3→v4 migration cleanup
|
|
1476
|
+
|
|
1081
1477
|
- Rename deprecated `flex-shrink-0` → `shrink-0` and `flex-grow-N` →
|
|
1082
1478
|
`grow-N` (Tailwind v4 dropped the long-form aliases). Affects
|
|
1083
1479
|
data-table, fields/index, FileField, ChatbotEnhanced,
|
|
@@ -1140,6 +1536,7 @@
|
|
|
1140
1536
|
Library builds (vite lib mode) now externalize every non-relative import instead of bundling third-party CJS dependencies into the published dist. This avoids inlined `require("react")` / `require("react-dom")` calls that cause `Calling \`require\` for "react" in an environment that doesn't expose the \`require\` function` runtime errors when consumer apps re-bundle the published dist.
|
|
1141
1537
|
|
|
1142
1538
|
Specifically fixes:
|
|
1539
|
+
|
|
1143
1540
|
- `@object-ui/plugin-dashboard` no longer inlines `react-grid-layout` (and its transitive `react-draggable` / `react-resizable` CJS bundles). `react-grid-layout` is now declared as a peer dependency so consumers install a single ESM-friendly copy.
|
|
1144
1541
|
- `@object-ui/components`, `@object-ui/plugin-calendar`, `@object-ui/plugin-charts`, `@object-ui/plugin-designer` no longer inline `react-i18next` / `i18next` / `use-sync-external-store` CJS shims.
|
|
1145
1542
|
- All plugin packages now use a unified `external: (id) => !/^[./]/.test(id) && !id.startsWith(__dirname)` rule, ensuring future additions of CJS deps are automatically externalized.
|
|
@@ -1198,15 +1595,18 @@
|
|
|
1198
1595
|
- b2be122: fix(mobile): round 2 — kanban readability, calendar default view, timeline dot clipping
|
|
1199
1596
|
|
|
1200
1597
|
**Kanban**
|
|
1598
|
+
|
|
1201
1599
|
- Remove `font-mono` from card titles, descriptions, column headers, and empty-state labels — CRM cards no longer render in a monospace font.
|
|
1202
1600
|
- Constrain column body height (`max-h-full min-h-0` + `h-full` on the layout root) so `ScrollArea` activates and cards don't bleed past the viewport bottom.
|
|
1203
1601
|
- Opportunistically derive `description` (e.g. `$60K · Acme Corp · @owner`) and up to two `badges` (priority/severity/industry/rating) in `ObjectKanban` when the schema/source omits them, giving mobile cards more context at a glance.
|
|
1204
1602
|
|
|
1205
1603
|
**Calendar**
|
|
1604
|
+
|
|
1206
1605
|
- `ObjectCalendar` previously hardcoded `view={schema.defaultView ?? 'month'}`, making the view-selector dropdown a no-op. Wire the `view` state through to the `<Calendar>` prop so user selection is respected.
|
|
1207
1606
|
- On mobile (viewport < 768 px) coerce `day` defaults to `month` via a synchronous lazy initialiser and a resize/orientation effect — avoids the useless 24-hour empty-hour grid for date-only events.
|
|
1208
1607
|
|
|
1209
1608
|
**Timeline**
|
|
1609
|
+
|
|
1210
1610
|
- Add `ml-3` to the `<Timeline>` `<ol>` so the `absolute -left-3` marker dots are no longer clipped at the scroll-container edge.
|
|
1211
1611
|
|
|
1212
1612
|
- Updated dependencies [a2d7023]
|
package/README.md
CHANGED
|
@@ -75,17 +75,6 @@ const schema = {
|
|
|
75
75
|
};
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
<!-- release-metadata:v3.3.0 -->
|
|
79
|
-
|
|
80
|
-
## Compatibility
|
|
81
|
-
|
|
82
|
-
- **React:** 18.x or 19.x
|
|
83
|
-
- **Node.js:** ≥ 18
|
|
84
|
-
- **TypeScript:** ≥ 5.0 (strict mode)
|
|
85
|
-
- **`@objectstack/spec`:** ^3.3.0
|
|
86
|
-
- **`@objectstack/client`:** ^3.3.0
|
|
87
|
-
- **Tailwind CSS:** ≥ 3.4 (for packages with UI)
|
|
88
|
-
|
|
89
78
|
## Links
|
|
90
79
|
|
|
91
80
|
- 📚 [Documentation](https://www.objectui.org/docs/plugins/plugin-timeline)
|
package/dist/ObjectTimeline.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { DataSource, TimelineSchema, ListViewTimelineConfig } from '@object-ui/types';
|
|
3
|
+
/**
|
|
4
|
+
* Rows fetched when the author declared no `limit`.
|
|
5
|
+
*
|
|
6
|
+
* The number is the one this component has always intended: before
|
|
7
|
+
* objectstack#7137 the fetch passed `{ options: { $top: 100 } }`, and `options`
|
|
8
|
+
* is not a `QueryParams` key — no adapter in this repo reads it, so the cap never
|
|
9
|
+
* reached the wire and the timeline fetched whatever the server chose to return.
|
|
10
|
+
* The window is now real, and authorable.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_TIMELINE_LIMIT = 100;
|
|
3
13
|
export interface ObjectTimelineProps {
|
|
4
14
|
schema: TimelineSchema & {
|
|
5
15
|
objectName?: string;
|
|
@@ -9,6 +19,31 @@ export interface ObjectTimelineProps {
|
|
|
9
19
|
* has always declared on it, and that this renderer now actually reads.
|
|
10
20
|
*/
|
|
11
21
|
timeline?: ListViewTimelineConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Query filter for the object fetch, in any shape `toFilterNode` accepts
|
|
24
|
+
* (spec `ViewFilterRule[]`, ObjectQL AST nodes, or a MongoDB-style object).
|
|
25
|
+
*
|
|
26
|
+
* Read here, not merged here: when a `dataSource` binding is present,
|
|
27
|
+
* `ElementDataSourceGate` has already AND-combined this key with the view's
|
|
28
|
+
* filter and the binding's own before the schema reaches this component
|
|
29
|
+
* (objectstack#7137) — the same single sink every other object-bound block
|
|
30
|
+
* composes through.
|
|
31
|
+
*/
|
|
32
|
+
filter?: any[] | Record<string, any>;
|
|
33
|
+
/**
|
|
34
|
+
* Query ordering — the legacy `"name desc"` clause or the spec's
|
|
35
|
+
* `SortConfig[]`, both lowered through `convertSortToQueryParams`.
|
|
36
|
+
*/
|
|
37
|
+
sort?: string | Array<{
|
|
38
|
+
field?: string;
|
|
39
|
+
order?: 'asc' | 'desc';
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Row cap for the fetch. Defaults to {@link DEFAULT_TIMELINE_LIMIT}; a
|
|
43
|
+
* timeline renders one rail with no pagination control, so this is the
|
|
44
|
+
* author's window rather than a page size.
|
|
45
|
+
*/
|
|
46
|
+
limit?: number;
|
|
12
47
|
/** @deprecated Use timeline.titleField instead */
|
|
13
48
|
titleField?: string;
|
|
14
49
|
/** @deprecated Use timeline.startDateField instead */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectTimeline.d.ts","sourceRoot":"","sources":["../src/ObjectTimeline.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectTimeline.d.ts","sourceRoot":"","sources":["../src/ObjectTimeline.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAS3F;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAuB1C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,GAAG;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;;WAIG;QACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;QAClC;;;;;;;;;WASG;QACH,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrC;;;WAGG;QACH,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;SAAE,CAAC,CAAC;QAClE;;;;WAIG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,kDAAkD;QAClD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,sDAAsD;QACtD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,sDAAsD;QACtD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,oDAAoD;QACpD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,oDAAoD;QACpD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,kDAAkD;QAClD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,6CAA6C;QAC7C,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;QAE/D,OAAO,CAAC,EAAE;YACR,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAA;KACF,CAAC;IACF,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA0WxD,CAAA"}
|
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;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,QAAA,MAAM,QAAQ,iHASZ,CAAA;AAGF,QAAA,MAAM,oBAAoB;;8EASxB,CAAA;AAEF,QAAA,MAAM,YAAY;;qHAShB,CAAA;AAGF,QAAA,MAAM,sBAAsB;;8EAiB3B,CAAA;AAED,KAAK,qBAAqB,GAAG,YAAY,CAAC,OAAO,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAA;AAEnF,QAAA,MAAM,cAAc;cAGN,qBAAqB;wCAUjC,CAAA;AAGF,QAAA,MAAM,eAAe,6GASnB,CAAA;AAGF,QAAA,MAAM,aAAa,qHASjB,CAAA;AAGF,QAAA,MAAM,YAAY,mHAShB,CAAA;AAGF,QAAA,MAAM,mBAAmB,yHASvB,CAAA;AAIF,QAAA,MAAM,kBAAkB,6GAStB,CAAA;AAGF,QAAA,MAAM,sBAAsB,6GAS1B,CAAA;AAIF,QAAA,MAAM,aAAa,6GASjB,CAAA;AAGF,QAAA,MAAM,mBAAmB,6GASvB,CAAA;AAGF,QAAA,MAAM,sBAAsB,6GAS1B,CAAA;AAGF,QAAA,MAAM,iBAAiB,6GASrB,CAAA;AAGF,QAAA,MAAM,gBAAgB,6GASpB,CAAA;AAGF,QAAA,MAAM,kBAAkB,6GAStB,CAAA;AAGF,QAAA,MAAM,gBAAgB;YAGV,MAAM;YACN,MAAM;cACJ,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM;wCA0BjE,CAAA;AAGF,QAAA,MAAM,uBAAuB,6GAS3B,CAAA;AAGF,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACxB,CAAA;AAGD,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,QAAA,MAAM,QAAQ,iHASZ,CAAA;AAGF,QAAA,MAAM,oBAAoB;;8EASxB,CAAA;AAEF,QAAA,MAAM,YAAY;;qHAShB,CAAA;AAGF,QAAA,MAAM,sBAAsB;;8EAiB3B,CAAA;AAED,KAAK,qBAAqB,GAAG,YAAY,CAAC,OAAO,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAA;AAEnF,QAAA,MAAM,cAAc;cAGN,qBAAqB;wCAUjC,CAAA;AAGF,QAAA,MAAM,eAAe,6GASnB,CAAA;AAGF,QAAA,MAAM,aAAa,qHASjB,CAAA;AAGF,QAAA,MAAM,YAAY,mHAShB,CAAA;AAGF,QAAA,MAAM,mBAAmB,yHASvB,CAAA;AAIF,QAAA,MAAM,kBAAkB,6GAStB,CAAA;AAGF,QAAA,MAAM,sBAAsB,6GAS1B,CAAA;AAIF,QAAA,MAAM,aAAa,6GASjB,CAAA;AAGF,QAAA,MAAM,mBAAmB,6GASvB,CAAA;AAGF,QAAA,MAAM,sBAAsB,6GAS1B,CAAA;AAGF,QAAA,MAAM,iBAAiB,6GASrB,CAAA;AAGF,QAAA,MAAM,gBAAgB,6GASpB,CAAA;AAGF,QAAA,MAAM,kBAAkB,6GAStB,CAAA;AAGF,QAAA,MAAM,gBAAgB;YAGV,MAAM;YACN,MAAM;cACJ,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM;wCA0BjE,CAAA;AAGF,QAAA,MAAM,uBAAuB,6GAS3B,CAAA;AAGF,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACxB,CAAA;AAGD,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAiC5D,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAiBhD,CAAC"}
|