@object-ui/plugin-dashboard 17.5.0 → 17.7.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.
Files changed (56) hide show
  1. package/CHANGELOG.md +5042 -0
  2. package/README.md +544 -74
  3. package/dist/DashboardConfigPanel.d.ts +3 -0
  4. package/dist/DashboardConfigPanel.d.ts.map +1 -1
  5. package/dist/DashboardFilterBar.d.ts.map +1 -1
  6. package/dist/DashboardGridLayout.d.ts +3 -2
  7. package/dist/DashboardGridLayout.d.ts.map +1 -1
  8. package/dist/DashboardRenderer.d.ts +32 -2
  9. package/dist/DashboardRenderer.d.ts.map +1 -1
  10. package/dist/DashboardWithConfig.d.ts +1 -1
  11. package/dist/DashboardWithConfig.d.ts.map +1 -1
  12. package/dist/DatasetWidget.d.ts +43 -119
  13. package/dist/DatasetWidget.d.ts.map +1 -1
  14. package/dist/DrillDownDrawer.d.ts +14 -5
  15. package/dist/DrillDownDrawer.d.ts.map +1 -1
  16. package/dist/MetricCard.d.ts +1 -1
  17. package/dist/MetricWidget.d.ts +27 -2
  18. package/dist/MetricWidget.d.ts.map +1 -1
  19. package/dist/ObjectDataTable.d.ts +473 -19
  20. package/dist/ObjectDataTable.d.ts.map +1 -1
  21. package/dist/ObjectMetricWidget.d.ts +65 -27
  22. package/dist/ObjectMetricWidget.d.ts.map +1 -1
  23. package/dist/ObjectPivotTable.d.ts +46 -7
  24. package/dist/ObjectPivotTable.d.ts.map +1 -1
  25. package/dist/PivotTable.d.ts +20 -3
  26. package/dist/PivotTable.d.ts.map +1 -1
  27. package/dist/RecordDetailDrawer.d.ts +8 -0
  28. package/dist/RecordDetailDrawer.d.ts.map +1 -1
  29. package/dist/WidgetConfigPanel.d.ts +29 -1
  30. package/dist/WidgetConfigPanel.d.ts.map +1 -1
  31. package/dist/WidgetEmptyState.d.ts +27 -0
  32. package/dist/WidgetEmptyState.d.ts.map +1 -0
  33. package/dist/domPassthroughPins.d.ts.map +1 -1
  34. package/dist/index.d.ts +30 -25
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2306 -1858
  37. package/dist/index.umd.cjs +2 -2
  38. package/dist/legacyRetiredWidget.d.ts +5 -3
  39. package/dist/legacyRetiredWidget.d.ts.map +1 -1
  40. package/dist/measureRefusal.d.ts +50 -0
  41. package/dist/measureRefusal.d.ts.map +1 -0
  42. package/dist/recordFields.d.ts +159 -9
  43. package/dist/recordFields.d.ts.map +1 -1
  44. package/dist/retired-node-types.d.ts +29 -0
  45. package/dist/retired-node-types.d.ts.map +1 -0
  46. package/dist/useConfigPanelTranslation.d.ts +35 -0
  47. package/dist/useConfigPanelTranslation.d.ts.map +1 -0
  48. package/dist/useDashboardAutoRefresh.d.ts +47 -0
  49. package/dist/useDashboardAutoRefresh.d.ts.map +1 -0
  50. package/dist/utils.d.ts +36 -7
  51. package/dist/utils.d.ts.map +1 -1
  52. package/dist/widgetDispatch.d.ts +144 -18
  53. package/dist/widgetDispatch.d.ts.map +1 -1
  54. package/dist/widgetSubCaption.d.ts +40 -0
  55. package/dist/widgetSubCaption.d.ts.map +1 -0
  56. package/package.json +15 -15
@@ -1 +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;;;;;;;;;;;;;;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,CAuVhE,CAAC"}
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,CAwdhE,CAAC"}
@@ -1,14 +1,52 @@
1
1
  import { default as React } from 'react';
