UNPKG

@rjsf/react-bootstrap

Version:

React Bootstrap theme, fields and widgets for react-jsonschema-form, powered by react-bootstrap

5 lines 63.5 kB
{ "version": 3, "sources": ["../src/index.ts", "../src/Form/Form.tsx", "../src/AddButton/AddButton.tsx", "../src/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx", "../src/ArrayFieldTemplate/ArrayFieldTemplate.tsx", "../src/BaseInputTemplate/BaseInputTemplate.tsx", "../src/DescriptionField/DescriptionField.tsx", "../src/ErrorList/ErrorList.tsx", "../src/IconButton/IconButton.tsx", "../src/FieldErrorTemplate/FieldErrorTemplate.tsx", "../src/FieldHelpTemplate/FieldHelpTemplate.tsx", "../src/FieldTemplate/FieldTemplate.tsx", "../src/GridTemplate/GridTemplate.tsx", "../src/MultiSchemaFieldTemplate/MultiSchemaFieldTemplate.tsx", "../src/ObjectFieldTemplate/ObjectFieldTemplate.tsx", "../src/OptionalDataControlsTemplate/OptionalDataControlsTemplate.tsx", "../src/SubmitButton/SubmitButton.tsx", "../src/TitleField/TitleField.tsx", "../src/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx", "../src/Templates/Templates.ts", "../src/CheckboxWidget/CheckboxWidget.tsx", "../src/CheckboxesWidget/CheckboxesWidget.tsx", "../src/RadioWidget/RadioWidget.tsx", "../src/RangeWidget/RangeWidget.tsx", "../src/SelectWidget/SelectWidget.tsx", "../src/TextareaWidget/TextareaWidget.tsx", "../src/Widgets/Widgets.ts", "../src/Theme/Theme.tsx"], "sourcesContent": ["import Form from './Form/Form';\n\nexport { default as Form, generateForm } from './Form';\nexport { default as Templates, generateTemplates } from './Templates';\nexport { default as Theme, generateTheme } from './Theme';\nexport { default as Widgets, generateWidgets } from './Widgets';\n\nexport default Form;\n", "import { ComponentType } from 'react';\n\nimport { withTheme, FormProps } from '@rjsf/core';\nimport { generateTheme } from '../Theme';\nimport { FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\n\nexport function generateForm<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): ComponentType<FormProps<T, S, F>> {\n return withTheme<T, S, F>(generateTheme<T, S, F>());\n}\n\nexport default generateForm();\n", "import { FormContextType, IconButtonProps, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';\nimport Button from 'react-bootstrap/Button';\nimport { BsPlus } from '@react-icons/all-files/bs/BsPlus';\n\nexport default function AddButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n uiSchema,\n registry,\n ...props\n}: IconButtonProps<T, S, F>) {\n const { translateString } = registry;\n return (\n <Button\n title={translateString(TranslatableString.AddItemButton)}\n {...props}\n style={{ width: '100%' }}\n className={`ml-1 ${props.className}`}\n >\n <BsPlus />\n </Button>\n );\n}\n", "import { CSSProperties } from 'react';\nimport Row from 'react-bootstrap/Row';\nimport Col from 'react-bootstrap/Col';\nimport {\n ArrayFieldItemTemplateProps,\n FormContextType,\n getTemplate,\n getUiOptions,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\n\nexport default function ArrayFieldItemTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: ArrayFieldItemTemplateProps<T, S, F>) {\n const { children, buttonsProps, displayLabel, hasDescription, hasToolbar, uiSchema, registry } = props;\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n const ArrayFieldItemButtonsTemplate = getTemplate<'ArrayFieldItemButtonsTemplate', T, S, F>(\n 'ArrayFieldItemButtonsTemplate',\n registry,\n uiOptions,\n );\n const btnStyle: CSSProperties = {\n flex: 1,\n paddingLeft: 6,\n paddingRight: 6,\n fontWeight: 'bold',\n };\n const padding = hasDescription ? 'pb-1' : 'pt-4 mt-2';\n return (\n <div>\n <Row className='mb-2 d-flex align-items-center'>\n <Col xs='8' md='9' lg='10'>\n {children}\n </Col>\n <Col xs='4' md='3' lg='2' className={displayLabel ? padding : 'py-4'}>\n {hasToolbar && (\n <div className='d-flex flex-row'>\n <ArrayFieldItemButtonsTemplate {...buttonsProps} style={btnStyle} />\n </div>\n )}\n </Col>\n </Row>\n </div>\n );\n}\n", "import Row from 'react-bootstrap/Row';\nimport Col from 'react-bootstrap/Col';\nimport Container from 'react-bootstrap/Container';\nimport {\n ArrayFieldTemplateProps,\n buttonId,\n FormContextType,\n getTemplate,\n getUiOptions,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\n\nexport default function ArrayFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: ArrayFieldTemplateProps<T, S, F>) {\n const {\n canAdd,\n disabled,\n fieldPathId,\n uiSchema,\n items,\n optionalDataControl,\n onAddClick,\n readonly,\n registry,\n required,\n schema,\n title,\n } = props;\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n const ArrayFieldDescriptionTemplate = getTemplate<'ArrayFieldDescriptionTemplate', T, S, F>(\n 'ArrayFieldDescriptionTemplate',\n registry,\n uiOptions,\n );\n const ArrayFieldTitleTemplate = getTemplate<'ArrayFieldTitleTemplate', T, S, F>(\n 'ArrayFieldTitleTemplate',\n registry,\n uiOptions,\n );\n const showOptionalDataControlInTitle = !readonly && !disabled;\n // Button templates are not overridden in the uiSchema\n const {\n ButtonTemplates: { AddButton },\n } = registry.templates;\n return (\n <div>\n <Row className='p-0 m-0'>\n <Col className='p-0 m-0'>\n <ArrayFieldTitleTemplate\n fieldPathId={fieldPathId}\n title={uiOptions.title || title}\n schema={schema}\n uiSchema={uiSchema}\n required={required}\n registry={registry}\n optionalDataControl={showOptionalDataControlInTitle ? optionalDataControl : undefined}\n />\n <ArrayFieldDescriptionTemplate\n fieldPathId={fieldPathId}\n description={uiOptions.description || schema.description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n <Container fluid key={`array-item-list-${fieldPathId.$id}`} className='p-0 m-0'>\n {!showOptionalDataControlInTitle ? optionalDataControl : undefined}\n {items}\n {canAdd && (\n <Container className=''>\n <Row className='mt-2'>\n <Col xs={9} md={10} lg={11}></Col>\n <Col xs={3} md={2} lg={1} className='py-4'>\n <AddButton\n id={buttonId(fieldPathId, 'add')}\n className='rjsf-array-item-add'\n onClick={onAddClick}\n disabled={disabled || readonly}\n uiSchema={uiSchema}\n registry={registry}\n />\n </Col>\n </Row>\n </Container>\n )}\n </Container>\n </Col>\n </Row>\n </div>\n );\n}\n", "import { ChangeEvent, FocusEvent, MouseEvent, useCallback } from 'react';\nimport Form from 'react-bootstrap/Form';\nimport {\n ariaDescribedByIds,\n BaseInputTemplateProps,\n examplesId,\n FormContextType,\n getInputProps,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\nimport { SchemaExamples } from '@rjsf/core';\n\nexport default function BaseInputTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n htmlName,\n placeholder,\n required,\n readonly,\n disabled,\n type,\n value,\n onChange,\n onChangeOverride,\n onBlur,\n onFocus,\n autofocus,\n options,\n schema,\n rawErrors = [],\n children,\n extraProps,\n registry,\n}: BaseInputTemplateProps<T, S, F>) {\n const { ClearButton } = registry.templates.ButtonTemplates;\n const inputProps = {\n ...extraProps,\n ...getInputProps<T, S, F>(schema, type, options),\n };\n const _onChange = ({ target: { value } }: ChangeEvent<HTMLInputElement>) =>\n onChange(value === '' ? options.emptyValue : value);\n const _onBlur = ({ target }: FocusEvent<HTMLInputElement>) => onBlur(id, target && target.value);\n const _onFocus = ({ target }: FocusEvent<HTMLInputElement>) => onFocus(id, target && target.value);\n const _onClear = useCallback(\n (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n onChange(options.emptyValue ?? '');\n },\n [onChange, options.emptyValue],\n );\n\n // const classNames = [rawErrors.length > 0 ? \"is-invalid\" : \"\", type === 'file' ? 'custom-file-label': \"\"]\n return (\n <>\n <Form.Control\n id={id}\n name={htmlName || id}\n placeholder={placeholder}\n autoFocus={autofocus}\n required={required}\n disabled={disabled}\n readOnly={readonly}\n className={rawErrors.length > 0 ? 'is-invalid' : ''}\n list={schema.examples ? examplesId(id) : undefined}\n {...inputProps}\n value={value || value === 0 ? value : ''}\n onChange={onChangeOverride || _onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id, !!schema.examples)}\n />\n {options.allowClearTextInputs && !readonly && !disabled && value && (\n <ClearButton registry={registry} onClick={_onClear} />\n )}\n {children}\n <SchemaExamples id={id} schema={schema} />\n </>\n );\n}\n", "import { DescriptionFieldProps, FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport { RichDescription } from '@rjsf/core';\n\n/** The `DescriptionField` is the template to use to render the description of a field\n *\n * @param props - The `DescriptionFieldProps` for this component\n */\nexport default function DescriptionField<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({ id, description, registry, uiSchema }: DescriptionFieldProps<T, S, F>) {\n if (!description) {\n return null;\n }\n\n return (\n <div>\n <div id={id} className='mb-3'>\n <RichDescription description={description} registry={registry} uiSchema={uiSchema} />\n </div>\n </div>\n );\n}\n", "import Card from 'react-bootstrap/Card';\nimport ListGroup from 'react-bootstrap/ListGroup';\n\nimport { ErrorListProps, FormContextType, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';\n\nexport default function ErrorList<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n errors,\n registry,\n}: ErrorListProps<T, S, F>) {\n const { translateString } = registry;\n return (\n <Card border='danger' className='mb-4'>\n <Card.Header className='alert-danger'>{translateString(TranslatableString.ErrorsLabel)}</Card.Header>\n <Card.Body className='p-0'>\n <ListGroup>\n {errors.map((error, i: number) => {\n return (\n <ListGroup.Item key={i} className='border-0'>\n <span>{error.stack}</span>\n </ListGroup.Item>\n );\n })}\n </ListGroup>\n </Card.Body>\n </Card>\n );\n}\n", "import { FormContextType, IconButtonProps, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';\nimport Button, { ButtonProps } from 'react-bootstrap/Button';\nimport { IoIosCopy } from '@react-icons/all-files/io/IoIosCopy';\nimport { IoIosRemove } from '@react-icons/all-files/io/IoIosRemove';\nimport { AiOutlineArrowUp } from '@react-icons/all-files/ai/AiOutlineArrowUp';\nimport { AiOutlineArrowDown } from '@react-icons/all-files/ai/AiOutlineArrowDown';\nimport { IoMdClose } from '@react-icons/all-files/io/IoMdClose';\n\nexport type BootstrapIconButtonProps<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n> = IconButtonProps<T, S, F> & ButtonProps;\n\nexport default function IconButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: BootstrapIconButtonProps<T, S, F>,\n) {\n const { icon, iconType, className, uiSchema, registry, ...otherProps } = props;\n return (\n <Button {...otherProps} variant={props.variant || 'light'} size='sm'>\n {icon}\n </Button>\n );\n}\n\nexport function CopyButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: BootstrapIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return <IconButton title={translateString(TranslatableString.CopyButton)} {...props} icon={<IoIosCopy />} />;\n}\n\nexport function MoveDownButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: BootstrapIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton title={translateString(TranslatableString.MoveDownButton)} {...props} icon={<AiOutlineArrowDown />} />\n );\n}\n\nexport function MoveUpButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: BootstrapIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return <IconButton title={translateString(TranslatableString.MoveUpButton)} {...props} icon={<AiOutlineArrowUp />} />;\n}\n\nexport function RemoveButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: BootstrapIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton\n title={translateString(TranslatableString.RemoveButton)}\n variant='danger'\n {...props}\n icon={<IoIosRemove />}\n />\n );\n}\n\nexport function ClearButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: BootstrapIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return <IconButton title={translateString(TranslatableString.ClearButton)} {...props} icon={<IoMdClose />} />;\n}\n", "import { FieldErrorProps, FormContextType, RJSFSchema, StrictRJSFSchema, errorId } from '@rjsf/utils';\nimport ListGroup from 'react-bootstrap/ListGroup';\n\n/** The `FieldErrorTemplate` component renders the errors local to the particular field\n *\n * @param props - The `FieldErrorProps` for the errors being rendered\n */\nexport default function FieldErrorTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: FieldErrorProps<T, S, F>) {\n const { errors = [], fieldPathId } = props;\n if (errors.length === 0) {\n return null;\n }\n const id = errorId(fieldPathId);\n\n return (\n <ListGroup as='ul' id={id}>\n {errors.map((error, i) => {\n return (\n <ListGroup.Item as='li' key={i} className='border-0 m-0 p-0'>\n <small className='m-0 text-danger'>{error}</small>\n </ListGroup.Item>\n );\n })}\n </ListGroup>\n );\n}\n", "import { FieldHelpProps, FormContextType, RJSFSchema, StrictRJSFSchema, helpId } from '@rjsf/utils';\nimport { RichHelp } from '@rjsf/core';\nimport Form from 'react-bootstrap/Form';\n\n/** The `FieldHelpTemplate` component renders any help desired for a field\n *\n * @param props - The `FieldHelpProps` to be rendered\n */\nexport default function FieldHelpTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: FieldHelpProps<T, S, F>) {\n const { fieldPathId, help, uiSchema, registry, hasErrors } = props;\n if (!help) {\n return null;\n }\n return (\n <Form.Text id={helpId(fieldPathId)} className={hasErrors ? 'text-danger' : 'text-muted'}>\n <RichHelp help={help} registry={registry} uiSchema={uiSchema} />\n </Form.Text>\n );\n}\n", "import {\n FieldTemplateProps,\n FormContextType,\n getTemplate,\n getUiOptions,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\nimport Form from 'react-bootstrap/Form';\n\nexport default function FieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n children,\n displayLabel,\n rawErrors = [],\n errors,\n help,\n description,\n rawDescription,\n classNames,\n style,\n disabled,\n label,\n hidden,\n onKeyRename,\n onKeyRenameBlur,\n onRemoveProperty,\n readonly,\n required,\n schema,\n uiSchema,\n registry,\n}: FieldTemplateProps<T, S, F>) {\n const uiOptions = getUiOptions(uiSchema);\n const WrapIfAdditionalTemplate = getTemplate<'WrapIfAdditionalTemplate', T, S, F>(\n 'WrapIfAdditionalTemplate',\n registry,\n uiOptions,\n );\n if (hidden) {\n return <div className='hidden'>{children}</div>;\n }\n const isCheckbox = uiOptions.widget === 'checkbox';\n\n return (\n <WrapIfAdditionalTemplate\n classNames={classNames}\n style={style}\n disabled={disabled}\n id={id}\n label={label}\n displayLabel={displayLabel}\n rawDescription={rawDescription}\n onKeyRename={onKeyRename}\n onKeyRenameBlur={onKeyRenameBlur}\n onRemoveProperty={onRemoveProperty}\n readonly={readonly}\n required={required}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n >\n <Form.Group>\n {displayLabel && !isCheckbox && (\n <Form.Label htmlFor={id} className={rawErrors.length > 0 ? 'text-danger' : ''}>\n {label}\n {required ? '*' : null}\n </Form.Label>\n )}\n {children}\n {displayLabel && rawDescription && !isCheckbox && (\n <Form.Text className={rawErrors.length > 0 ? 'text-danger' : 'text-muted'}>{description}</Form.Text>\n )}\n {errors}\n {help}\n </Form.Group>\n </WrapIfAdditionalTemplate>\n );\n}\n", "import Row from 'react-bootstrap/Row';\nimport Col from 'react-bootstrap/Col';\nimport { GridTemplateProps } from '@rjsf/utils';\n\n/** Renders a `GridTemplate` for react-bootstrap, which is expecting the column sizing information coming in via the\n * extra props provided by the caller, which are spread directly on the `Row`/`Col`.\n *\n * @param props - The GridTemplateProps, including the extra props containing the react-bootstrap grid positioning details\n */\nexport default function GridTemplate(props: GridTemplateProps) {\n const { children, column, ...rest } = props;\n if (column) {\n return <Col {...rest}>{children}</Col>;\n }\n return <Row {...rest}>{children}</Row>;\n}\n", "import { FormContextType, MultiSchemaFieldTemplateProps, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport Card from 'react-bootstrap/Card';\n\nexport default function MultiSchemaFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({ selector, optionSchemaField }: MultiSchemaFieldTemplateProps<T, S, F>) {\n return (\n <Card style={{ marginBottom: '1rem' }}>\n <Card.Body>{selector}</Card.Body>\n <Card.Body>{optionSchemaField}</Card.Body>\n </Card>\n );\n}\n", "import Row from 'react-bootstrap/Row';\nimport Col from 'react-bootstrap/Col';\nimport Container from 'react-bootstrap/Container';\n\nimport {\n buttonId,\n canExpand,\n descriptionId,\n FormContextType,\n getTemplate,\n getUiOptions,\n ObjectFieldTemplateProps,\n RJSFSchema,\n StrictRJSFSchema,\n titleId,\n} from '@rjsf/utils';\n\nexport default function ObjectFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n description,\n title,\n properties,\n required,\n uiSchema,\n fieldPathId,\n schema,\n formData,\n optionalDataControl,\n onAddProperty,\n disabled,\n readonly,\n registry,\n}: ObjectFieldTemplateProps<T, S, F>) {\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n const TitleFieldTemplate = getTemplate<'TitleFieldTemplate', T, S, F>('TitleFieldTemplate', registry, uiOptions);\n const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(\n 'DescriptionFieldTemplate',\n registry,\n uiOptions,\n );\n const showOptionalDataControlInTitle = !readonly && !disabled;\n // Button templates are not overridden in the uiSchema\n const {\n ButtonTemplates: { AddButton },\n } = registry.templates;\n return (\n <>\n {title && (\n <TitleFieldTemplate\n id={titleId(fieldPathId)}\n title={title}\n required={required}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n optionalDataControl={showOptionalDataControlInTitle ? optionalDataControl : undefined}\n />\n )}\n {description && (\n <DescriptionFieldTemplate\n id={descriptionId(fieldPathId)}\n description={description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n )}\n <Container fluid className='p-0'>\n {!showOptionalDataControlInTitle ? optionalDataControl : undefined}\n {properties.map((element: any, index: number) => (\n <Row key={index} style={{ marginBottom: '10px' }} className={element.hidden ? 'd-none' : undefined}>\n <Col xs={12}> {element.content}</Col>\n </Row>\n ))}\n {canExpand(schema, uiSchema, formData) ? (\n <Row>\n <Col xs={{ offset: 11, span: 1 }} className='py-0.5'>\n <AddButton\n id={buttonId(fieldPathId, 'add')}\n onClick={onAddProperty}\n disabled={disabled || readonly}\n className='rjsf-object-property-expand'\n uiSchema={uiSchema}\n registry={registry}\n />\n </Col>\n </Row>\n ) : null}\n </Container>\n </>\n );\n}\n", "import { FormContextType, OptionalDataControlsTemplateProps, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport { BsPlus } from '@react-icons/all-files/bs/BsPlus';\n\nimport IconButton, { RemoveButton } from '../IconButton';\n\n/** The OptionalDataControlsTemplate renders one of three different states. If\n * there is an `onAddClick()` function, it renders the \"Add\" button. If there is\n * an `onRemoveClick()` function, it renders the \"Remove\" button. Otherwise it\n * renders the \"No data found\" section. All of them use the `label` as either\n * the `title` of buttons or simply outputting it.\n *\n * @param props - The `OptionalDataControlsTemplateProps` for the template\n */\nexport default function OptionalDataControlsTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: OptionalDataControlsTemplateProps<T, S, F>) {\n const { id, registry, label, onAddClick, onRemoveClick } = props;\n if (onAddClick) {\n return (\n <IconButton\n id={id}\n registry={registry}\n className='rjsf-add-optional-data'\n icon={<BsPlus />}\n onClick={onAddClick}\n title={label}\n size='sm'\n variant='secondary'\n />\n );\n } else if (onRemoveClick) {\n return (\n <RemoveButton\n id={id}\n registry={registry}\n className='rjsf-remove-optional-data'\n onClick={onRemoveClick}\n title={label}\n size='sm'\n variant='secondary'\n />\n );\n }\n return <em id={id}>{label}</em>;\n}\n", "import Button from 'react-bootstrap/Button';\nimport { FormContextType, getSubmitButtonOptions, RJSFSchema, StrictRJSFSchema, SubmitButtonProps } from '@rjsf/utils';\n\nexport default function SubmitButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: SubmitButtonProps<T, S, F>,\n) {\n const { submitText, norender, props: submitButtonProps } = getSubmitButtonOptions<T, S, F>(props.uiSchema);\n if (norender) {\n return null;\n }\n return (\n <div>\n <Button variant='primary' type='submit' {...submitButtonProps}>\n {submitText}\n </Button>\n </div>\n );\n}\n", "import { FormContextType, getUiOptions, RJSFSchema, StrictRJSFSchema, TitleFieldProps } from '@rjsf/utils';\nimport Row from 'react-bootstrap/Row';\nimport Col from 'react-bootstrap/Col';\nimport Container from 'react-bootstrap/Container';\n\nexport default function TitleField<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n id,\n title,\n uiSchema,\n optionalDataControl,\n}: TitleFieldProps<T, S, F>) {\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n let heading = <h5>{uiOptions.title || title}</h5>;\n if (optionalDataControl) {\n heading = (\n <Container fluid className='p-0'>\n <Row>\n <Col xs='11'>{heading}</Col>\n <Col xs='1' style={{ marginLeft: '-5px' }}>\n {optionalDataControl}\n </Col>\n </Row>\n </Container>\n );\n }\n return (\n <div id={id} className='my-1'>\n {heading}\n <hr className='border-0 bg-secondary mt-0' style={{ height: '1px' }} />\n </div>\n );\n}\n", "import {\n ADDITIONAL_PROPERTY_FLAG,\n buttonId,\n FormContextType,\n RJSFSchema,\n StrictRJSFSchema,\n TranslatableString,\n WrapIfAdditionalTemplateProps,\n} from '@rjsf/utils';\n\nimport Row from 'react-bootstrap/Row';\nimport Col from 'react-bootstrap/Col';\nimport Form from 'react-bootstrap/Form';\n\nexport default function WrapIfAdditionalTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n classNames,\n style,\n children,\n disabled,\n id,\n label,\n displayLabel,\n onRemoveProperty,\n onKeyRenameBlur,\n rawDescription,\n readonly,\n required,\n schema,\n uiSchema,\n registry,\n}: WrapIfAdditionalTemplateProps<T, S, F>) {\n const { templates, translateString } = registry;\n // Button templates are not overridden in the uiSchema\n const { RemoveButton } = templates.ButtonTemplates;\n const keyLabel = translateString(TranslatableString.KeyLabel, [label]);\n const additional = ADDITIONAL_PROPERTY_FLAG in schema;\n const descPadding = rawDescription ? 1 : 0;\n const descMargin = rawDescription ? -24 : 0;\n\n if (!additional) {\n return (\n <div className={classNames} style={style}>\n {children}\n </div>\n );\n }\n\n const keyId = `${id}-key`;\n const margin = displayLabel ? 12 + descMargin : 0;\n const padding = displayLabel ? 4 + descPadding : 1;\n\n return (\n <Row className={classNames} style={style} key={keyId}>\n <Col xs={5}>\n <Form.Group>\n {displayLabel && <Form.Label htmlFor={keyId}>{keyLabel}</Form.Label>}\n <Form.Control\n required={required}\n defaultValue={label}\n disabled={disabled || readonly}\n id={keyId}\n name={keyId}\n onBlur={!readonly ? onKeyRenameBlur : undefined}\n type='text'\n />\n </Form.Group>\n </Col>\n <Col xs={6}>{children}</Col>\n <Col xs={1} className={`py-${padding} d-grid gap-2`} style={{ marginTop: `${margin}px`, maxHeight: `2.5rem` }}>\n <RemoveButton\n id={buttonId(id, 'remove')}\n className='rjsf-object-property-remove w-100'\n disabled={disabled || readonly}\n onClick={onRemoveProperty}\n uiSchema={uiSchema}\n registry={registry}\n />\n </Col>\n </Row>\n );\n}\n", "import AddButton from '../AddButton';\nimport ArrayFieldItemTemplate from '../ArrayFieldItemTemplate';\nimport ArrayFieldTemplate from '../ArrayFieldTemplate';\nimport BaseInputTemplate from '../BaseInputTemplate/BaseInputTemplate';\nimport DescriptionField from '../DescriptionField';\nimport ErrorList from '../ErrorList';\nimport { CopyButton, MoveDownButton, MoveUpButton, RemoveButton, ClearButton } from '../IconButton';\nimport FieldErrorTemplate from '../FieldErrorTemplate';\nimport FieldHelpTemplate from '../FieldHelpTemplate';\nimport FieldTemplate from '../FieldTemplate';\nimport GridTemplate from '../GridTemplate';\nimport MultiSchemaFieldTemplate from '../MultiSchemaFieldTemplate';\nimport ObjectFieldTemplate from '../ObjectFieldTemplate';\nimport OptionalDataControlsTemplate from '../OptionalDataControlsTemplate';\nimport SubmitButton from '../SubmitButton';\nimport TitleField from '../TitleField';\nimport WrapIfAdditionalTemplate from '../WrapIfAdditionalTemplate';\nimport { FormContextType, RJSFSchema, StrictRJSFSchema, TemplatesType } from '@rjsf/utils';\n\nexport function generateTemplates<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): Partial<TemplatesType<T, S, F>> {\n return {\n ArrayFieldItemTemplate,\n ArrayFieldTemplate,\n BaseInputTemplate,\n ButtonTemplates: {\n AddButton,\n CopyButton,\n MoveDownButton,\n MoveUpButton,\n RemoveButton,\n SubmitButton,\n ClearButton,\n },\n DescriptionFieldTemplate: DescriptionField,\n ErrorListTemplate: ErrorList,\n FieldErrorTemplate,\n FieldHelpTemplate,\n FieldTemplate,\n GridTemplate,\n MultiSchemaFieldTemplate,\n ObjectFieldTemplate,\n OptionalDataControlsTemplate,\n TitleFieldTemplate: TitleField,\n WrapIfAdditionalTemplate,\n };\n}\n\nexport default generateTemplates();\n", "import { FocusEvent } from 'react';\nimport {\n ariaDescribedByIds,\n descriptionId,\n getTemplate,\n labelValue,\n WidgetProps,\n schemaRequiresTrueValue,\n StrictRJSFSchema,\n RJSFSchema,\n FormContextType,\n} from '@rjsf/utils';\nimport Form from 'react-bootstrap/Form';\n\nexport default function CheckboxWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: WidgetProps<T, S, F>) {\n const {\n id,\n htmlName,\n value,\n disabled,\n readonly,\n label,\n hideLabel,\n schema,\n autofocus,\n options,\n onChange,\n onBlur,\n onFocus,\n registry,\n uiSchema,\n } = props;\n // Because an unchecked checkbox will cause html5 validation to fail, only add\n // the \"required\" attribute if the field value must be \"true\", due to the\n // \"const\" or \"enum\" keywords\n const required = schemaRequiresTrueValue<S>(schema);\n const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(\n 'DescriptionFieldTemplate',\n registry,\n options,\n );\n\n const _onChange = ({ target: { checked } }: FocusEvent<HTMLInputElement>) => onChange(checked);\n const _onBlur = ({ target }: FocusEvent<HTMLInputElement>) => onBlur(id, target && target.checked);\n const _onFocus = ({ target }: FocusEvent<HTMLInputElement>) => onFocus(id, target && target.checked);\n\n const description = options.description || schema.description;\n return (\n <Form.Group className={disabled || readonly ? 'disabled' : ''} aria-describedby={ariaDescribedByIds(id)}>\n {!hideLabel && description && (\n <DescriptionFieldTemplate\n id={descriptionId(id)}\n description={description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n )}\n <Form.Check\n id={id}\n name={htmlName || id}\n label={labelValue(label, hideLabel || !label)}\n checked={typeof value === 'undefined' ? false : value}\n required={required}\n disabled={disabled || readonly}\n autoFocus={autofocus}\n onChange={_onChange}\n type='checkbox'\n onBlur={_onBlur}\n onFocus={_onFocus}\n />\n </Form.Group>\n );\n}\n", "import { ChangeEvent, FocusEvent } from 'react';\nimport Form from 'react-bootstrap/Form';\nimport {\n ariaDescribedByIds,\n enumOptionsDeselectValue,\n enumOptionsIsSelected,\n enumOptionsSelectValue,\n enumOptionsValueForIndex,\n optionId,\n FormContextType,\n RJSFSchema,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\n\nexport default function CheckboxesWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n htmlName,\n disabled,\n options,\n value,\n autofocus,\n readonly,\n required,\n onChange,\n onBlur,\n onFocus,\n}: WidgetProps<T, S, F>) {\n const { enumOptions, enumDisabled, inline, emptyValue } = options;\n const checkboxesValues = Array.isArray(value) ? value : [value];\n\n const _onChange =\n (index: number) =>\n ({ target: { checked } }: ChangeEvent<HTMLInputElement>) => {\n if (checked) {\n onChange(enumOptionsSelectValue<S>(index, checkboxesValues, enumOptions));\n } else {\n onChange(enumOptionsDeselectValue<S>(index, checkboxesValues, enumOptions));\n }\n };\n\n const _onBlur = ({ target }: FocusEvent<HTMLInputElement>) =>\n onBlur(id, enumOptionsValueForIndex<S>(target && target.value, enumOptions, emptyValue));\n const _onFocus = ({ target }: FocusEvent<HTMLInputElement>) =>\n onFocus(id, enumOptionsValueForIndex<S>(target && target.value, enumOptions, emptyValue));\n\n return (\n <Form.Group>\n {Array.isArray(enumOptions) &&\n enumOptions.map((option, index: number) => {\n const checked = enumOptionsIsSelected<S>(option.value, checkboxesValues);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;\n\n return (\n <Form.Check\n key={option.value}\n inline={inline}\n required={required}\n checked={checked}\n className='bg-transparent border-0'\n type={'checkbox'}\n id={optionId(id, index)}\n name={htmlName || id}\n label={option.label}\n autoFocus={autofocus && index === 0}\n onChange={_onChange(index)}\n onBlur={_onBlur}\n onFocus={_onFocus}\n disabled={disabled || itemDisabled || readonly}\n aria-describedby={ariaDescribedByIds(id)}\n />\n );\n })}\n </Form.Group>\n );\n}\n", "import { ChangeEvent, FocusEvent } from 'react';\nimport Form from 'react-bootstrap/Form';\nimport {\n ariaDescribedByIds,\n enumOptionsIsSelected,\n enumOptionsValueForIndex,\n optionId,\n FormContextType,\n RJSFSchema,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\n\nexport default function RadioWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n id,\n htmlName,\n options,\n value,\n required,\n disabled,\n readonly,\n onChange,\n onBlur,\n onFocus,\n}: WidgetProps<T, S, F>) {\n const { enumOptions, enumDisabled, emptyValue } = options;\n\n const _onChange = ({ target: { value } }: ChangeEvent<HTMLInputElement>) =>\n onChange(enumOptionsValueForIndex<S>(value, enumOptions, emptyValue));\n const _onBlur = ({ target }: FocusEvent<HTMLInputElement>) =>\n onBlur(id, enumOptionsValueForIndex<S>(target && target.value, enumOptions, emptyValue));\n const _onFocus = ({ target }: FocusEvent<HTMLInputElement>) =>\n onFocus(id, enumOptionsValueForIndex<S>(target && target.value, enumOptions, emptyValue));\n\n const inline = Boolean(options && options.inline);\n\n return (\n <Form.Group className='mb-0'>\n {Array.isArray(enumOptions) &&\n enumOptions.map((option, index) => {\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;\n const checked = enumOptionsIsSelected<S>(option.value, value);\n\n const radio = (\n <Form.Check\n inline={inline}\n label={option.label}\n id={optionId(id, index)}\n key={index}\n name={htmlName || id}\n type='radio'\n disabled={disabled || itemDisabled || readonly}\n checked={checked}\n required={required}\n value={String(index)}\n onChange={_onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id)}\n />\n );\n return radio;\n })}\n </Form.Group>\n );\n}\n", "import { FormContextType, rangeSpec, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';\nimport { ChangeEvent, FocusEvent } from 'react';\nimport FormRange from 'react-bootstrap/FormRange';\n\nexport default function RangeWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: WidgetProps<T, S, F>,\n) {\n const { id, value, disabled, onChange, onBlur, onFocus, schema } = props;\n\n const _onChange = ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onChange(value);\n const _onBlur = ({ target: { value } }: FocusEvent<HTMLInputElement>) => onBlur(id, value);\n const _onFocus = ({ target: { value } }: FocusEvent<HTMLInputElement>) => onFocus(id, value);\n\n const rangeProps = {\n value,\n id,\n name: id,\n disabled,\n onChange: _onChange,\n onBlur: _onBlur,\n onFocus: _onFocus,\n ...rangeSpec<S>(schema),\n };\n\n return (\n <>\n <FormRange {...rangeProps} />\n <span className='range-view'>{value}</span>\n </>\n );\n}\n", "import { ChangeEvent, FocusEvent } from 'react';\nimport FormSelect from 'react-bootstrap/FormSelect';\nimport {\n ariaDescribedByIds,\n FormContextType,\n enumOptionsIndexForValue,\n enumOptionsValueForIndex,\n RJSFSchema,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\n\nexport default function SelectWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n schema,\n id,\n htmlName,\n options,\n required,\n disabled,\n readonly,\n value,\n multiple,\n autofocus,\n onChange,\n onBlur,\n onFocus,\n placeholder,\n rawErrors = [],\n}: WidgetProps<T, S, F>) {\n const { enumOptions, enumDisabled, emptyValue: optEmptyValue } = options;\n\n const emptyValue = multiple ? [] : '';\n\n function getValue(event: FocusEvent | ChangeEvent | any, multiple?: boolean) {\n if (multiple) {\n return [].slice\n .call(event.target.options as any)\n .filter((o: any) => o.selected)\n .map((o: any) => o.value);\n } else {\n return event.target.value;\n }\n }\n const selectedIndexes = enumOptionsIndexForValue<S>(value, enumOptions, multiple);\n const showPlaceholderOption = !multiple && schema.default === undefined;\n\n return (\n <FormSelect\n id={id}\n name={htmlName || id}\n value={typeof selectedIndexes === 'undefined' ? emptyValue : selectedIndexes}\n required={required}\n multiple={multiple}\n disabled={disabled || readonly}\n autoFocus={autofocus}\n className={rawErrors.length > 0 ? 'is-invalid' : ''}\n onBlur={\n onBlur &&\n ((event: FocusEvent) => {\n const newValue = getValue(event, multiple);\n onBlur(id, enumOptionsValueForIndex<S>(newValue, enumOptions, optEmptyValue));\n })\n }\n onFocus={\n onFocus &&\n ((event: FocusEvent) => {\n const newValue = getValue(event, multiple);\n onFocus(id, enumOptionsValueForIndex<S>(newValue, enumOptions, optEmptyValue));\n })\n }\n onChange={(event: ChangeEvent) => {\n const newValue = getValue(event, multiple);\n onChange(enumOptionsValueForIndex<S>(newValue, enumOptions, optEmptyValue));\n }}\n aria-describedby={ariaDescribedByIds(id)}\n >\n {showPlaceholderOption && <option value=''>{placeholder}</option>}\n {(enumOptions as any).map(({ value, label }: any, i: number) => {\n const disabled: any = Array.isArray(enumDisabled) && (enumDisabled as any).indexOf(value) != -1;\n return (\n <option key={i} id={label} value={String(i)} disabled={disabled}>\n {label}\n </option>\n );\n })}\n </FormSelect>\n );\n}\n", "import { ChangeEvent, FocusEvent } from 'react';\nimport { ariaDescribedByIds, FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';\nimport FormControl from 'react-bootstrap/FormControl';\nimport InputGroup from 'react-bootstrap/InputGroup';\n\ntype CustomWidgetProps<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any> = WidgetProps<\n T,\n S,\n F\n> & {\n options: any;\n};\n\nexport default function TextareaWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n htmlName,\n placeholder,\n value,\n required,\n disabled,\n autofocus,\n readonly,\n onBlur,\n onFocus,\n onChange,\n options,\n}: CustomWidgetProps<T, S, F>) {\n const _onChange = ({ target: { value } }: ChangeEvent<HTMLTextAreaElement>) =>\n onChange(value === '' ? options.emptyValue : value);\n const _onBlur = ({ target }: FocusEvent<HTMLTextAreaElement>) => onBlur(id, target && target.value);\n const _onFocus = ({ target }: FocusEvent<HTMLTextAreaElement>) => onFocus(id, target && target.value);\n\n return (\n <InputGroup>\n <FormControl\n id={id}\n name={htmlName || id}\n as='textarea'\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readonly}\n value={value}\n required={required}\n autoFocus={autofocus}\n rows={options.rows || 5}\n onChange={_onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id)}\n />\n </InputGroup>\n );\n}\n", "import CheckboxWidget from '../CheckboxWidget/CheckboxWidget';\nimport CheckboxesWidget from '../CheckboxesWidget/CheckboxesWidget';\nimport RadioWidget from '../RadioWidget/RadioWidget';\nimport RangeWidget from '../RangeWidget/RangeWidget';\nimport SelectWidget from '../SelectWidget/SelectWidget';\nimport TextareaWidget from '../TextareaWidget/TextareaWidget';\nimport { FormContextType, RegistryWidgetsType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\n\nexport function generateWidgets<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): RegistryWidgetsType<T, S, F> {\n return {\n CheckboxWidget,\n CheckboxesWidget,\n RadioWidget,\n RangeWidget,\n SelectWidget,\n TextareaWidget,\n };\n}\n\nexport default generateWidgets();\n", "import { ThemeProps } from '@rjsf/core';\n\nimport { generateTemplates } from '../Templates';\nimport { generateWidgets } from '../Widgets';\nimport { FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\n\nexport function generateTheme<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): ThemeProps<T, S, F> {\n return {\n templates: generateTemplates<T, S, F>(),\n widgets: generateWidgets<T, S, F>(),\n };\n}\n\nexport default generateTheme();\n"], "mappings": "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