@aokiapp/rjsf-mantine-corporate
Version:
Corporational variant of theme, based on @aokiapp/rjsf-mantine-theme
116 lines (111 loc) • 3.64 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var core = require('@mantine/core');
var hooks = require('@mantine/hooks');
var utils = require('@rjsf/utils');
var ObjectFieldTemplate_module = require('./ObjectFieldTemplate.module.css.cjs');
var iconsReact = require('@tabler/icons-react');
function ObjectFieldTemplate(props) {
const {
description,
disabled,
formData,
idSchema,
onAddClick,
properties,
readonly,
registry,
required,
schema,
title,
uiSchema,
errorSchema
} = props;
const options = utils.getUiOptions(uiSchema);
const TitleFieldTemplate = utils.getTemplate("TitleFieldTemplate", registry, options);
const DescriptionFieldTemplate = utils.getTemplate(
"DescriptionFieldTemplate",
registry,
options
);
const {
ButtonTemplates: { AddButton }
} = registry.templates;
const [opened, { toggle }] = hooks.useDisclosure(true);
const showLegend = (title || description) && options?.hideLegend !== true;
const classNames = options.classNames;
const containError = errorSchema && Object.keys(errorSchema).length > 0;
const legendInner = /* @__PURE__ */ jsxRuntime.jsxs(core.Group, { gap: "xs", children: [
title && /* @__PURE__ */ jsxRuntime.jsx(
TitleFieldTemplate,
{
id: utils.titleId(idSchema),
title,
required,
schema,
uiSchema,
registry
}
),
description && /* @__PURE__ */ jsxRuntime.jsx(
DescriptionFieldTemplate,
{
id: utils.descriptionId(idSchema),
description,
schema,
uiSchema,
registry
}
)
] });
const contentInner = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
/* @__PURE__ */ jsxRuntime.jsx(core.Box, { className: "armt-template-objectfield-item", children: properties.map((prop) => prop.content) }),
utils.canExpand(schema, uiSchema, formData) && /* @__PURE__ */ jsxRuntime.jsx(
AddButton,
{
className: "object-property-expand",
onClick: onAddClick(schema),
disabled: disabled || readonly,
uiSchema,
registry
}
)
] });
if (options.collapsable) {
const legendNode = showLegend ? /* @__PURE__ */ jsxRuntime.jsxs(core.Group, { onClick: toggle, justify: "space-between", wrap: "nowrap", children: [
legendInner,
/* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronUp, { size: "1rem" })
] }) : null;
return /* @__PURE__ */ jsxRuntime.jsxs(
core.Stack,
{
id: idSchema.$id,
role: "group",
gap: "xs",
className: `armt-template-objectfield ${classNames ?? ""} ${ObjectFieldTemplate_module.default.root} ${containError && ObjectFieldTemplate_module.default.error}`,
children: [
legendNode,
/* @__PURE__ */ jsxRuntime.jsx(core.Collapse, { in: opened, className: ObjectFieldTemplate_module.default.collapse, children: contentInner })
]
}
);
} else {
const legendNode = showLegend ? legendInner : null;
return /* @__PURE__ */ jsxRuntime.jsxs(
core.Stack,
{
id: idSchema.$id,
role: "group",
gap: "xs",
className: `armt-template-objectfield ${classNames ?? ""} ${ObjectFieldTemplate_module.default.root} ${containError && ObjectFieldTemplate_module.default.error}`,
children: [
legendNode,
contentInner
]
}
);
}
}
exports.default = ObjectFieldTemplate;
//# sourceMappingURL=ObjectFieldTemplate.cjs.map