@rjsf/primereact 6.0.0-beta.11

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.
Files changed (265) hide show
  1. package/README.md +120 -0
  2. package/dist/index.js +1285 -0
  3. package/dist/index.js.map +7 -0
  4. package/dist/primereact.esm.js +1327 -0
  5. package/dist/primereact.esm.js.map +7 -0
  6. package/dist/primereact.umd.js +1135 -0
  7. package/lib/AddButton/AddButton.d.ts +4 -0
  8. package/lib/AddButton/AddButton.js +10 -0
  9. package/lib/AddButton/AddButton.js.map +1 -0
  10. package/lib/AddButton/index.d.ts +2 -0
  11. package/lib/AddButton/index.js +3 -0
  12. package/lib/AddButton/index.js.map +1 -0
  13. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.d.ts +6 -0
  14. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js +13 -0
  15. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js.map +1 -0
  16. package/lib/ArrayFieldItemTemplate/index.d.ts +2 -0
  17. package/lib/ArrayFieldItemTemplate/index.js +3 -0
  18. package/lib/ArrayFieldItemTemplate/index.js.map +1 -0
  19. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.d.ts +6 -0
  20. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js +30 -0
  21. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js.map +1 -0
  22. package/lib/ArrayFieldTemplate/index.d.ts +2 -0
  23. package/lib/ArrayFieldTemplate/index.js +3 -0
  24. package/lib/ArrayFieldTemplate/index.js.map +1 -0
  25. package/lib/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.d.ts +6 -0
  26. package/lib/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.js +11 -0
  27. package/lib/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.js.map +1 -0
  28. package/lib/ArrayFieldTitleTemplate/index.d.ts +2 -0
  29. package/lib/ArrayFieldTitleTemplate/index.js +3 -0
  30. package/lib/ArrayFieldTitleTemplate/index.js.map +1 -0
  31. package/lib/AutoCompleteWidget/AutoCompleteWidget.d.ts +7 -0
  32. package/lib/AutoCompleteWidget/AutoCompleteWidget.js +42 -0
  33. package/lib/AutoCompleteWidget/AutoCompleteWidget.js.map +1 -0
  34. package/lib/AutoCompleteWidget/index.d.ts +2 -0
  35. package/lib/AutoCompleteWidget/index.js +3 -0
  36. package/lib/AutoCompleteWidget/index.js.map +1 -0
  37. package/lib/BaseInputTemplate/BaseInputTemplate.d.ts +4 -0
  38. package/lib/BaseInputTemplate/BaseInputTemplate.js +19 -0
  39. package/lib/BaseInputTemplate/BaseInputTemplate.js.map +1 -0
  40. package/lib/BaseInputTemplate/index.d.ts +2 -0
  41. package/lib/BaseInputTemplate/index.js +3 -0
  42. package/lib/BaseInputTemplate/index.js.map +1 -0
  43. package/lib/CheckboxWidget/CheckboxWidget.d.ts +7 -0
  44. package/lib/CheckboxWidget/CheckboxWidget.js +23 -0
  45. package/lib/CheckboxWidget/CheckboxWidget.js.map +1 -0
  46. package/lib/CheckboxWidget/index.d.ts +2 -0
  47. package/lib/CheckboxWidget/index.js +3 -0
  48. package/lib/CheckboxWidget/index.js.map +1 -0
  49. package/lib/CheckboxesWidget/CheckboxesWidget.d.ts +7 -0
  50. package/lib/CheckboxesWidget/CheckboxesWidget.js +35 -0
  51. package/lib/CheckboxesWidget/CheckboxesWidget.js.map +1 -0
  52. package/lib/CheckboxesWidget/index.d.ts +2 -0
  53. package/lib/CheckboxesWidget/index.js +3 -0
  54. package/lib/CheckboxesWidget/index.js.map +1 -0
  55. package/lib/ColorWidget/ColorWidget.d.ts +6 -0
  56. package/lib/ColorWidget/ColorWidget.js +18 -0
  57. package/lib/ColorWidget/ColorWidget.js.map +1 -0
  58. package/lib/ColorWidget/index.d.ts +2 -0
  59. package/lib/ColorWidget/index.js +3 -0
  60. package/lib/ColorWidget/index.js.map +1 -0
  61. package/lib/DescriptionField/DescriptionField.d.ts +6 -0
  62. package/lib/DescriptionField/DescriptionField.js +14 -0
  63. package/lib/DescriptionField/DescriptionField.js.map +1 -0
  64. package/lib/DescriptionField/index.d.ts +2 -0
  65. package/lib/DescriptionField/index.js +3 -0
  66. package/lib/DescriptionField/index.js.map +1 -0
  67. package/lib/ErrorList/ErrorList.d.ts +6 -0
  68. package/lib/ErrorList/ErrorList.js +21 -0
  69. package/lib/ErrorList/ErrorList.js.map +1 -0
  70. package/lib/ErrorList/index.d.ts +2 -0
  71. package/lib/ErrorList/index.js +3 -0
  72. package/lib/ErrorList/index.js.map +1 -0
  73. package/lib/FieldErrorTemplate/FieldErrorTemplate.d.ts +6 -0
  74. package/lib/FieldErrorTemplate/FieldErrorTemplate.js +18 -0
  75. package/lib/FieldErrorTemplate/FieldErrorTemplate.js.map +1 -0
  76. package/lib/FieldErrorTemplate/index.d.ts +2 -0
  77. package/lib/FieldErrorTemplate/index.js +3 -0
  78. package/lib/FieldErrorTemplate/index.js.map +1 -0
  79. package/lib/FieldHelpTemplate/FieldHelpTemplate.d.ts +6 -0
  80. package/lib/FieldHelpTemplate/FieldHelpTemplate.js +15 -0
  81. package/lib/FieldHelpTemplate/FieldHelpTemplate.js.map +1 -0
  82. package/lib/FieldHelpTemplate/index.d.ts +2 -0
  83. package/lib/FieldHelpTemplate/index.js +3 -0
  84. package/lib/FieldHelpTemplate/index.js.map +1 -0
  85. package/lib/FieldTemplate/FieldTemplate.d.ts +2 -0
  86. package/lib/FieldTemplate/FieldTemplate.js +13 -0
  87. package/lib/FieldTemplate/FieldTemplate.js.map +1 -0
  88. package/lib/FieldTemplate/index.d.ts +2 -0
  89. package/lib/FieldTemplate/index.js +3 -0
  90. package/lib/FieldTemplate/index.js.map +1 -0
  91. package/lib/GridTemplate/GridTemplate.d.ts +8 -0
  92. package/lib/GridTemplate/GridTemplate.js +69 -0
  93. package/lib/GridTemplate/GridTemplate.js.map +1 -0
  94. package/lib/GridTemplate/index.d.ts +2 -0
  95. package/lib/GridTemplate/index.js +3 -0
  96. package/lib/GridTemplate/index.js.map +1 -0
  97. package/lib/IconButton/IconButton.d.ts +7 -0
  98. package/lib/IconButton/IconButton.js +25 -0
  99. package/lib/IconButton/IconButton.js.map +1 -0
  100. package/lib/IconButton/index.d.ts +2 -0
  101. package/lib/IconButton/index.js +3 -0
  102. package/lib/IconButton/index.js.map +1 -0
  103. package/lib/MultiSchemaFieldTemplate/MultiSchemaFieldTemplate.d.ts +2 -0
  104. package/lib/MultiSchemaFieldTemplate/MultiSchemaFieldTemplate.js +7 -0
  105. package/lib/MultiSchemaFieldTemplate/MultiSchemaFieldTemplate.js.map +1 -0
  106. package/lib/MultiSchemaFieldTemplate/index.d.ts +2 -0
  107. package/lib/MultiSchemaFieldTemplate/index.js +3 -0
  108. package/lib/MultiSchemaFieldTemplate/index.js.map +1 -0
  109. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.d.ts +8 -0
  110. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js +18 -0
  111. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js.map +1 -0
  112. package/lib/ObjectFieldTemplate/index.d.ts +2 -0
  113. package/lib/ObjectFieldTemplate/index.js +3 -0
  114. package/lib/ObjectFieldTemplate/index.js.map +1 -0
  115. package/lib/PasswordWidget/PasswordWidget.d.ts +6 -0
  116. package/lib/PasswordWidget/PasswordWidget.js +17 -0
  117. package/lib/PasswordWidget/PasswordWidget.js.map +1 -0
  118. package/lib/PasswordWidget/index.d.ts +2 -0
  119. package/lib/PasswordWidget/index.js +3 -0
  120. package/lib/PasswordWidget/index.js.map +1 -0
  121. package/lib/PrimeForm/PrimeForm.d.ts +6 -0
  122. package/lib/PrimeForm/PrimeForm.js +7 -0
  123. package/lib/PrimeForm/PrimeForm.js.map +1 -0
  124. package/lib/PrimeForm/index.d.ts +2 -0
  125. package/lib/PrimeForm/index.js +3 -0
  126. package/lib/PrimeForm/index.js.map +1 -0
  127. package/lib/RadioWidget/RadioWidget.d.ts +7 -0
  128. package/lib/RadioWidget/RadioWidget.js +25 -0
  129. package/lib/RadioWidget/RadioWidget.js.map +1 -0
  130. package/lib/RadioWidget/index.d.ts +2 -0
  131. package/lib/RadioWidget/index.js +3 -0
  132. package/lib/RadioWidget/index.js.map +1 -0
  133. package/lib/RangeWidget/RangeWidget.d.ts +7 -0
  134. package/lib/RangeWidget/RangeWidget.js +21 -0
  135. package/lib/RangeWidget/RangeWidget.js.map +1 -0
  136. package/lib/RangeWidget/index.d.ts +2 -0
  137. package/lib/RangeWidget/index.js +3 -0
  138. package/lib/RangeWidget/index.js.map +1 -0
  139. package/lib/SelectWidget/SelectWidget.d.ts +7 -0
  140. package/lib/SelectWidget/SelectWidget.js +47 -0
  141. package/lib/SelectWidget/SelectWidget.js.map +1 -0
  142. package/lib/SelectWidget/index.d.ts +2 -0
  143. package/lib/SelectWidget/index.js +3 -0
  144. package/lib/SelectWidget/index.js.map +1 -0
  145. package/lib/SubmitButton/SubmitButton.d.ts +4 -0
  146. package/lib/SubmitButton/SubmitButton.js +13 -0
  147. package/lib/SubmitButton/SubmitButton.js.map +1 -0
  148. package/lib/SubmitButton/index.d.ts +2 -0
  149. package/lib/SubmitButton/index.js +3 -0
  150. package/lib/SubmitButton/index.js.map +1 -0
  151. package/lib/Templates/Templates.d.ts +4 -0
  152. package/lib/Templates/Templates.js +45 -0
  153. package/lib/Templates/Templates.js.map +1 -0
  154. package/lib/Templates/index.d.ts +2 -0
  155. package/lib/Templates/index.js +3 -0
  156. package/lib/Templates/index.js.map +1 -0
  157. package/lib/TextareaWidget/TextareaWidget.d.ts +6 -0
  158. package/lib/TextareaWidget/TextareaWidget.js +20 -0
  159. package/lib/TextareaWidget/TextareaWidget.js.map +1 -0
  160. package/lib/TextareaWidget/index.d.ts +2 -0
  161. package/lib/TextareaWidget/index.js +3 -0
  162. package/lib/TextareaWidget/index.js.map +1 -0
  163. package/lib/Theme/Theme.d.ts +5 -0
  164. package/lib/Theme/Theme.js +10 -0
  165. package/lib/Theme/Theme.js.map +1 -0
  166. package/lib/Theme/index.d.ts +2 -0
  167. package/lib/Theme/index.js +3 -0
  168. package/lib/Theme/index.js.map +1 -0
  169. package/lib/TitleField/TitleField.d.ts +6 -0
  170. package/lib/TitleField/TitleField.js +12 -0
  171. package/lib/TitleField/TitleField.js.map +1 -0
  172. package/lib/TitleField/index.d.ts +2 -0
  173. package/lib/TitleField/index.js +3 -0
  174. package/lib/TitleField/index.js.map +1 -0
  175. package/lib/UpDownWidget/UpDownWidget.d.ts +6 -0
  176. package/lib/UpDownWidget/UpDownWidget.js +19 -0
  177. package/lib/UpDownWidget/UpDownWidget.js.map +1 -0
  178. package/lib/UpDownWidget/index.d.ts +2 -0
  179. package/lib/UpDownWidget/index.js +3 -0
  180. package/lib/UpDownWidget/index.js.map +1 -0
  181. package/lib/Widgets/Widgets.d.ts +4 -0
  182. package/lib/Widgets/Widgets.js +26 -0
  183. package/lib/Widgets/Widgets.js.map +1 -0
  184. package/lib/Widgets/index.d.ts +2 -0
  185. package/lib/Widgets/index.js +3 -0
  186. package/lib/Widgets/index.js.map +1 -0
  187. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.d.ts +7 -0
  188. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js +20 -0
  189. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js.map +1 -0
  190. package/lib/WrapIfAdditionalTemplate/index.d.ts +2 -0
  191. package/lib/WrapIfAdditionalTemplate/index.js +3 -0
  192. package/lib/WrapIfAdditionalTemplate/index.js.map +1 -0
  193. package/lib/index.d.ts +6 -0
  194. package/lib/index.js +7 -0
  195. package/lib/index.js.map +1 -0
  196. package/lib/tsconfig.tsbuildinfo +1 -0
  197. package/lib/util.d.ts +5 -0
  198. package/lib/util.js +8 -0
  199. package/lib/util.js.map +1 -0
  200. package/package.json +104 -0
  201. package/src/AddButton/AddButton.tsx +23 -0
  202. package/src/AddButton/index.ts +2 -0
  203. package/src/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx +40 -0
  204. package/src/ArrayFieldItemTemplate/index.ts +2 -0
  205. package/src/ArrayFieldTemplate/ArrayFieldTemplate.tsx +111 -0
  206. package/src/ArrayFieldTemplate/index.ts +2 -0
  207. package/src/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.tsx +25 -0
  208. package/src/ArrayFieldTitleTemplate/index.ts +2 -0
  209. package/src/AutoCompleteWidget/AutoCompleteWidget.tsx +96 -0
  210. package/src/AutoCompleteWidget/index.ts +2 -0
  211. package/src/BaseInputTemplate/BaseInputTemplate.tsx +71 -0
  212. package/src/BaseInputTemplate/index.ts +2 -0
  213. package/src/CheckboxWidget/CheckboxWidget.tsx +86 -0
  214. package/src/CheckboxWidget/index.ts +2 -0
  215. package/src/CheckboxesWidget/CheckboxesWidget.tsx +105 -0
  216. package/src/CheckboxesWidget/index.ts +2 -0
  217. package/src/ColorWidget/ColorWidget.tsx +62 -0
  218. package/src/ColorWidget/index.ts +2 -0
  219. package/src/DescriptionField/DescriptionField.tsx +22 -0
  220. package/src/DescriptionField/index.ts +2 -0
  221. package/src/ErrorList/ErrorList.tsx +44 -0
  222. package/src/ErrorList/index.ts +2 -0
  223. package/src/FieldErrorTemplate/FieldErrorTemplate.tsx +30 -0
  224. package/src/FieldErrorTemplate/index.ts +2 -0
  225. package/src/FieldHelpTemplate/FieldHelpTemplate.tsx +18 -0
  226. package/src/FieldHelpTemplate/index.ts +2 -0
  227. package/src/FieldTemplate/FieldTemplate.tsx +40 -0
  228. package/src/FieldTemplate/index.ts +2 -0
  229. package/src/GridTemplate/GridTemplate.tsx +93 -0
  230. package/src/GridTemplate/index.ts +2 -0
  231. package/src/IconButton/IconButton.tsx +47 -0
  232. package/src/IconButton/index.ts +2 -0
  233. package/src/MultiSchemaFieldTemplate/MultiSchemaFieldTemplate.tsx +17 -0
  234. package/src/MultiSchemaFieldTemplate/index.ts +2 -0
  235. package/src/ObjectFieldTemplate/ObjectFieldTemplate.tsx +88 -0
  236. package/src/ObjectFieldTemplate/index.ts +2 -0
  237. package/src/PasswordWidget/PasswordWidget.tsx +65 -0
  238. package/src/PasswordWidget/index.ts +2 -0
  239. package/src/PrimeForm/PrimeForm.ts +15 -0
  240. package/src/PrimeForm/index.ts +2 -0
  241. package/src/RadioWidget/RadioWidget.tsx +60 -0
  242. package/src/RadioWidget/index.ts +2 -0
  243. package/src/RangeWidget/RangeWidget.tsx +37 -0
  244. package/src/RangeWidget/index.ts +2 -0
  245. package/src/SelectWidget/SelectWidget.tsx +139 -0
  246. package/src/SelectWidget/index.ts +2 -0
  247. package/src/SubmitButton/SubmitButton.tsx +16 -0
  248. package/src/SubmitButton/index.ts +2 -0
  249. package/src/Templates/Templates.ts +52 -0
  250. package/src/Templates/index.ts +2 -0
  251. package/src/TextareaWidget/TextareaWidget.tsx +41 -0
  252. package/src/TextareaWidget/index.ts +2 -0
  253. package/src/Theme/Theme.ts +18 -0
  254. package/src/Theme/index.ts +2 -0
  255. package/src/TitleField/TitleField.tsx +23 -0
  256. package/src/TitleField/index.ts +2 -0
  257. package/src/UpDownWidget/UpDownWidget.tsx +70 -0
  258. package/src/UpDownWidget/index.ts +2 -0
  259. package/src/Widgets/Widgets.tsx +33 -0
  260. package/src/Widgets/index.ts +2 -0
  261. package/src/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx +83 -0
  262. package/src/WrapIfAdditionalTemplate/index.ts +2 -0
  263. package/src/index.ts +8 -0
  264. package/src/tsconfig.json +24 -0
  265. package/src/util.tsx +11 -0
