UNPKG

@aokiapp/rjsf-mantine-corporate

Version:

Corporational variant of theme, based on @aokiapp/rjsf-mantine-theme

116 lines (111 loc) 3.64 kB
'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