@cratis/components 1.4.1 → 1.4.15

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 (48) hide show
  1. package/dist/cjs/Common/Page.js +2 -2
  2. package/dist/cjs/Common/Page.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/index.js +2 -0
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/tailwind-utilities.css +3 -0
  10. package/dist/cjs/types/index.js +8 -0
  11. package/dist/cjs/types/index.js.map +1 -0
  12. package/dist/esm/Common/Page.d.ts +2 -1
  13. package/dist/esm/Common/Page.d.ts.map +1 -1
  14. package/dist/esm/Common/Page.js +2 -2
  15. package/dist/esm/Common/Page.js.map +1 -1
  16. package/dist/esm/Common/Page.stories.d.ts +2 -0
  17. package/dist/esm/Common/Page.stories.d.ts.map +1 -1
  18. package/dist/esm/Common/Page.stories.js +14 -0
  19. package/dist/esm/Common/Page.stories.js.map +1 -1
  20. package/dist/esm/DataPage/DataPage.d.ts +3 -0
  21. package/dist/esm/DataPage/DataPage.d.ts.map +1 -1
  22. package/dist/esm/DataPage/DataPage.js +3 -3
  23. package/dist/esm/DataPage/DataPage.js.map +1 -1
  24. package/dist/esm/DataPage/DataPage.stories.d.ts +2 -0
  25. package/dist/esm/DataPage/DataPage.stories.d.ts.map +1 -1
  26. package/dist/esm/DataPage/DataPage.stories.js +12 -0
  27. package/dist/esm/DataPage/DataPage.stories.js.map +1 -1
  28. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +4 -1
  29. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -1
  30. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js +120 -11
  31. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -1
  32. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts +2 -0
  33. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts.map +1 -1
  34. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js +40 -0
  35. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js.map +1 -1
  36. package/dist/esm/index.d.ts +2 -1
  37. package/dist/esm/index.d.ts.map +1 -1
  38. package/dist/esm/index.js +2 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/tailwind-utilities.css +3 -0
  41. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  42. package/dist/esm/types/index.d.ts +3 -0
  43. package/dist/esm/types/index.d.ts.map +1 -0
  44. package/dist/esm/types/index.js +2 -0
  45. package/dist/esm/types/index.js.map +1 -0
  46. package/dist/esm/vitest.setup.js +0 -2
  47. package/dist/esm/vitest.setup.js.map +1 -1
  48. 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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"}
@@ -5,4 +5,6 @@ export default meta;
5
5
  type Story = StoryObj<typeof DataPage>;
6
6
  export declare const Default: Story;
7
7
  export declare const WithoutDetails: Story;
8
+ export declare const WithClientFiltering: Story;
9
+ export declare const WithOnRefresh: Story;
8
10
  //# sourceMappingURL=DataPage.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataPage.stories.d.ts","sourceRoot":"","sources":["../../../DataPage/DataPage.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAY,MAAM,YAAY,CAAC;AAIhD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAM/B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AAsEvC,eAAO,MAAM,OAAO,EAAE,KAuCrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KA0B5B,CAAC"}
