@cratis/components 1.4.0 → 1.4.2

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 (82) hide show
  1. package/dist/cjs/CommandForm/fields/ColorPickerField.js +5 -1
  2. package/dist/cjs/CommandForm/fields/ColorPickerField.js.map +1 -1
  3. package/dist/cjs/DataPage/DataPage.js +3 -3
  4. package/dist/cjs/DataPage/DataPage.js.map +1 -1
  5. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js +119 -10
  6. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js.map +1 -1
  7. package/dist/cjs/PivotViewer/PivotViewer.css +8 -2
  8. package/dist/cjs/PivotViewer/PivotViewer.js +3 -0
  9. package/dist/cjs/PivotViewer/PivotViewer.js.map +1 -1
  10. package/dist/cjs/PivotViewer/engine/layout.js +2 -2
  11. package/dist/cjs/PivotViewer/engine/layout.js.map +1 -1
  12. package/dist/cjs/PivotViewer/hooks/useCardSelection.js +4 -4
  13. package/dist/cjs/PivotViewer/hooks/useCardSelection.js.map +1 -1
  14. package/dist/cjs/PivotViewer/hooks/useDetailPanelClose.js +3 -3
  15. package/dist/cjs/PivotViewer/hooks/useDetailPanelClose.js.map +1 -1
  16. package/dist/cjs/PivotViewer/hooks/useWheelZoom.js +8 -1
  17. package/dist/cjs/PivotViewer/hooks/useWheelZoom.js.map +1 -1
  18. package/dist/cjs/PivotViewer/utils/selection.js +22 -2
  19. package/dist/cjs/PivotViewer/utils/selection.js.map +1 -1
  20. package/dist/cjs/index.js +2 -0
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/types/index.js +8 -0
  23. package/dist/cjs/types/index.js.map +1 -0
  24. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts.map +1 -1
  25. package/dist/esm/CommandDialog/CommandDialog.stories.js +129 -142
  26. package/dist/esm/CommandDialog/CommandDialog.stories.js.map +1 -1
  27. package/dist/esm/CommandForm/fields/ColorPickerField.d.ts.map +1 -1
  28. package/dist/esm/CommandForm/fields/ColorPickerField.js +5 -1
  29. package/dist/esm/CommandForm/fields/ColorPickerField.js.map +1 -1
  30. package/dist/esm/DataPage/DataPage.d.ts +3 -0
  31. package/dist/esm/DataPage/DataPage.d.ts.map +1 -1
  32. package/dist/esm/DataPage/DataPage.js +3 -3
  33. package/dist/esm/DataPage/DataPage.js.map +1 -1
  34. package/dist/esm/Dialogs/Dialog.stories.d.ts.map +1 -1
  35. package/dist/esm/Dialogs/Dialog.stories.js +15 -16
  36. package/dist/esm/Dialogs/Dialog.stories.js.map +1 -1
  37. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +4 -1
  38. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -1
  39. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js +120 -11
  40. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -1
  41. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts.map +1 -1
  42. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js +12 -13
  43. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js.map +1 -1
  44. package/dist/esm/PivotViewer/PivotViewer.css +8 -2
  45. package/dist/esm/PivotViewer/PivotViewer.d.ts.map +1 -1
  46. package/dist/esm/PivotViewer/PivotViewer.js +3 -0
  47. package/dist/esm/PivotViewer/PivotViewer.js.map +1 -1
  48. package/dist/esm/PivotViewer/PivotViewer.stories.d.ts +1 -0
  49. package/dist/esm/PivotViewer/PivotViewer.stories.d.ts.map +1 -1
  50. package/dist/esm/PivotViewer/PivotViewer.stories.js +177 -0
  51. package/dist/esm/PivotViewer/PivotViewer.stories.js.map +1 -1
  52. package/dist/esm/PivotViewer/engine/layout.js +2 -2
  53. package/dist/esm/PivotViewer/engine/layout.js.map +1 -1
  54. package/dist/esm/PivotViewer/hooks/useCardSelection.d.ts +4 -1
  55. package/dist/esm/PivotViewer/hooks/useCardSelection.d.ts.map +1 -1
  56. package/dist/esm/PivotViewer/hooks/useCardSelection.js +4 -4
  57. package/dist/esm/PivotViewer/hooks/useCardSelection.js.map +1 -1
  58. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.d.ts +3 -1
  59. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.d.ts.map +1 -1
  60. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.js +3 -3
  61. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.js.map +1 -1
  62. package/dist/esm/PivotViewer/hooks/useWheelZoom.d.ts.map +1 -1
  63. package/dist/esm/PivotViewer/hooks/useWheelZoom.js +8 -1
  64. package/dist/esm/PivotViewer/hooks/useWheelZoom.js.map +1 -1
  65. package/dist/esm/PivotViewer/utils/selection.d.ts.map +1 -1
  66. package/dist/esm/PivotViewer/utils/selection.js +23 -3
  67. package/dist/esm/PivotViewer/utils/selection.js.map +1 -1
  68. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts.map +1 -1
  69. package/dist/esm/SchemaEditor/SchemaEditor.stories.js +7 -8
  70. package/dist/esm/SchemaEditor/SchemaEditor.stories.js.map +1 -1
  71. package/dist/esm/index.d.ts +2 -1
  72. package/dist/esm/index.d.ts.map +1 -1
  73. package/dist/esm/index.js +2 -0
  74. package/dist/esm/index.js.map +1 -1
  75. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  76. package/dist/esm/types/index.d.ts +3 -0
  77. package/dist/esm/types/index.d.ts.map +1 -0
  78. package/dist/esm/types/index.js +2 -0
  79. package/dist/esm/types/index.js.map +1 -0
  80. package/dist/esm/vitest.setup.js +0 -2
  81. package/dist/esm/vitest.setup.js.map +1 -1
  82. package/package.json +8 -3
