@object-ui/plugin-dashboard 17.7.0 → 18.0.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 +525 -0
- package/README.md +56 -17
- package/dist/DashboardGridLayout.d.ts +7 -6
- package/dist/DashboardGridLayout.d.ts.map +1 -1
- package/dist/DashboardRenderer.d.ts +30 -2
- package/dist/DashboardRenderer.d.ts.map +1 -1
- package/dist/DashboardWithConfig.d.ts.map +1 -1
- package/dist/DatasetWidget.d.ts +22 -23
- package/dist/DatasetWidget.d.ts.map +1 -1
- package/dist/MetricCard.d.ts +6 -0
- package/dist/MetricCard.d.ts.map +1 -1
- package/dist/MetricWidget.d.ts +21 -4
- package/dist/MetricWidget.d.ts.map +1 -1
- package/dist/ObjectMetricWidget.d.ts.map +1 -1
- package/dist/ObjectPivotTable.d.ts +7 -6
- package/dist/ObjectPivotTable.d.ts.map +1 -1
- package/dist/RecordDetailDrawer.d.ts +13 -2
- package/dist/RecordDetailDrawer.d.ts.map +1 -1
- package/dist/chartRenderHandoff.d.ts +9 -0
- package/dist/chartRenderHandoff.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1136 -1037
- package/dist/index.umd.cjs +3 -2
- package/dist/legacyRetiredWidget.d.ts +24 -1
- package/dist/legacyRetiredWidget.d.ts.map +1 -1
- package/dist/metricTile.d.ts +87 -0
- package/dist/metricTile.d.ts.map +1 -0
- package/dist/schemaHostProps.d.ts +55 -11
- package/dist/schemaHostProps.d.ts.map +1 -1
- package/dist/utils.d.ts +24 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/widgetDispatch.d.ts +36 -6
- package/dist/widgetDispatch.d.ts.map +1 -1
- package/package.json +11 -11
- package/dist/widgetSubCaption.d.ts +0 -40
- package/dist/widgetSubCaption.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -207,9 +207,11 @@ or the spec's inline per-locale map (`I18nLabel`).
|
|
|
207
207
|
|
|
208
208
|
A card with no `value` is refused by `@object-ui/types/zod`, on the tolerant
|
|
209
209
|
face and the strict one. `metric-card` is not a widget type, so a card is never
|
|
210
|
-
read through widget keys
|
|
211
|
-
|
|
212
|
-
`
|
|
210
|
+
read through widget keys, and no widget key stands in for `value`: the
|
|
211
|
+
dashboard reads a widget key (`dataset`, `options`, `component`,
|
|
212
|
+
`colorVariant`, …) on a widget alone, so a card draws its own keys whatever
|
|
213
|
+
else it carries, and the strict face refuses a widget key on it
|
|
214
|
+
(objectui#11483, objectui#11598). For a figure queried from a
|
|
213
215
|
dataset, write a `metric` widget with `dataset` and `values` (see "TypeScript
|
|
214
216
|
Support" below).
|
|
215
217
|
|
|
@@ -536,12 +538,18 @@ where it resolves.
|
|
|
536
538
|
|
|
537
539
|
objectui's legacy `component` envelope (`{ id, component, layout }`) is not the
|
|
538
540
|
spec's widget, and the default is not applied to it: an envelope with no `type`
|
|
539
|
-
draws its `component` under its card heading
|
|
540
|
-
|
|
541
|
-
`
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
541
|
+
draws its `component` under its card heading.
|
|
542
|
+
|
|
543
|
+
The envelope takes a `metric-card` node only (objectui#12163), and draws one
|
|
544
|
+
only (objectui#12254). Both validator faces and
|
|
545
|
+
`DashboardWidgetSchema['component']` refuse any other node by name, at
|
|
546
|
+
`component`, with the fix: a dashboard widget binds a dataset (ADR-0021), so
|
|
547
|
+
write the widget itself in the spec form, or put a `metric-card` in the slot.
|
|
548
|
+
Both surfaces draw a stored envelope by the same rule: a `metric-card` draws as
|
|
549
|
+
written, and any other node (an `object-chart`, a `text`, an `object-metric`, a
|
|
550
|
+
node with no `type`) draws the same retired-format prompt as a dataset-less
|
|
551
|
+
metric widget and sends no query. A `custom` widget with no `component` draws
|
|
552
|
+
the labelled placeholder described next.
|
|
545
553
|
|
|
546
554
|
A `type` that names no widget family and no component type (a typo, or a family
|
|
547
555
|
the spec no longer has) is refused by both validator faces at `type`. A stored
|
|
@@ -631,9 +639,9 @@ const users: DashboardWidgetSchema = {
|
|
|
631
639
|
options: { value: '1,234' },
|
|
632
640
|
};
|
|
633
641
|
|
|
634
|
-
// Component format: a
|
|
635
|
-
// slot. Its keys are that COMPONENT's props,
|
|
636
|
-
//
|
|
642
|
+
// Component format: a `metric-card` node in the widget's `component` slot, the
|
|
643
|
+
// one node the slot takes (objectui#12163). Its keys are that COMPONENT's props,
|
|
644
|
+
// not widget keys; it is typed by the same arm as `kpi` below.
|
|
637
645
|
const custom: DashboardWidgetSchema = {
|
|
638
646
|
id: 'kpi_custom',
|
|
639
647
|
component: {
|
|
@@ -696,9 +704,10 @@ a card directly in `widgets[]` whose `trend` is outside the three, or whose
|
|
|
696
704
|
|
|
697
705
|
The widget keys (`colorVariant`, `filter`, `dataset`, …) are declared on the
|
|
698
706
|
widget arm, `DashboardWidgetSchema`, which takes them from the spec's
|
|
699
|
-
`DashboardWidget` row. The component arm declares none of them
|
|
700
|
-
off a `widgets[]` entry
|
|
701
|
-
|
|
707
|
+
`DashboardWidget` row. The component arm declares none of them, so read
|
|
708
|
+
straight off a `widgets[]` entry such a key is a compile error: the union offers
|
|
709
|
+
only the keys both arms declare (before objectui#8347 removed `BaseSchema`'s index
|
|
710
|
+
signature, the component arm answered it as `any`). This package's own readers take an entry by the slot's
|
|
702
711
|
element type, `DashboardComponentSchema['widgets'][number]`. The component arm
|
|
703
712
|
is not assignable to `DashboardWidgetSchema`, whose `type` names no component
|
|
704
713
|
type, so narrow an entry on `type` first: `metric-card` is the one component
|
|
@@ -794,9 +803,13 @@ the schema arrives, or for good when the read failed (objectui#10657). A column
|
|
|
794
803
|
that authors its `type` draws from it meanwhile. The record drawer a row opens
|
|
795
804
|
(record drill-down) draws every value as the mask in that window too.
|
|
796
805
|
|
|
806
|
+
Authored as a node, the object-bound table is `object-data-table`. A bare `table`
|
|
807
|
+
is the static component: it takes its rows in `data` and declares neither
|
|
808
|
+
`objectName` nor a column `format`.
|
|
809
|
+
|
|
797
810
|
```jsonc
|
|
798
811
|
{
|
|
799
|
-
"type": "table",
|
|
812
|
+
"type": "object-data-table",
|
|
800
813
|
"objectName": "opportunity",
|
|
801
814
|
"columns": [
|
|
802
815
|
{ "accessorKey": "name", "header": "Opportunity" },
|
|
@@ -831,7 +844,7 @@ keeps a published edit over that catalog: an explicit override beats the
|
|
|
831
844
|
packaged default. Pass `localized={true}` when your document came from such a
|
|
832
845
|
read. The renderer then draws these texts as given:
|
|
833
846
|
|
|
834
|
-
- the widget `title
|
|
847
|
+
- the widget `title` and `description`;
|
|
835
848
|
- its own header `label` and `description`.
|
|
836
849
|
|
|
837
850
|
An inline per-locale map is still collapsed to the active language. The client
|
|
@@ -845,6 +858,32 @@ preview or a design surface. The bundle keys under
|
|
|
845
858
|
pass, as before. Header-action labels always go through the bundle, because the
|
|
846
859
|
server does not translate them.
|
|
847
860
|
|
|
861
|
+
## DashboardRenderer — the host draws "Refresh All" (`onRefreshStateChange`)
|
|
862
|
+
|
|
863
|
+
When the renderer holds an `onRefresh` handler it draws a "Refresh All" button,
|
|
864
|
+
and the same handler arms the authored `refreshIntervalSeconds` timer. A host
|
|
865
|
+
that draws its own page chrome can put that button in its chrome instead: pass
|
|
866
|
+
`onRefreshStateChange` alongside `onRefresh`. The renderer then draws no
|
|
867
|
+
refresh button of its own, and calls the callback with the state of its one
|
|
868
|
+
refresh implementation:
|
|
869
|
+
|
|
870
|
+
- `refreshing` is true while a run is in flight, manual or timed. Spin the
|
|
871
|
+
button's icon and disable the button on it.
|
|
872
|
+
- `handleRefresh` is the run the renderer's own button would call. Wire the
|
|
873
|
+
host's button to it, so a click calls `onRefresh` and shows the indicator.
|
|
874
|
+
|
|
875
|
+
The callback is called on mount, again each time `refreshing` changes, and with
|
|
876
|
+
`null` when there is nothing to draw: no `onRefresh` is wired, or the renderer
|
|
877
|
+
unmounted. A `useState` setter is enough as the callback; a new function on
|
|
878
|
+
every render is fine too.
|
|
879
|
+
|
|
880
|
+
The timer stays the renderer's: `onRefresh` still arms it, so the host runs no
|
|
881
|
+
timer of its own. The record-count badge (`recordCount`) is not handed over and
|
|
882
|
+
stays where the renderer draws it. The console's dashboard page
|
|
883
|
+
(`DashboardView`) passes the option and draws the button among its page
|
|
884
|
+
header's actions (objectui#12554). A host that leaves it unset gets the
|
|
885
|
+
renderer's button, as before.
|
|
886
|
+
|
|
848
887
|
## DashboardGridLayout — persisting drag / resize edits
|
|
849
888
|
|
|
850
889
|
`DashboardGridLayout` (a React component you mount directly; its old schema
|
|
@@ -9,11 +9,11 @@ export interface DashboardGridLayoutProps {
|
|
|
9
9
|
* `DatasetWidget` for ADR-0021 dataset-bound widgets (objectui#4614).
|
|
10
10
|
*
|
|
11
11
|
* Typed `unknown`, not `any`. The sibling declares `dataSource?: any`
|
|
12
|
-
* (`
|
|
12
|
+
* (`DashboardRendererProps.dataSource`) for a reason that is explicitly historical —
|
|
13
13
|
* "that is precisely what it resolved to before", via the index signature that
|
|
14
14
|
* used to answer for it — and this is a NEW declaration with no prior
|
|
15
15
|
* resolution to preserve. `unknown` is what the consumer itself declares
|
|
16
|
-
* (`DatasetWidget
|
|
16
|
+
* (`DatasetWidget`'s own parameter, `dataSource: unknown`), so the value is forwarded
|
|
17
17
|
* to exactly the type that receives it, and no call site is held to anything
|
|
18
18
|
* new: every value is assignable to `unknown`. Narrowing it further to a real
|
|
19
19
|
* adapter type is a separate change with its own consumer sweep, on both
|
|
@@ -26,10 +26,11 @@ export interface DashboardGridLayoutProps {
|
|
|
26
26
|
* A dataset-bound widget arriving that way renders `DatasetWidget`'s own
|
|
27
27
|
* no-capability diagnostic — a visible state, never a blank tile.
|
|
28
28
|
*
|
|
29
|
-
* `SchemaRenderer` forwards this as a React prop (its `...props` spread,
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
29
|
+
* `SchemaRenderer` forwards this as a React prop (its `...props` spread,
|
|
30
|
+
* last). It cannot be shadowed by the spec's per-element `dataSource`
|
|
31
|
+
* BINDING, which is stripped from the schema before that spread for exactly
|
|
32
|
+
* this reason (the `dataSource: _dataSource` strip in `SchemaRenderer`'s
|
|
33
|
+
* destructure, objectstack#5576).
|
|
33
34
|
*/
|
|
34
35
|
dataSource?: unknown;
|
|
35
36
|
/**
|
|
@@ -1 +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;AAK1C,OAAO,KAAK,EAAE,wBAAwB,EAAuC,MAAM,kBAAkB,CAAC;
|
|
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;AAK1C,OAAO,KAAK,EAAE,wBAAwB,EAAuC,MAAM,kBAAkB,CAAC;AA4CtG,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,wBAAwB,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC/C;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC5D,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,SAAS,EAAE,GAClB,wBAAwB,CAa1B;AAiBD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAklBlE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DashboardComponentSchema } from '@object-ui/types';
|
|
2
2
|
import { ActionDef, ActionResult, ActionContext, ModalHandler, SduiDomPassThroughKey } from '@object-ui/core';
|
|
3
3
|
import { HTMLAttributes } from 'react';
|
|
4
|
+
import { DashboardAutoRefresh } from './useDashboardAutoRefresh.js';
|
|
4
5
|
/**
|
|
5
6
|
* The dashboard renderer's props.
|
|
6
7
|
*
|
|
@@ -89,6 +90,33 @@ export interface DashboardRendererProps extends Pick<HTMLAttributes<HTMLDivEleme
|
|
|
89
90
|
* title/subtitle so we don't display them twice.
|
|
90
91
|
*/
|
|
91
92
|
hideHeaderText?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* The host draws the "Refresh All" control, in its own chrome, and this is
|
|
95
|
+
* how it learns what to draw (objectui#12554). Set it and the renderer draws
|
|
96
|
+
* no refresh button of its own; leave it unset and the renderer draws one
|
|
97
|
+
* whenever `onRefresh` is wired, exactly as before.
|
|
98
|
+
*
|
|
99
|
+
* The auto-refresh timer is untouched: it stays this renderer's, armed by
|
|
100
|
+
* `onRefresh` and the authored `refreshIntervalSeconds`, so a host that
|
|
101
|
+
* draws the button runs no timer of its own. What the renderer hands over is
|
|
102
|
+
* the state of that one refresh implementation (`useDashboardAutoRefresh`):
|
|
103
|
+
*
|
|
104
|
+
* - `refreshing`, true while a run is in flight, manual or timed: spin the
|
|
105
|
+
* icon and disable the button on it, as the renderer's own control does;
|
|
106
|
+
* - `handleRefresh`, the run the renderer's button calls: wire the host's
|
|
107
|
+
* button to it, so a click shows the same indicator and calls `onRefresh`.
|
|
108
|
+
*
|
|
109
|
+
* It is called on mount, again each time `refreshing` changes, and with
|
|
110
|
+
* `null` when there is nothing to draw: no `onRefresh` is wired, or the
|
|
111
|
+
* renderer unmounted. The renderer reads it through a ref, so a host may
|
|
112
|
+
* pass a new function on every render (a `useState` setter is enough).
|
|
113
|
+
*
|
|
114
|
+
* The record-count badge (`recordCount`) is not part of the hand-over; it
|
|
115
|
+
* stays where the renderer draws it. The console's dashboard page
|
|
116
|
+
* (`DashboardView`) sets this, and draws the button among its page header's
|
|
117
|
+
* actions.
|
|
118
|
+
*/
|
|
119
|
+
onRefreshStateChange?: (state: DashboardAutoRefresh | null) => void;
|
|
92
120
|
/**
|
|
93
121
|
* The document arrives already translated for the active language: the host
|
|
94
122
|
* read it from the server's `/meta` route, which resolves the packaged
|
|
@@ -98,8 +126,8 @@ export interface DashboardRendererProps extends Pick<HTMLAttributes<HTMLDivEleme
|
|
|
98
126
|
* it.
|
|
99
127
|
*
|
|
100
128
|
* When true, the texts the server translated — the dashboard `label` and
|
|
101
|
-
* `description`, and each widget's `title
|
|
102
|
-
*
|
|
129
|
+
* `description`, and each widget's `title` and `description` — are drawn as
|
|
130
|
+
* given: an inline per-locale map is
|
|
103
131
|
* still collapsed to the active language, but no client bundle lookup runs
|
|
104
132
|
* over them. A second pass over a served value is what let the packaged
|
|
105
133
|
* catalog win again, client-side, over a published edit (objectui#11295).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../src/DashboardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAc,wBAAwB,EAAwD,MAAM,kBAAkB,CAAC;AAGnI,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAanH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../src/DashboardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAc,wBAAwB,EAAwD,MAAM,kBAAkB,CAAC;AAGnI,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAanH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAuB5C,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAyJ/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACnE,MAAM,EAAE,wBAAwB,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,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;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC1E,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;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAC;IACpE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA4pCD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,mHAiB7B,CAAC"}
|
|
@@ -1 +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,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAOjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAMnE,MAAM,WAAW,wBAAwB;IACvC,qCAAqC;IACrC,MAAM,EAAE,wBAAwB,CAAC;IACjC,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;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACvC,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAyB,EACzB,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,EAAE,wBAAwB,
|
|
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,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAOjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAMnE,MAAM,WAAW,wBAAwB;IACvC,qCAAqC;IACrC,MAAM,EAAE,wBAAwB,CAAC;IACjC,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;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACvC,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAyB,EACzB,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,EAAE,wBAAwB,qBAmM1B"}
|
package/dist/DatasetWidget.d.ts
CHANGED
|
@@ -106,32 +106,31 @@ export declare function extractDateWindows(filter: unknown): {
|
|
|
106
106
|
*/
|
|
107
107
|
export { chartConfigPresentation } from '@object-ui/core';
|
|
108
108
|
/**
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* load-bearing:
|
|
109
|
+
* A dataset-bound widget: a metric tile, a table / pivot, or a chart, drawn
|
|
110
|
+
* from one dataset query.
|
|
112
111
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* authored-vs-bundle composition inside it, and the field's own invariant — "a
|
|
128
|
-
* bundle entry always wins over an inline map and the two channels can never
|
|
129
|
-
* disagree" — needs a single decision point to be true. That point is
|
|
130
|
-
* `useWidgetSubCaption`; what arrives here is its answer.
|
|
112
|
+
* ⛔ No sub-caption prop, and no read of a `description` key in the options
|
|
113
|
+
* bag: the metric sub-caption is retired at both ends (objectui#11389, ruling
|
|
114
|
+
* C, after objectstack's half in `@objectstack/spec` 17.7.0). A widget keeps
|
|
115
|
+
* one authored description, `widget.description`, which the dashboard surface
|
|
116
|
+
* draws as the card-header subtitle. If a caption under a metric's value
|
|
117
|
+
* returns, it returns as a declared widget-level key outside the options bag,
|
|
118
|
+
* never as a key inside it. The options census in `@object-ui/sdui-parser`
|
|
119
|
+
* reads this file's text, comments included, which is why this note does not
|
|
120
|
+
* spell the bag's member access.
|
|
121
|
+
*/
|
|
122
|
+
/**
|
|
123
|
+
* [objectui#12528] The heading a dashboard surface hands a dataset-bound
|
|
124
|
+
* metric tile instead of drawing its own card header: the widget's resolved
|
|
125
|
+
* title, and its resolved description, which becomes the title's tooltip.
|
|
131
126
|
*/
|
|
132
|
-
export
|
|
127
|
+
export interface DatasetMetricHeading {
|
|
128
|
+
title: string;
|
|
129
|
+
description?: string;
|
|
130
|
+
}
|
|
131
|
+
export declare function DatasetWidget({ widget, dataSource, heading }: {
|
|
133
132
|
widget: any;
|
|
134
133
|
dataSource: unknown;
|
|
135
|
-
|
|
134
|
+
heading?: DatasetMetricHeading;
|
|
136
135
|
}): import("react").JSX.Element;
|
|
137
136
|
//# sourceMappingURL=DatasetWidget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetWidget.d.ts","sourceRoot":"","sources":["../src/DatasetWidget.tsx"],"names":[],"mappings":"AA2CA,OAAO,
|
|
1
|
+
{"version":3,"file":"DatasetWidget.d.ts","sourceRoot":"","sources":["../src/DatasetWidget.tsx"],"names":[],"mappings":"AA2CA,OAAO,EAaL,uBAAuB,EAWvB,YAAY,EAmBb,MAAM,iBAAiB,CAAC;AA+BzB;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,gCAA0B,CAAC;AAExD;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,UAAU,mDAAgB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAEpC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACpC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd;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,CAsBA;AASD,8DAA8D;AAC9D,wBAAgB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,CAEpF;AA0ED,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG;IACnD,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAC3C,CA4DA;AAuID;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAuBD,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAAE,+BAu8ClI"}
|
package/dist/MetricCard.d.ts
CHANGED
|
@@ -18,6 +18,12 @@ import { SchemaHostProps } from './schemaHostProps.js';
|
|
|
18
18
|
* whole. The repo's spelling for this carve-out is `ComboboxProps`
|
|
19
19
|
* (`extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "value" | "onChange">`),
|
|
20
20
|
* omitted there for the same reason: the component's own contract owns the name.
|
|
21
|
+
*
|
|
22
|
+
* This declaration is the DIRECT React door's. Rendered through
|
|
23
|
+
* `SchemaRenderer`, the card's element receives only what `toDomProps` passes
|
|
24
|
+
* (objectui#4425, phase 2) — see `hostDomProps` in `./schemaHostProps`. That is
|
|
25
|
+
* also why an authored `label` stops at the component: it is not this card's
|
|
26
|
+
* heading (`title` is) and not an attribute either.
|
|
21
27
|
*/
|
|
22
28
|
export interface MetricCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
23
29
|
/**
|
package/dist/MetricCard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricCard.d.ts","sourceRoot":"","sources":["../src/MetricCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"MetricCard.d.ts","sourceRoot":"","sources":["../src/MetricCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGvE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC1F;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,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,SAAS,CAAC;IACjC,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,GAAG,eAAe,CAkFlE,CAAC"}
|
package/dist/MetricWidget.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { default as React } from 'react';
|
|
|
2
2
|
import { I18nLabel } from '@object-ui/types';
|
|
3
3
|
import { MetricColorVariant } from './colorVariants.js';
|
|
4
4
|
import { SchemaHostProps } from './schemaHostProps.js';
|
|
5
|
+
import { MetricDelta } from './utils.js';
|
|
5
6
|
/**
|
|
6
7
|
* Lightweight numeric formatter for metric widgets.
|
|
7
8
|
*
|
|
@@ -68,9 +69,15 @@ export type { MetricColorVariant };
|
|
|
68
69
|
* own signature — the renderer's private door, not the consumer's front door.
|
|
69
70
|
* The narrower `FieldWidgetDomProps` shape (objectui#3221) is the other spelling
|
|
70
71
|
* in this repo, but it exists to be bound key-by-key to a runtime whitelist
|
|
71
|
-
* (`toDomProps`) in both directions
|
|
72
|
-
*
|
|
73
|
-
*
|
|
72
|
+
* (`toDomProps`) in both directions, and this declaration is the DIRECT React
|
|
73
|
+
* door's, which keeps no whitelist.
|
|
74
|
+
*
|
|
75
|
+
* The renderer's door does (objectui#4425, phase 2): rendered through
|
|
76
|
+
* `SchemaRenderer`, this component's element receives only what `toDomProps`
|
|
77
|
+
* passes, so an authored key it does not declare — or `name`, or an authored
|
|
78
|
+
* `title` — no longer reaches the `Card`. This declaration governs the direct
|
|
79
|
+
* door only, and what it promises still arrives there. Both doors, and how the
|
|
80
|
+
* component tells them apart, are `hostDomProps` in `./schemaHostProps`.
|
|
74
81
|
*/
|
|
75
82
|
export interface MetricWidgetProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
76
83
|
/**
|
|
@@ -91,6 +98,16 @@ export interface MetricWidgetProps extends React.HTMLAttributes<HTMLDivElement>
|
|
|
91
98
|
label?: string | I18nLabel;
|
|
92
99
|
direction?: 'up' | 'down' | 'neutral';
|
|
93
100
|
};
|
|
101
|
+
/**
|
|
102
|
+
* The `compareTo`-derived trend a host computed with `computeMetricDelta`
|
|
103
|
+
* (`ObjectMetricWidget`); it replaces `trend` outright when set. Host state,
|
|
104
|
+
* ⛔ not a node key: its `value` may be `null` — a zero baseline, which has
|
|
105
|
+
* no percentage and draws as a dash (objectui#12677) — while the authored
|
|
106
|
+
* `trend.value` stays the number the spec declares.
|
|
107
|
+
*/
|
|
108
|
+
derivedTrend?: MetricDelta & {
|
|
109
|
+
label?: string;
|
|
110
|
+
};
|
|
94
111
|
icon?: React.ReactNode | string;
|
|
95
112
|
className?: string;
|
|
96
113
|
description?: string | I18nLabel;
|
|
@@ -133,5 +150,5 @@ export interface MetricWidgetProps extends React.HTMLAttributes<HTMLDivElement>
|
|
|
133
150
|
*/
|
|
134
151
|
variant?: 'card' | 'bare';
|
|
135
152
|
}
|
|
136
|
-
export declare const MetricWidget: ({ label, value, trend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, variant, schema: _schema, bind: _bind, events: _events, props: _propsBag, ariaLabel: _ariaLabel, ariaDescribedBy: _ariaDescribedBy, dataSource: _dataSource, ...domProps }: MetricWidgetProps & SchemaHostProps) => React.JSX.Element;
|
|
153
|
+
export declare const MetricWidget: ({ label, value, trend, derivedTrend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, variant, schema: _schema, bind: _bind, events: _events, props: _propsBag, ariaLabel: _ariaLabel, ariaDescribedBy: _ariaDescribedBy, dataSource: _dataSource, ...domProps }: MetricWidgetProps & SchemaHostProps) => React.JSX.Element;
|
|
137
154
|
//# sourceMappingURL=MetricWidget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricWidget.d.ts","sourceRoot":"","sources":["../src/MetricWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAiBvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAA8C,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtG,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"MetricWidget.d.ts","sourceRoot":"","sources":["../src/MetricWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAiBvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAA8C,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AA2CrE;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGxE;AA+GD;;;;;;GAMG;AACH,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC7E;;;;;;;;;;OAUG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;KACvC,CAAC;IACF;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,+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;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,GAAI,wTA+B1B,iBAAiB,GAAG,eAAe,sBAsJrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectMetricWidget.d.ts","sourceRoot":"","sources":["../src/ObjectMetricWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgE,MAAM,OAAO,CAAC;AAGrF,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAYlG,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AA8HjB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;KAClE,CAAC;IACF,wBAAwB;IACxB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iBAAiB;IACjB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,2FAA2F;QAC3F,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,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,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,+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;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;;;;;;;;;;;;OAcG;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,
|
|
1
|
+
{"version":3,"file":"ObjectMetricWidget.d.ts","sourceRoot":"","sources":["../src/ObjectMetricWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgE,MAAM,OAAO,CAAC;AAGrF,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAYlG,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AA8HjB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;KAClE,CAAC;IACF,wBAAwB;IACxB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iBAAiB;IACjB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,2FAA2F;QAC3F,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,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,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,+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;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;;;;;;;;;;;;OAcG;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,CA0dhE,CAAC"}
|
|
@@ -6,10 +6,11 @@ import { ObjectPivotDrillDownConfig, PivotTableSchema } from '@object-ui/types';
|
|
|
6
6
|
* below, and intersecting it with the tombstone would collapse that member to
|
|
7
7
|
* `never`: the one pivot that drills could not be authored with a drill.
|
|
8
8
|
*
|
|
9
|
-
* Key remapping, not `Omit`: `PivotTableSchema`
|
|
10
|
-
* `[key: string]: any
|
|
11
|
-
* `Omit<PivotTableSchema, 'drillDown'>` would
|
|
12
|
-
* every declared member.
|
|
9
|
+
* Key remapping, not `Omit`: written while `PivotTableSchema` inherited
|
|
10
|
+
* `BaseSchema`'s `[key: string]: any`, which widened `keyof` to all of
|
|
11
|
+
* `string`, so `Omit<PivotTableSchema, 'drillDown'>` would have kept the index
|
|
12
|
+
* signature and dropped every declared member. objectui#8347 removed the
|
|
13
|
+
* signature.
|
|
13
14
|
*/
|
|
14
15
|
type PivotTableSchemaWithoutDrillDown = {
|
|
15
16
|
[K in keyof PivotTableSchema as K extends 'drillDown' ? never : K]: PivotTableSchema[K];
|
|
@@ -27,8 +28,8 @@ export interface ObjectPivotTableProps {
|
|
|
27
28
|
* writes it and no reader was added.
|
|
28
29
|
*
|
|
29
30
|
* A `?: never` tombstone, not a plain deletion: `PivotTableSchema` extends
|
|
30
|
-
* `BaseSchema`, whose `[key: string]: any`
|
|
31
|
-
* silently at any value. Licensed by prong 1 of the discriminator
|
|
31
|
+
* `BaseSchema`, whose `[key: string]: any` absorbed a deleted member
|
|
32
|
+
* silently at any value until objectui#8347 (a widened value still would). Licensed by prong 1 of the discriminator
|
|
32
33
|
* (objectui#5941, #7526, in its amended form, `5f8190c8c`): it names the live
|
|
33
34
|
* replacement, `objectName`. A JSON-authored value is refused by name at
|
|
34
35
|
* parse time too, since objectui#11440: the `object-pivot` arm of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectPivotTable.d.ts","sourceRoot":"","sources":["../src/ObjectPivotTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAQxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAwBrF
|
|
1
|
+
{"version":3,"file":"ObjectPivotTable.d.ts","sourceRoot":"","sources":["../src/ObjectPivotTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAQxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAwBrF;;;;;;;;;;;GAWG;AACH,KAAK,gCAAgC,GAAG;KACrC,CAAC,IAAI,MAAM,gBAAgB,IAAI,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;CACxF,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,gCAAgC,GAAG;QACzC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;;;;;;;;;;;;;;;;WAkBG;QACH,YAAY,CAAC,EAAE,KAAK,CAAC;QAkCrB,MAAM,CAAC,EAAE,GAAG,CAAC;QACb;;;;;;;WAOG;QACH,SAAS,CAAC,EAAE,0BAA0B,CAAC;KACxC,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,CA6T5D,CAAC"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Props of the dashboard's read-only drill drawer.
|
|
4
|
+
*
|
|
5
|
+
* Named `DashboardRecordDetailDrawerProps`, not `RecordDetailDrawerProps`:
|
|
6
|
+
* `@object-ui/plugin-detail` publishes `RecordDetailDrawerProps` for its own
|
|
7
|
+
* record drawer, a different component. That drawer is editable, deletes, and
|
|
8
|
+
* resizes, and it takes an `open` flag, a `recordId` and a `dataSource`. This
|
|
9
|
+
* one only shows a record the table already fetched. Neither package depends
|
|
10
|
+
* on the other, so the two could not share one declaration, and the narrower
|
|
11
|
+
* drawer has the specific name (objectui#6349, batch 8).
|
|
12
|
+
*/
|
|
13
|
+
export interface DashboardRecordDetailDrawerProps {
|
|
3
14
|
/** The record to display, or `null` when nothing is selected. */
|
|
4
15
|
record: Record<string, any> | null;
|
|
5
16
|
/** Object the record belongs to (drives label translation + field meta). */
|
|
@@ -27,5 +38,5 @@ export interface RecordDetailDrawerProps {
|
|
|
27
38
|
*/
|
|
28
39
|
objectTypesPending?: boolean;
|
|
29
40
|
}
|
|
30
|
-
export declare const RecordDetailDrawer: React.FC<
|
|
41
|
+
export declare const RecordDetailDrawer: React.FC<DashboardRecordDetailDrawerProps>;
|
|
31
42
|
//# sourceMappingURL=RecordDetailDrawer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordDetailDrawer.d.ts","sourceRoot":"","sources":["../src/RecordDetailDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAiBvC,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"RecordDetailDrawer.d.ts","sourceRoot":"","sources":["../src/RecordDetailDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAiBvC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gCAAgC;IAC/C,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;IACpB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAgBD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,gCAAgC,CAqGzE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ChartSchema } from '@object-ui/types';
|
|
2
|
+
/** A `chart` node as a dashboard surface hands it to the chart renderer. */
|
|
3
|
+
export interface DashboardChartRenderSchema extends ChartSchema {
|
|
4
|
+
/** The positional palette the dashboard paints the series with. */
|
|
5
|
+
colors?: string[];
|
|
6
|
+
/** `false` for a deterministic first paint with no entrance animation (#2756). */
|
|
7
|
+
isAnimationActive?: boolean;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=chartRenderHandoff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartRenderHandoff.d.ts","sourceRoot":"","sources":["../src/chartRenderHandoff.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,4EAA4E;AAC5E,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export type { DashboardMetricNodeSchema } from './widgetDispatch.js';
|
|
|
19
19
|
export { RETIRED_DASHBOARD_NODE_TYPES, RetiredDashboardNodeTombstone, reportRetiredDashboardNodeType, resetRetiredDashboardNodeTypeReports, } from './retired-node-types.js';
|
|
20
20
|
export declare const dashboardComponents: {
|
|
21
21
|
dashboard: React.ForwardRefExoticComponent<import('./DashboardRenderer.js').DashboardRendererProps & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
-
'plugin-dashboard:metric': ({ label, value, trend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, variant, schema: _schema, bind: _bind, events: _events, props: _propsBag, ariaLabel: _ariaLabel, ariaDescribedBy: _ariaDescribedBy, dataSource: _dataSource, ...domProps }: import('./MetricWidget.js').MetricWidgetProps & import('./schemaHostProps.js').SchemaHostProps) => React.JSX.Element;
|
|
22
|
+
'plugin-dashboard:metric': ({ label, value, trend, derivedTrend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, variant, schema: _schema, bind: _bind, events: _events, props: _propsBag, ariaLabel: _ariaLabel, ariaDescribedBy: _ariaDescribedBy, dataSource: _dataSource, ...domProps }: import('./MetricWidget.js').MetricWidgetProps & import('./schemaHostProps.js').SchemaHostProps) => React.JSX.Element;
|
|
23
23
|
'plugin-dashboard:metric-card': React.FC<import('./MetricCard.js').MetricCardProps & import('./schemaHostProps.js').SchemaHostProps>;
|
|
24
24
|
'object-metric': React.FC<{
|
|
25
25
|
[key: string]: any;
|
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,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,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;AAMpD,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;AAC9N,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKlE,OAAO,EACL,iCAAiC,EACjC,yBAAyB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAK3B,YAAY,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAMlE,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AA0f9B,eAAO,MAAM,mBAAmB;;;;;;iBA1Ua,GAAG;;;;;iBAoKJ,GAAG;;;CA8K9C,CAAC"}
|