@@ -0,0 +1,41 @@
1
+ import { ChangeEvent } from 'react';
2
+ import { InputTextarea } from 'primereact/inputtextarea';
3
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
4
+
5
+ /** The `TextareaWidget` is a widget for rendering input fields as textarea using PrimeReact.
6
+ *
7
+ * @param props - The `WidgetProps` for this component
8
+ */
9
+ export default function TextareaWidget<
10
+ T = any,
11
+ S extends StrictRJSFSchema = RJSFSchema,
12
+ F extends FormContextType = any,
13
+ >(props: WidgetProps<T, S, F>) {
14
+ const { id, value, required, disabled, readonly, autofocus, onChange, onBlur, onFocus, options } = props;
15
+ const primeProps = (options.prime || {}) as object;
16
+
17
+ let rows = 5;
18
+ // noinspection SuspiciousTypeOfGuard
19
+ if (typeof options.rows === 'string' || typeof options.rows === 'number') {
20
+ rows = Number(options.rows);
21
+ }
22
+
23
+ const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {
24
+ onChange(event.target.value === '' ? options.emptyValue : event.target.value);
25
+ };
26
+
27
+ return (
28
+ <InputTextarea
29
+ id={id}
30
+ {...primeProps}
31
+ value={value || ''}
32
+ required={required}
33
+ disabled={disabled || readonly}
34
+ autoFocus={autofocus}
35
+ rows={rows}
36
+ onChange={handleChange}
37
+ onBlur={onBlur && ((event) => onBlur(id, event.target.value))}
38
+ onFocus={onFocus && ((event) => onFocus(id, event.target.value))}
39
+ />
40
+ );
41
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './TextareaWidget';
2
+ export * from './TextareaWidget';
@@ -0,0 +1,18 @@
1
+ import { FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';
2
+ import { ThemeProps } from '@rjsf/core';
3
+
4
+ import { generateTemplates } from '../Templates';
5
+ import { generateWidgets } from '../Widgets';
6
+
7
+ export function generateTheme<
8
+ T = any,
9
+ S extends StrictRJSFSchema = RJSFSchema,
10
+ F extends FormContextType = any,
11
+ >(): ThemeProps<T, S, F> {
12
+ return {
13
+ templates: generateTemplates<T, S, F>(),
14
+ widgets: generateWidgets<T, S, F>(),
15
+ };
16
+ }
17
+
18
+ export default generateTheme();
@@ -0,0 +1,2 @@
1
+ export { default } from './Theme';
2
+ export * from './Theme';
@@ -0,0 +1,23 @@
1
+ import { Divider } from 'primereact/divider';
2
+ import { FormContextType, getUiOptions, RJSFSchema, StrictRJSFSchema, TitleFieldProps, titleId } from '@rjsf/utils';
3
+
4
+ /** The `TitleField` is the template to use to render the title of a field
5
+ *
6
+ * @param props - The `TitleFieldProps` for this component
7
+ */
8
+ export default function TitleField<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({
9
+ id,
10
+ title,
11
+ uiSchema,
12
+ required,
13
+ }: TitleFieldProps<T, S, F>) {
14
+ const uiOptions = getUiOptions<T, S, F>(uiSchema);
15
+ return (
16
+ <div id={id}>
17
+ <h5 style={{ margin: 0, fontSize: id === titleId<T>('root') ? '1.5rem' : '1.2rem' }}>
18
+ {uiOptions.title || title} {required ? '*' : ''}
19
+ </h5>
20
+ <Divider pt={{ root: { style: { marginTop: '0.5rem' } } }} />
21
+ </div>
22
+ );
23
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './TitleField';
2
+ export * from './TitleField';
@@ -0,0 +1,70 @@
1
+ import {
2
+ ariaDescribedByIds,
3
+ FormContextType,
4
+ getInputProps,
5
+ RJSFSchema,
6
+ StrictRJSFSchema,
7
+ WidgetProps,
8
+ } from '@rjsf/utils';
9
+ import { InputNumber, InputNumberChangeEvent } from 'primereact/inputnumber';
10
+
11
+ /** The `UpDownWidget` renders an input component for a number.
12
+ *
13
+ * @param props - The `WidgetProps` for this component
14
+ */
15
+ export default function UpDownWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
16
+ props: WidgetProps<T, S, F>,
17
+ ) {
18
+ const {
19
+ id,
20
+ placeholder,
21
+ value,
22
+ required,
23
+ readonly,
24
+ disabled,
25
+ onChange,
26
+ onChangeOverride,
27
+ onBlur,
28
+ onFocus,
29
+ autofocus,
30
+ options,
31
+ schema,
32
+ type,
33
+ rawErrors = [],
34
+ } = props;
35
+ const inputProps = getInputProps<T, S, F>(schema, type, options);
36
+ const { showButtons, buttonLayout, useGrouping, minFractionDigits, maxFractionDigits, locale, currency } = options;
37
+ const primeProps = (options.prime || {}) as object;
38
+
39
+ const _onChange = (event: InputNumberChangeEvent) => onChange(event.value === null ? options.emptyValue : value);
40
+ const _onBlur = () => onBlur && onBlur(id, value);
41
+ const _onFocus = () => onFocus && onFocus(id, value);
42
+
43
+ return (
44
+ <InputNumber
45
+ id={id}
46
+ name={id}
47
+ {...primeProps}
48
+ placeholder={placeholder}
49
+ step={isNaN(Number(inputProps.step)) ? 1 : Number(inputProps.step)}
50
+ required={required}
51
+ autoFocus={autofocus}
52
+ disabled={disabled || readonly}
53
+ style={buttonLayout === 'vertical' ? { width: '4em' } : {}}
54
+ showButtons={typeof showButtons === 'undefined' ? true : !!showButtons}
55
+ buttonLayout={(buttonLayout as any) ?? 'stacked'}
56
+ useGrouping={!!useGrouping}
57
+ minFractionDigits={minFractionDigits as number}
58
+ maxFractionDigits={maxFractionDigits as number}
59
+ locale={locale as string}
60
+ mode={currency ? 'currency' : 'decimal'}
61
+ currency={currency as string}
62
+ value={isNaN(Number(value)) ? null : Number(value)}
63
+ invalid={rawErrors.length > 0}
64
+ onChange={(onChangeOverride as any) || _onChange}
65
+ onBlur={_onBlur}
66
+ onFocus={_onFocus}
67
+ aria-describedby={ariaDescribedByIds<T>(id, !!schema.examples)}
68
+ />
69
+ );
70
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './UpDownWidget';
2
+ export * from './UpDownWidget';
@@ -0,0 +1,33 @@
1
+ import { FormContextType, RegistryWidgetsType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';
2
+
3
+ import AutoCompleteWidget from '../AutoCompleteWidget/AutoCompleteWidget';
4
+ import CheckboxWidget from '../CheckboxWidget/CheckboxWidget';
5
+ import CheckboxesWidget from '../CheckboxesWidget/CheckboxesWidget';
6
+ import ColorWidget from '../ColorWidget/ColorWidget';
7
+ import PasswordWidget from '../PasswordWidget/PasswordWidget';
8
+ import RadioWidget from '../RadioWidget/RadioWidget';
9
+ import RangeWidget from '../RangeWidget/RangeWidget';
10
+ import SelectWidget from '../SelectWidget/SelectWidget';
11
+ import TextareaWidget from '../TextareaWidget/TextareaWidget';
12
+ import UpDownWidget from '../UpDownWidget/UpDownWidget';
13
+
14
+ export function generateWidgets<
15
+ T = any,
16
+ S extends StrictRJSFSchema = RJSFSchema,
17
+ F extends FormContextType = any,
18
+ >(): RegistryWidgetsType<T, S, F> {
19
+ return {
20
+ AutoCompleteWidget,
21
+ CheckboxWidget,
22
+ CheckboxesWidget,
23
+ ColorWidget,
24
+ PasswordWidget,
25
+ RadioWidget,
26
+ RangeWidget,
27
+ SelectWidget,
28
+ TextareaWidget,
29
+ UpDownWidget,
30
+ };
31
+ }
32
+
33
+ export default generateWidgets();
@@ -0,0 +1,2 @@
1
+ export { default } from './Widgets';
2
+ export * from './Widgets';
@@ -0,0 +1,83 @@
1
+ import { FocusEvent } from 'react';
2
+ import {
3
+ ADDITIONAL_PROPERTY_FLAG,
4
+ buttonId,
5
+ FormContextType,
6
+ RJSFSchema,
7
+ StrictRJSFSchema,
8
+ TranslatableString,
9
+ WrapIfAdditionalTemplateProps,
10
+ } from '@rjsf/utils';
11
+ import { InputText } from 'primereact/inputtext';
12
+
13
+ /** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are
14
+ * part of an `additionalProperties` part of a schema.
15
+ *
16
+ * @param props - The `WrapIfAdditionalProps` for this component
17
+ */
18
+ export default function WrapIfAdditionalTemplate<
19
+ T = any,
20
+ S extends StrictRJSFSchema = RJSFSchema,
21
+ F extends FormContextType = any,
22
+ >({
23
+ classNames,
24
+ style,
25
+ children,
26
+ disabled,
27
+ id,
28
+ label,
29
+ onDropPropertyClick,
30
+ onKeyChange,
31
+ readonly,
32
+ required,
33
+ schema,
34
+ registry,
35
+ }: WrapIfAdditionalTemplateProps<T, S, F>) {
36
+ const { templates, translateString } = registry;
37
+ const { RemoveButton } = templates.ButtonTemplates;
38
+ const keyLabel = translateString(TranslatableString.KeyLabel, [label]);
39
+ const additional = ADDITIONAL_PROPERTY_FLAG in schema;
40
+
41
+ if (!additional) {
42
+ return (
43
+ <div className={classNames} style={style}>
44
+ {children}
45
+ </div>
46
+ );
47
+ }
48
+
49
+ const handleBlur = ({ target }: FocusEvent<HTMLInputElement>) => onKeyChange(target.value);
50
+
51
+ return (
52
+ <div
53
+ className={classNames}
54
+ style={{ ...style, display: 'flex', alignItems: 'center', gap: '1rem' }}
55
+ key={`${id}-key`}
56
+ >
57
+ <div style={{ flex: 1 }}>
58
+ <label htmlFor={`${id}-key`} style={{ display: 'block', marginBottom: '0.5rem' }}>
59
+ {keyLabel}
60
+ </label>
61
+ <InputText
62
+ id={`${id}-key`}
63
+ name={`${id}-key`}
64
+ defaultValue={label}
65
+ disabled={disabled || readonly}
66
+ onBlur={!readonly ? handleBlur : undefined}
67
+ required={required}
68
+ style={{ width: '100%' }}
69
+ />
70
+ </div>
71
+ <div style={{ flex: 1 }}>{children}</div>
72
+ <div>
73
+ <RemoveButton
74
+ id={buttonId<T>(id, 'remove')}
75
+ className='rjsf-object-property-remove'
76
+ disabled={disabled || readonly}
77
+ onClick={onDropPropertyClick(label)}
78
+ registry={registry}
79
+ />
80
+ </div>
81
+ </div>
82
+ );
83
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './WrapIfAdditionalTemplate';
2
+ export * from './WrapIfAdditionalTemplate';
package/src/index.ts ADDED
@@ -0,0 +1,8 @@
1
+ import PrimeForm from './PrimeForm/PrimeForm';
2
+
3
+ export { default as Templates, generateTemplates } from './Templates';
4
+ export { default as Form, generateForm } from './PrimeForm';
5
+ export { default as Theme, generateTheme } from './Theme';
6
+ export { default as Widgets, generateWidgets } from './Widgets';
7
+
8
+ export default PrimeForm;
@@ -0,0 +1,24 @@
1
+ {
2
+ "extends": "../../../tsconfig.base.json",
3
+ "include": [
4
+ "./"
5
+ ],
6
+ "compilerOptions": {
7
+ "rootDir": "./",
8
+ "outDir": "../lib",
9
+ "baseUrl": "../",
10
+ "jsx": "react-jsx",
11
+ "skipLibCheck": true
12
+ },
13
+ "references": [
14
+ {
15
+ "path": "../../core"
16
+ },
17
+ {
18
+ "path": "../../utils"
19
+ },
20
+ {
21
+ "path": "../../validator-ajv8"
22
+ }
23
+ ]
24
+ }
package/src/util.tsx ADDED
@@ -0,0 +1,11 @@
1
+ export function Label({ id, text, required }: { id: string; text?: string; required?: boolean }) {
2
+ if (!text) {
3
+ return null;
4
+ }
5
+
6
+ return (
7
+ <label htmlFor={id}>
8
+ {text} {required ? '*' : ''}
9
+ </label>
10
+ );
11
+ }