@@ -1 +1 @@
1
- {"version":3,"file":"DataPage.js","sources":["../../../DataPage/DataPage.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ReactNode, useMemo } from 'react';\nimport { Page } from '../Common/Page';\nimport React from 'react';\nimport { MenuItem as PrimeMenuItem } from 'primereact/menuitem';\nimport { Menubar } from 'primereact/menubar';\nimport { IObservableQueryFor, IQueryFor, QueryFor } from '@cratis/arc/queries';\nimport { DataTableForObservableQuery } from '../DataTables/DataTableForObservableQuery';\nimport { DataTableFilterMeta, DataTableSelectionSingleChangeEvent } from 'primereact/datatable';\nimport { DataTableForQuery } from '../DataTables/DataTableForQuery';\nimport { Allotment } from 'allotment';\nimport { Constructor } from '@cratis/fundamentals';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport interface MenuItemProps extends PrimeMenuItem {\n disableOnUnselected?: boolean;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const MenuItem = (_: MenuItemProps) => {\n return null;\n};\n\nexport interface MenuItemsProps {\n children: ReactNode;\n}\n\nexport interface ColumnProps {\n children: ReactNode;\n}\n\nexport const MenuItems = ({ children }: MenuItemsProps) => {\n const context = React.useContext(DataPageContext);\n\n const isDisabled = useMemo(() => {\n return !context.selectedItem;\n }, [context.selectedItem]);\n\n const items = useMemo(() => {\n const menuItems: PrimeMenuItem[] = [];\n React.Children.forEach(children, (child) => {\n if (React.isValidElement<MenuItemProps>(child) && child.type == MenuItem) {\n const Icon = child.props.icon;\n const menuItem = { ...child.props };\n menuItem.icon = <Icon className='mr-2' />;\n menuItem.disabled = isDisabled && child.props.disableOnUnselected;\n menuItems.push(menuItem);\n }\n });\n\n return menuItems;\n }, [children, context.selectedItem]);\n\n return (\n <div className=\"px-4 py-2\">\n <Menubar aria-label=\"Actions\" model={items} />\n </div>);\n};\n\nexport const Columns = ({ children }: ColumnProps) => {\n\n const context = React.useContext(DataPageContext);\n\n if (context.query.prototype instanceof QueryFor) {\n return (\n <DataTableForQuery {...context} selection={context.selectedItem} onSelectionChange={context.onSelectionChanged}>\n {children}\n </DataTableForQuery>);\n\n } else {\n return (\n <DataTableForObservableQuery {...context} selection={context.selectedItem} onSelectionChange={context.onSelectionChanged}>\n {children}\n </DataTableForObservableQuery>);\n }\n};\n\nexport interface IDetailsComponentProps<TDataType> {\n item: TDataType;\n\n}\n\ninterface IDataPageContext extends DataPageProps<any, any, any> {\n selectedItem: any;\n onSelectionChanged: (e: DataTableSelectionSingleChangeEvent<any>) => void;\n}\n\nconst DataPageContext = React.createContext<IDataPageContext>(null as any);\n\n/**\n * Props for the DataPage component\n */\nexport interface DataPageProps<TQuery extends IQueryFor<TDataType> | IObservableQueryFor<TDataType>, TDataType, TArguments> {\n /**\n * The title of the page\n */\n title: string;\n\n /**\n * Children to render, for this it means menu items and columns. Use <DataPage.MenuItems> and <DataPage.Columns> for this.\n */\n children: ReactNode;\n\n /**\n * Component to render when the selection changes\n */\n detailsComponent?: React.FC<IDetailsComponentProps<any>>;\n\n /**\n * The type of query to use\n */\n query: Constructor<TQuery>;\n\n /**\n * Optional arguments to pass to the query\n */\n queryArguments?: TArguments;\n\n /**\n * The message to show when there is no data\n */\n emptyMessage: string;\n\n /**\n * The key to use for the data\n */\n dataKey?: string | undefined;\n\n /**\n * The current selection.\n */\n selection?: any | undefined | null;\n\n /**\n * Callback for when the selection changes\n */\n onSelectionChange?(event: DataTableSelectionSingleChangeEvent<any>): void;\n\n /**\n * Fields to use for global filtering\n */\n globalFilterFields?: string[] | undefined;\n\n /**\n * Default filters to use\n */\n defaultFilters?: DataTableFilterMeta;\n}\n\n/**\n * Represents a data driven page with a menu and custom defined columns for the data table.\n * @param props Props for the DataPage component\n * @returns Function to render the DataPage component\n */\nconst DataPage = <TQuery extends IQueryFor<TDataType> | IObservableQueryFor<TDataType, TArguments>, TDataType, TArguments extends object>(props: DataPageProps<TQuery, TDataType, TArguments>) => {\n const [selectedItem, setSelectedItem] = React.useState(undefined);\n\n const selectionChanged = (e: DataTableSelectionSingleChangeEvent<any>) => {\n setSelectedItem(e.value);\n if (props.onSelectionChange) {\n props.onSelectionChange(e);\n }\n };\n\n const context = { ...props, selectedItem, onSelectionChanged: selectionChanged };\n\n return (\n <DataPageContext.Provider value={context}>\n <Page title={props.title} panel={true}>\n <Allotment className=\"h-full\" proportionalLayout={false}>\n <Allotment.Pane className=\"flex-grow\">\n {props.children}\n </Allotment.Pane>\n {props.detailsComponent && selectedItem &&\n <Allotment.Pane preferredSize=\"450px\">\n <props.detailsComponent item={selectedItem} />\n </Allotment.Pane>\n }\n </Allotment>\n </Page>\n </DataPageContext.Provider>\n );\n};\n\nDataPage.MenuItems = MenuItems;\nDataPage.Columns = Columns;\n\nexport { DataPage };\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"DataPage.js","sources":["../../../DataPage/DataPage.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ReactNode, useMemo } from 'react';\nimport { Page } from '../Common/Page';\nimport React from 'react';\nimport { MenuItem as PrimeMenuItem } from 'primereact/menuitem';\nimport { Menubar } from 'primereact/menubar';\nimport { IObservableQueryFor, IQueryFor, QueryFor } from '@cratis/arc/queries';\nimport { DataTableForObservableQuery } from '../DataTables/DataTableForObservableQuery';\nimport { DataTableFilterMeta, DataTableSelectionSingleChangeEvent } from 'primereact/datatable';\nimport { DataTableForQuery } from '../DataTables/DataTableForQuery';\nimport { Allotment } from 'allotment';\nimport { Constructor } from '@cratis/fundamentals';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport interface MenuItemProps extends PrimeMenuItem {\n disableOnUnselected?: boolean;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const MenuItem = (_: MenuItemProps) => {\n return null;\n};\n\nexport interface MenuItemsProps {\n children: ReactNode;\n}\n\nexport interface ColumnProps {\n children: ReactNode;\n}\n\nexport const MenuItems = ({ children }: MenuItemsProps) => {\n const context = React.useContext(DataPageContext);\n\n const isDisabled = useMemo(() => {\n return !context.selectedItem;\n }, [context.selectedItem]);\n\n const items = useMemo(() => {\n const menuItems: PrimeMenuItem[] = [];\n React.Children.forEach(children, (child) => {\n if (React.isValidElement<MenuItemProps>(child) && child.type == MenuItem) {\n const Icon = child.props.icon;\n const menuItem = { ...child.props };\n menuItem.icon = <Icon className='mr-2' />;\n menuItem.disabled = isDisabled && child.props.disableOnUnselected;\n menuItems.push(menuItem);\n }\n });\n\n return menuItems;\n }, [children, context.selectedItem]);\n\n return (\n <div className=\"px-4 py-2\">\n <Menubar aria-label=\"Actions\" model={items} />\n </div>);\n};\n\nexport const Columns = ({ children }: ColumnProps) => {\n\n const context = React.useContext(DataPageContext);\n\n if (context.query.prototype instanceof QueryFor) {\n return (\n <DataTableForQuery\n {...context}\n selection={context.selectedItem}\n onSelectionChange={context.onSelectionChanged}\n clientFiltering={context.clientFiltering}>\n {children}\n </DataTableForQuery>);\n\n } else {\n return (\n <DataTableForObservableQuery\n {...context}\n selection={context.selectedItem}\n onSelectionChange={context.onSelectionChanged}\n clientFiltering={context.clientFiltering}>\n {children}\n </DataTableForObservableQuery>);\n }\n};\n\nexport interface IDetailsComponentProps<TDataType> {\n item: TDataType;\n onRefresh?: () => void;\n}\n\ninterface IDataPageContext extends DataPageProps<any, any, any> {\n selectedItem: any;\n onSelectionChanged: (e: DataTableSelectionSingleChangeEvent<any>) => void;\n}\n\nconst DataPageContext = React.createContext<IDataPageContext>(null as any);\n\n/**\n * Props for the DataPage component\n */\nexport interface DataPageProps<TQuery extends IQueryFor<TDataType> | IObservableQueryFor<TDataType>, TDataType, TArguments> {\n /**\n * The title of the page\n */\n title: string;\n\n /**\n * Children to render, for this it means menu items and columns. Use <DataPage.MenuItems> and <DataPage.Columns> for this.\n */\n children: ReactNode;\n\n /**\n * Component to render when the selection changes\n */\n detailsComponent?: React.FC<IDetailsComponentProps<any>>;\n\n /**\n * The type of query to use\n */\n query: Constructor<TQuery>;\n\n /**\n * Optional arguments to pass to the query\n */\n queryArguments?: TArguments;\n\n /**\n * The message to show when there is no data\n */\n emptyMessage: string;\n\n /**\n * The key to use for the data\n */\n dataKey?: string | undefined;\n\n /**\n * The current selection.\n */\n selection?: any | undefined | null;\n\n /**\n * Callback for when the selection changes\n */\n onSelectionChange?(event: DataTableSelectionSingleChangeEvent<any>): void;\n\n /**\n * Fields to use for global filtering\n */\n globalFilterFields?: string[] | undefined;\n\n /**\n * Default filters to use\n */\n defaultFilters?: DataTableFilterMeta;\n\n /**\n * When true, filtering is performed client-side only\n */\n clientFiltering?: boolean;\n\n /**\n * Callback triggered to signal data refresh\n */\n onRefresh?(): void;\n}\n\n/**\n * Represents a data driven page with a menu and custom defined columns for the data table.\n * @param props Props for the DataPage component\n * @returns Function to render the DataPage component\n */\nconst DataPage = <TQuery extends IQueryFor<TDataType> | IObservableQueryFor<TDataType, TArguments>, TDataType, TArguments extends object>(props: DataPageProps<TQuery, TDataType, TArguments>) => {\n const [selectedItem, setSelectedItem] = React.useState(undefined);\n\n const selectionChanged = (e: DataTableSelectionSingleChangeEvent<any>) => {\n setSelectedItem(e.value);\n if (props.onSelectionChange) {\n props.onSelectionChange(e);\n }\n };\n\n const context = { ...props, selectedItem, onSelectionChanged: selectionChanged };\n\n return (\n <DataPageContext.Provider value={context}>\n <Page title={props.title} panel={true}>\n <Allotment className=\"h-full\" proportionalLayout={false}>\n <Allotment.Pane className=\"flex-grow\">\n {props.children}\n </Allotment.Pane>\n {props.detailsComponent && selectedItem &&\n <Allotment.Pane preferredSize=\"450px\">\n <props.detailsComponent item={selectedItem} onRefresh={props.onRefresh} />\n </Allotment.Pane>\n }\n </Allotment>\n </Page>\n </DataPageContext.Provider>\n );\n};\n\nDataPage.MenuItems = MenuItems;\nDataPage.Columns = Columns;\n\nexport { DataPage };\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.stories.d.ts","sourceRoot":"","sources":["../../../Dialogs/Dialog.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAM7B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC;AA6BrC,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,EAAE,EAAE,KAMhB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAmDtB,CAAC;AAqCF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAmD3B,CAAC"}
1
+ {"version":3,"file":"Dialog.stories.d.ts","sourceRoot":"","sources":["../../../Dialogs/Dialog.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAM7B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC;AA6BrC,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,EAAE,EAAE,KAMhB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAmDtB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAmCpB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAmD3B,CAAC"}
@@ -49,23 +49,22 @@ export const WithForm = {
49
49
  } }), result && _jsxs("p", { children: ["Last saved name: ", result] }), _jsx(AddNameDialogComponent, {})] }));