1
+ {"version":3,"file":"DataPage.stories.d.ts","sourceRoot":"","sources":["../../../DataPage/DataPage.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAY,MAAM,YAAY,CAAC;AAIhD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAM/B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AAsEvC,eAAO,MAAM,OAAO,EAAE,KAuCrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KA0B5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAoBjC,CAAC;AAwBF,eAAO,MAAM,aAAa,EAAE,KAoB3B,CAAC"}
@@ -54,4 +54,16 @@ export const Default = {
54
54
  export const WithoutDetails = {
55
55
  render: () => (_jsx("div", { style: { height: '600px' }, children: _jsxs(DataPage, { title: "Persons (No Details Panel)", query: PersonsQuery, emptyMessage: "No persons found", dataKey: "id", globalFilterFields: ['name', 'email', 'role'], children: [_jsx(DataPage.MenuItems, { children: _jsx(MenuItem, { label: "Refresh", icon: () => _jsx("i", { className: "pi pi-refresh" }), command: () => alert('Refresh clicked') }) }), _jsxs(DataPage.Columns, { children: [_jsx(Column, { field: "id", header: "ID", sortable: true, style: { width: '10%' } }), _jsx(Column, { field: "name", header: "Name", sortable: true, style: { width: '30%' } }), _jsx(Column, { field: "email", header: "Email", sortable: true, style: { width: '35%' } }), _jsx(Column, { field: "role", header: "Role", sortable: true, style: { width: '25%' } })] })] }) }))
56
56
  };
57
+ export const WithClientFiltering = {
58
+ render: () => (_jsx("div", { style: { height: '600px' }, children: _jsx(DataPage, { title: "Persons (Client-Side Filtering)", query: PersonsQuery, emptyMessage: "No persons found", dataKey: "id", clientFiltering: true, globalFilterFields: ['name', 'email', 'role'], children: _jsxs(DataPage.Columns, { children: [_jsx(Column, { field: "id", header: "ID", sortable: true, style: { width: '10%' } }), _jsx(Column, { field: "name", header: "Name", sortable: true, filter: true, filterPlaceholder: "Search", style: { width: '30%' } }), _jsx(Column, { field: "email", header: "Email", sortable: true, filter: true, filterPlaceholder: "Search", style: { width: '35%' } }), _jsx(Column, { field: "role", header: "Role", sortable: true, filter: true, filterPlaceholder: "Search", style: { width: '25%' } })] }) }) }))
59
+ };
60
+ const PersonDetailsWithRefresh = ({ item, onRefresh }) => {
61
+ return (_jsxs("div", { className: "p-4", children: [_jsx("h2", { className: "text-2xl font-bold mb-4", children: "Person Details" }), _jsxs("div", { className: "space-y-2 mb-4", children: [_jsxs("div", { children: [_jsx("strong", { children: "Name:" }), " ", item.name] }), _jsxs("div", { children: [_jsx("strong", { children: "Email:" }), " ", item.email] }), _jsxs("div", { children: [_jsx("strong", { children: "Role:" }), " ", item.role] })] }), _jsx("button", { className: "p-button p-component", onClick: () => {
62
+ alert(`Saved changes for ${item.name}`);
63
+ onRefresh?.();
64
+ }, children: "Save & Refresh" })] }));
65
+ };
66
+ export const WithOnRefresh = {
67
+ render: () => (_jsx("div", { style: { height: '600px' }, children: _jsx(DataPage, { title: "Persons (With Refresh Callback)", query: PersonsQuery, emptyMessage: "No persons found", dataKey: "id", detailsComponent: PersonDetailsWithRefresh, onRefresh: () => alert('onRefresh triggered — reload your data here'), children: _jsxs(DataPage.Columns, { children: [_jsx(Column, { field: "id", header: "ID", sortable: true, style: { width: '10%' } }), _jsx(Column, { field: "name", header: "Name", sortable: true, style: { width: '30%' } }), _jsx(Column, { field: "email", header: "Email", sortable: true, style: { width: '35%' } }), _jsx(Column, { field: "role", header: "Role", sortable: true, style: { width: '25%' } })] }) }) }))
68
+ };
57
69
  //# sourceMappingURL=DataPage.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataPage.stories.js","sourceRoot":"","sources":["../../../DataPage/DataPage.stories.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataPage.stories.js","sourceRoot":"","sources":["../../../DataPage/DataPage.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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"}
@@ -7,4 +7,6 @@ export declare const Default: Story;
7
7
  export declare const WithTimestamp: Story;
8
8
  export declare const SimpleObject: Story;
9
9
  export declare const WithArray: Story;
10
+ export declare const EditMode: Story;
11
+ export declare const EditModeWithValidation: Story;
10
12
  //# sourceMappingURL=ObjectContentEditor.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectContentEditor.stories.d.ts","sourceRoot":"","sources":["../../../ObjectContentEditor/ObjectContentEditor.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,mBAAmB,CAO1C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAoFlD,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAC;AAmBF,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAiBF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC"}
1
+ {"version":3,"file":"ObjectContentEditor.stories.d.ts","sourceRoot":"","sources":["../../../ObjectContentEditor/ObjectContentEditor.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,mBAAmB,CAO1C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAoFlD,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAC;AAmBF,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAiBF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AA6BF,eAAO,MAAM,QAAQ,EAAE,KAYtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KA4BpC,CAAC"}
@@ -1,4 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import { ObjectContentEditor } from './ObjectContentEditor';
3
+ import { useState } from 'react';
2
4
  const meta = {
3
5
  title: 'Components/ObjectContentEditor',
4
6
  component: ObjectContentEditor,
@@ -141,4 +143,42 @@ export const WithArray = {
141
143
  schema: arraySchema,
142
144
  },
143
145
  };
146
+ const editableSchema = {
147
+ type: 'object',
148
+ required: ['name', 'email'],
149
+ properties: {
150
+ name: { type: 'string', description: 'Full name' },
151
+ email: { type: 'string', format: 'email', description: 'Email address' },
152
+ age: { type: 'integer', description: 'Age in years' },
153
+ isActive: { type: 'boolean', description: 'Account is active' },
154
+ website: { type: 'string', format: 'uri', description: 'Personal website' },
155
+ birthDate: { type: 'string', format: 'date', description: 'Date of birth' },
156
+ notes: {
157
+ type: 'string',
158
+ description: 'Long-form notes about this person (rendered as textarea when value is long)'
159
+ }
160
+ }
161
+ };
162
+ const editableObject = {
163
+ name: 'Jane Smith',
164
+ email: 'jane@example.com',
165
+ age: 28,
166
+ isActive: true,
167
+ website: 'https://example.com',
168
+ birthDate: '1996-03-15',
169
+ notes: 'This field is intentionally long to demonstrate the textarea input. It contains more than fifty characters.'
170
+ };
171
+ export const EditMode = {
172
+ render: () => {
173
+ const [obj, setObj] = useState(editableObject);
174
+ return (_jsx(ObjectContentEditor, { object: obj, schema: editableSchema, editMode: true, onChange: setObj }));
175
+ }
176
+ };
177
+ export const EditModeWithValidation = {
178
+ render: () => {
179
+ const [obj, setObj] = useState({ ...editableObject, name: '', email: 'not-an-email' });
180
+ const [hasErrors, setHasErrors] = useState(false);
181
+ return (_jsxs("div", { className: "p-4", children: [_jsx(ObjectContentEditor, { object: obj, schema: editableSchema, editMode: true, onChange: setObj, onValidationChange: setHasErrors }), _jsxs("div", { className: "mt-4", children: [_jsx("button", { className: "p-button p-component", disabled: hasErrors, onClick: () => alert('Saved: ' + JSON.stringify(obj, null, 2)), children: "Save" }), hasErrors && (_jsx("span", { className: "p-error ml-3", children: "Please fix validation errors before saving." }))] })] }));
182
+ }
183
+ };
144
184
  //# sourceMappingURL=ObjectContentEditor.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectContentEditor.stories.js","sourceRoot":"","sources":["../../../ObjectContentEditor/ObjectContentEditor.stories.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObjectContentEditor.stories.js","sourceRoot":"","sources":["../../../ObjectContentEditor/ObjectContentEditor.stories.tsx"],"names":[],"mappings":"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"}
@@ -11,5 +11,6 @@ import * as PivotViewer from './PivotViewer';
11
11
  import * as SchemaEditor from './SchemaEditor';
12
12
  import * as TimeMachine from './TimeMachine';
13
13
  import * as Toolbar from './Toolbar';
14
- export { CommandDialog, CommandForm, Common, DataPage, DataTables, Dialogs, Dropdown, ObjectContentEditor, ObjectNavigationalBar, PivotViewer, SchemaEditor, TimeMachine, Toolbar, };
14
+ import * as Types from './types';
15
+ export { CommandDialog, CommandForm, Common, DataPage, DataTables, Dialogs, Dropdown, ObjectContentEditor, ObjectNavigationalBar, PivotViewer, SchemaEditor, TimeMachine, Toolbar, Types, };
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,mBAAmB,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,qBAAqB,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,EACH,aAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,OAAO,GACV,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,mBAAmB,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,qBAAqB,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EACH,aAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,OAAO,EACP,KAAK,GACR,CAAC"}
package/dist/esm/index.js CHANGED
@@ -24,4 +24,6 @@ import * as index$b from './TimeMachine/index.js';
24
24
  export { index$b as TimeMachine };
25
25
  import * as index$c from './Toolbar/index.js';
26
26
  export { index$c as Toolbar };
27
+ import * as index$d from './types/index.js';
28
+ export { index$d as Types };
27
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -328,6 +328,9 @@
328
328
  .ml-2 {
329
329
  margin-left: calc(var(--spacing) * 2);
330
330
  }
331
+ .ml-3 {
332
+ margin-left: calc(var(--spacing) * 3);
333
+ }
331
334
  .block {
332
335
  display: block;
333
336
  }