@object-ui/plugin-dashboard 6.2.3 → 7.1.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 +220 -0
- package/dist/{packages/plugin-dashboard/src/DashboardConfigPanel.d.ts → DashboardConfigPanel.d.ts} +2 -1
- package/dist/DashboardConfigPanel.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/DashboardGridLayout.d.ts → DashboardGridLayout.d.ts} +1 -1
- package/dist/DashboardGridLayout.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/DashboardRenderer.d.ts → DashboardRenderer.d.ts} +2 -2
- package/dist/DashboardRenderer.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/DashboardWithConfig.d.ts → DashboardWithConfig.d.ts} +10 -2
- package/dist/DashboardWithConfig.d.ts.map +1 -0
- package/dist/DatasetWidget.d.ts +33 -0
- package/dist/DatasetWidget.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/DrillDownDrawer.d.ts → DrillDownDrawer.d.ts} +7 -2
- package/dist/DrillDownDrawer.d.ts.map +1 -0
- package/dist/MetricCard.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/MetricWidget.d.ts → MetricWidget.d.ts} +7 -1
- package/dist/MetricWidget.d.ts.map +1 -0
- package/dist/ObjectDataTable.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/ObjectMetricWidget.d.ts → ObjectMetricWidget.d.ts} +3 -1
- package/dist/ObjectMetricWidget.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/ObjectPivotTable.d.ts → ObjectPivotTable.d.ts} +1 -1
- package/dist/ObjectPivotTable.d.ts.map +1 -0
- package/dist/OpenInListButton.d.ts +12 -0
- package/dist/OpenInListButton.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/PivotTable.d.ts → PivotTable.d.ts} +2 -2
- package/dist/PivotTable.d.ts.map +1 -0
- package/dist/RecordDetailDrawer.d.ts +23 -0
- package/dist/RecordDetailDrawer.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/WidgetConfigPanel.d.ts → WidgetConfigPanel.d.ts} +1 -1
- package/dist/WidgetConfigPanel.d.ts.map +1 -0
- package/dist/index.d.ts +27 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1655 -1007
- package/dist/index.umd.cjs +2 -1
- package/dist/recordFields.d.ts +70 -0
- package/dist/recordFields.d.ts.map +1 -0
- package/dist/{packages/plugin-dashboard/src/utils.d.ts → utils.d.ts} +2 -2
- package/dist/utils.d.ts.map +1 -0
- package/package.json +12 -12
- package/dist/packages/plugin-dashboard/src/DashboardConfigPanel.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/DashboardConfigPanel.stories.d.ts +0 -14
- package/dist/packages/plugin-dashboard/src/DashboardConfigPanel.stories.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/DashboardGridLayout.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/DashboardRenderer.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/DashboardRenderer.stories.d.ts +0 -24
- package/dist/packages/plugin-dashboard/src/DashboardRenderer.stories.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/DashboardWithConfig.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/DrillDownDrawer.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/MetricCard.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/MetricWidget.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/ObjectDataTable.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/ObjectMetricWidget.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/ObjectPivotTable.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/PivotTable.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/WidgetConfigPanel.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/index.d.ts +0 -27
- package/dist/packages/plugin-dashboard/src/index.d.ts.map +0 -1
- package/dist/packages/plugin-dashboard/src/utils.d.ts.map +0 -1
- /package/dist/{packages/plugin-dashboard/src/MetricCard.d.ts → MetricCard.d.ts} +0 -0
- /package/dist/{packages/plugin-dashboard/src/ObjectDataTable.d.ts → ObjectDataTable.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,225 @@
|
|
|
1
1
|
# @object-ui/plugin-dashboard
|
|
2
2
|
|
|
3
|
+
## 7.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 677f7ed: feat(charts,dashboard): data-screen customization primitives
|
|
8
|
+
|
|
9
|
+
- object-metric `variant:'bare'` — big tinted number + label, no card chrome
|
|
10
|
+
(data-screen KPIs that stay data-bound).
|
|
11
|
+
- object-chart `colors` prop overrides the theme `--chart-1..n` palette so a
|
|
12
|
+
page/dashboard can brand its charts; compact metric formatting (`'0.0a'` →
|
|
13
|
+
"1.1M").
|
|
14
|
+
- ObjectChartSchema.chartType widened to donut/horizontal-bar/column.
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- 08c47da: feat(dashboard): dataset chart widgets paint select/lookup dimensions in their option colors
|
|
19
|
+
|
|
20
|
+
A dashboard `DatasetWidget` chart grouped by a select/lookup dimension (e.g.
|
|
21
|
+
project `health`) painted its categories from the generic `--chart-1..5`
|
|
22
|
+
palette — the same gap the chart view (`object-chart`) had before #1932. It now
|
|
23
|
+
resolves the dimension field's option colors (using the dataset's base `object`
|
|
24
|
+
- dimension→field map the query already returns) and threads them to the
|
|
25
|
+
renderer as a per-category `categoryColors` map, so health green/red/yellow
|
|
26
|
+
paints semantically.
|
|
27
|
+
|
|
28
|
+
The value/label→color resolution is extracted into a shared `buildOptionColorMap`
|
|
29
|
+
(`@object-ui/core`) now used by both `DatasetWidget` and `ObjectChart`.
|
|
30
|
+
|
|
31
|
+
- Updated dependencies [677f7ed]
|
|
32
|
+
- Updated dependencies [08c47da]
|
|
33
|
+
- Updated dependencies [a71be60]
|
|
34
|
+
- Updated dependencies [cb03bc3]
|
|
35
|
+
- @object-ui/types@7.1.0
|
|
36
|
+
- @object-ui/core@7.1.0
|
|
37
|
+
- @object-ui/react@7.1.0
|
|
38
|
+
- @object-ui/components@7.1.0
|
|
39
|
+
- @object-ui/fields@7.1.0
|
|
40
|
+
- @object-ui/i18n@7.1.0
|
|
41
|
+
|
|
42
|
+
## 7.0.0
|
|
43
|
+
|
|
44
|
+
### Minor Changes
|
|
45
|
+
|
|
46
|
+
- 78f9c16: Dataset-bound dashboard widgets now use the measure's display label + format and
|
|
47
|
+
render metric widgets with a consistent card.
|
|
48
|
+
|
|
49
|
+
- KPI value and chart legend use the measure `label` (carried on the analytics
|
|
50
|
+
result `fields`) instead of the raw measure name — "Tasks" not "task_count".
|
|
51
|
+
- The KPI value is formatted via the measure `format` hint ("$0,0" → "$616,000").
|
|
52
|
+
- A dataset-bound `metric` widget takes the shared Card wrapper (title + border)
|
|
53
|
+
like kpi/gauge, instead of rendering as bare untitled text.
|
|
54
|
+
|
|
55
|
+
Requires `AnalyticsResult.fields[].label`/`format` (objectstack-ai/framework#1683).
|
|
56
|
+
|
|
57
|
+
- 92449ef: Dataset-bound dashboard widgets now render their TRUE chart family instead of
|
|
58
|
+
always a bar chart.
|
|
59
|
+
|
|
60
|
+
`DatasetWidget` routes by `widget.type` to the shared advanced chart renderer:
|
|
61
|
+
pie/donut/line/area/scatter/radar/funnel/treemap/sankey/column/horizontal-bar
|
|
62
|
+
each draw distinctly (one series per measure, carrying the measure label).
|
|
63
|
+
`table`/`pivot` render a grouped table of dimensions + measures (formatted via
|
|
64
|
+
the measure `format`). `metric`/`kpi`/`gauge`/`solid-gauge`/`bullet` keep the
|
|
65
|
+
single-value KPI rendering. Families without a distinct renderer map to their
|
|
66
|
+
closest relative (e.g. `spline`→line, `stacked-area`→area, `pyramid`→funnel) so
|
|
67
|
+
a widget never renders as a silently-wrong bar.
|
|
68
|
+
|
|
69
|
+
### Patch Changes
|
|
70
|
+
|
|
71
|
+
- cb2fdb1: feat(dashboard): expand drill-in — table/list row→record + scatter/treemap/sankey drill-through
|
|
72
|
+
|
|
73
|
+
Drill-in now covers the widgets that were missing it, and formalizes the two
|
|
74
|
+
interaction semantics mainstream BI/low-code platforms separate. `DrillDownConfig`
|
|
75
|
+
gains a `mode` discriminator: `'filter'` (drill-through: aggregate bucket → filtered
|
|
76
|
+
record list) and `'record'` (drill-to-record: a table/list row → that record's detail).
|
|
77
|
+
|
|
78
|
+
- Scatter, treemap and sankey charts now wire click → the existing filtered-record
|
|
79
|
+
drill drawer (radar excluded — no single clickable category point). The
|
|
80
|
+
Recharts-payload → drill-event mapping is extracted to pure, tested functions.
|
|
81
|
+
- Object-backed table/list widgets drill to the clicked record in a read-only detail
|
|
82
|
+
drawer (Sheet/Dialog), on by default (`drillDown:{enabled:false}` opts out). Field
|
|
83
|
+
labels and value formatting (incl. tenant-default currency) are shared with the
|
|
84
|
+
table cells so a value reads identically in both. An author-supplied `onRowClick`
|
|
85
|
+
still wins.
|
|
86
|
+
- The chart/KPI drill-through record lists now drill into a record too, completing the
|
|
87
|
+
segment → list → record chain.
|
|
88
|
+
|
|
89
|
+
- c3749eb: feat(dashboard): dataset chart widgets drill through to records
|
|
90
|
+
|
|
91
|
+
Dataset-bound **chart** widgets (bar/line/pie/area/donut/funnel/…) are now
|
|
92
|
+
click-drillable, matching table/pivot. Clicking a segment maps it back to its
|
|
93
|
+
dataset row and opens the same governed drill drawer (raw group keys preserved),
|
|
94
|
+
so a chart-only dashboard is no longer an exploration dead-end. This closes the
|
|
95
|
+
"object-backed chart drills but dataset chart doesn't" inconsistency and aligns
|
|
96
|
+
with mainstream BI (click a chart → see records).
|
|
97
|
+
|
|
98
|
+
- `@object-ui/core`: `findChartSeriesRow` — inverse of `buildChartSeries`,
|
|
99
|
+
maps a clicked `{category, series}` back to the source dataset row index
|
|
100
|
+
(matches both dims when a 2nd dimension is pivoted into series).
|
|
101
|
+
- `ObjectChart`: optional `onSegmentClick` lets a host own the chart click
|
|
102
|
+
(and suppress the widget's own object-drill).
|
|
103
|
+
- `DatasetWidget`: lifts the drill machinery to cover both table/pivot and
|
|
104
|
+
chart, and wires the chart's segment click to the precise dataset drill.
|
|
105
|
+
|
|
106
|
+
- 3d036a9: fix(dashboard): complete the drill chain in the shared DrillDownDrawer
|
|
107
|
+
|
|
108
|
+
The chart and KPI drill-through record lists already let you click a row to open
|
|
109
|
+
that record, but the shared `DrillDownDrawer` (used by **pivot** and **dataset**
|
|
110
|
+
widget drill-through) did not — so the segment → list → record chain was
|
|
111
|
+
inconsistent across widget types. `DrillDownDrawer` now enables record drill on
|
|
112
|
+
its filtered list (dialog target, stacking over the drawer), so every
|
|
113
|
+
drill-through list lands on a clickable record.
|
|
114
|
+
|
|
115
|
+
- 6cfa330: feat(dashboard): drill "Open in list" escape hatch + unify report drill
|
|
116
|
+
|
|
117
|
+
Adopts the mainstream BI peek-then-escalate drill model. Drill-through opens an
|
|
118
|
+
in-place drawer (keep context) and offers an "Open in list →" affordance to
|
|
119
|
+
escalate to the object's full list page (sort / bulk-select / export / shareable
|
|
120
|
+
URL) — the Looker / Power BI "see records → open in page" pattern.
|
|
121
|
+
|
|
122
|
+
- New `DrillNavigationContext` (`@object-ui/react`): the app shell provides
|
|
123
|
+
`openRecordList`; the renderer stays decoupled from console routing.
|
|
124
|
+
- The drill drawers (pivot / dataset / chart / KPI) render the escape hatch when
|
|
125
|
+
a host navigation handler is present, and hide it otherwise (self-contained
|
|
126
|
+
peek). `DashboardView` provides the handler via `useOpenRecordList`.
|
|
127
|
+
- `DrillDownConfig.target` gains `'navigate'` — skip the drawer and open the
|
|
128
|
+
list directly; degrades to `'drawer'` when no host handler is available.
|
|
129
|
+
- `ReportView` drill-through now opens the same in-place drawer (peek records →
|
|
130
|
+
click a row to open a record) instead of navigating away; the escape hatch
|
|
131
|
+
preserves the previous navigate-to-list behavior. Dashboard and report drill
|
|
132
|
+
are now unified.
|
|
133
|
+
- i18n: `dashboard.openInList` (en / zh).
|
|
134
|
+
|
|
135
|
+
- bd8b054: fix(currency): resolve the tenant default currency across the long-tail renderers
|
|
136
|
+
|
|
137
|
+
Phase 2b of the currency-resolution work (ADR-0053). The cell/field renderers
|
|
138
|
+
already funnelled through `resolveFieldCurrency` + `useLocalization` (#1856),
|
|
139
|
+
but the rest of the renderers still hard-coded `USD` or read only one of
|
|
140
|
+
`currency`/`defaultCurrency`. They now share the same resolution chain — explicit
|
|
141
|
+
field currency -> `currencyConfig.defaultCurrency` -> legacy `defaultCurrency` ->
|
|
142
|
+
tenant `localization.currency` -> plain number:
|
|
143
|
+
|
|
144
|
+
- `plugin-dashboard` `ObjectMetricWidget` (inferred currency), `ObjectDataTable`
|
|
145
|
+
(symbol-format fallback).
|
|
146
|
+
- `plugin-grid` `useColumnSummary` (footer agrees with the cells) and
|
|
147
|
+
`ObjectGrid` (compact amount + name-inferred currency cells).
|
|
148
|
+
- `plugin-detail` `DetailView` summary metrics.
|
|
149
|
+
- `plugin-gantt` `ObjectGantt` currency tooltips.
|
|
150
|
+
- `components` `element:number` (`format: 'currency'`) — tenant default instead
|
|
151
|
+
of a baked-in `USD`, and renders with the tenant locale.
|
|
152
|
+
|
|
153
|
+
`resolveFieldCurrency` now lives in `@object-ui/i18n` (co-located with
|
|
154
|
+
`useLocalization`, which supplies the tenant default); `@object-ui/fields`
|
|
155
|
+
re-exports it, so the existing import path is unchanged. No behavior change when
|
|
156
|
+
no tenant currency is configured — a field that declares its own currency, or a
|
|
157
|
+
deployment with no `localization.currency`, renders exactly as before.
|
|
158
|
+
|
|
159
|
+
- 650bd1f: fix(forms/dashboard/related-list): four business-facing rendering fixes found while QA-ing a showcase workspace
|
|
160
|
+
|
|
161
|
+
- **plugin-form / WizardForm**: a multi-step `object-form` with `formType: 'wizard'` posted an empty/partial body on submit, so the server rejected every required field. Two causes: (1) the footer Next/Create buttons bypassed the inner form and submitted the wizard's own (never-collected) `formData`; (2) the create-mode data-seeding effect re-ran on `dataSource`/`objectSchema` identity churn and reset `formData` to `{}` mid-wizard. Now the buttons submit the inner form natively (`<form id>` + `type="submit"`, which validates each step and collects values via `getValues()`), and the create seed is made idempotent.
|
|
162
|
+
- **plugin-dashboard / DashboardRenderer**: chart widgets rendered as empty cards (recharts logged `width(-1) height(-1)`) because the positioned grid used `auto-rows-min`, collapsing any widget with no intrinsic height. The explicit-columns grid now uses `gridAutoRows: minmax(5rem, auto)` so spanned chart rows get a real height while tables can still grow.
|
|
163
|
+
- **plugin-detail / RelatedList**: auto-derived related-list columns led with system audit fields (`created_at`, `updated_at`, …) for child objects without a name/title field, pushing business columns past the column cap. System audit fields are now sorted last.
|
|
164
|
+
- **plugin-form / ObjectForm + WizardForm**: a successful create/update gave no feedback for metadata-only pages (which can't pass an `onSuccess` function). They now show a default `toast.success('Created'/'Saved')` when no `onSuccess` handler is supplied (guarded so a `submitHandler` host like MasterDetailForm never double-toasts).
|
|
165
|
+
|
|
166
|
+
- Updated dependencies [5976ba3]
|
|
167
|
+
- Updated dependencies [a00e16d]
|
|
168
|
+
- Updated dependencies [eaccefd]
|
|
169
|
+
- Updated dependencies [f7f325d]
|
|
170
|
+
- Updated dependencies [c12986e]
|
|
171
|
+
- Updated dependencies [71d7ce0]
|
|
172
|
+
- Updated dependencies [053c948]
|
|
173
|
+
- Updated dependencies [89e113c]
|
|
174
|
+
- Updated dependencies [ddbe4a2]
|
|
175
|
+
- Updated dependencies [2d47e94]
|
|
176
|
+
- Updated dependencies [9049bbe]
|
|
177
|
+
- Updated dependencies [77cc6bb]
|
|
178
|
+
- Updated dependencies [6c0c92c]
|
|
179
|
+
- Updated dependencies [97c6831]
|
|
180
|
+
- Updated dependencies [cb2fdb1]
|
|
181
|
+
- Updated dependencies [c3749eb]
|
|
182
|
+
- Updated dependencies [c09f44e]
|
|
183
|
+
- Updated dependencies [6cfa330]
|
|
184
|
+
- Updated dependencies [ad8ade6]
|
|
185
|
+
- Updated dependencies [d54346c]
|
|
186
|
+
- Updated dependencies [5332639]
|
|
187
|
+
- Updated dependencies [3870c20]
|
|
188
|
+
- Updated dependencies [2eb3096]
|
|
189
|
+
- Updated dependencies [b88c560]
|
|
190
|
+
- Updated dependencies [0ad72a6]
|
|
191
|
+
- Updated dependencies [bd398df]
|
|
192
|
+
- Updated dependencies [3fa23a7]
|
|
193
|
+
- Updated dependencies [18d0339]
|
|
194
|
+
- Updated dependencies [66ed3ad]
|
|
195
|
+
- Updated dependencies [c6445b6]
|
|
196
|
+
- Updated dependencies [80c133c]
|
|
197
|
+
- Updated dependencies [5e1b838]
|
|
198
|
+
- Updated dependencies [59b6bbb]
|
|
199
|
+
- Updated dependencies [d16566f]
|
|
200
|
+
- Updated dependencies [90acb7f]
|
|
201
|
+
- Updated dependencies [7913390]
|
|
202
|
+
- Updated dependencies [514f426]
|
|
203
|
+
- Updated dependencies [1394e34]
|
|
204
|
+
- Updated dependencies [e95cc25]
|
|
205
|
+
- Updated dependencies [abe8ebc]
|
|
206
|
+
- Updated dependencies [300d755]
|
|
207
|
+
- Updated dependencies [bd8b054]
|
|
208
|
+
- Updated dependencies [4eb9cb6]
|
|
209
|
+
- Updated dependencies [7c239fd]
|
|
210
|
+
- Updated dependencies [858ad94]
|
|
211
|
+
- Updated dependencies [2270239]
|
|
212
|
+
- Updated dependencies [db8cd00]
|
|
213
|
+
- Updated dependencies [2f31406]
|
|
214
|
+
- Updated dependencies [18728c1]
|
|
215
|
+
- Updated dependencies [8d1195d]
|
|
216
|
+
- @object-ui/core@7.0.0
|
|
217
|
+
- @object-ui/components@7.0.0
|
|
218
|
+
- @object-ui/react@7.0.0
|
|
219
|
+
- @object-ui/i18n@7.0.0
|
|
220
|
+
- @object-ui/types@7.0.0
|
|
221
|
+
- @object-ui/fields@7.0.0
|
|
222
|
+
|
|
3
223
|
## 6.2.3
|
|
4
224
|
|
|
5
225
|
### Patch Changes
|
package/dist/{packages/plugin-dashboard/src/DashboardConfigPanel.d.ts → DashboardConfigPanel.d.ts}
RENAMED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
+
import * as React from 'react';
|
|
8
9
|
export interface DashboardConfigPanelProps {
|
|
9
10
|
/** Whether the panel is open */
|
|
10
11
|
open: boolean;
|
|
@@ -24,5 +25,5 @@ export interface DashboardConfigPanelProps {
|
|
|
24
25
|
* demonstrating that a full config panel can be expressed in ~60 lines
|
|
25
26
|
* of declarative schema rather than 1500+ lines of imperative code.
|
|
26
27
|
*/
|
|
27
|
-
export declare function DashboardConfigPanel({ open, onClose, config, onSave, onFieldChange, }: DashboardConfigPanelProps):
|
|
28
|
+
export declare function DashboardConfigPanel({ open, onClose, config, onSave, onFieldChange, }: DashboardConfigPanelProps): React.JSX.Element;
|
|
28
29
|
//# sourceMappingURL=DashboardConfigPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardConfigPanel.d.ts","sourceRoot":"","sources":["../src/DashboardConfigPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkH/B,MAAM,WAAW,yBAAyB;IACxC,gCAAgC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,iCAAiC;IACjC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAC9C,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACrD;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EACN,aAAa,GACd,EAAE,yBAAyB,qBAiB3B"}
|
package/dist/{packages/plugin-dashboard/src/DashboardGridLayout.d.ts → DashboardGridLayout.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LayoutItem as RGLLayout } from 'react-grid-layout';
|
|
2
|
-
import { DashboardSchema } from '
|
|
2
|
+
import { DashboardSchema } from '@object-ui/types';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
export interface DashboardGridLayoutProps {
|
|
5
5
|
schema: DashboardSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardGridLayout.d.ts","sourceRoot":"","sources":["../src/DashboardGridLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA2C,KAAK,UAAU,IAAI,SAAS,EAAuC,MAAM,mBAAmB,CAAC;AAC/I,OAAO,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AA2B/E,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC/C;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,SAAS,EAAE,GAClB,eAAe,CAajB;AAcD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAgUlE,CAAC"}
|
package/dist/{packages/plugin-dashboard/src/DashboardRenderer.d.ts → DashboardRenderer.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DashboardSchema, DashboardWidgetSchema } from '
|
|
2
|
-
import { ActionDef, ActionResult, ActionContext, ModalHandler } from '
|
|
1
|
+
import { DashboardSchema, DashboardWidgetSchema } from '@object-ui/types';
|
|
2
|
+
import { ActionDef, ActionResult, ActionContext, ModalHandler } from '@object-ui/core';
|
|
3
3
|
export interface DashboardRendererProps {
|
|
4
4
|
schema: DashboardSchema;
|
|
5
5
|
className?: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../src/DashboardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA+J5F,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,WAAW,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,IAAI,CAAC;IAC9D,mGAAmG;IACnG,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wGAAwG;IACxG,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,CAAC;IACrH;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,gIAy1B7B,CAAC"}
|
package/dist/{packages/plugin-dashboard/src/DashboardWithConfig.d.ts → DashboardWithConfig.d.ts}
RENAMED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import { DashboardSchema } from '
|
|
1
|
+
import { DashboardSchema } from '@object-ui/types';
|
|
2
|
+
/**
|
|
3
|
+
* ObjectUI
|
|
4
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import * as React from 'react';
|
|
2
10
|
export interface DashboardWithConfigProps {
|
|
3
11
|
/** Dashboard schema for rendering */
|
|
4
12
|
schema: DashboardSchema;
|
|
@@ -28,5 +36,5 @@ export interface DashboardWithConfigProps {
|
|
|
28
36
|
* - Back navigation from widget config to dashboard config
|
|
29
37
|
* - Live preview: widget config changes are reflected in real time
|
|
30
38
|
*/
|
|
31
|
-
export declare function DashboardWithConfig({ schema, config, onConfigSave, onWidgetSave, onRefresh, recordCount, defaultConfigOpen, className, }: DashboardWithConfigProps):
|
|
39
|
+
export declare function DashboardWithConfig({ schema, config, onConfigSave, onWidgetSave, onRefresh, recordCount, defaultConfigOpen, className, }: DashboardWithConfigProps): React.JSX.Element;
|
|
32
40
|
//# sourceMappingURL=DashboardWithConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardWithConfig.d.ts","sourceRoot":"","sources":["../src/DashboardWithConfig.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAU/E,MAAM,WAAW,wBAAwB;IACvC,qCAAqC;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,6DAA6D;IAC7D,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACpD,iEAAiE;IACjE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACvE,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAyB,EACzB,SAAS,GACV,EAAE,wBAAwB,qBAgM1B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { buildDatasetDrillFilter } from '@object-ui/core';
|
|
2
|
+
/**
|
|
3
|
+
* Build the record-list filter for a drilled row. Re-exported for back-compat;
|
|
4
|
+
* the implementation now lives in `@object-ui/core` (`buildDatasetDrillFilter`)
|
|
5
|
+
* so the dashboard and the report renderer drill identically.
|
|
6
|
+
*/
|
|
7
|
+
export declare const buildDrillFilter: typeof buildDatasetDrillFilter;
|
|
8
|
+
/**
|
|
9
|
+
* Pivot flat dataset rows into a cross-tab: `rowDims` go DOWN, `colDim` spreads
|
|
10
|
+
* ACROSS. Returns ordered row/column headers (display labels from the rows) and
|
|
11
|
+
* a map from a `${rowId} ${colId}` cell key to the FLAT row index holding
|
|
12
|
+
* that combination's measure values. No re-aggregation — the dataset already
|
|
13
|
+
* grouped by every dimension, so each cell maps to exactly one row (the index
|
|
14
|
+
* is also what drill-through uses to read `drillRawRows`).
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildPivot(rows: Array<Record<string, unknown>>, rowDims: string[], colDim: string): {
|
|
17
|
+
rowHeaders: Array<{
|
|
18
|
+
id: string;
|
|
19
|
+
labels: string[];
|
|
20
|
+
}>;
|
|
21
|
+
colHeaders: Array<{
|
|
22
|
+
id: string;
|
|
23
|
+
label: string;
|
|
24
|
+
}>;
|
|
25
|
+
cellIndex: Map<string, number>;
|
|
26
|
+
};
|
|
27
|
+
/** Serialize a 2D array (first row = headers) to CSV text. */
|
|
28
|
+
export declare function toCsv(rows: Array<Array<string | number | null | undefined>>): string;
|
|
29
|
+
export declare function DatasetWidget({ widget, dataSource }: {
|
|
30
|
+
widget: any;
|
|
31
|
+
dataSource: unknown;
|
|
32
|
+
}): import("react").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=DatasetWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatasetWidget.d.ts","sourceRoot":"","sources":["../src/DatasetWidget.tsx"],"names":[],"mappings":"AA8BA,OAAO,EAOL,uBAAuB,EAExB,MAAM,iBAAiB,CAAC;AAczB;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,gCAA0B,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACpC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,GACb;IACD,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACpD,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAcA;AASD,8DAA8D;AAC9D,wBAAgB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,CAEpF;AAmDD,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,+BAiWzF"}
|
|
@@ -4,8 +4,13 @@ export interface DrillDownDrawerProps {
|
|
|
4
4
|
onClose: () => void;
|
|
5
5
|
/** Drawer/dialog header. */
|
|
6
6
|
title: string;
|
|
7
|
-
/**
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Where the drill lands: `'drawer'` (right-side Sheet), `'dialog'` (centered
|
|
9
|
+
* Dialog), or `'navigate'` (skip the in-place view and open the object's full
|
|
10
|
+
* list page via the host's drill navigation). `'navigate'` falls back to
|
|
11
|
+
* `'drawer'` when no host navigation handler is available.
|
|
12
|
+
*/
|
|
13
|
+
target?: 'drawer' | 'dialog' | 'navigate';
|
|
9
14
|
/** Object name to query. */
|
|
10
15
|
objectName: string;
|
|
11
16
|
/** Filter applied to the drilled list. */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrillDownDrawer.d.ts","sourceRoot":"","sources":["../src/DrillDownDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC1C,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAoG1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetricCard.d.ts","sourceRoot":"","sources":["../src/MetricCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8DhD,CAAC"}
|
|
@@ -36,6 +36,12 @@ export interface MetricWidgetProps {
|
|
|
36
36
|
suffix?: string;
|
|
37
37
|
/** When set, the entire card becomes clickable and emits this handler. */
|
|
38
38
|
onClick?: () => void;
|
|
39
|
+
/**
|
|
40
|
+
* Layout variant. `'card'` (default) is the bordered KPI card; `'bare'` drops
|
|
41
|
+
* all card chrome and renders a large tinted number + label — the dense
|
|
42
|
+
* big-number look data-screens (大屏) want, while staying data-bound.
|
|
43
|
+
*/
|
|
44
|
+
variant?: 'card' | 'bare';
|
|
39
45
|
}
|
|
40
|
-
export declare const MetricWidget: ({ label, value, trend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, ...props }: MetricWidgetProps) =>
|
|
46
|
+
export declare const MetricWidget: ({ label, value, trend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, variant, ...props }: MetricWidgetProps) => React.JSX.Element;
|
|
41
47
|
//# sourceMappingURL=MetricWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetricWidget.d.ts","sourceRoot":"","sources":["../src/MetricWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AA2HvC,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GACjD,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAgCrC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzD,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;KACvC,CAAC;IACF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sFAAsF;IACtF,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,GAAI,mJAiB1B,iBAAiB,sBAmInB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectDataTable.d.ts","sourceRoot":"","sources":["../src/ObjectDataTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgE,MAAM,OAAO,CAAC;AAerF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACrD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAiB9F;AAED;;;;;;;;;;;;;;;GAeG;AACH;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAChD,YAAY,EAAE,GAAG,GAChB,MAAM,EAAE,CAgCV;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiT1D,CAAC"}
|
package/dist/{packages/plugin-dashboard/src/ObjectMetricWidget.d.ts → ObjectMetricWidget.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import { DrillDownConfig } from '
|
|
2
|
+
import { DrillDownConfig } from '@object-ui/types';
|
|
3
3
|
import { CompareToConfig } from './utils';
|
|
4
4
|
/**
|
|
5
5
|
* ObjectMetricWidget — Data-bound metric widget.
|
|
@@ -97,6 +97,8 @@ export interface ObjectMetricWidgetProps {
|
|
|
97
97
|
compareTo?: CompareToConfig;
|
|
98
98
|
/** Optional i18n translator used to localize the trend label. */
|
|
99
99
|
t?: (key: string, defaultValue: string) => string;
|
|
100
|
+
/** Layout variant forwarded to MetricWidget: 'card' (default) or 'bare'. */
|
|
101
|
+
variant?: 'card' | 'bare';
|
|
100
102
|
}
|
|
101
103
|
export declare const ObjectMetricWidget: React.FC<ObjectMetricWidgetProps>;
|
|
102
104
|
//# sourceMappingURL=ObjectMetricWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectMetricWidget.d.ts","sourceRoot":"","sources":["../src/ObjectMetricWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgE,MAAM,OAAO,CAAC;AAIrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,wBAAwB;IACxB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,kCAAkC;IAClC,KAAK,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iBAAiB;IACjB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzD,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;KACvC,CAAC;IACF,6BAA6B;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,+CAA+C;IAC/C,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpG,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,iEAAiE;IACjE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA+UhE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectPivotTable.d.ts","sourceRoot":"","sources":["../src/ObjectPivotTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAkD,MAAM,OAAO,CAAC;AAQvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,gBAAgB,GAAG;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACrD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,GAAG,CAAC;KACd,CAAC;IACF,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAgO5D,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface OpenInListButtonProps {
|
|
3
|
+
/** Object whose list page to open. */
|
|
4
|
+
objectName?: string;
|
|
5
|
+
/** Filter (object FIELD name → raw value) scoping the list. */
|
|
6
|
+
filter?: Record<string, unknown>;
|
|
7
|
+
/** Invoked after navigation is triggered (e.g. to close the drawer). */
|
|
8
|
+
onNavigate?: () => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const OpenInListButton: React.FC<OpenInListButtonProps>;
|
|
12
|
+
//# sourceMappingURL=OpenInListButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenInListButton.d.ts","sourceRoot":"","sources":["../src/OpenInListButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA4B5D,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import { PivotTableSchema } from '
|
|
3
|
-
import { DrillEvent } from '
|
|
2
|
+
import { PivotTableSchema } from '@object-ui/types';
|
|
3
|
+
import { DrillEvent } from '@object-ui/core';
|
|
4
4
|
export interface PivotTableProps {
|
|
5
5
|
schema: PivotTableSchema;
|
|
6
6
|
className?: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PivotTable.d.ts","sourceRoot":"","sources":["../src/PivotTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAWlE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC3C;AA6ED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4PhD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface RecordDetailDrawerProps {
|
|
3
|
+
/** The record to display, or `null` when nothing is selected. */
|
|
4
|
+
record: Record<string, any> | null;
|
|
5
|
+
/** Object the record belongs to (drives label translation + field meta). */
|
|
6
|
+
objectName?: string;
|
|
7
|
+
/** Object schema (field metadata) for labels / formatting. Optional. */
|
|
8
|
+
objectSchema?: any;
|
|
9
|
+
/**
|
|
10
|
+
* Optional whitelist of field accessors to show (e.g. `drillDown.columns`).
|
|
11
|
+
* When omitted, all non-system fields are shown in schema declaration order
|
|
12
|
+
* (falling back to the record's own keys when no schema is available).
|
|
13
|
+
*/
|
|
14
|
+
fields?: string[];
|
|
15
|
+
/** Explicit drawer/dialog title; defaults to the record's display name. */
|
|
16
|
+
title?: string;
|
|
17
|
+
/** Where to open. Defaults to `'drawer'` (right-side Sheet). */
|
|
18
|
+
target?: 'drawer' | 'dialog';
|
|
19
|
+
/** Called when the drawer requests to close. */
|
|
20
|
+
onClose: () => void;
|
|
21
|
+
}
|
|
22
|
+
export declare const RecordDetailDrawer: React.FC<RecordDetailDrawerProps>;
|
|
23
|
+
//# sourceMappingURL=RecordDetailDrawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordDetailDrawer.d.ts","sourceRoot":"","sources":["../src/RecordDetailDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAcvC,MAAM,WAAW,uBAAuB;IACtC,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,gDAAgD;IAChD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAgBD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAgFhE,CAAC"}
|
package/dist/{packages/plugin-dashboard/src/WidgetConfigPanel.d.ts → WidgetConfigPanel.d.ts}
RENAMED
|
@@ -29,5 +29,5 @@ export interface WidgetConfigPanelProps {
|
|
|
29
29
|
/** Available fields of the currently selected object for dropdown selection */
|
|
30
30
|
availableFields?: SelectOption[];
|
|
31
31
|
}
|
|
32
|
-
export declare function WidgetConfigPanel({ open, onClose, config, onSave, onFieldChange, headerExtra, availableObjects, availableFields, }: WidgetConfigPanelProps):
|
|
32
|
+
export declare function WidgetConfigPanel({ open, onClose, config, onSave, onFieldChange, headerExtra, availableObjects, availableFields, }: WidgetConfigPanelProps): React.JSX.Element;
|
|
33
33
|
//# sourceMappingURL=WidgetConfigPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetConfigPanel.d.ts","sourceRoot":"","sources":["../src/WidgetConfigPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4F/B,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE;AAuBD,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AA4b5D,MAAM,WAAW,sBAAsB;IACrC,gCAAgC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,wCAAwC;IACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAC9C,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpD,oEAAoE;IACpE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;CAClC;AAiFD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EACN,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,EAAE,sBAAsB,qBA8BxB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { DashboardRenderer } from './DashboardRenderer';
|
|
2
|
+
import { DashboardGridLayout } from './DashboardGridLayout';
|
|
3
|
+
import { MetricWidget } from './MetricWidget';
|
|
4
|
+
import { MetricCard } from './MetricCard';
|
|
5
|
+
import { ObjectMetricWidget } from './ObjectMetricWidget';
|
|
6
|
+
import { PivotTable } from './PivotTable';
|
|
7
|
+
import { ObjectPivotTable } from './ObjectPivotTable';
|
|
8
|
+
import { ObjectDataTable } from './ObjectDataTable';
|
|
9
|
+
import { DashboardConfigPanel } from './DashboardConfigPanel';
|
|
10
|
+
import { WidgetConfigPanel } from './WidgetConfigPanel';
|
|
11
|
+
import { DashboardWithConfig } from './DashboardWithConfig';
|
|
12
|
+
import { DrillDownDrawer } from './DrillDownDrawer';
|
|
13
|
+
export { DashboardRenderer, DashboardGridLayout, MetricWidget, MetricCard, ObjectMetricWidget, PivotTable, ObjectPivotTable, ObjectDataTable, DashboardConfigPanel, WidgetConfigPanel, DashboardWithConfig, DrillDownDrawer };
|
|
14
|
+
export declare const dashboardComponents: {
|
|
15
|
+
DashboardRenderer: import('react').ForwardRefExoticComponent<Omit<import('./DashboardRenderer').DashboardRendererProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
16
|
+
DashboardGridLayout: import('react').FC<import('./DashboardGridLayout').DashboardGridLayoutProps>;
|
|
17
|
+
MetricWidget: ({ label, value, trend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, variant, ...props }: import('./MetricWidget').MetricWidgetProps) => import("react").JSX.Element;
|
|
18
|
+
MetricCard: import('react').FC<import('./MetricCard').MetricCardProps>;
|
|
19
|
+
ObjectMetricWidget: import('react').FC<import('./ObjectMetricWidget').ObjectMetricWidgetProps>;
|
|
20
|
+
PivotTable: import('react').FC<import('./PivotTable').PivotTableProps>;
|
|
21
|
+
ObjectPivotTable: import('react').FC<import('./ObjectPivotTable').ObjectPivotTableProps>;
|
|
22
|
+
ObjectDataTable: import('react').FC<import('./ObjectDataTable').ObjectDataTableProps>;
|
|
23
|
+
DashboardConfigPanel: typeof DashboardConfigPanel;
|
|
24
|
+
WidgetConfigPanel: typeof WidgetConfigPanel;
|
|
25
|
+
DashboardWithConfig: typeof DashboardWithConfig;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC;AAwM9N,eAAO,MAAM,mBAAmB;;;;;;;;;;;;CAY/B,CAAC"}
|