50
50
  }
51
51
  };
52
- const IsBusyWrapper = () => {
53
- const [busy, setBusy] = useState(false);
54
- const BusyDialog = () => {
55
- const { closeDialog } = useDialogContext();
56
- return (_jsx(Dialog, { title: "Saving changes", buttons: DialogButtons.OkCancel, onConfirm: async () => {
57
- setBusy(true);
58
- await new Promise(resolve => setTimeout(resolve, 3000));
59
- setBusy(false);
60
- closeDialog(DialogResult.Ok);
61
- return true;
62
- }, onCancel: () => closeDialog(DialogResult.Cancelled), isBusy: busy, children: _jsx("p", { children: "Click Ok to simulate a 3-second save operation. All buttons become disabled and the primary button shows a spinner." }) }));
63
- };
64
- const [DialogComponent, showDialog] = useDialog(BusyDialog);
65
- return (_jsxs(_Fragment, { children: [_jsx(Button, { label: "Open Dialog", onClick: async () => await showDialog() }), _jsx(DialogComponent, {})] }));
66
- };
67
52
  export const IsBusy = {
68
- render: () => _jsx(IsBusyWrapper, {}),
53
+ render: () => {
54
+ const [busy, setBusy] = useState(false);
55
+ const BusyDialog = () => {
56
+ const { closeDialog } = useDialogContext();
57
+ return (_jsx(Dialog, { title: "Saving changes", buttons: DialogButtons.OkCancel, onConfirm: async () => {
58
+ setBusy(true);
59
+ await new Promise(resolve => setTimeout(resolve, 3000));
60
+ setBusy(false);
61
+ closeDialog(DialogResult.Ok);
62
+ return true;
63
+ }, onCancel: () => closeDialog(DialogResult.Cancelled), isBusy: busy, children: _jsx("p", { children: "Click Ok to simulate a 3-second save operation. All buttons become disabled and the primary button shows a spinner." }) }));
64
+ };
65
+ const [DialogComponent, showDialog] = useDialog(BusyDialog);
66
+ return (_jsxs(_Fragment, { children: [_jsx(Button, { label: "Open Dialog", onClick: async () => await showDialog() }), _jsx(DialogComponent, {})] }));
67
+ }
69
68
  };