2
- import { PivotTableSchema } from '@object-ui/types';
2
+ import { ObjectPivotDrillDownConfig, PivotTableSchema } from '@object-ui/types';
3
+ /**
4
+ * `PivotTableSchema` minus `drillDown`, which is a retirement tombstone on the
5
+ * `pivot` node (objectui#10932). `object-pivot` declares its own `drillDown`
6
+ * below, and intersecting it with the tombstone would collapse that member to
7
+ * `never`: the one pivot that drills could not be authored with a drill.
8
+ *
9
+ * Key remapping, not `Omit`: `PivotTableSchema` extends `BaseSchema`, whose
10
+ * `[key: string]: any` widens `keyof` to all of `string`, so
11
+ * `Omit<PivotTableSchema, 'drillDown'>` would keep the index signature and drop
12
+ * every declared member.
13
+ */
14
+ type PivotTableSchemaWithoutDrillDown = {
15
+ [K in keyof PivotTableSchema as K extends 'drillDown' ? never : K]: PivotTableSchema[K];
16
+ };
3
17
  export interface ObjectPivotTableProps {
4
- schema: PivotTableSchema & {
18
+ schema: PivotTableSchemaWithoutDrillDown & {
5
19
  objectName?: string;
6
- dataProvider?: {
7
- provider: string;
8
- object?: string;
9
- };
10
- bind?: string;
20
+ /**
21
+ * RETIRED (objectui#7353, ADR-0049 remove arm, ruling 5809008870) — write
22
+ * `objectName`, the key this widget fetches through.
23
+ *
24
+ * This member carried the dashboard widget's provider config
25
+ * (`{ provider, object }`), copied onto the pivot node beside `objectName`
26
+ * by `DashboardGridLayout` and read by nothing. The producer no longer
27
+ * writes it and no reader was added.
28
+ *
29
+ * A `?: never` tombstone, not a plain deletion: `PivotTableSchema` extends
30
+ * `BaseSchema`, whose `[key: string]: any` would absorb a deleted member
31
+ * silently at any value. Licensed by prong 1 of the discriminator
32
+ * (objectui#5941, #7526, in its amended form, `5f8190c8c`): it names the live
33
+ * replacement, `objectName`. A JSON-authored value is refused by name at
34
+ * parse time too, since objectui#11440: the `object-pivot` arm of
35
+ * `@object-ui/types/zod` declares the same retirement in its props bag.
36
+ *
37
+ * @deprecated Not read by `ObjectPivotTable` — write `objectName`.
38
+ */
39
+ dataProvider?: never;
11
40
  filter?: any;
41
+ /**
42
+ * This block's drill-down shape, `ObjectPivotDrillDownConfig`: `mode` is
43
+ * refused by name (objectui#10685, applying objectui#9002's ruling B).
44
+ * Every click point on a pivot is an aggregated bucket, so it always drills
45
+ * through; there is no row for `mode` to open as a record. `PivotTableSchema`
46
+ * carries no drill at all: on a plain `pivot` node the key is a retirement
47
+ * tombstone (objectui#10932), and this block is where a pivot drill lives.
48
+ */
49
+ drillDown?: ObjectPivotDrillDownConfig;
12
50
  };
13
51
  dataSource?: any;
14
52
  className?: string;
@@ -26,4 +64,5 @@ export interface ObjectPivotTableProps {
26
64
  * - **Data** → PivotTable with fetched rows
27
65
  */
28
66
  export declare const ObjectPivotTable: React.FC<ObjectPivotTableProps>;
67
+ export {};
29
68
  //# sourceMappingURL=ObjectPivotTable.d.ts.map
@@ -1 +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,CAoO5D,CAAC"}
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;;;;;;;;;;GAUG;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"}
@@ -16,9 +16,26 @@ export interface PivotTableProps {
16
16
  /** Optional display label for the row field name (e.g. "Stage" for "stage"). */
17
17
  rowFieldLabel?: string;
18
18
  /**
19
- * Drill-down click handler. When provided **and** `schema.drillDown` is
20
- * enabled, cells / row & column headers / totals become interactive.
21
- * Receives the click context which is forwarded to the drill-down engine.
19
+ * What this pivot is bound to, named in the default empty state
20
+ * (objectui#7063). `ObjectPivotTable` passes its `schema.objectName`; a pivot
21
+ * over inline `schema.data` has no source to name and omits it. NOT read off
22
+ * `schema`: `PivotTableSchema` declares no `objectName`, so reading one would
23
+ * be reading a key the type says cannot be there — it survives
24
+ * `ObjectPivotTable`'s spread only by accident.
25
+ */
26
+ sourceLabel?: string;
27
+ /**
28
+ * Drill-down click handler, and the ONLY drill switch. When provided, cells /
29
+ * row & column headers / totals become interactive and each click hands its
30
+ * context here; the host decides what a drill opens. `ObjectPivotTable`
31
+ * passes it exactly when its `object-pivot` `drillDown` is enabled.
32
+ *
33
+ * Nothing is read off `schema` for this: `drillDown` on a `pivot` node is a
34
+ * retirement tombstone (objectui#10932), since this component used to drill
35
+ * only for a host that passed this handler and the `pivot` registration
36
+ * passes none. Not a `drillDown` prop either: `SchemaRenderer` spreads a
37
+ * node's keys as props, so a prop of that name would hand an authored
38
+ * `drillDown` straight back to this component.
22
39
  */
23
40
  onDrillDown?: (event: DrillEvent) => void;
24
41
  }
@@ -1 +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;AAyDD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAkD,CAAC;AAwBtG;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgRhD,CAAC"}
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,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQlD,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;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC3C;AAiFD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAkD,CAAC;AAwBtG;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyQhD,CAAC"}
@@ -18,6 +18,14 @@ export interface RecordDetailDrawerProps {
18
18
  target?: 'drawer' | 'dialog';
19
19
  /** Called when the drawer requests to close. */
20
20
  onClose: () => void;
21
+ /**
22
+ * Are the object's field types still unknown (objectui#10657)? The owning
23
+ * table's reading: its definition is in flight, or its read failed. A value
24
+ * is drawn from its field type, so with none in hand every value here is
25
+ * drawn WITHHELD, as the mask — a `password` / `secret` field would
26
+ * otherwise be printed as text — exactly as the table's own cells are.
27
+ */
28
+ objectTypesPending?: boolean;
21
29
  }
22
30
  export declare const RecordDetailDrawer: React.FC<RecordDetailDrawerProps>;
23
31
  //# 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;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,CAkFhE,CAAC"}
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,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;IACpB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAgBD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAqGhE,CAAC"}
@@ -1,4 +1,6 @@
1
- import { WidgetDatasetCatalogEntry } from './dataset-catalog';
1
+ import { ConfigPanelSchema } from '@object-ui/components';
2
+ import { WidgetDatasetCatalogEntry } from './dataset-catalog.js';
3
+ import { ConfigPanelTranslate } from './useConfigPanelTranslation.js';
2
4
  /**
3
5
  * ObjectUI
4
6
  * Copyright (c) 2024-present ObjectStack Inc.
@@ -8,6 +10,7 @@ import { WidgetDatasetCatalogEntry } from './dataset-catalog';
8
10
  */
9
11
  import * as React from 'react';
10
12
  export declare function supportsDrillDown(t: string | undefined): boolean;
13
+ export declare function buildWidgetSchema(t: ConfigPanelTranslate, datasets: WidgetDatasetCatalogEntry[] | undefined, widgetType?: string): ConfigPanelSchema;
11
14
  export interface WidgetConfigPanelProps {
12
15
  /** Whether the panel is open */
13
16
  open: boolean;
@@ -31,6 +34,31 @@ export interface WidgetConfigPanelProps {
31
34
  /** Whether the dataset catalog is still loading (reserved for future UX). */
32
35
  datasetsLoading?: boolean;
33
36
  }
37
+ /**
38
+ * Put the `I18nLabel` keys of a draft back into the shape they were stored in.
39
+ *
40
+ * The draft carries ONE string per label key — the active locale's, which is
41
+ * what the text input can hold. Persisting that string as the whole value is
42
+ * the data loss this card is about, so before a save each label key is mapped
43
+ * back against the value the panel was handed:
44
+ *
45
+ * - stored value is a plain string (or absent): nothing was ever collapsed, so
46
+ * the draft's string is already the correct whole value — passed through.
47
+ * - stored value is a map and the draft's string still equals what the panel
48
+ * DISPLAYED: the author never touched this field, so the **original object is
49
+ * returned by reference**. An untouched title survives an unrelated config
50
+ * edit byte-identically — the round trip the ruling requires, and the reason
51
+ * this is an identity restore rather than a rebuild that would happen to
52
+ * produce an equal object (a rebuild would add an entry for the active locale
53
+ * to a map that never had one).
54
+ * - stored value is a map and the string differs: the edit lands in the active
55
+ * locale's entry via `setLocalized`, every other locale preserved.
56
+ *
57
+ * Exported for direct unit testing — the panel path reaches it only through
58
+ * `useConfigDraft`, so a component test alone would be asserting that hook's
59
+ * behaviour as much as this rule.
60
+ */
61
+ export declare function restoreI18nLabels(draft: Record<string, any>, source: Record<string, any>, language: string | undefined): Record<string, any>;
34
62
  export declare function sanitizeDraftForType(draft: Record<string, any>): Record<string, any>;
35
63
  export declare function WidgetConfigPanel({ open, onClose, config, onSave, onFieldChange, headerExtra, datasets, datasetsLoading: _datasetsLoading, }: WidgetConfigPanelProps): React.JSX.Element;
36
64
  //# sourceMappingURL=WidgetConfigPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetConfigPanel.d.ts","sourceRoot":"","sources":["../src/WidgetConfigPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA4DnE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE;AAiVD,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;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACvC,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA2CD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAOpF;AAED,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EACN,aAAa,EACb,WAAW,EACX,QAAQ,EACR,eAAe,EAAE,gBAAgB,GAClC,EAAE,sBAAsB,qBA8BxB"}
1
+ {"version":3,"file":"WidgetConfigPanel.d.ts","sourceRoot":"","sources":["../src/WidgetConfigPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AA8ErC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE;AA4JD,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,oBAAoB,EACvB,QAAQ,EAAE,yBAAyB,EAAE,GAAG,SAAS,EACjD,UAAU,CAAC,EAAE,MAAM,GAClB,iBAAiB,CAqOnB;AAMD,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;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACvC,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA+CD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgBrB;AA4BD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAOpF;AAED,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EACN,aAAa,EACb,WAAW,EACX,QAAQ,EACR,eAAe,EAAE,gBAAgB,GAClC,EAAE,sBAAsB,qBAiExB"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ export interface WidgetEmptyStateProps {
9
+ /**
10
+ * The authored binding this widget is empty FOR — `widget.dataset` on the
11
+ * dataset path, `schema.objectName` on the object-bound one. Omitted when the
12
+ * render site genuinely has no source to name (an inline-data pivot), in
13
+ * which case the title and explanation still stand on their own.
14
+ */
15
+ source?: string;
16
+ /** Layout classes for the surrounding tile; the muted/centred look is fixed. */
17
+ className?: string;
18
+ /**
19
+ * Test id for the root. Defaults to `widget-empty-state`; the table and pivot
20
+ * surfaces pass the ids their existing pins already select on
21
+ * (`table-empty-state` / `pivot-empty-state`, read by
22
+ * `ObjectDataTable.stableEmptyRows` and app-shell's widget DOM leak sweep).
23
+ */
24
+ testId?: string;
25
+ }
26
+ export declare function WidgetEmptyState({ source, className, testId }: WidgetEmptyStateProps): import("react").JSX.Element;
27
+ //# sourceMappingURL=WidgetEmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetEmptyState.d.ts","sourceRoot":"","sources":["../src/WidgetEmptyState.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwEH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,qBAAqB,+BA6BpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"domPassthroughPins.d.ts","sourceRoot":"","sources":["../src/domPassthroughPins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsHH,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"domPassthroughPins.d.ts","sourceRoot":"","sources":["../src/domPassthroughPins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoHH,OAAO,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,30 +1,35 @@
1
1
  import { default as React } from 'react';
2
- import { DashboardRenderer } from './DashboardRenderer';
3
- import { DashboardGridLayout } from './DashboardGridLayout';
4
- import { MetricWidget } from './MetricWidget';
5
- import { MetricCard } from './MetricCard';
6
- import { ObjectMetricWidget } from './ObjectMetricWidget';
7
- import { PivotTable } from './PivotTable';
8
- import { ObjectPivotTable } from './ObjectPivotTable';
9
- import { ObjectDataTable } from './ObjectDataTable';
10
- import { DashboardConfigPanel } from './DashboardConfigPanel';
11
- import { WidgetConfigPanel } from './WidgetConfigPanel';
12
- import { DashboardWithConfig } from './DashboardWithConfig';
13
- import { DrillDownDrawer } from './DrillDownDrawer';
2
+ import { DashboardRenderer } from './DashboardRenderer.js';
3
+ import { DashboardGridLayout } from './DashboardGridLayout.js';
4
+ import { MetricWidget } from './MetricWidget.js';
5
+ import { MetricCard } from './MetricCard.js';
6
+ import { ObjectMetricWidget } from './ObjectMetricWidget.js';
7
+ import { PivotTable } from './PivotTable.js';
8
+ import { ObjectPivotTable } from './ObjectPivotTable.js';
9
+ import { ObjectDataTable } from './ObjectDataTable.js';
10
+ import { DashboardConfigPanel } from './DashboardConfigPanel.js';
11
+ import { WidgetConfigPanel } from './WidgetConfigPanel.js';
12
+ import { DashboardWithConfig } from './DashboardWithConfig.js';
13
+ import { DrillDownDrawer } from './DrillDownDrawer.js';
14
14
  export { DashboardRenderer, DashboardGridLayout, MetricWidget, MetricCard, ObjectMetricWidget, PivotTable, ObjectPivotTable, ObjectDataTable, DashboardConfigPanel, WidgetConfigPanel, DashboardWithConfig, DrillDownDrawer };
15
- export type { WidgetConfigPanelProps } from './WidgetConfigPanel';
16
- export type { WidgetDatasetCatalogEntry, WidgetDatasetDimension, WidgetDatasetMeasure, } from './dataset-catalog';
15
+ export type { WidgetConfigPanelProps } from './WidgetConfigPanel.js';
16
+ export { CONFIG_PANEL_DEFAULT_TRANSLATIONS, useConfigPanelTranslation, type ConfigPanelTranslate, } from './useConfigPanelTranslation.js';
17
+ export type { WidgetDatasetCatalogEntry, WidgetDatasetDimension, WidgetDatasetMeasure, } from './dataset-catalog.js';
18
+ export type { DashboardMetricNodeSchema } from './widgetDispatch.js';
19
+ export { RETIRED_DASHBOARD_NODE_TYPES, RetiredDashboardNodeTombstone, reportRetiredDashboardNodeType, resetRetiredDashboardNodeTypeReports, } from './retired-node-types.js';
17
20
  export declare const dashboardComponents: {
18
- DashboardRenderer: React.ForwardRefExoticComponent<import('./DashboardRenderer').DashboardRendererProps & React.RefAttributes<HTMLDivElement>>;
19
- DashboardGridLayout: React.FC<import('./DashboardGridLayout').DashboardGridLayoutProps>;
20
- 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 }: import('./MetricWidget').MetricWidgetProps & import('./schemaHostProps').SchemaHostProps) => React.JSX.Element;
21
- MetricCard: React.FC<import('./MetricCard').MetricCardProps & import('./schemaHostProps').SchemaHostProps>;
22
- ObjectMetricWidget: React.FC<import('./ObjectMetricWidget').ObjectMetricWidgetProps>;
23
- PivotTable: React.FC<import('./PivotTable').PivotTableProps>;
24
- ObjectPivotTable: React.FC<import('./ObjectPivotTable').ObjectPivotTableProps>;
25
- ObjectDataTable: React.FC<import('./ObjectDataTable').ObjectDataTableProps>;
26
- DashboardConfigPanel: typeof DashboardConfigPanel;
27
- WidgetConfigPanel: typeof WidgetConfigPanel;
28
- DashboardWithConfig: typeof DashboardWithConfig;
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;
23
+ 'plugin-dashboard:metric-card': React.FC<import('./MetricCard.js').MetricCardProps & import('./schemaHostProps.js').SchemaHostProps>;
24
+ 'object-metric': React.FC<{
25
+ [key: string]: any;
26
+ schema?: any;
27
+ }>;
28
+ pivot: React.FC<import('./PivotTable.js').PivotTableProps>;
29
+ 'object-pivot': React.FC<{
30
+ [key: string]: any;
31
+ schema?: any;
32
+ }>;
33
+ 'object-data-table': React.FC<import('./ObjectDataTable.js').ObjectDataTableProps>;
29
34
  };
30
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,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;AAC9N,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EACV,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AA4R3B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;CAY/B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,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;AA2c9B,eAAO,MAAM,mBAAmB;;;;;;iBA3Ra,GAAG;;;;;iBA4IJ,GAAG;;;CAuJ9C,CAAC"}