UNPKG

@aokiapp/rjsf-mantine-corporate

Version:

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

1 lines 7.17 kB
{"version":3,"file":"ObjectFieldTemplate.mjs","sources":["../../src/templates/ObjectFieldTemplate.tsx"],"sourcesContent":["import { Group, Box, Collapse, Stack } from '@mantine/core';\nimport { useDisclosure } from '@mantine/hooks';\nimport {\n FormContextType,\n ObjectFieldTemplatePropertyType,\n ObjectFieldTemplateProps,\n RJSFSchema,\n StrictRJSFSchema,\n canExpand,\n descriptionId,\n titleId,\n getUiOptions,\n getTemplate,\n} from '@rjsf/utils';\nimport classes from './ObjectFieldTemplate.module.css';\nimport { IconChevronUp } from '@tabler/icons-react';\n\n/** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the\n * title and description if available. If the object is expandable, then an `AddButton` is also rendered after all\n * the properties.\n *\n * @param props - The `ObjectFieldTemplateProps` for this component\n */\nexport default function ObjectFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: ObjectFieldTemplateProps<T, S, F>) {\n const {\n description,\n disabled,\n formData,\n idSchema,\n onAddClick,\n properties,\n readonly,\n registry,\n required,\n schema,\n title,\n uiSchema,\n errorSchema,\n } = props;\n const options = getUiOptions<T, S, F>(uiSchema);\n const TitleFieldTemplate = getTemplate<'TitleFieldTemplate', T, S, F>('TitleFieldTemplate', registry, options);\n const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(\n 'DescriptionFieldTemplate',\n registry,\n options,\n );\n // Button templates are not overridden in the uiSchema\n const {\n ButtonTemplates: { AddButton },\n } = registry.templates;\n\n const [opened, { toggle }] = useDisclosure(true);\n\n const showLegend = (title || description) && options?.hideLegend !== true;\n\n const classNames = options.classNames;\n const containError = errorSchema && Object.keys(errorSchema).length > 0;\n\n const legendInner = (\n <Group gap='xs'>\n {title && (\n <TitleFieldTemplate\n id={titleId<T>(idSchema)}\n title={title}\n required={required}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n )}\n {description && (\n <DescriptionFieldTemplate\n id={descriptionId<T>(idSchema)}\n description={description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n )}\n </Group>\n );\n\n const contentInner = (\n <>\n <Box className='armt-template-objectfield-item'>\n {properties.map((prop: ObjectFieldTemplatePropertyType) => prop.content)}\n </Box>\n {canExpand<T, S, F>(schema, uiSchema, formData) && (\n <AddButton\n className='object-property-expand'\n onClick={onAddClick(schema)}\n disabled={disabled || readonly}\n uiSchema={uiSchema}\n registry={registry}\n />\n )}\n </>\n );\n\n // default setting is uncollapsable\n if (options.collapsable) {\n const legendNode = showLegend ? (\n <Group onClick={toggle} justify='space-between' wrap='nowrap'>\n {legendInner}\n <IconChevronUp size='1rem' />\n </Group>\n ) : null;\n return (\n <Stack\n id={idSchema.$id}\n role='group'\n gap={'xs'}\n className={`armt-template-objectfield ${classNames ?? ''} ${classes.root} ${containError && classes.error}`}\n >\n {legendNode}\n <Collapse in={opened} className={classes.collapse}>\n {contentInner}\n </Collapse>\n </Stack>\n );\n } else {\n const legendNode = showLegend ? legendInner : null;\n return (\n <Stack\n id={idSchema.$id}\n role='group'\n gap={'xs'}\n className={`armt-template-objectfield ${classNames ?? ''} ${classes.root} ${containError && classes.error}`}\n >\n {legendNode}\n {contentInner}\n </Stack>\n );\n }\n}\n"],"names":[],"mappings":"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"}