70
69
  export const CustomButtons = {
71
70
  render: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.stories.js","sourceRoot":"","sources":["../../../Dialogs/Dialog.stories.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.stories.js","sourceRoot":"","sources":["../../../Dialogs/Dialog.stories.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,9 @@ export interface ObjectContentEditorProps {
3
3
  object: Json;
4
4
  timestamp?: Date;
5
5
  schema: JsonSchema;
6
+ editMode?: boolean;
7
+ onChange?: (object: Json) => void;
8
+ onValidationChange?: (hasErrors: boolean) => void;
6
9
  }
7
- export declare const ObjectContentEditor: ({ object, timestamp, schema }: ObjectContentEditorProps) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const ObjectContentEditor: ({ object, timestamp, schema, editMode, onChange, onValidationChange }: ObjectContentEditorProps) => import("react/jsx-runtime").JSX.Element;
8
11
  //# sourceMappingURL=ObjectContentEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectContentEditor.d.ts","sourceRoot":"","sources":["../../../ObjectContentEditor/ObjectContentEditor.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AAG3E,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,IAAI,CAAC;IACb,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,GAAI,+BAA+B,wBAAwB,4CAwN1F,CAAC"}
1
+ {"version":3,"file":"ObjectContentEditor.d.ts","sourceRoot":"","sources":["../../../ObjectContentEditor/ObjectContentEditor.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AAQ3E,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,IAAI,CAAC;IACb,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IAInB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAInB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC;IAIlC,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,mBAAmB,GAAI,uEAA+E,wBAAwB,4CA4Z1I,CAAC"}
@@ -1,12 +1,65 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { Tooltip } from 'primereact/tooltip';
3
- import React, { useState, useCallback, useMemo } from 'react';
3
+ import React, { useState, useCallback, useEffect, useMemo } from 'react';
4
4
  import * as faIcons from 'react-icons/fa6';
5
5
  import { ObjectNavigationalBar } from '../ObjectNavigationalBar/ObjectNavigationalBar.js';
6
6
  import { getValueAtPath } from './objectHelpers.js';
7
+ import { InputText } from 'primereact/inputtext';
8
+ import { InputNumber } from 'primereact/inputnumber';
9
+ import { Checkbox } from 'primereact/checkbox';
10
+ import { Calendar } from 'primereact/calendar';
11
+ import { InputTextarea } from 'primereact/inputtextarea';
7
12
 
8
- const ObjectContentEditor = ({ object, timestamp, schema }) => {
13
+ const ObjectContentEditor = ({ object, timestamp, schema, editMode = false, onChange, onValidationChange }) => {
9
14
  const [navigationPath, setNavigationPath] = useState([]);
15
+ const [validationErrors, setValidationErrors] = useState({});
16
+ const validateValue = useCallback((propertyName, value, property) => {
17
+ if (editMode) {
18
+ if (value === null || value === undefined || value === '') {
19
+ return 'This field is required';
20
+ }
21
+ }
22
+ else {
23
+ const isRequired = schema.required?.includes(propertyName);
24
+ if (isRequired && (value === null || value === undefined || value === '')) {
25
+ return 'This field is required';
26
+ }
27
+ }
28
+ if (property.type === 'string' && typeof value === 'string') {
29
+ if (property.format === 'email' && value && !value.match(/^[^\s@]+@[^\s@]+\.[^\s@]+$/)) {
30
+ return 'Invalid email format';
31
+ }
32
+ if (property.format === 'uri' && value && !value.match(/^https?:\/\/.+/)) {
33
+ return 'Invalid URI format';
34
+ }
35
+ }
36
+ if (property.type === 'number' || property.type === 'integer') {
37
+ if (value !== null && value !== undefined && value !== '' && isNaN(Number(value))) {
38
+ return 'Must be a valid number';
39
+ }
40
+ }
41
+ return undefined;
42
+ }, [schema, editMode]);
43
+ useEffect(() => {
44
+ if (!editMode || navigationPath.length > 0)
45
+ return;
46
+ const errors = {};
47
+ const properties = schema.properties || {};
48
+ Object.entries(properties).forEach(([propertyName, property]) => {
49
+ const value = object[propertyName];
50
+ const error = validateValue(propertyName, value, property);
51
+ if (error) {
52
+ errors[propertyName] = error;
53
+ }
54
+ });
55
+ setValidationErrors(errors);
56
+ }, [object, schema, editMode, navigationPath, validateValue]);
57
+ useEffect(() => {
58
+ if (editMode && onValidationChange) {
59
+ const hasErrors = Object.keys(validationErrors).length > 0;
60
+ onValidationChange(hasErrors);
61
+ }
62
+ }, [validationErrors, editMode, onValidationChange]);
10
63
  const navigateToProperty = useCallback((key) => {
11
64
  setNavigationPath([...navigationPath, key]);
12
65
  }, [navigationPath]);
@@ -60,6 +113,7 @@ const ObjectContentEditor = ({ object, timestamp, schema }) => {
60
113
  textAlign: 'left',
61
114
  fontWeight: 500,
62
115
  width: '140px',
116
+ whiteSpace: 'nowrap',
63
117
  };
64
118
  const valueStyle = {
65
119
  padding: '8px 12px',
@@ -67,10 +121,62 @@ const ObjectContentEditor = ({ object, timestamp, schema }) => {
67
121
  textAlign: 'left',
68
122
  };
69
123
  const infoIconStyle = {
70
- marginLeft: '6px',
71
- fontSize: '12px',
72
- color: 'rgba(100, 150, 255, 0.6)',
73
- cursor: 'help',
124
+ fontSize: '0.875rem',
125
+ color: 'var(--text-color-secondary)',
126
+ flexShrink: 0,
127
+ };
128
+ const updateValue = useCallback((propertyName, newValue) => {
129
+ if (!onChange)
130
+ return;
131
+ const updatedObject = { ...object };
132
+ updatedObject[propertyName] = newValue;
133
+ onChange(updatedObject);
134
+ }, [object, onChange]);
135
+ const renderEditField = (propertyName, property, value) => {
136
+ const error = validationErrors[propertyName];
137
+ const handleChange = (newValue) => {
138
+ updateValue(propertyName, newValue);
139
+ const validationError = validateValue(propertyName, newValue, property);
140
+ setValidationErrors(prev => {
141
+ const newErrors = { ...prev };
142
+ if (validationError) {
143
+ newErrors[propertyName] = validationError;
144
+ }
145
+ else {
146
+ delete newErrors[propertyName];
147
+ }
148
+ return newErrors;
149
+ });
150
+ };
151
+ const inputStyle = {
152
+ width: '100%',
153
+ ...(error ? { borderColor: 'var(--red-500)' } : {})
154
+ };
155
+ if (property.type === 'boolean') {
156
+ return (jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '4px' }, children: [jsx(Checkbox, { checked: Boolean(value), onChange: (e) => handleChange(e.checked ?? false) }), error && jsx("small", { className: "p-error", children: error })] }));
157
+ }
158
+ if (property.type === 'number' || property.type === 'integer') {
159
+ return (jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '4px' }, children: [jsx(InputNumber, { value: (value === null || value === undefined) ? null : Number(value), onValueChange: (e) => handleChange(e.value ?? null), mode: "decimal", useGrouping: false, style: inputStyle }), error && jsx("small", { className: "p-error", children: error })] }));
160
+ }
161
+ if (property.type === 'string' && property.format === 'date-time') {
162
+ const dateValue = value ? new Date(value) : null;
163
+ return (jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '4px' }, children: [jsx(Calendar, { value: dateValue, onChange: (e) => handleChange(e.value instanceof Date ? e.value.toISOString() : null), showTime: true, showIcon: true, style: inputStyle }), error && jsx("small", { className: "p-error", children: error })] }));
164
+ }
165
+ if (property.type === 'string' && property.format === 'date') {
166
+ const dateValue = value ? new Date(value) : null;
167
+ return (jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '4px' }, children: [jsx(Calendar, { value: dateValue, onChange: (e) => handleChange(e.value instanceof Date ? e.value.toISOString().split('T')[0] : null), showIcon: true, style: inputStyle }), error && jsx("small", { className: "p-error", children: error })] }));
168
+ }
169
+ if (property.type === 'array') {
170
+ return (jsx("div", { className: "flex align-items-center gap-2", style: { color: 'rgba(255,255,255,0.6)', fontStyle: 'italic' }, children: jsx("span", { children: "Array editing not yet supported" }) }));
171
+ }
172
+ if (property.type === 'object') {
173
+ return (jsx("div", { className: "flex align-items-center gap-2", style: { color: 'rgba(255,255,255,0.6)', fontStyle: 'italic' }, children: jsx("span", { children: "Object editing not yet supported" }) }));
174
+ }
175
+ const isLongText = value?.length > 50;
176
+ if (isLongText) {
177
+ return (jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '4px' }, children: [jsx(InputTextarea, { value: String(value ?? ''), onChange: (e) => handleChange(e.target.value), rows: 3, style: inputStyle }), error && jsx("small", { className: "p-error", children: error })] }));
178
+ }
179
+ return (jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '4px' }, children: [jsx(InputText, { value: String(value ?? ''), onChange: (e) => handleChange(e.target.value), style: inputStyle }), error && jsx("small", { className: "p-error", children: error })] }));
74
180
  };
