@abgov/jsonforms-components 1.13.0 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.esm.js +54 -46
- package/package.json +1 -3
- package/src/lib/Controls/FormStepper/FormStepperControl.d.ts +2 -3
- package/src/lib/Controls/Inputs/InputEnum.d.ts +1 -1
- package/src/lib/Controls/Inputs/InputEnumRadios.d.ts +1 -1
- package/src/lib/util/index.d.ts +2 -0
- package/src/lib/util/layout.d.ts +2 -0
- package/src/lib/util/type.d.ts +6 -0
package/index.esm.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import React, { createContext, useContext, useEffect, useMemo, useState, useCallback } from 'react';
|
|
3
|
-
import { GoACallout, GoAInputDate, GoAFormItem, GoAInput, GoATextArea, GoAInputDateTime, GoAInputTime, GoADropdown, GoADropdownItem, GoARadioGroup, GoARadioItem, GoACheckbox, GoAFormStepper, GoAFormStep, GoAPages,
|
|
3
|
+
import { GoACallout, GoAInputDate, GoAFormItem, GoAInput, GoATextArea, GoAInputDateTime, GoAInputTime, GoADropdown, GoADropdownItem, GoARadioGroup, GoARadioItem, GoACheckbox, GoAGrid, GoAFormStepper, GoAFormStep, GoAPages, GoAButton, GoAModal, GoAButtonGroup, GoAIconButton, GoAFileUploadInput, GoACircularProgress, GoAContainer, GoADetails } from '@abgov/react-components';
|
|
4
4
|
import styled from 'styled-components';
|
|
5
|
-
import { rankWith, uiTypeIs, isDateControl, isStringControl, and, optionIs, isNumberControl, isIntegerControl, isDateTimeControl, isTimeControl, isEnumControl, isBooleanControl, isDescriptionHidden, isVisible, isEnabled, deriveLabelForUISchemaElement, schemaTypeIs, formatIs, createDefaultValue, Paths, or, isObjectArrayControl, isPrimitiveArrayControl, withIncreasedRank, hasType, isControl, isCategorization, isLayout } from '@jsonforms/core';
|
|
6
|
-
import { withJsonFormsRendererProps, withJsonFormsControlProps, withJsonFormsEnumProps, withTranslateProps, JsonFormsDispatch, withJsonFormsLayoutProps,
|
|
5
|
+
import { rankWith, uiTypeIs, isDateControl, isStringControl, and, optionIs, isNumberControl, isIntegerControl, isDateTimeControl, isTimeControl, isEnumControl, isBooleanControl, isDescriptionHidden, getAjv, isVisible, isEnabled, deriveLabelForUISchemaElement, schemaTypeIs, formatIs, createDefaultValue, Paths, or, isObjectArrayControl, isPrimitiveArrayControl, withIncreasedRank, hasType, isControl, isCategorization, isLayout } from '@jsonforms/core';
|
|
6
|
+
import { withJsonFormsRendererProps, withJsonFormsControlProps, withJsonFormsEnumProps, withTranslateProps, useJsonForms, JsonFormsDispatch, withJsonFormsLayoutProps, withJsonFormsArrayLayoutProps, withJsonFormsCellProps } from '@jsonforms/react';
|
|
7
7
|
import merge from 'lodash/merge';
|
|
8
8
|
import axios from 'axios';
|
|
9
|
-
import { withAjvProps } from '@jsonforms/material-renderers';
|
|
10
9
|
import isEmpty$1 from 'lodash/isEmpty';
|
|
11
10
|
import range from 'lodash/range';
|
|
12
11
|
import Ajv from 'ajv';
|
|
@@ -3684,6 +3683,57 @@ const BooleanRadioControl = props => jsx(GoAInputBaseControl, Object.assign({},
|
|
|
3684
3683
|
const GoABooleanRadioControlTester = rankWith(3, and(isBooleanControl, optionIs('radio', true)));
|
|
3685
3684
|
const GoABooleanRadioControl = withJsonFormsControlProps(BooleanRadioControl);
|
|
3686
3685
|
|
|
3686
|
+
const renderLayoutElements = (elements, schema, path, enabled, renderers, cells) => {
|
|
3687
|
+
return elements.map((child, index) => jsx("div", {
|
|
3688
|
+
children: jsx(JsonFormsDispatch, {
|
|
3689
|
+
uischema: child,
|
|
3690
|
+
schema: schema,
|
|
3691
|
+
path: path,
|
|
3692
|
+
enabled: enabled,
|
|
3693
|
+
renderers: renderers,
|
|
3694
|
+
cells: cells
|
|
3695
|
+
}, path)
|
|
3696
|
+
}, index));
|
|
3697
|
+
};
|
|
3698
|
+
const withAjvProps = Component => function WithAjvProps(props) {
|
|
3699
|
+
const ctx = useJsonForms();
|
|
3700
|
+
const ajv = getAjv({
|
|
3701
|
+
jsonforms: Object.assign({}, ctx)
|
|
3702
|
+
});
|
|
3703
|
+
return jsx(Component, Object.assign({}, props, {
|
|
3704
|
+
ajv: ajv
|
|
3705
|
+
}));
|
|
3706
|
+
};
|
|
3707
|
+
const LayoutRenderer = ({
|
|
3708
|
+
elements,
|
|
3709
|
+
schema,
|
|
3710
|
+
path,
|
|
3711
|
+
enabled,
|
|
3712
|
+
direction,
|
|
3713
|
+
renderers,
|
|
3714
|
+
cells,
|
|
3715
|
+
visible
|
|
3716
|
+
}) => {
|
|
3717
|
+
if (isEmpty$1(elements)) {
|
|
3718
|
+
return null;
|
|
3719
|
+
} else {
|
|
3720
|
+
if (direction === 'row') {
|
|
3721
|
+
return jsx(Visible, {
|
|
3722
|
+
visible: visible,
|
|
3723
|
+
children: jsx(GoAGrid, {
|
|
3724
|
+
minChildWidth: "10ch",
|
|
3725
|
+
children: renderLayoutElements(elements, schema, path, enabled, renderers, cells)
|
|
3726
|
+
})
|
|
3727
|
+
});
|
|
3728
|
+
} else {
|
|
3729
|
+
return jsx(Visible, {
|
|
3730
|
+
visible: visible,
|
|
3731
|
+
children: renderLayoutElements(elements, schema, path, enabled, renderers, cells)
|
|
3732
|
+
});
|
|
3733
|
+
}
|
|
3734
|
+
}
|
|
3735
|
+
};
|
|
3736
|
+
|
|
3687
3737
|
let _$5 = t => t,
|
|
3688
3738
|
_t$5,
|
|
3689
3739
|
_t2$3;
|
|
@@ -4922,48 +4972,6 @@ const InputCells = [{
|
|
|
4922
4972
|
cell: withJsonFormsCellProps(GoAIntegerCell)
|
|
4923
4973
|
}];
|
|
4924
4974
|
|
|
4925
|
-
const renderLayoutElements = (elements, schema, path, enabled, renderers, cells) => {
|
|
4926
|
-
return elements.map((child, index) => jsx("div", {
|
|
4927
|
-
children: jsx(JsonFormsDispatch, {
|
|
4928
|
-
uischema: child,
|
|
4929
|
-
schema: schema,
|
|
4930
|
-
path: path,
|
|
4931
|
-
enabled: enabled,
|
|
4932
|
-
renderers: renderers,
|
|
4933
|
-
cells: cells
|
|
4934
|
-
}, path)
|
|
4935
|
-
}, index));
|
|
4936
|
-
};
|
|
4937
|
-
const LayoutRenderer = ({
|
|
4938
|
-
elements,
|
|
4939
|
-
schema,
|
|
4940
|
-
path,
|
|
4941
|
-
enabled,
|
|
4942
|
-
direction,
|
|
4943
|
-
renderers,
|
|
4944
|
-
cells,
|
|
4945
|
-
visible
|
|
4946
|
-
}) => {
|
|
4947
|
-
if (isEmpty$1(elements)) {
|
|
4948
|
-
return null;
|
|
4949
|
-
} else {
|
|
4950
|
-
if (direction === 'row') {
|
|
4951
|
-
return jsx(Visible, {
|
|
4952
|
-
visible: visible,
|
|
4953
|
-
children: jsx(GoAGrid, {
|
|
4954
|
-
minChildWidth: "10ch",
|
|
4955
|
-
children: renderLayoutElements(elements, schema, path, enabled, renderers, cells)
|
|
4956
|
-
})
|
|
4957
|
-
});
|
|
4958
|
-
} else {
|
|
4959
|
-
return jsx(Visible, {
|
|
4960
|
-
visible: visible,
|
|
4961
|
-
children: renderLayoutElements(elements, schema, path, enabled, renderers, cells)
|
|
4962
|
-
});
|
|
4963
|
-
}
|
|
4964
|
-
}
|
|
4965
|
-
};
|
|
4966
|
-
|
|
4967
4975
|
const GoAHorizontalLayoutTester = rankWith(2, uiTypeIs('HorizontalLayout'));
|
|
4968
4976
|
const GoAHorizontalLayoutComponent = ({
|
|
4969
4977
|
uischema,
|
package/package.json
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abgov/jsonforms-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Government of Alberta - React renderers for JSON Forms based on the design system.",
|
|
6
6
|
"repository": "https://github.com/GovAlta/adsp-monorepo",
|
|
7
7
|
"peerDependencies": {
|
|
8
8
|
"@abgov/react-components": "^4.18.1",
|
|
9
9
|
"@jsonforms/core": "^3.1.0",
|
|
10
|
-
"@jsonforms/material-renderers": "^3.1.0",
|
|
11
10
|
"@jsonforms/react": "^3.1.0",
|
|
12
|
-
"@mui/material": "^5.15.10",
|
|
13
11
|
"react": "^18.0.0",
|
|
14
12
|
"ajv": "^6.12.6",
|
|
15
13
|
"ajv8": "npm:ajv@^8.6.1"
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { StatePropsOfLayout } from '@jsonforms/core';
|
|
3
2
|
import { TranslateProps } from '@jsonforms/react';
|
|
4
|
-
import { AjvProps } from '
|
|
3
|
+
import { AjvProps } from '../../util/layout';
|
|
5
4
|
export interface CategorizationStepperLayoutRendererProps extends StatePropsOfLayout, AjvProps, TranslateProps {
|
|
6
5
|
data: unknown;
|
|
7
6
|
}
|
|
8
7
|
export declare const FormStepper: (props: CategorizationStepperLayoutRendererProps) => JSX.Element;
|
|
9
8
|
export declare const flattenObject: (obj: Record<string, string>) => Record<string, string>;
|
|
10
|
-
export declare const FormStepperControl: (props: CategorizationStepperLayoutRendererProps & import("@jsonforms/core").OwnPropsOfLayout) =>
|
|
9
|
+
export declare const FormStepperControl: (props: CategorizationStepperLayoutRendererProps & import("@jsonforms/core").OwnPropsOfLayout) => import("react/jsx-runtime").JSX.Element;
|
|
11
10
|
export default FormStepper;
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { ControlProps, OwnPropsOfEnum, RankedTester } from '@jsonforms/core';
|
|
3
3
|
import { TranslateProps } from '@jsonforms/react';
|
|
4
4
|
import { WithInputProps } from './type';
|
|
5
|
-
import { WithOptionLabel } from '
|
|
5
|
+
import { WithOptionLabel } from '../../util';
|
|
6
6
|
import { EnumCellProps, WithClassname } from '@jsonforms/core';
|
|
7
7
|
type EnumSelectProp = EnumCellProps & WithClassname & TranslateProps & WithInputProps;
|
|
8
8
|
export declare const EnumSelect: (props: EnumSelectProp) => JSX.Element;
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { ControlProps, OwnPropsOfEnum, RankedTester } from '@jsonforms/core';
|
|
3
3
|
import { TranslateProps } from '@jsonforms/react';
|
|
4
4
|
import { WithInputProps } from './type';
|
|
5
|
-
import { WithOptionLabel } from '
|
|
5
|
+
import { WithOptionLabel } from '../../util';
|
|
6
6
|
import { EnumCellProps, WithClassname } from '@jsonforms/core';
|
|
7
7
|
type RadioGroupProp = EnumCellProps & WithClassname & TranslateProps & WithInputProps;
|
|
8
8
|
export declare const RadioGroup: (props: RadioGroupProp) => JSX.Element;
|
package/src/lib/util/index.d.ts
CHANGED
package/src/lib/util/layout.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React, { ComponentType } from 'react';
|
|
1
2
|
import type { UISchemaElement } from '@jsonforms/core';
|
|
2
3
|
import { JsonFormsCellRendererRegistryEntry, JsonFormsRendererRegistryEntry, JsonSchema, OwnPropsOfRenderer } from '@jsonforms/core';
|
|
3
4
|
import Ajv from 'ajv8';
|
|
@@ -10,4 +11,5 @@ export interface LayoutRendererProps extends OwnPropsOfRenderer {
|
|
|
10
11
|
export interface AjvProps {
|
|
11
12
|
ajv: Ajv;
|
|
12
13
|
}
|
|
14
|
+
export declare const withAjvProps: <P extends object>(Component: React.ComponentType<AjvProps & P>) => (props: P) => import("react/jsx-runtime").JSX.Element;
|
|
13
15
|
export declare const LayoutRenderer: ({ elements, schema, path, enabled, direction, renderers, cells, visible, }: LayoutRendererProps) => import("react/jsx-runtime").JSX.Element | null;
|