diff --git a/packages/angular-material/src/layouts/array-layout.renderer.ts b/packages/angular-material/src/layouts/array-layout.renderer.ts index 3b7cd82507..122ef370d9 100644 --- a/packages/angular-material/src/layouts/array-layout.renderer.ts +++ b/packages/angular-material/src/layouts/array-layout.renderer.ts @@ -172,7 +172,8 @@ export class ArrayLayoutRenderer this.uischema.scope, this.propsPath, undefined, - this.uischema + this.uischema, + this.rootSchema ); if (this.isEnabled()) { unsetReadonly(uischema); diff --git a/packages/angular-material/src/other/master-detail/master.ts b/packages/angular-material/src/other/master-detail/master.ts index e5b582b623..be7c576642 100644 --- a/packages/angular-material/src/other/master-detail/master.ts +++ b/packages/angular-material/src/other/master-detail/master.ts @@ -179,7 +179,8 @@ export class MasterListComponent extends JsonFormsArrayControl { `${controlElement.scope}/items`, props.path, 'VerticalLayout', - controlElement + controlElement, + props.rootSchema ); const masterItems = (data || []).map((d: any, index: number) => { diff --git a/packages/angular-material/src/other/object.renderer.ts b/packages/angular-material/src/other/object.renderer.ts index 62a9bc86b4..1bf86a7559 100644 --- a/packages/angular-material/src/other/object.renderer.ts +++ b/packages/angular-material/src/other/object.renderer.ts @@ -63,9 +63,11 @@ export class ObjectControlRenderer extends JsonFormsControlWithDetail { this.detailUiSchema = findUISchema( props.uischemas, props.schema, - undefined, + props.uischema.scope, props.path, - 'Group' + 'Group', + props.uischema, + props.rootSchema ); if (isEmpty(props.path)) { this.detailUiSchema.type = 'VerticalLayout'; diff --git a/packages/core/src/util/renderer.ts b/packages/core/src/util/renderer.ts index 5f43ec19ad..f52e106a09 100644 --- a/packages/core/src/util/renderer.ts +++ b/packages/core/src/util/renderer.ts @@ -894,7 +894,10 @@ export const mapStateToJsonFormsRendererProps = ( state.jsonforms.uischemas, ownProps.schema, undefined, - ownProps.path + ownProps.path, + undefined, + undefined, + state.jsonforms.core.schema ); } else { uischema = getUiSchema(state); diff --git a/packages/material/src/additional/MaterialListWithDetailRenderer.tsx b/packages/material/src/additional/MaterialListWithDetailRenderer.tsx index d9290d7a5e..8d6866410d 100644 --- a/packages/material/src/additional/MaterialListWithDetailRenderer.tsx +++ b/packages/material/src/additional/MaterialListWithDetailRenderer.tsx @@ -60,7 +60,8 @@ export const MaterialListWithDetailRenderer = ({ data, renderers, cells, - config + config, + rootSchema }: ArrayLayoutProps) => { const [selectedIndex, setSelectedIndex] = useState(undefined); const handleRemoveItem = useCallback( @@ -90,9 +91,10 @@ export const MaterialListWithDetailRenderer = ({ uischema.scope, path, undefined, - uischema + uischema, + rootSchema ), - [uischemas, schema, uischema.scope, path, uischema] + [uischemas, schema, uischema.scope, path, uischema, rootSchema] ); const appliedUiSchemaOptions = merge({}, config, uischema.options); diff --git a/packages/vanilla/src/complex/array/ArrayControl.tsx b/packages/vanilla/src/complex/array/ArrayControl.tsx index ed4e935d74..859dece460 100644 --- a/packages/vanilla/src/complex/array/ArrayControl.tsx +++ b/packages/vanilla/src/complex/array/ArrayControl.tsx @@ -37,11 +37,12 @@ export const ArrayControl = ({ addItem, uischema, uischemas, - renderers + renderers, + rootSchema }: ArrayControlProps & VanillaRendererProps) => { const childUiSchema = useMemo( - () => findUISchema(uischemas, schema, uischema.scope, path), - [uischemas, schema, uischema.scope, path] + () => findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema), + [uischemas, schema, uischema.scope, path, uischema, rootSchema] ); return (
diff --git a/packages/vue/vue-vanilla/src/util/composition.ts b/packages/vue/vue-vanilla/src/util/composition.ts index ae101c319b..2fbf4c445d 100644 --- a/packages/vue/vue-vanilla/src/util/composition.ts +++ b/packages/vue/vue-vanilla/src/util/composition.ts @@ -90,7 +90,10 @@ export const useVanillaArrayControl = ( input.control.value.uischemas, input.control.value.schema, input.control.value.uischema.scope, - input.control.value.path + input.control.value.path, + undefined, + input.control.value.uischema, + input.control.value.rootSchema ) );