@rjsf/mantine 6.0.0-beta.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -0
- package/dist/index.js +1918 -0
- package/dist/index.js.map +7 -0
- package/dist/mantine.esm.js +1967 -0
- package/dist/mantine.esm.js.map +7 -0
- package/dist/mantine.umd.js +1714 -0
- package/lib/Form/index.d.ts +6 -0
- package/lib/Form/index.js +7 -0
- package/lib/Form/index.js.map +1 -0
- package/lib/Theme/index.d.ts +5 -0
- package/lib/Theme/index.js +10 -0
- package/lib/Theme/index.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -0
- package/lib/templates/ArrayFieldItemTemplate.d.ts +6 -0
- package/lib/templates/ArrayFieldItemTemplate.js +14 -0
- package/lib/templates/ArrayFieldItemTemplate.js.map +1 -0
- package/lib/templates/ArrayFieldTemplate.d.ts +6 -0
- package/lib/templates/ArrayFieldTemplate.js +20 -0
- package/lib/templates/ArrayFieldTemplate.js.map +1 -0
- package/lib/templates/ArrayFieldTitleTemplate.d.ts +7 -0
- package/lib/templates/ArrayFieldTitleTemplate.js +18 -0
- package/lib/templates/ArrayFieldTitleTemplate.js.map +1 -0
- package/lib/templates/BaseInputTemplate.d.ts +8 -0
- package/lib/templates/BaseInputTemplate.js +36 -0
- package/lib/templates/BaseInputTemplate.js.map +1 -0
- package/lib/templates/ButtonTemplates/AddButton.d.ts +4 -0
- package/lib/templates/ButtonTemplates/AddButton.js +11 -0
- package/lib/templates/ButtonTemplates/AddButton.js.map +1 -0
- package/lib/templates/ButtonTemplates/IconButton.d.ts +8 -0
- package/lib/templates/ButtonTemplates/IconButton.js +25 -0
- package/lib/templates/ButtonTemplates/IconButton.js.map +1 -0
- package/lib/templates/ButtonTemplates/SubmitButton.d.ts +4 -0
- package/lib/templates/ButtonTemplates/SubmitButton.js +13 -0
- package/lib/templates/ButtonTemplates/SubmitButton.js.map +1 -0
- package/lib/templates/ButtonTemplates/index.d.ts +3 -0
- package/lib/templates/ButtonTemplates/index.js +15 -0
- package/lib/templates/ButtonTemplates/index.js.map +1 -0
- package/lib/templates/DescriptionField.d.ts +6 -0
- package/lib/templates/DescriptionField.js +15 -0
- package/lib/templates/DescriptionField.js.map +1 -0
- package/lib/templates/ErrorList.d.ts +6 -0
- package/lib/templates/ErrorList.js +13 -0
- package/lib/templates/ErrorList.js.map +1 -0
- package/lib/templates/FieldErrorTemplate.d.ts +6 -0
- package/lib/templates/FieldErrorTemplate.js +16 -0
- package/lib/templates/FieldErrorTemplate.js.map +1 -0
- package/lib/templates/FieldHelpTemplate.d.ts +6 -0
- package/lib/templates/FieldHelpTemplate.js +13 -0
- package/lib/templates/FieldHelpTemplate.js.map +1 -0
- package/lib/templates/FieldTemplate.d.ts +7 -0
- package/lib/templates/FieldTemplate.js +18 -0
- package/lib/templates/FieldTemplate.js.map +1 -0
- package/lib/templates/GridTemplate.d.ts +7 -0
- package/lib/templates/GridTemplate.js +20 -0
- package/lib/templates/GridTemplate.js.map +1 -0
- package/lib/templates/MultiSchemaFieldTemplate.d.ts +2 -0
- package/lib/templates/MultiSchemaFieldTemplate.js +6 -0
- package/lib/templates/MultiSchemaFieldTemplate.js.map +1 -0
- package/lib/templates/ObjectFieldTemplate.d.ts +8 -0
- package/lib/templates/ObjectFieldTemplate.js +24 -0
- package/lib/templates/ObjectFieldTemplate.js.map +1 -0
- package/lib/templates/TitleField.d.ts +6 -0
- package/lib/templates/TitleField.js +11 -0
- package/lib/templates/TitleField.js.map +1 -0
- package/lib/templates/WrapIfAdditionalTemplate.d.ts +7 -0
- package/lib/templates/WrapIfAdditionalTemplate.js +29 -0
- package/lib/templates/WrapIfAdditionalTemplate.js.map +1 -0
- package/lib/templates/icons.d.ts +11 -0
- package/lib/templates/icons.js +20 -0
- package/lib/templates/icons.js.map +1 -0
- package/lib/templates/index.d.ts +4 -0
- package/lib/templates/index.js +36 -0
- package/lib/templates/index.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/utils.d.ts +2 -0
- package/lib/utils.js +35 -0
- package/lib/utils.js.map +1 -0
- package/lib/widgets/CheckboxWidget.d.ts +8 -0
- package/lib/widgets/CheckboxWidget.js +33 -0
- package/lib/widgets/CheckboxWidget.js.map +1 -0
- package/lib/widgets/CheckboxesWidget.d.ts +7 -0
- package/lib/widgets/CheckboxesWidget.js +33 -0
- package/lib/widgets/CheckboxesWidget.js.map +1 -0
- package/lib/widgets/ColorWidget.d.ts +6 -0
- package/lib/widgets/ColorWidget.js +28 -0
- package/lib/widgets/ColorWidget.js.map +1 -0
- package/lib/widgets/DateTime/AltDateTimeWidget.d.ts +13 -0
- package/lib/widgets/DateTime/AltDateTimeWidget.js +16 -0
- package/lib/widgets/DateTime/AltDateTimeWidget.js.map +1 -0
- package/lib/widgets/DateTime/AltDateWidget.d.ts +11 -0
- package/lib/widgets/DateTime/AltDateWidget.js +51 -0
- package/lib/widgets/DateTime/AltDateWidget.js.map +1 -0
- package/lib/widgets/DateTime/DateTimeInput.d.ts +5 -0
- package/lib/widgets/DateTime/DateTimeInput.js +39 -0
- package/lib/widgets/DateTime/DateTimeInput.js.map +1 -0
- package/lib/widgets/DateTime/DateTimeWidget.d.ts +6 -0
- package/lib/widgets/DateTime/DateTimeWidget.js +11 -0
- package/lib/widgets/DateTime/DateTimeWidget.js.map +1 -0
- package/lib/widgets/DateTime/DateWidget.d.ts +6 -0
- package/lib/widgets/DateTime/DateWidget.js +11 -0
- package/lib/widgets/DateTime/DateWidget.js.map +1 -0
- package/lib/widgets/DateTime/TimeWidget.d.ts +6 -0
- package/lib/widgets/DateTime/TimeWidget.js +27 -0
- package/lib/widgets/DateTime/TimeWidget.js.map +1 -0
- package/lib/widgets/DateTime/index.d.ts +5 -0
- package/lib/widgets/DateTime/index.js +6 -0
- package/lib/widgets/DateTime/index.js.map +1 -0
- package/lib/widgets/FileWidget.d.ts +7 -0
- package/lib/widgets/FileWidget.js +106 -0
- package/lib/widgets/FileWidget.js.map +1 -0
- package/lib/widgets/PasswordWidget.d.ts +7 -0
- package/lib/widgets/PasswordWidget.js +30 -0
- package/lib/widgets/PasswordWidget.js.map +1 -0
- package/lib/widgets/RadioWidget.d.ts +7 -0
- package/lib/widgets/RadioWidget.js +33 -0
- package/lib/widgets/RadioWidget.js.map +1 -0
- package/lib/widgets/RangeWidget.d.ts +7 -0
- package/lib/widgets/RangeWidget.js +34 -0
- package/lib/widgets/RangeWidget.js.map +1 -0
- package/lib/widgets/SelectWidget.d.ts +7 -0
- package/lib/widgets/SelectWidget.js +45 -0
- package/lib/widgets/SelectWidget.js.map +1 -0
- package/lib/widgets/TextareaWidget.d.ts +7 -0
- package/lib/widgets/TextareaWidget.js +30 -0
- package/lib/widgets/TextareaWidget.js.map +1 -0
- package/lib/widgets/index.d.ts +4 -0
- package/lib/widgets/index.js +34 -0
- package/lib/widgets/index.js.map +1 -0
- package/package.json +110 -0
- package/src/Form/index.ts +15 -0
- package/src/Theme/index.ts +18 -0
- package/src/index.ts +8 -0
- package/src/templates/ArrayFieldItemTemplate.tsx +40 -0
- package/src/templates/ArrayFieldTemplate.tsx +103 -0
- package/src/templates/ArrayFieldTitleTemplate.tsx +33 -0
- package/src/templates/BaseInputTemplate.tsx +134 -0
- package/src/templates/ButtonTemplates/AddButton.tsx +17 -0
- package/src/templates/ButtonTemplates/IconButton.tsx +87 -0
- package/src/templates/ButtonTemplates/SubmitButton.tsx +20 -0
- package/src/templates/ButtonTemplates/index.ts +21 -0
- package/src/templates/DescriptionField.tsx +24 -0
- package/src/templates/ErrorList.tsx +36 -0
- package/src/templates/FieldErrorTemplate.tsx +27 -0
- package/src/templates/FieldHelpTemplate.tsx +22 -0
- package/src/templates/FieldTemplate.tsx +66 -0
- package/src/templates/GridTemplate.tsx +30 -0
- package/src/templates/MultiSchemaFieldTemplate.tsx +15 -0
- package/src/templates/ObjectFieldTemplate.tsx +104 -0
- package/src/templates/TitleField.tsx +17 -0
- package/src/templates/WrapIfAdditionalTemplate.tsx +99 -0
- package/src/templates/icons.tsx +141 -0
- package/src/templates/index.ts +43 -0
- package/src/tsconfig.json +23 -0
- package/src/utils.ts +37 -0
- package/src/widgets/CheckboxWidget.tsx +110 -0
- package/src/widgets/CheckboxesWidget.tsx +112 -0
- package/src/widgets/ColorWidget.tsx +85 -0
- package/src/widgets/DateTime/AltDateTimeWidget.tsx +22 -0
- package/src/widgets/DateTime/AltDateWidget.tsx +139 -0
- package/src/widgets/DateTime/DateTimeInput.tsx +97 -0
- package/src/widgets/DateTime/DateTimeWidget.tsx +24 -0
- package/src/widgets/DateTime/DateWidget.tsx +22 -0
- package/src/widgets/DateTime/TimeWidget.tsx +83 -0
- package/src/widgets/DateTime/index.ts +5 -0
- package/src/widgets/FileWidget.tsx +176 -0
- package/src/widgets/PasswordWidget.tsx +88 -0
- package/src/widgets/RadioWidget.tsx +103 -0
- package/src/widgets/RangeWidget.tsx +95 -0
- package/src/widgets/SelectWidget.tsx +109 -0
- package/src/widgets/TextareaWidget.tsx +87 -0
- package/src/widgets/index.ts +42 -0
package/lib/utils.d.ts
ADDED
package/lib/utils.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const uiOptionsKeys = [
|
|
2
|
+
'emptyValue',
|
|
3
|
+
'classNames',
|
|
4
|
+
'title',
|
|
5
|
+
'help',
|
|
6
|
+
'autocomplete',
|
|
7
|
+
'disabled',
|
|
8
|
+
'enumDisabled',
|
|
9
|
+
'hideError',
|
|
10
|
+
'readonly',
|
|
11
|
+
'order',
|
|
12
|
+
'filePreview',
|
|
13
|
+
'inline',
|
|
14
|
+
'inputType',
|
|
15
|
+
'submitButtonOptions',
|
|
16
|
+
'widget',
|
|
17
|
+
'enumNames',
|
|
18
|
+
'addable',
|
|
19
|
+
'copyable',
|
|
20
|
+
'orderable',
|
|
21
|
+
'removable',
|
|
22
|
+
'duplicateKeySuffixSeparator',
|
|
23
|
+
'enumOptions',
|
|
24
|
+
'enableMarkdownInDescription',
|
|
25
|
+
];
|
|
26
|
+
export function cleanupOptions(options) {
|
|
27
|
+
const result = {};
|
|
28
|
+
for (const key in options) {
|
|
29
|
+
if (!uiOptionsKeys.includes(key)) {
|
|
30
|
+
result[key] = options[key];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAA+B;IAChD,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,MAAM;IACN,cAAc;IACd,UAAU;IACV,cAAc;IACd,WAAW;IACX,UAAU;IACV,OAAO;IACP,aAAa;IACb,QAAQ;IACR,WAAW;IACX,qBAAqB;IACrB,QAAQ;IACR,WAAW;IACX,SAAS;IACT,UAAU;IACV,WAAW;IACX,WAAW;IACX,6BAA6B;IAC7B,aAAa;IACb,6BAA6B;CAC9B,CAAC;AAEF,MAAM,UAAU,cAAc,CAAmB,OAAU;IACzD,MAAM,MAAM,GAAG,EAAO,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAA0B,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,MAAsC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { StrictRJSFSchema, RJSFSchema, FormContextType, WidgetProps } from '@rjsf/utils';
|
|
3
|
+
/** The `CheckBoxWidget` is a widget for rendering boolean properties.
|
|
4
|
+
* It is typically used to represent a boolean.
|
|
5
|
+
*
|
|
6
|
+
* @param props - The `WidgetProps` for this component
|
|
7
|
+
*/
|
|
8
|
+
export default function CheckboxWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): ReactElement;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { descriptionId, getTemplate, labelValue, ariaDescribedByIds, } from '@rjsf/utils';
|
|
4
|
+
import { Checkbox } from '@mantine/core';
|
|
5
|
+
import { cleanupOptions } from '../utils';
|
|
6
|
+
/** The `CheckBoxWidget` is a widget for rendering boolean properties.
|
|
7
|
+
* It is typically used to represent a boolean.
|
|
8
|
+
*
|
|
9
|
+
* @param props - The `WidgetProps` for this component
|
|
10
|
+
*/
|
|
11
|
+
export default function CheckboxWidget(props) {
|
|
12
|
+
const { id, name, value = false, required, disabled, readonly, autofocus, label, hideLabel, schema, rawErrors, options, onChange, onBlur, onFocus, registry, uiSchema, } = props;
|
|
13
|
+
const themeProps = cleanupOptions(options);
|
|
14
|
+
const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);
|
|
15
|
+
const handleCheckboxChange = useCallback((e) => {
|
|
16
|
+
if (!disabled && !readonly && onChange) {
|
|
17
|
+
onChange(e.currentTarget.checked);
|
|
18
|
+
}
|
|
19
|
+
}, [onChange, disabled, readonly]);
|
|
20
|
+
const handleBlur = useCallback(({ target }) => {
|
|
21
|
+
if (onBlur) {
|
|
22
|
+
onBlur(id, target.checked);
|
|
23
|
+
}
|
|
24
|
+
}, [onBlur, id]);
|
|
25
|
+
const handleFocus = useCallback(({ target }) => {
|
|
26
|
+
if (onFocus) {
|
|
27
|
+
onFocus(id, target.checked);
|
|
28
|
+
}
|
|
29
|
+
}, [onFocus, id]);
|
|
30
|
+
const description = options.description || schema.description;
|
|
31
|
+
return (_jsxs(_Fragment, { children: [!hideLabel && !!description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), _jsx(Checkbox, { id: id, name: name, label: labelValue(label || undefined, hideLabel, false), disabled: disabled || readonly, required: required, autoFocus: autofocus, checked: typeof value === 'undefined' ? false : value === 'true' || value, onChange: handleCheckboxChange, onBlur: handleBlur, onFocus: handleFocus, error: rawErrors && rawErrors.length > 0 ? rawErrors.join('\n') : undefined, "aria-describedby": ariaDescribedByIds(id), ...themeProps })] }));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=CheckboxWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxWidget.js","sourceRoot":"","sources":["../../src/widgets/CheckboxWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FormContextType, WidgetProps, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';
|
|
2
|
+
/** The `CheckboxesWidget` is a widget for rendering checkbox groups.
|
|
3
|
+
* It is typically used to represent an array of enums.
|
|
4
|
+
*
|
|
5
|
+
* @param props - The `WidgetProps` for this component
|
|
6
|
+
*/
|
|
7
|
+
export default function CheckboxesWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { ariaDescribedByIds, enumOptionsValueForIndex, enumOptionsIndexForValue, optionId, titleId, } from '@rjsf/utils';
|
|
4
|
+
import { Checkbox, Flex, Input } from '@mantine/core';
|
|
5
|
+
import { cleanupOptions } from '../utils';
|
|
6
|
+
/** The `CheckboxesWidget` is a widget for rendering checkbox groups.
|
|
7
|
+
* It is typically used to represent an array of enums.
|
|
8
|
+
*
|
|
9
|
+
* @param props - The `WidgetProps` for this component
|
|
10
|
+
*/
|
|
11
|
+
export default function CheckboxesWidget(props) {
|
|
12
|
+
const { id, value, required, disabled, readonly, autofocus, label, hideLabel, rawErrors, options, onChange, onBlur, onFocus, } = props;
|
|
13
|
+
const { enumOptions, enumDisabled, inline, emptyValue } = options;
|
|
14
|
+
const themeProps = cleanupOptions(options);
|
|
15
|
+
const handleChange = useCallback((nextValue) => {
|
|
16
|
+
if (!disabled && !readonly && onChange) {
|
|
17
|
+
onChange(enumOptionsValueForIndex(nextValue, enumOptions, emptyValue));
|
|
18
|
+
}
|
|
19
|
+
}, [onChange, disabled, readonly, enumOptions, emptyValue]);
|
|
20
|
+
const handleBlur = useCallback(({ target }) => {
|
|
21
|
+
if (onBlur) {
|
|
22
|
+
onBlur(id, enumOptionsValueForIndex(target.value, enumOptions, emptyValue));
|
|
23
|
+
}
|
|
24
|
+
}, [onBlur, id, enumOptions, emptyValue]);
|
|
25
|
+
const handleFocus = useCallback(({ target }) => {
|
|
26
|
+
if (onFocus) {
|
|
27
|
+
onFocus(id, enumOptionsValueForIndex(target.value, enumOptions, emptyValue));
|
|
28
|
+
}
|
|
29
|
+
}, [onFocus, id, enumOptions, emptyValue]);
|
|
30
|
+
const selectedIndexes = enumOptionsIndexForValue(value, enumOptions, true);
|
|
31
|
+
return Array.isArray(enumOptions) && enumOptions.length > 0 ? (_jsxs(_Fragment, { children: [!hideLabel && !!label && (_jsx(Input.Label, { id: titleId(id), required: required, children: label })), _jsx(Checkbox.Group, { id: id, value: selectedIndexes, onChange: handleChange, required: required, readOnly: disabled || readonly, error: rawErrors && rawErrors.length > 0 ? rawErrors.join('\n') : undefined, "aria-describedby": ariaDescribedByIds(id), ...themeProps, children: Array.isArray(enumOptions) ? (_jsx(Flex, { mt: 'xs', direction: inline ? 'row' : 'column', gap: 'xs', wrap: 'wrap', children: enumOptions.map((option, i) => (_jsx(Checkbox, { id: optionId(id, i), name: id, value: String(i), label: option.label, disabled: Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1, autoFocus: i === 0 && autofocus, onBlur: handleBlur, onFocus: handleFocus }, i))) })) : null })] })) : null;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=CheckboxesWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxesWidget.js","sourceRoot":"","sources":["../../src/widgets/CheckboxesWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
|
|
2
|
+
/** The `ColorWidget` component uses the `ColorInput` from Mantine, allowing users to pick a color.
|
|
3
|
+
*
|
|
4
|
+
* @param props - The `WidgetProps` for this component
|
|
5
|
+
*/
|
|
6
|
+
export default function ColorWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { labelValue, ariaDescribedByIds, } from '@rjsf/utils';
|
|
4
|
+
import { ColorInput } from '@mantine/core';
|
|
5
|
+
import { cleanupOptions } from '../utils';
|
|
6
|
+
/** The `ColorWidget` component uses the `ColorInput` from Mantine, allowing users to pick a color.
|
|
7
|
+
*
|
|
8
|
+
* @param props - The `WidgetProps` for this component
|
|
9
|
+
*/
|
|
10
|
+
export default function ColorWidget(props) {
|
|
11
|
+
const { id, name, value, placeholder, required, disabled, readonly, autofocus, label, hideLabel, rawErrors, options, onChange, onBlur, onFocus, } = props;
|
|
12
|
+
const themeProps = cleanupOptions(options);
|
|
13
|
+
const handleChange = useCallback((nextValue) => {
|
|
14
|
+
onChange(nextValue);
|
|
15
|
+
}, [onChange]);
|
|
16
|
+
const handleBlur = useCallback(({ target }) => {
|
|
17
|
+
if (onBlur) {
|
|
18
|
+
onBlur(id, target && target.value);
|
|
19
|
+
}
|
|
20
|
+
}, [onBlur, id]);
|
|
21
|
+
const handleFocus = useCallback(({ target }) => {
|
|
22
|
+
if (onFocus) {
|
|
23
|
+
onFocus(id, target && target.value);
|
|
24
|
+
}
|
|
25
|
+
}, [onFocus, id]);
|
|
26
|
+
return (_jsx(ColorInput, { id: id, name: name, value: value || '', placeholder: placeholder || undefined, required: required, disabled: disabled || readonly, autoFocus: autofocus, label: labelValue(label || undefined, hideLabel, false), onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, error: rawErrors && rawErrors.length > 0 ? rawErrors.join('\n') : undefined, ...themeProps, "aria-describedby": ariaDescribedByIds(id), popoverProps: { withinPortal: false } }));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ColorWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorWidget.js","sourceRoot":"","sources":["../../src/widgets/ColorWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAKL,UAAU,EACV,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,KAA2B;IAE3B,MAAM,EACJ,EAAE,EACF,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAK,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,GACR,GAAG,KAAK,CAAC;IAEV,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,SAAiB,EAAE,EAAE;QACpB,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,EAAE,MAAM,EAAgC,EAAE,EAAE;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,CACb,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,EAAE,MAAM,EAAgC,EAAE,EAAE;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,EAAE,CAAC,CACd,CAAC;IAEF,OAAO,CACL,KAAC,UAAU,IACT,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,WAAW,EAAE,WAAW,IAAI,SAAS,EACrC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EACvD,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,KACvE,UAAU,sBACI,kBAAkB,CAAI,EAAE,CAAC,EAC3C,YAAY,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,GACrC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
|
|
2
|
+
/** The `AltDateTimeWidget` is an alternative widget for rendering datetime properties.
|
|
3
|
+
* It uses the AltDateWidget for rendering, with the `time` prop set to true by default.
|
|
4
|
+
*
|
|
5
|
+
* @param props - The `WidgetProps` for this component
|
|
6
|
+
*/
|
|
7
|
+
declare function AltDateTimeWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare namespace AltDateTimeWidget {
|
|
9
|
+
var defaultProps: {
|
|
10
|
+
showTime: boolean;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export default AltDateTimeWidget;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import _AltDateWidget from './AltDateWidget';
|
|
3
|
+
/** The `AltDateTimeWidget` is an alternative widget for rendering datetime properties.
|
|
4
|
+
* It uses the AltDateWidget for rendering, with the `time` prop set to true by default.
|
|
5
|
+
*
|
|
6
|
+
* @param props - The `WidgetProps` for this component
|
|
7
|
+
*/
|
|
8
|
+
export default function AltDateTimeWidget(props) {
|
|
9
|
+
const { AltDateWidget } = props.registry.widgets;
|
|
10
|
+
return _jsx(AltDateWidget, { showTime: true, ...props });
|
|
11
|
+
}
|
|
12
|
+
AltDateTimeWidget.defaultProps = {
|
|
13
|
+
..._AltDateWidget === null || _AltDateWidget === void 0 ? void 0 : _AltDateWidget.defaultProps,
|
|
14
|
+
showTime: true,
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=AltDateTimeWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AltDateTimeWidget.js","sourceRoot":"","sources":["../../../src/widgets/DateTime/AltDateTimeWidget.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAIvC,KAA2B;IAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjD,OAAO,KAAC,aAAa,IAAC,QAAQ,WAAK,KAAK,GAAI,CAAC;AAC/C,CAAC;AAED,iBAAiB,CAAC,YAAY,GAAG;IAC/B,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,YAAY;IAC/B,QAAQ,EAAE,IAAI;CACf,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
|
|
2
|
+
/** The `AltDateWidget` is an alternative widget for rendering date properties.
|
|
3
|
+
* @param props - The `WidgetProps` for this component
|
|
4
|
+
*/
|
|
5
|
+
declare function AltDateWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare namespace AltDateWidget {
|
|
7
|
+
var defaultProps: {
|
|
8
|
+
showTime: boolean;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export default AltDateWidget;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
3
|
+
import { ariaDescribedByIds, dateRangeOptions, parseDateString, toDateString, getDateElementProps, titleId, TranslatableString, } from '@rjsf/utils';
|
|
4
|
+
import { Flex, Box, Group, Button, Select, Input } from '@mantine/core';
|
|
5
|
+
function readyForChange(state) {
|
|
6
|
+
return Object.values(state).every((value) => value !== -1);
|
|
7
|
+
}
|
|
8
|
+
/** The `AltDateWidget` is an alternative widget for rendering date properties.
|
|
9
|
+
* @param props - The `WidgetProps` for this component
|
|
10
|
+
*/
|
|
11
|
+
export default function AltDateWidget(props) {
|
|
12
|
+
const { id, value, required, disabled, readonly, label, hideLabel, rawErrors, options, onChange, showTime = false, registry, } = props;
|
|
13
|
+
const { translateString } = registry;
|
|
14
|
+
const [state, setState] = useState(parseDateString(value, showTime));
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
setState(parseDateString(value, showTime));
|
|
17
|
+
}, [showTime, value]);
|
|
18
|
+
const handleChange = useCallback((property, nextValue) => {
|
|
19
|
+
const nextState = {
|
|
20
|
+
...state,
|
|
21
|
+
[property]: typeof nextValue === 'undefined' ? -1 : nextValue,
|
|
22
|
+
};
|
|
23
|
+
if (readyForChange(nextState)) {
|
|
24
|
+
onChange(toDateString(nextState, showTime));
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
setState(nextState);
|
|
28
|
+
}
|
|
29
|
+
}, [state, onChange, showTime]);
|
|
30
|
+
const handleSetNow = useCallback(() => {
|
|
31
|
+
if (!disabled && !readonly) {
|
|
32
|
+
const nextState = parseDateString(new Date().toJSON(), showTime);
|
|
33
|
+
onChange(toDateString(nextState, showTime));
|
|
34
|
+
}
|
|
35
|
+
}, [disabled, readonly, showTime, onChange]);
|
|
36
|
+
const handleClear = useCallback(() => {
|
|
37
|
+
if (!disabled && !readonly) {
|
|
38
|
+
onChange('');
|
|
39
|
+
}
|
|
40
|
+
}, [disabled, readonly, onChange]);
|
|
41
|
+
return (_jsxs(_Fragment, { children: [!hideLabel && !!label && (_jsx(Input.Label, { id: titleId(id), required: required, children: label })), _jsxs(Flex, { gap: 'xs', align: 'center', wrap: 'nowrap', children: [getDateElementProps(state, showTime, options.yearsRange, options.format).map((elemProps, i) => {
|
|
42
|
+
const elemId = id + '_' + elemProps.type;
|
|
43
|
+
return (_jsx(Box, { children: _jsx(Select, { id: elemId, name: elemId, placeholder: elemProps.type, disabled: disabled || readonly, data: dateRangeOptions(elemProps.range[0], elemProps.range[1]).map((item) => item.value.toString()), value: !elemProps.value || elemProps.value < 0 ? null : elemProps.value.toString(), onChange: (v) => handleChange(elemProps.type, v), searchable: false, allowDeselect: false, comboboxProps: { withinPortal: false }, "aria-describedby": ariaDescribedByIds(elemId) }) }, i));
|
|
44
|
+
}), _jsxs(Group, { wrap: 'nowrap', gap: 3, children: [(options.hideNowButton !== 'undefined' ? !options.hideNowButton : true) && (_jsx(Button, { variant: 'subtle', size: 'xs', onClick: handleSetNow, children: translateString(TranslatableString.NowLabel) })), (options.hideClearButton !== 'undefined' ? !options.hideClearButton : true) && (_jsx(Button, { variant: 'subtle', size: 'xs', onClick: handleClear, children: translateString(TranslatableString.ClearLabel) }))] })] }), rawErrors &&
|
|
45
|
+
(rawErrors === null || rawErrors === void 0 ? void 0 : rawErrors.length) > 0 &&
|
|
46
|
+
rawErrors.map((error, index) => (_jsx(Input.Error, { children: error }, `alt-date-widget-input-errors-${index}`)))] }));
|
|
47
|
+
}
|
|
48
|
+
AltDateWidget.defaultProps = {
|
|
49
|
+
showTime: false,
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=AltDateWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AltDateWidget.js","sourceRoot":"","sources":["../../../src/widgets/DateTime/AltDateWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
|
|
2
|
+
/** The `DateTimeInput` is a base component that used by other Date-Time widget components.
|
|
3
|
+
* @param props - The `WidgetProps` for this component
|
|
4
|
+
*/
|
|
5
|
+
export default function DateTimeInput<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { ariaDescribedByIds, labelValue, } from '@rjsf/utils';
|
|
4
|
+
import dayjs from 'dayjs';
|
|
5
|
+
import { DateInput } from '@mantine/dates';
|
|
6
|
+
const dateParser = (input, format) => {
|
|
7
|
+
if (!input) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const d = dayjs(input, format);
|
|
11
|
+
return d.isValid() ? d.toDate() : null;
|
|
12
|
+
};
|
|
13
|
+
const dateFormat = (date, format) => {
|
|
14
|
+
if (!date) {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
return dayjs(date).format(format || 'YYYY-MM-DD');
|
|
18
|
+
};
|
|
19
|
+
/** The `DateTimeInput` is a base component that used by other Date-Time widget components.
|
|
20
|
+
* @param props - The `WidgetProps` for this component
|
|
21
|
+
*/
|
|
22
|
+
export default function DateTimeInput(props) {
|
|
23
|
+
const { id, name, value, placeholder, required, disabled, readonly, autofocus, label, hideLabel, rawErrors, options, onChange, onBlur, onFocus, valueFormat, displayFormat, } = props;
|
|
24
|
+
const handleChange = useCallback((nextValue) => {
|
|
25
|
+
onChange(dateFormat(nextValue, valueFormat));
|
|
26
|
+
}, [onChange, valueFormat]);
|
|
27
|
+
const handleBlur = useCallback(() => {
|
|
28
|
+
if (onBlur) {
|
|
29
|
+
onBlur(id, value);
|
|
30
|
+
}
|
|
31
|
+
}, [onBlur, id, value]);
|
|
32
|
+
const handleFocus = useCallback(() => {
|
|
33
|
+
if (onFocus) {
|
|
34
|
+
onFocus(id, value);
|
|
35
|
+
}
|
|
36
|
+
}, [onFocus, id, value]);
|
|
37
|
+
return (_jsx(DateInput, { id: id, name: name, value: dateParser(value, valueFormat), dateParser: (v) => dateParser(v, displayFormat), placeholder: placeholder || undefined, required: required, disabled: disabled || readonly, autoFocus: autofocus, label: labelValue(label || undefined, hideLabel, false), onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, error: rawErrors && rawErrors.length > 0 ? rawErrors.join('\n') : undefined, ...options, "aria-describedby": ariaDescribedByIds(id), popoverProps: { withinPortal: false }, classNames: typeof (options === null || options === void 0 ? void 0 : options.classNames) === 'object' ? options.classNames : undefined, valueFormat: displayFormat }));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=DateTimeInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimeInput.js","sourceRoot":"","sources":["../../../src/widgets/DateTime/DateTimeInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
|
|
2
|
+
/** The `DateWidget` component uses the `DateTimeInput` changing the valueFormat to show `datetime`
|
|
3
|
+
*
|
|
4
|
+
* @param props - The `WidgetProps` for this component
|
|
5
|
+
*/
|
|
6
|
+
export default function DateTimeWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import DateTimeInput from './DateTimeInput';
|
|
3
|
+
/** The `DateWidget` component uses the `DateTimeInput` changing the valueFormat to show `datetime`
|
|
4
|
+
*
|
|
5
|
+
* @param props - The `WidgetProps` for this component
|
|
6
|
+
*/
|
|
7
|
+
export default function DateTimeWidget(props) {
|
|
8
|
+
const { valueFormat = 'YYYY-MM-DD HH:mm:ss', displayFormat, ...otherOptions } = props.options;
|
|
9
|
+
return (_jsx(DateTimeInput, { ...props, options: otherOptions, valueFormat: valueFormat, displayFormat: displayFormat || valueFormat }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=DateTimeWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimeWidget.js","sourceRoot":"","sources":["../../../src/widgets/DateTime/DateTimeWidget.tsx"],"names":[],"mappings":";AAEA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAIpC,KAA2B;IAC3B,MAAM,EAAE,WAAW,GAAG,qBAAqB,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;IAE9F,OAAO,CACL,KAAC,aAAa,OACR,KAAK,EACT,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,IAAI,WAAW,GAC3C,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
|
|
2
|
+
/** The `DateWidget` component uses the `DateTimeInput` changing the valueFormat to show `date`
|
|
3
|
+
*
|
|
4
|
+
* @param props - The `WidgetProps` for this component
|
|
5
|
+
*/
|
|
6
|
+
export default function DateWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import DateTimeInput from './DateTimeInput';
|
|
3
|
+
/** The `DateWidget` component uses the `DateTimeInput` changing the valueFormat to show `date`
|
|
4
|
+
*
|
|
5
|
+
* @param props - The `WidgetProps` for this component
|
|
6
|
+
*/
|
|
7
|
+
export default function DateWidget(props) {
|
|
8
|
+
const { valueFormat = 'YYYY-MM-DD', displayFormat, ...otherOptions } = props.options;
|
|
9
|
+
return (_jsx(DateTimeInput, { ...props, options: otherOptions, valueFormat: valueFormat, displayFormat: displayFormat || valueFormat }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=DateWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateWidget.js","sourceRoot":"","sources":["../../../src/widgets/DateTime/DateWidget.tsx"],"names":[],"mappings":";AAEA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,KAA2B;IAE3B,MAAM,EAAE,WAAW,GAAG,YAAY,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;IAErF,OAAO,CACL,KAAC,aAAa,OACR,KAAK,EACT,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,IAAI,WAAW,GAC3C,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
|
|
2
|
+
/** The `TimeWidget` component uses the `TimeInput` component from `@mantine/dates` for rendering.
|
|
3
|
+
*
|
|
4
|
+
* @param props - The `WidgetProps` for this component
|
|
5
|
+
*/
|
|
6
|
+
export default function TimeWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { labelValue, ariaDescribedByIds, } from '@rjsf/utils';
|
|
4
|
+
import { TimeInput } from '@mantine/dates';
|
|
5
|
+
/** The `TimeWidget` component uses the `TimeInput` component from `@mantine/dates` for rendering.
|
|
6
|
+
*
|
|
7
|
+
* @param props - The `WidgetProps` for this component
|
|
8
|
+
*/
|
|
9
|
+
export default function TimeWidget(props) {
|
|
10
|
+
const { id, name, value, placeholder, required, disabled, readonly, autofocus, label, hideLabel, rawErrors, options, onChange, onBlur, onFocus, } = props;
|
|
11
|
+
const emptyValue = options.emptyValue || '';
|
|
12
|
+
const handleChange = useCallback((e) => {
|
|
13
|
+
onChange(e.target.value === '' ? emptyValue : e.target.value);
|
|
14
|
+
}, [onChange, emptyValue]);
|
|
15
|
+
const handleBlur = useCallback(({ target }) => {
|
|
16
|
+
if (onBlur) {
|
|
17
|
+
onBlur(id, target && target.value);
|
|
18
|
+
}
|
|
19
|
+
}, [onBlur, id]);
|
|
20
|
+
const handleFocus = useCallback(({ target }) => {
|
|
21
|
+
if (onFocus) {
|
|
22
|
+
onFocus(id, target && target.value);
|
|
23
|
+
}
|
|
24
|
+
}, [onFocus, id]);
|
|
25
|
+
return (_jsx(TimeInput, { id: id, name: name, value: value || '', placeholder: placeholder || undefined, required: required, disabled: disabled || readonly, autoFocus: autofocus, label: labelValue(label || undefined, hideLabel, false), onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, error: rawErrors && rawErrors.length > 0 ? rawErrors.join('\n') : undefined, ...options, "aria-describedby": ariaDescribedByIds(id), classNames: typeof (options === null || options === void 0 ? void 0 : options.classNames) === 'object' ? options.classNames : undefined }));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=TimeWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeWidget.js","sourceRoot":"","sources":["../../../src/widgets/DateTime/TimeWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA2B,WAAW,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAKL,UAAU,EACV,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,KAA2B;IAE3B,MAAM,EACJ,EAAE,EACF,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAK,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,GACR,GAAG,KAAK,CAAC;IAEV,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAE5C,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,CAAgC,EAAE,EAAE;QACnC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,EACD,CAAC,QAAQ,EAAE,UAAU,CAAC,CACvB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,EAAE,MAAM,EAAgC,EAAE,EAAE;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,CACb,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,EAAE,MAAM,EAAgC,EAAE,EAAE;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,EAAE,CAAC,CACd,CAAC;IAEF,OAAO,CACL,KAAC,SAAS,IACR,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,WAAW,EAAE,WAAW,IAAI,SAAS,EACrC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EACvD,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,KACvE,OAAO,sBACO,kBAAkB,CAAI,EAAE,CAAC,EAC3C,UAAU,EAAE,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,GACpF,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as AltDateTimeWidget } from './AltDateTimeWidget';
|
|
2
|
+
export { default as AltDateWidget } from './AltDateWidget';
|
|
3
|
+
export { default as DateWidget } from './DateWidget';
|
|
4
|
+
export { default as DateTimeWidget } from './DateTimeWidget';
|
|
5
|
+
export { default as TimeWidget } from './TimeWidget';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as AltDateTimeWidget } from './AltDateTimeWidget';
|
|
2
|
+
export { default as AltDateWidget } from './AltDateWidget';
|
|
3
|
+
export { default as DateWidget } from './DateWidget';
|
|
4
|
+
export { default as DateTimeWidget } from './DateTimeWidget';
|
|
5
|
+
export { default as TimeWidget } from './TimeWidget';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/DateTime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
|
|
2
|
+
/**
|
|
3
|
+
* The `FileWidget` is a widget for rendering file upload fields.
|
|
4
|
+
*
|
|
5
|
+
* @param props - The `WidgetProps` for this component
|
|
6
|
+
*/
|
|
7
|
+
export default function FileWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { dataURItoBlob, ariaDescribedByIds, labelValue, } from '@rjsf/utils';
|
|
4
|
+
import { FileInput, Pill } from '@mantine/core';
|
|
5
|
+
import { cleanupOptions } from '../utils';
|
|
6
|
+
function addNameToDataURL(dataURL, name) {
|
|
7
|
+
if (dataURL === null) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return dataURL.replace(';base64', `;name=${encodeURIComponent(name)};base64`);
|
|
11
|
+
}
|
|
12
|
+
function processFile(file) {
|
|
13
|
+
const { name, size, type } = file;
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
const reader = new window.FileReader();
|
|
16
|
+
reader.onerror = reject;
|
|
17
|
+
reader.onload = (event) => {
|
|
18
|
+
var _a;
|
|
19
|
+
if (typeof ((_a = event.target) === null || _a === void 0 ? void 0 : _a.result) === 'string') {
|
|
20
|
+
resolve({
|
|
21
|
+
dataURL: addNameToDataURL(event.target.result, name),
|
|
22
|
+
name,
|
|
23
|
+
size,
|
|
24
|
+
type,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
resolve({
|
|
29
|
+
dataURL: null,
|
|
30
|
+
name,
|
|
31
|
+
size,
|
|
32
|
+
type,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
reader.readAsDataURL(file);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function processFiles(files) {
|
|
40
|
+
return Promise.all(Array.from(files).map(processFile));
|
|
41
|
+
}
|
|
42
|
+
function extractFileInfo(dataURLs) {
|
|
43
|
+
return dataURLs.reduce((acc, dataURL) => {
|
|
44
|
+
if (!dataURL) {
|
|
45
|
+
return acc;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const { blob, name } = dataURItoBlob(dataURL);
|
|
49
|
+
return [
|
|
50
|
+
...acc,
|
|
51
|
+
{
|
|
52
|
+
dataURL,
|
|
53
|
+
name: name,
|
|
54
|
+
size: blob.size,
|
|
55
|
+
type: blob.type,
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
console.log(e);
|
|
61
|
+
// Invalid dataURI, so just ignore it.
|
|
62
|
+
return acc;
|
|
63
|
+
}
|
|
64
|
+
}, []);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The `FileWidget` is a widget for rendering file upload fields.
|
|
68
|
+
*
|
|
69
|
+
* @param props - The `WidgetProps` for this component
|
|
70
|
+
*/
|
|
71
|
+
export default function FileWidget(props) {
|
|
72
|
+
const { id, name, value, placeholder, required, disabled, readonly, autofocus, label, hideLabel, rawErrors, options, multiple, onChange, } = props;
|
|
73
|
+
const themeProps = cleanupOptions(options);
|
|
74
|
+
const handleChange = useCallback((files) => {
|
|
75
|
+
if (typeof files === 'object') {
|
|
76
|
+
processFiles(multiple ? files : [files]).then((filesInfoEvent) => {
|
|
77
|
+
const newValue = filesInfoEvent.map((fileInfo) => fileInfo.dataURL);
|
|
78
|
+
if (multiple) {
|
|
79
|
+
onChange(value.concat(newValue));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
onChange(newValue[0]);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}, [multiple, value, onChange]);
|
|
88
|
+
const handleRemoveFile = useCallback((index) => {
|
|
89
|
+
if (multiple) {
|
|
90
|
+
const newValue = value.filter((_, i) => i !== index);
|
|
91
|
+
onChange(newValue);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
onChange(undefined);
|
|
95
|
+
}
|
|
96
|
+
}, [multiple, value, onChange]);
|
|
97
|
+
const ValueComponent = useCallback((props) => {
|
|
98
|
+
const filesInfo = props.value ? extractFileInfo(Array.isArray(props.value) ? props.value : [props.value]) : null;
|
|
99
|
+
if (Array.isArray(filesInfo) && filesInfo.length > 0) {
|
|
100
|
+
return (_jsx(Pill.Group, { children: filesInfo.map((file, index) => (_jsx(Pill, { withRemoveButton: true, onRemove: () => handleRemoveFile(index), children: file.name }, index))) }));
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
}, [handleRemoveFile]);
|
|
104
|
+
return (_jsx(FileInput, { id: id, name: name, value: value || '', placeholder: placeholder || undefined, required: required, disabled: disabled || readonly, autoFocus: autofocus, label: labelValue(label || undefined, hideLabel, false), multiple: !!multiple, valueComponent: ValueComponent, onChange: handleChange, error: rawErrors && rawErrors.length > 0 ? rawErrors.join('\n') : undefined, ...themeProps, "aria-describedby": ariaDescribedByIds(id) }));
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=FileWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileWidget.js","sourceRoot":"","sources":["../../src/widgets/FileWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
|
|
2
|
+
/**
|
|
3
|
+
* The `PasswordWidget` component renders a password input element.
|
|
4
|
+
*
|
|
5
|
+
* @param props - The `WidgetProps` for this component
|
|
6
|
+
*/
|
|
7
|
+
export default function PasswordWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
|