75
181
  const renderValue = (value, propertyName) => {
76
182
  if (value === null || value === undefined)
@@ -102,13 +208,16 @@ const ObjectContentEditor = ({ object, timestamp, schema }) => {
102
208
  return (jsx("table", { style: tableStyle, children: jsx("tbody", { children: entries.map(([propertyName, propertyDef]) => {
103
209
  const value = currentData[propertyName];
104
210
  const isSchemaProperty = navigationPath.length === 0;
105
- const description = isSchemaProperty && typeof propertyDef === 'object' && propertyDef !== null && 'description' in propertyDef
106
- ? propertyDef.description
107
- : undefined;
108
- return (jsxs("tr", { style: rowStyle, children: [jsxs("td", { style: labelStyle, children: [propertyName, description && (jsx("i", { className: "pi pi-info-circle property-info-icon", style: infoIconStyle, "data-pr-tooltip": description }))] }), jsx("td", { style: valueStyle, children: renderValue(value, propertyName) })] }, propertyName));
211
+ const property = isSchemaProperty && typeof propertyDef === 'object' && propertyDef !== null && 'type' in propertyDef
212
+ ? propertyDef
213
+ : null;
214
+ const description = property?.description;
215
+ return (jsxs("tr", { style: rowStyle, children: [jsx("td", { style: labelStyle, children: jsxs("span", { style: { display: 'inline-flex', alignItems: 'center', gap: '6px' }, children: [propertyName, description && (jsx(faIcons.FaCircleInfo, { className: "property-info-icon", style: infoIconStyle, "data-pr-tooltip": description, "data-pr-position": "right" }))] }) }), jsx("td", { style: valueStyle, children: editMode && property
216
+ ? renderEditField(propertyName, property, value)
217
+ : renderValue(value, propertyName) })] }, propertyName));
109
218
  }) }) }));
110
219
  };
111
- return (jsxs("div", { className: "order-content", style: { display: 'flex', flexDirection: 'column', height: '100%' }, children: [jsx(Tooltip, { target: ".property-info-icon" }), jsx(ObjectNavigationalBar, { navigationPath: navigationPath, onNavigate: navigateToBreadcrumb }), renderTable(), timestamp && (jsxs("div", { style: {
220
+ return (jsxs("div", { className: "order-content", style: { display: 'flex', flexDirection: 'column', height: '100%' }, children: [jsx(Tooltip, { target: "[data-pr-tooltip]" }), jsx(ObjectNavigationalBar, { navigationPath: navigationPath, onNavigate: navigateToBreadcrumb }), renderTable(), timestamp && (jsxs("div", { style: {
112
221
  marginTop: '20px',
113
222
  padding: '12px',
114
223
  background: 'rgba(100, 150, 255, 0.1)',
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectContentEditor.js","sources":["../../../ObjectContentEditor/ObjectContentEditor.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Tooltip } from 'primereact/tooltip';\nimport React, { useState, useCallback, useMemo } from 'react';\nimport * as faIcons from 'react-icons/fa6';\nimport { ObjectNavigationalBar } from '../ObjectNavigationalBar';\nimport { Json, JsonSchema, JsonSchemaProperty } from '../types/JsonSchema';\nimport { getValueAtPath } from './objectHelpers';\n\nexport interface ObjectContentEditorProps {\n object: Json;\n timestamp?: Date;\n schema: JsonSchema;\n}\n\nexport const ObjectContentEditor = ({ object, timestamp, schema }: ObjectContentEditorProps) => {\n const [navigationPath, setNavigationPath] = useState<string[]>([]);\n\n const navigateToProperty = useCallback((key: string) => {\n setNavigationPath([...navigationPath, key]);\n }, [navigationPath]);\n\n const navigateToBreadcrumb = useCallback((index: number) => {\n if (index === 0) {\n setNavigationPath([]);\n } else {\n setNavigationPath(navigationPath.slice(0, index));\n }\n }, [navigationPath]);\n\n const currentData = useMemo(() => {\n if (navigationPath.length === 0) {\n return object;\n }\n\n const lastKey = navigationPath[navigationPath.length - 1];\n const pathToParent = navigationPath.slice(0, -1);\n\n const parentValue = pathToParent.length > 0\n ? getValueAtPath(object, pathToParent)\n : object;\n\n if (parentValue && typeof parentValue === 'object' && !Array.isArray(parentValue)) {\n const value = (parentValue as { [k: string]: Json })[lastKey];\n\n if (Array.isArray(value)) {\n return value;\n } else if (value && typeof value === 'object') {\n return value;\n }\n }\n\n return object;\n }, [object, navigationPath, getValueAtPath]);\n\n const currentProperties = useMemo(() => {\n const properties = schema.properties || {};\n\n if (navigationPath.length === 0) {\n return properties;\n }\n\n return {};\n }, [schema, navigationPath]);\n\n const tableStyle: React.CSSProperties = {\n width: '100%',\n borderCollapse: 'collapse',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"SF Mono\", monospace',\n fontSize: '13px',\n };\n\n const rowStyle: React.CSSProperties = {\n borderBottom: '1px solid rgba(255,255,255,0.1)',\n };\n\n const labelStyle: React.CSSProperties = {\n padding: '8px 12px',\n color: 'rgba(255,255,255,0.6)',\n textAlign: 'left',\n fontWeight: 500,\n width: '140px',\n };\n\n const valueStyle: React.CSSProperties = {\n padding: '8px 12px',\n color: '#fff',\n textAlign: 'left',\n };\n\n const infoIconStyle: React.CSSProperties = {\n marginLeft: '6px',\n fontSize: '12px',\n color: 'rgba(100, 150, 255, 0.6)',\n cursor: 'help',\n };\n\n const renderValue = (value: Json, propertyName: string) => {\n if (value === null || value === undefined) return '';\n\n if (Array.isArray(value)) {\n return (\n <div\n className=\"flex align-items-center gap-2 cursor-pointer\"\n onClick={() => navigateToProperty(propertyName)}\n style={{ color: 'var(--primary-color)', display: 'flex', alignItems: 'center' }}\n >\n <span>Array[{value.length}]</span>\n <faIcons.FaArrowRight style={{ fontSize: '0.875rem', display: 'inline-flex' }} />\n </div>\n );\n }\n\n if (typeof value === 'object') {\n return (\n <div\n className=\"flex align-items-center gap-2 cursor-pointer\"\n onClick={() => navigateToProperty(propertyName)}\n style={{ color: 'var(--primary-color)', display: 'flex', alignItems: 'center' }}\n >\n <span>Object</span>\n <faIcons.FaArrowRight style={{ fontSize: '0.875rem', display: 'inline-flex' }} />\n </div>\n );\n }\n\n return String(value);\n };\n\n const renderTable = () => {\n if (Array.isArray(currentData)) {\n if (currentData.length === 0) return <div style={{ padding: '12px', color: 'rgba(255,255,255,0.6)' }}>Empty array</div>;\n\n const firstItem = currentData[0];\n if (typeof firstItem === 'object' && firstItem !== null && !Array.isArray(firstItem)) {\n const keys = Object.keys(firstItem);\n\n return (\n <table style={tableStyle}>\n <tbody>\n {currentData.map((item, index) => (\n <React.Fragment key={index}>\n {index > 0 && (\n <tr style={{ height: '8px', background: 'rgba(255,255,255,0.05)' }}>\n <td colSpan={2}></td>\n </tr>\n )}\n {keys.map((key) => (\n <tr key={`${index}-${key}`} style={rowStyle}>\n <td style={labelStyle}>{key}</td>\n <td style={valueStyle}>{renderValue((item as Record<string, Json>)[key], key)}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n </tbody>\n </table>\n );\n } else {\n return (\n <table style={tableStyle}>\n <tbody>\n {currentData.map((item, index) => (\n <tr key={index} style={rowStyle}>\n <td style={labelStyle}>[{index}]</td>\n <td style={valueStyle}>{renderValue(item, `[${index}]`)}</td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n }\n\n const entries = navigationPath.length === 0\n ? Object.entries(currentProperties)\n : Object.entries(currentData as { [key: string]: Json });\n\n return (\n <table style={tableStyle}>\n <tbody>\n {entries.map(([propertyName, propertyDef]: [string, JsonSchemaProperty | Json]) => {\n const value = (currentData as Record<string, Json>)[propertyName];\n\n const isSchemaProperty = navigationPath.length === 0;\n const description = isSchemaProperty && typeof propertyDef === 'object' && propertyDef !== null && 'description' in propertyDef\n ? (propertyDef as JsonSchemaProperty).description\n : undefined;\n\n return (\n <tr key={propertyName} style={rowStyle}>\n <td style={labelStyle}>\n {propertyName}\n {description && (\n <i\n className=\"pi pi-info-circle property-info-icon\"\n style={infoIconStyle}\n data-pr-tooltip={description} />\n )}\n </td>\n <td style={valueStyle}>{renderValue(value as Json, propertyName)}</td>\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n };\n\n return (\n <div className=\"order-content\" style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\n <Tooltip target=\".property-info-icon\" />\n <ObjectNavigationalBar\n navigationPath={navigationPath}\n onNavigate={navigateToBreadcrumb}\n />\n {renderTable()}\n {timestamp && (\n <div style={{\n marginTop: '20px',\n padding: '12px',\n background: 'rgba(100, 150, 255, 0.1)',\n borderRadius: '8px',\n fontSize: '12px',\n color: 'rgba(255,255,255,0.6)'\n }}>\n Snapshot captured: {timestamp.toLocaleString()}\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ObjectContentEditor.js","sources":["../../../ObjectContentEditor/ObjectContentEditor.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Tooltip } from 'primereact/tooltip';\nimport React, { useState, useCallback, useMemo, useEffect } from 'react';\nimport * as faIcons from 'react-icons/fa6';\nimport { ObjectNavigationalBar } from '../ObjectNavigationalBar';\nimport { Json, JsonSchema, JsonSchemaProperty } from '../types/JsonSchema';\nimport { getValueAtPath } from './objectHelpers';\nimport { InputText } from 'primereact/inputtext';\nimport { InputNumber } from 'primereact/inputnumber';\nimport { Checkbox } from 'primereact/checkbox';\nimport { Calendar } from 'primereact/calendar';\nimport { InputTextarea } from 'primereact/inputtextarea';\n\nexport interface ObjectContentEditorProps {\n object: Json;\n timestamp?: Date;\n schema: JsonSchema;\n /**\n * When true, renders editable input fields for each property respecting type/format\n */\n editMode?: boolean;\n /**\n * Called with the updated object after any field edit\n */\n onChange?: (object: Json) => void;\n /**\n * Called when the validation state changes\n */\n onValidationChange?: (hasErrors: boolean) => void;\n}\n\nexport const ObjectContentEditor = ({ object, timestamp, schema, editMode = false, onChange, onValidationChange }: ObjectContentEditorProps) => {\n const [navigationPath, setNavigationPath] = useState<string[]>([]);\n const [validationErrors, setValidationErrors] = useState<Record<string, string>>({});\n\n const validateValue = useCallback((propertyName: string, value: Json, property: JsonSchemaProperty): string | undefined => {\n if (editMode) {\n if (value === null || value === undefined || value === '') {\n return 'This field is required';\n }\n } else {\n const isRequired = schema.required?.includes(propertyName);\n if (isRequired && (value === null || value === undefined || value === '')) {\n return 'This field is required';\n }\n }\n\n if (property.type === 'string' && typeof value === 'string') {\n if (property.format === 'email' && value && !value.match(/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/)) {\n return 'Invalid email format';\n }\n if (property.format === 'uri' && value && !value.match(/^https?:\\/\\/.+/)) {\n return 'Invalid URI format';\n }\n }\n\n if (property.type === 'number' || property.type === 'integer') {\n if (value !== null && value !== undefined && value !== '' && isNaN(Number(value))) {\n return 'Must be a valid number';\n }\n }\n\n return undefined;\n }, [schema, editMode]);\n\n useEffect(() => {\n if (!editMode || navigationPath.length > 0) return;\n\n const errors: Record<string, string> = {};\n const properties = schema.properties || {};\n\n Object.entries(properties).forEach(([propertyName, property]) => {\n const value = (object as Record<string, Json>)[propertyName];\n const error = validateValue(propertyName, value, property as JsonSchemaProperty);\n if (error) {\n errors[propertyName] = error;\n }\n });\n\n setValidationErrors(errors);\n }, [object, schema, editMode, navigationPath, validateValue]);\n\n useEffect(() => {\n if (editMode && onValidationChange) {\n const hasErrors = Object.keys(validationErrors).length > 0;\n onValidationChange(hasErrors);\n }\n }, [validationErrors, editMode, onValidationChange]);\n\n const navigateToProperty = useCallback((key: string) => {\n setNavigationPath([...navigationPath, key]);\n }, [navigationPath]);\n\n const navigateToBreadcrumb = useCallback((index: number) => {\n if (index === 0) {\n setNavigationPath([]);\n } else {\n setNavigationPath(navigationPath.slice(0, index));\n }\n }, [navigationPath]);\n\n const currentData = useMemo(() => {\n if (navigationPath.length === 0) {\n return object;\n }\n\n const lastKey = navigationPath[navigationPath.length - 1];\n const pathToParent = navigationPath.slice(0, -1);\n\n const parentValue = pathToParent.length > 0\n ? getValueAtPath(object, pathToParent)\n : object;\n\n if (parentValue && typeof parentValue === 'object' && !Array.isArray(parentValue)) {\n const value = (parentValue as { [k: string]: Json })[lastKey];\n\n if (Array.isArray(value)) {\n return value;\n } else if (value && typeof value === 'object') {\n return value;\n }\n }\n\n return object;\n }, [object, navigationPath, getValueAtPath]);\n\n const currentProperties = useMemo(() => {\n const properties = schema.properties || {};\n\n if (navigationPath.length === 0) {\n return properties;\n }\n\n return {};\n }, [schema, navigationPath]);\n\n const tableStyle: React.CSSProperties = {\n width: '100%',\n borderCollapse: 'collapse',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"SF Mono\", monospace',\n fontSize: '13px',\n };\n\n const rowStyle: React.CSSProperties = {\n borderBottom: '1px solid rgba(255,255,255,0.1)',\n };\n\n const labelStyle: React.CSSProperties = {\n padding: '8px 12px',\n color: 'rgba(255,255,255,0.6)',\n textAlign: 'left',\n fontWeight: 500,\n width: '140px',\n whiteSpace: 'nowrap',\n };\n\n const valueStyle: React.CSSProperties = {\n padding: '8px 12px',\n color: '#fff',\n textAlign: 'left',\n };\n\n const infoIconStyle: React.CSSProperties = {\n fontSize: '0.875rem',\n color: 'var(--text-color-secondary)',\n flexShrink: 0,\n };\n\n const updateValue = useCallback((propertyName: string, newValue: Json) => {\n if (!onChange) return;\n\n const updatedObject = { ...(object as Record<string, Json>) };\n updatedObject[propertyName] = newValue;\n onChange(updatedObject);\n }, [object, onChange]);\n\n const renderEditField = (propertyName: string, property: JsonSchemaProperty, value: Json) => {\n const error = validationErrors[propertyName];\n\n const handleChange = (newValue: Json) => {\n updateValue(propertyName, newValue);\n const validationError = validateValue(propertyName, newValue, property);\n setValidationErrors(prev => {\n const newErrors = { ...prev };\n if (validationError) {\n newErrors[propertyName] = validationError;\n } else {\n delete newErrors[propertyName];\n }\n return newErrors;\n });\n };\n\n const inputStyle = {\n width: '100%',\n ...(error ? { borderColor: 'var(--red-500)' } : {})\n };\n\n if (property.type === 'boolean') {\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>\n <Checkbox\n checked={Boolean(value)}\n onChange={(e) => handleChange(e.checked ?? false)}\n />\n {error && <small className=\"p-error\">{error}</small>}\n </div>\n );\n }\n\n if (property.type === 'number' || property.type === 'integer') {\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>\n <InputNumber\n value={(value === null || value === undefined) ? null : Number(value)}\n onValueChange={(e) => handleChange(e.value ?? null)}\n mode=\"decimal\"\n useGrouping={false}\n style={inputStyle}\n />\n {error && <small className=\"p-error\">{error}</small>}\n </div>\n );\n }\n\n if (property.type === 'string' && property.format === 'date-time') {\n const dateValue = value ? new Date(value as string) : null;\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>\n <Calendar\n value={dateValue}\n onChange={(e) => handleChange(e.value instanceof Date ? e.value.toISOString() : null)}\n showTime\n showIcon\n style={inputStyle}\n />\n {error && <small className=\"p-error\">{error}</small>}\n </div>\n );\n }\n\n if (property.type === 'string' && property.format === 'date') {\n const dateValue = value ? new Date(value as string) : null;\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>\n <Calendar\n value={dateValue}\n onChange={(e) => handleChange(e.value instanceof Date ? e.value.toISOString().split('T')[0] : null)}\n showIcon\n style={inputStyle}\n />\n {error && <small className=\"p-error\">{error}</small>}\n </div>\n );\n }\n\n if (property.type === 'array') {\n return (\n <div className=\"flex align-items-center gap-2\" style={{ color: 'rgba(255,255,255,0.6)', fontStyle: 'italic' }}>\n <span>Array editing not yet supported</span>\n </div>\n );\n }\n\n if (property.type === 'object') {\n return (\n <div className=\"flex align-items-center gap-2\" style={{ color: 'rgba(255,255,255,0.6)', fontStyle: 'italic' }}>\n <span>Object editing not yet supported</span>\n </div>\n );\n }\n\n const isLongText = (value as string)?.length > 50;\n\n if (isLongText) {\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>\n <InputTextarea\n value={String(value ?? '')}\n onChange={(e) => handleChange(e.target.value)}\n rows={3}\n style={inputStyle}\n />\n {error && <small className=\"p-error\">{error}</small>}\n </div>\n );\n }\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>\n <InputText\n value={String(value ?? '')}\n onChange={(e) => handleChange(e.target.value)}\n style={inputStyle}\n />\n {error && <small className=\"p-error\">{error}</small>}\n </div>\n );\n };\n\n const renderValue = (value: Json, propertyName: string) => {\n if (value === null || value === undefined) return '';\n\n if (Array.isArray(value)) {\n return (\n <div\n className=\"flex align-items-center gap-2 cursor-pointer\"\n onClick={() => navigateToProperty(propertyName)}\n style={{ color: 'var(--primary-color)', display: 'flex', alignItems: 'center' }}\n >\n <span>Array[{value.length}]</span>\n <faIcons.FaArrowRight style={{ fontSize: '0.875rem', display: 'inline-flex' }} />\n </div>\n );\n }\n\n if (typeof value === 'object') {\n return (\n <div\n className=\"flex align-items-center gap-2 cursor-pointer\"\n onClick={() => navigateToProperty(propertyName)}\n style={{ color: 'var(--primary-color)', display: 'flex', alignItems: 'center' }}\n >\n <span>Object</span>\n <faIcons.FaArrowRight style={{ fontSize: '0.875rem', display: 'inline-flex' }} />\n </div>\n );\n }\n\n return String(value);\n };\n\n const renderTable = () => {\n if (Array.isArray(currentData)) {\n if (currentData.length === 0) return <div style={{ padding: '12px', color: 'rgba(255,255,255,0.6)' }}>Empty array</div>;\n\n const firstItem = currentData[0];\n if (typeof firstItem === 'object' && firstItem !== null && !Array.isArray(firstItem)) {\n const keys = Object.keys(firstItem);\n\n return (\n <table style={tableStyle}>\n <tbody>\n {currentData.map((item, index) => (\n <React.Fragment key={index}>\n {index > 0 && (\n <tr style={{ height: '8px', background: 'rgba(255,255,255,0.05)' }}>\n <td colSpan={2}></td>\n </tr>\n )}\n {keys.map((key) => (\n <tr key={`${index}-${key}`} style={rowStyle}>\n <td style={labelStyle}>{key}</td>\n <td style={valueStyle}>{renderValue((item as Record<string, Json>)[key], key)}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n </tbody>\n </table>\n );\n } else {\n return (\n <table style={tableStyle}>\n <tbody>\n {currentData.map((item, index) => (\n <tr key={index} style={rowStyle}>\n <td style={labelStyle}>[{index}]</td>\n <td style={valueStyle}>{renderValue(item, `[${index}]`)}</td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n }\n\n const entries = navigationPath.length === 0\n ? Object.entries(currentProperties)\n : Object.entries(currentData as { [key: string]: Json });\n\n return (\n <table style={tableStyle}>\n <tbody>\n {entries.map(([propertyName, propertyDef]: [string, JsonSchemaProperty | Json]) => {\n const value = (currentData as Record<string, Json>)[propertyName];\n\n const isSchemaProperty = navigationPath.length === 0;\n const property = isSchemaProperty && typeof propertyDef === 'object' && propertyDef !== null && 'type' in propertyDef\n ? (propertyDef as JsonSchemaProperty)\n : null;\n const description = property?.description;\n\n return (\n <tr key={propertyName} style={rowStyle}>\n <td style={labelStyle}>\n <span style={{ display: 'inline-flex', alignItems: 'center', gap: '6px' }}>\n {propertyName}\n {description && (\n <faIcons.FaCircleInfo\n className=\"property-info-icon\"\n style={infoIconStyle}\n data-pr-tooltip={description}\n data-pr-position=\"right\" />\n )}\n </span>\n </td>\n <td style={valueStyle}>\n {editMode && property\n ? renderEditField(propertyName, property, value)\n : renderValue(value as Json, propertyName)\n }\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n };\n\n return (\n <div className=\"order-content\" style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\n <Tooltip target=\"[data-pr-tooltip]\" />\n <ObjectNavigationalBar\n navigationPath={navigationPath}\n onNavigate={navigateToBreadcrumb}\n />\n {renderTable()}\n {timestamp && (\n <div style={{\n marginTop: '20px',\n padding: '12px',\n background: 'rgba(100, 150, 255, 0.1)',\n borderRadius: '8px',\n fontSize: '12px',\n color: 'rgba(255,255,255,0.6)'\n }}>\n Snapshot captured: {timestamp.toLocaleString()}\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectNavigationalBar.stories.d.ts","sourceRoot":"","sources":["../../../ObjectNavigationalBar/ObjectNavigationalBar.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,qBAAqB,CAO5C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,qBAAqB,CAAC,CAAC;AA2BpD,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAKpB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC"}
1
+ {"version":3,"file":"ObjectNavigationalBar.stories.d.ts","sourceRoot":"","sources":["../../../ObjectNavigationalBar/ObjectNavigationalBar.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,qBAAqB,CAO5C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpD,eAAO,MAAM,WAAW,EAAE,KAyBzB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAKpB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC"}
@@ -10,20 +10,19 @@ const meta = {
10
10
  },
11
11
  };
12
12
  export default meta;
13
- const InteractiveWrapper = () => {
14
- const [navigationPath, setNavigationPath] = useState(['users', '0', 'address']);
15
- const handleNavigate = (index) => {
16
- if (index === 0) {
17
- setNavigationPath([]);
18
- }
19
- else {
20
- setNavigationPath(navigationPath.slice(0, index));
21
- }
22
- };
23
- return (_jsxs("div", { style: { padding: '1rem', background: 'var(--surface-ground)', minHeight: '200px' }, children: [_jsxs("h3", { children: ["Current Path: ", navigationPath.length > 0 ? navigationPath.join(' > ') : 'Root'] }), _jsx(ObjectNavigationalBar, { navigationPath: navigationPath, onNavigate: handleNavigate }), _jsx("div", { style: { marginTop: '2rem' }, children: _jsx("p", { children: "Click on breadcrumb items to navigate, or use the back button." }) })] }));
24
- };
25
13
  export const Interactive = {
26
- render: () => _jsx(InteractiveWrapper, {}),
14
+ render: () => {
15
+ const [navigationPath, setNavigationPath] = useState(['users', '0', 'address']);
16
+ const handleNavigate = (index) => {
17
+ if (index === 0) {
18
+ setNavigationPath([]);
19
+ }
20
+ else {
21
+ setNavigationPath(navigationPath.slice(0, index));
22
+ }
23
+ };
24
+ return (_jsxs("div", { style: { padding: '1rem', background: 'var(--surface-ground)', minHeight: '200px' }, children: [_jsxs("h3", { children: ["Current Path: ", navigationPath.length > 0 ? navigationPath.join(' > ') : 'Root'] }), _jsx(ObjectNavigationalBar, { navigationPath: navigationPath, onNavigate: handleNavigate }), _jsx("div", { style: { marginTop: '2rem' }, children: _jsx("p", { children: "Click on breadcrumb items to navigate, or use the back button." }) })] }));
25
+ },
27
26
  };
28
27
  export const AtRoot = {
29
28
  args: {
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectNavigationalBar.stories.js","sourceRoot":"","sources":["../../../ObjectNavigationalBar/ObjectNavigationalBar.stories.tsx"],"names":[],"mappings":";AAGA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,IAAI,GAAuC;IAC7C,KAAK,EAAE,kCAAkC;IACzC,SAAS,EAAE,qBAAqB;IAChC,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACR,MAAM,EAAE,QAAQ;KACnB;CACJ,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC5B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAW,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1F,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;QACrC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACd,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,uBAAuB,EAAE,SAAS,EAAE,OAAO,EAAE,aACpF,2CAAmB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAM,EACxF,KAAC,qBAAqB,IAClB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,cAAc,GAC5B,EACF,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAC7B,yFAAqE,GACnE,IACJ,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAC9B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,kBAAkB,KAAG;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAU;IACzB,IAAI,EAAE;QACF,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;KACnE;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAC9B,IAAI,EAAE;QACF,cAAc,EAAE,CAAC,OAAO,CAAC;QACzB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;KACnE;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC3B,IAAI,EAAE;QACF,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC;QACjD,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;KACnE;CACJ,CAAC"}
1
+ {"version":3,"file":"ObjectNavigationalBar.stories.js","sourceRoot":"","sources":["../../../ObjectNavigationalBar/ObjectNavigationalBar.stories.tsx"],"names":[],"mappings":";AAGA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,IAAI,GAAuC;IAC7C,KAAK,EAAE,kCAAkC;IACzC,SAAS,EAAE,qBAAqB;IAChC,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACR,MAAM,EAAE,QAAQ;KACnB;CACJ,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,WAAW,GAAU;IAC9B,MAAM,EAAE,GAAG,EAAE;QACT,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAW,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QAE1F,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;YACrC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACd,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACtD,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,CACH,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,uBAAuB,EAAE,SAAS,EAAE,OAAO,EAAE,aACpF,2CAAmB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAM,EACxF,KAAC,qBAAqB,IAClB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,cAAc,GAC5B,EACF,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAC7B,yFAAqE,GACnE,IACJ,CACT,CAAC;IACN,CAAC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAU;IACzB,IAAI,EAAE;QACF,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;KACnE;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAC9B,IAAI,EAAE;QACF,cAAc,EAAE,CAAC,OAAO,CAAC;QACzB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;KACnE;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC3B,IAAI,EAAE;QACF,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC;QACjD,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;KACnE;CACJ,CAAC"}
@@ -799,16 +799,22 @@
799
799
  font-variant-numeric: tabular-nums;
800
800
  }
801
801
 
802
- /* Fade axis labels when switching views - matched to sprite animation duration (600ms) */
802
+ /* Fade and collapse axis labels when switching views */
803
803
  .pivot-viewer .pv-axis-labels {
804
- transition: opacity 600ms ease;
804
+ transition: opacity 600ms ease, max-height 600ms ease, padding 600ms ease, border-color 600ms ease;
805
+ overflow: hidden;
805
806
  }
806
807
  .pivot-viewer .pv-axis-labels.hidden {
807
808
  opacity: 0;
809
+ max-height: 0;
810
+ padding-top: 0;
811
+ padding-bottom: 0;
812
+ border-top-color: transparent;
808
813
  pointer-events: none;
809
814
  }
810
815
  .pivot-viewer .pv-axis-labels.visible {
811
816
  opacity: 1;
817
+ max-height: 80px;
812
818
  pointer-events: auto;
813
819
  }
814
820
 
@@ -1 +1 @@
1
- {"version":3,"file":"PivotViewer.d.ts","sourceRoot":"","sources":["../../../PivotViewer/PivotViewer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQhD,OAAO,mBAAmB,CAAC;AAe3B,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,EAC9C,IAAI,EACJ,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,SAAiB,EACjB,MAAM,GACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,2CAmYzB"}
1
+ {"version":3,"file":"PivotViewer.d.ts","sourceRoot":"","sources":["../../../PivotViewer/PivotViewer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQhD,OAAO,mBAAmB,CAAC;AAe3B,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,EAC9C,IAAI,EACJ,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,SAAiB,EACjB,MAAM,GACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,2CAsYzB"}
@@ -173,6 +173,8 @@ function PivotViewer({ data, dimensions, filters, defaultDimensionKey, cardRende
173
173
  zoomLevel,
174
174
  viewMode,
175
175
  layout,
176
+ containerRef,
177
+ spacerRef,
176
178
  containerDimensions,
177
179
  scrollPosition,
178
180
  preSelectionState,
@@ -190,6 +192,7 @@ function PivotViewer({ data, dimensions, filters, defaultDimensionKey, cardRende
190
192
  zoomLevel,
191
193
  viewMode,
192
194
  layout,
195
+ containerRef,
193
196
  containerDimensions,
194
197
  grouping,
195
198
  data,