@rjsf/core 5.11.2 → 5.12.0

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 (232) hide show
  1. package/dist/core.umd.js +3464 -0
  2. package/dist/index.esm.js +3814 -0
  3. package/dist/index.esm.js.map +7 -0
  4. package/dist/index.js +3714 -5
  5. package/dist/index.js.map +7 -0
  6. package/{dist/index.d.ts → lib/components/Form.d.ts} +321 -337
  7. package/lib/components/Form.js +474 -0
  8. package/lib/components/Form.js.map +1 -0
  9. package/lib/components/fields/ArrayField.d.ts +179 -0
  10. package/lib/components/fields/ArrayField.js +568 -0
  11. package/lib/components/fields/ArrayField.js.map +1 -0
  12. package/lib/components/fields/BooleanField.d.ts +9 -0
  13. package/lib/components/fields/BooleanField.js +62 -0
  14. package/lib/components/fields/BooleanField.js.map +1 -0
  15. package/lib/components/fields/MultiSchemaField.d.ts +47 -0
  16. package/lib/components/fields/MultiSchemaField.js +129 -0
  17. package/lib/components/fields/MultiSchemaField.js.map +1 -0
  18. package/lib/components/fields/NullField.d.ts +8 -0
  19. package/lib/components/fields/NullField.js +17 -0
  20. package/lib/components/fields/NullField.js.map +1 -0
  21. package/lib/components/fields/NumberField.d.ts +21 -0
  22. package/lib/components/fields/NumberField.js +70 -0
  23. package/lib/components/fields/NumberField.js.map +1 -0
  24. package/lib/components/fields/ObjectField.d.ts +73 -0
  25. package/lib/components/fields/ObjectField.js +222 -0
  26. package/lib/components/fields/ObjectField.js.map +1 -0
  27. package/lib/components/fields/SchemaField.d.ts +10 -0
  28. package/lib/components/fields/SchemaField.js +172 -0
  29. package/lib/components/fields/SchemaField.js.map +1 -0
  30. package/lib/components/fields/StringField.d.ts +8 -0
  31. package/lib/components/fields/StringField.js +25 -0
  32. package/lib/components/fields/StringField.js.map +1 -0
  33. package/lib/components/fields/index.d.ts +3 -0
  34. package/lib/components/fields/index.js +24 -0
  35. package/lib/components/fields/index.js.map +1 -0
  36. package/lib/components/templates/ArrayFieldDescriptionTemplate.d.ts +8 -0
  37. package/lib/components/templates/ArrayFieldDescriptionTemplate.js +18 -0
  38. package/lib/components/templates/ArrayFieldDescriptionTemplate.js.map +1 -0
  39. package/lib/components/templates/ArrayFieldItemTemplate.d.ts +7 -0
  40. package/lib/components/templates/ArrayFieldItemTemplate.js +20 -0
  41. package/lib/components/templates/ArrayFieldItemTemplate.js.map +1 -0
  42. package/lib/components/templates/ArrayFieldTemplate.d.ts +7 -0
  43. package/lib/components/templates/ArrayFieldTemplate.js +22 -0
  44. package/lib/components/templates/ArrayFieldTemplate.js.map +1 -0
  45. package/lib/components/templates/ArrayFieldTitleTemplate.d.ts +8 -0
  46. package/lib/components/templates/ArrayFieldTitleTemplate.js +18 -0
  47. package/lib/components/templates/ArrayFieldTitleTemplate.js.map +1 -0
  48. package/lib/components/templates/BaseInputTemplate.d.ts +9 -0
  49. package/lib/components/templates/BaseInputTemplate.js +39 -0
  50. package/lib/components/templates/BaseInputTemplate.js.map +1 -0
  51. package/lib/components/templates/ButtonTemplates/AddButton.d.ts +5 -0
  52. package/lib/components/templates/ButtonTemplates/AddButton.js +10 -0
  53. package/lib/components/templates/ButtonTemplates/AddButton.js.map +1 -0
  54. package/lib/components/templates/ButtonTemplates/IconButton.d.ts +7 -0
  55. package/lib/components/templates/ButtonTemplates/IconButton.js +24 -0
  56. package/lib/components/templates/ButtonTemplates/IconButton.js.map +1 -0
  57. package/lib/components/templates/ButtonTemplates/SubmitButton.d.ts +5 -0
  58. package/lib/components/templates/ButtonTemplates/SubmitButton.js +12 -0
  59. package/lib/components/templates/ButtonTemplates/SubmitButton.js.map +1 -0
  60. package/lib/components/templates/ButtonTemplates/index.d.ts +3 -0
  61. package/lib/components/templates/ButtonTemplates/index.js +15 -0
  62. package/lib/components/templates/ButtonTemplates/index.js.map +1 -0
  63. package/lib/components/templates/DescriptionField.d.ts +7 -0
  64. package/lib/components/templates/DescriptionField.js +18 -0
  65. package/lib/components/templates/DescriptionField.js.map +1 -0
  66. package/lib/components/templates/ErrorList.d.ts +7 -0
  67. package/lib/components/templates/ErrorList.js +13 -0
  68. package/lib/components/templates/ErrorList.js.map +1 -0
  69. package/lib/components/templates/FieldErrorTemplate.d.ts +7 -0
  70. package/lib/components/templates/FieldErrorTemplate.js +19 -0
  71. package/lib/components/templates/FieldErrorTemplate.js.map +1 -0
  72. package/lib/components/templates/FieldHelpTemplate.d.ts +7 -0
  73. package/lib/components/templates/FieldHelpTemplate.js +18 -0
  74. package/lib/components/templates/FieldHelpTemplate.js.map +1 -0
  75. package/lib/components/templates/FieldTemplate/FieldTemplate.d.ts +8 -0
  76. package/lib/components/templates/FieldTemplate/FieldTemplate.js +18 -0
  77. package/lib/components/templates/FieldTemplate/FieldTemplate.js.map +1 -0
  78. package/lib/components/templates/FieldTemplate/Label.d.ts +14 -0
  79. package/lib/components/templates/FieldTemplate/Label.js +14 -0
  80. package/lib/components/templates/FieldTemplate/Label.js.map +1 -0
  81. package/lib/components/templates/FieldTemplate/index.d.ts +2 -0
  82. package/lib/components/templates/FieldTemplate/index.js +3 -0
  83. package/lib/components/templates/FieldTemplate/index.js.map +1 -0
  84. package/lib/components/templates/ObjectFieldTemplate.d.ts +9 -0
  85. package/lib/components/templates/ObjectFieldTemplate.js +18 -0
  86. package/lib/components/templates/ObjectFieldTemplate.js.map +1 -0
  87. package/lib/components/templates/TitleField.d.ts +7 -0
  88. package/lib/components/templates/TitleField.js +11 -0
  89. package/lib/components/templates/TitleField.js.map +1 -0
  90. package/lib/components/templates/UnsupportedField.d.ts +9 -0
  91. package/lib/components/templates/UnsupportedField.js +28 -0
  92. package/lib/components/templates/UnsupportedField.js.map +1 -0
  93. package/lib/components/templates/WrapIfAdditionalTemplate.d.ts +8 -0
  94. package/lib/components/templates/WrapIfAdditionalTemplate.js +21 -0
  95. package/lib/components/templates/WrapIfAdditionalTemplate.js.map +1 -0
  96. package/lib/components/templates/index.d.ts +3 -0
  97. package/lib/components/templates/index.js +36 -0
  98. package/lib/components/templates/index.js.map +1 -0
  99. package/lib/components/widgets/AltDateTimeWidget.d.ts +9 -0
  100. package/lib/components/widgets/AltDateTimeWidget.js +14 -0
  101. package/lib/components/widgets/AltDateTimeWidget.js.map +1 -0
  102. package/lib/components/widgets/AltDateWidget.d.ts +7 -0
  103. package/lib/components/widgets/AltDateWidget.js +77 -0
  104. package/lib/components/widgets/AltDateWidget.js.map +1 -0
  105. package/lib/components/widgets/CheckboxWidget.d.ts +9 -0
  106. package/lib/components/widgets/CheckboxWidget.js +23 -0
  107. package/lib/components/widgets/CheckboxWidget.js.map +1 -0
  108. package/lib/components/widgets/CheckboxesWidget.d.ts +9 -0
  109. package/lib/components/widgets/CheckboxesWidget.js +31 -0
  110. package/lib/components/widgets/CheckboxesWidget.js.map +1 -0
  111. package/lib/components/widgets/ColorWidget.d.ts +8 -0
  112. package/lib/components/widgets/ColorWidget.js +13 -0
  113. package/lib/components/widgets/ColorWidget.js.map +1 -0
  114. package/lib/components/widgets/DateTimeWidget.d.ts +8 -0
  115. package/lib/components/widgets/DateTimeWidget.js +13 -0
  116. package/lib/components/widgets/DateTimeWidget.js.map +1 -0
  117. package/lib/components/widgets/DateWidget.d.ts +8 -0
  118. package/lib/components/widgets/DateWidget.js +15 -0
  119. package/lib/components/widgets/DateWidget.js.map +1 -0
  120. package/lib/components/widgets/EmailWidget.d.ts +7 -0
  121. package/lib/components/widgets/EmailWidget.js +12 -0
  122. package/lib/components/widgets/EmailWidget.js.map +1 -0
  123. package/lib/components/widgets/FileWidget.d.ts +8 -0
  124. package/lib/components/widgets/FileWidget.js +105 -0
  125. package/lib/components/widgets/FileWidget.js.map +1 -0
  126. package/lib/components/widgets/HiddenWidget.d.ts +9 -0
  127. package/lib/components/widgets/HiddenWidget.js +11 -0
  128. package/lib/components/widgets/HiddenWidget.js.map +1 -0
  129. package/lib/components/widgets/PasswordWidget.d.ts +7 -0
  130. package/lib/components/widgets/PasswordWidget.js +12 -0
  131. package/lib/components/widgets/PasswordWidget.js.map +1 -0
  132. package/lib/components/widgets/RadioWidget.d.ts +9 -0
  133. package/lib/components/widgets/RadioWidget.js +24 -0
  134. package/lib/components/widgets/RadioWidget.js.map +1 -0
  135. package/lib/components/widgets/RangeWidget.d.ts +8 -0
  136. package/lib/components/widgets/RangeWidget.js +11 -0
  137. package/lib/components/widgets/RangeWidget.js.map +1 -0
  138. package/lib/components/widgets/SelectWidget.d.ts +9 -0
  139. package/lib/components/widgets/SelectWidget.js +41 -0
  140. package/lib/components/widgets/SelectWidget.js.map +1 -0
  141. package/lib/components/widgets/TextWidget.d.ts +7 -0
  142. package/lib/components/widgets/TextWidget.js +12 -0
  143. package/lib/components/widgets/TextWidget.js.map +1 -0
  144. package/lib/components/widgets/TextareaWidget.d.ts +14 -0
  145. package/lib/components/widgets/TextareaWidget.js +19 -0
  146. package/lib/components/widgets/TextareaWidget.js.map +1 -0
  147. package/lib/components/widgets/TimeWidget.d.ts +8 -0
  148. package/lib/components/widgets/TimeWidget.js +15 -0
  149. package/lib/components/widgets/TimeWidget.js.map +1 -0
  150. package/lib/components/widgets/URLWidget.d.ts +7 -0
  151. package/lib/components/widgets/URLWidget.js +12 -0
  152. package/lib/components/widgets/URLWidget.js.map +1 -0
  153. package/lib/components/widgets/UpDownWidget.d.ts +7 -0
  154. package/lib/components/widgets/UpDownWidget.js +12 -0
  155. package/lib/components/widgets/UpDownWidget.js.map +1 -0
  156. package/lib/components/widgets/index.d.ts +3 -0
  157. package/lib/components/widgets/index.js +44 -0
  158. package/lib/components/widgets/index.js.map +1 -0
  159. package/lib/getDefaultRegistry.d.ts +6 -0
  160. package/lib/getDefaultRegistry.js +19 -0
  161. package/lib/getDefaultRegistry.js.map +1 -0
  162. package/lib/index.d.ts +6 -0
  163. package/lib/index.js +6 -0
  164. package/lib/index.js.map +1 -0
  165. package/lib/withTheme.d.ts +9 -0
  166. package/lib/withTheme.js +16 -0
  167. package/lib/withTheme.js.map +1 -0
  168. package/package.json +23 -16
  169. package/src/components/Form.tsx +853 -0
  170. package/src/components/fields/ArrayField.tsx +875 -0
  171. package/src/components/fields/BooleanField.tsx +114 -0
  172. package/src/components/fields/MultiSchemaField.tsx +221 -0
  173. package/src/components/fields/NullField.tsx +22 -0
  174. package/src/components/fields/NumberField.tsx +86 -0
  175. package/src/components/fields/ObjectField.tsx +331 -0
  176. package/src/components/fields/SchemaField.tsx +360 -0
  177. package/src/components/fields/StringField.tsx +71 -0
  178. package/src/components/fields/index.ts +31 -0
  179. package/src/components/templates/ArrayFieldDescriptionTemplate.tsx +41 -0
  180. package/src/components/templates/ArrayFieldItemTemplate.tsx +90 -0
  181. package/src/components/templates/ArrayFieldTemplate.tsx +88 -0
  182. package/src/components/templates/ArrayFieldTitleTemplate.tsx +43 -0
  183. package/src/components/templates/BaseInputTemplate.tsx +102 -0
  184. package/src/components/templates/ButtonTemplates/AddButton.tsx +29 -0
  185. package/src/components/templates/ButtonTemplates/IconButton.tsx +77 -0
  186. package/src/components/templates/ButtonTemplates/SubmitButton.tsx +21 -0
  187. package/src/components/templates/ButtonTemplates/index.ts +22 -0
  188. package/src/components/templates/DescriptionField.tsx +29 -0
  189. package/src/components/templates/ErrorList.tsx +35 -0
  190. package/src/components/templates/FieldErrorTemplate.tsx +33 -0
  191. package/src/components/templates/FieldHelpTemplate.tsx +29 -0
  192. package/src/components/templates/FieldTemplate/FieldTemplate.tsx +41 -0
  193. package/src/components/templates/FieldTemplate/Label.tsx +27 -0
  194. package/src/components/templates/FieldTemplate/index.ts +3 -0
  195. package/src/components/templates/ObjectFieldTemplate.tsx +83 -0
  196. package/src/components/templates/TitleField.tsx +19 -0
  197. package/src/components/templates/UnsupportedField.tsx +37 -0
  198. package/src/components/templates/WrapIfAdditionalTemplate.tsx +80 -0
  199. package/src/components/templates/index.ts +43 -0
  200. package/src/components/widgets/AltDateTimeWidget.tsx +16 -0
  201. package/src/components/widgets/AltDateWidget.tsx +198 -0
  202. package/src/components/widgets/CheckboxWidget.tsx +92 -0
  203. package/src/components/widgets/CheckboxesWidget.tsx +92 -0
  204. package/src/components/widgets/ColorWidget.tsx +14 -0
  205. package/src/components/widgets/DateTimeWidget.tsx +31 -0
  206. package/src/components/widgets/DateWidget.tsx +17 -0
  207. package/src/components/widgets/EmailWidget.tsx +13 -0
  208. package/src/components/widgets/FileWidget.tsx +178 -0
  209. package/src/components/widgets/HiddenWidget.tsx +15 -0
  210. package/src/components/widgets/PasswordWidget.tsx +15 -0
  211. package/src/components/widgets/RadioWidget.tsx +88 -0
  212. package/src/components/widgets/RangeWidget.tsx +23 -0
  213. package/src/components/widgets/SelectWidget.tsx +100 -0
  214. package/src/components/widgets/TextWidget.tsx +13 -0
  215. package/src/components/widgets/TextareaWidget.tsx +61 -0
  216. package/src/components/widgets/TimeWidget.tsx +17 -0
  217. package/src/components/widgets/URLWidget.tsx +13 -0
  218. package/src/components/widgets/UpDownWidget.tsx +13 -0
  219. package/src/components/widgets/index.ts +51 -0
  220. package/src/getDefaultRegistry.ts +24 -0
  221. package/src/index.ts +8 -0
  222. package/src/withTheme.tsx +42 -0
  223. package/dist/core.cjs.development.js +0 -4403
  224. package/dist/core.cjs.development.js.map +0 -1
  225. package/dist/core.cjs.production.min.js +0 -2
  226. package/dist/core.cjs.production.min.js.map +0 -1
  227. package/dist/core.esm.js +0 -4383
  228. package/dist/core.esm.js.map +0 -1
  229. package/dist/core.umd.development.js +0 -4393
  230. package/dist/core.umd.development.js.map +0 -1
  231. package/dist/core.umd.production.min.js +0 -2
  232. package/dist/core.umd.production.min.js.map +0 -1
@@ -0,0 +1,36 @@
1
+ import ArrayFieldDescriptionTemplate from './ArrayFieldDescriptionTemplate';
2
+ import ArrayFieldItemTemplate from './ArrayFieldItemTemplate';
3
+ import ArrayFieldTemplate from './ArrayFieldTemplate';
4
+ import ArrayFieldTitleTemplate from './ArrayFieldTitleTemplate';
5
+ import BaseInputTemplate from './BaseInputTemplate';
6
+ import ButtonTemplates from './ButtonTemplates';
7
+ import DescriptionField from './DescriptionField';
8
+ import ErrorList from './ErrorList';
9
+ import FieldTemplate from './FieldTemplate';
10
+ import FieldErrorTemplate from './FieldErrorTemplate';
11
+ import FieldHelpTemplate from './FieldHelpTemplate';
12
+ import ObjectFieldTemplate from './ObjectFieldTemplate';
13
+ import TitleField from './TitleField';
14
+ import UnsupportedField from './UnsupportedField';
15
+ import WrapIfAdditionalTemplate from './WrapIfAdditionalTemplate';
16
+ function templates() {
17
+ return {
18
+ ArrayFieldDescriptionTemplate,
19
+ ArrayFieldItemTemplate,
20
+ ArrayFieldTemplate,
21
+ ArrayFieldTitleTemplate,
22
+ ButtonTemplates: ButtonTemplates(),
23
+ BaseInputTemplate,
24
+ DescriptionFieldTemplate: DescriptionField,
25
+ ErrorListTemplate: ErrorList,
26
+ FieldTemplate,
27
+ FieldErrorTemplate,
28
+ FieldHelpTemplate,
29
+ ObjectFieldTemplate,
30
+ TitleFieldTemplate: TitleField,
31
+ UnsupportedFieldTemplate: UnsupportedField,
32
+ WrapIfAdditionalTemplate,
33
+ };
34
+ }
35
+ export default templates;
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/templates/index.ts"],"names":[],"mappings":"AAEA,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,SAAS,SAAS;IAKhB,OAAO;QACL,6BAA6B;QAC7B,sBAAsB;QACtB,kBAAkB;QAClB,uBAAuB;QACvB,eAAe,EAAE,eAAe,EAAW;QAC3C,iBAAiB;QACjB,wBAAwB,EAAE,gBAAgB;QAC1C,iBAAiB,EAAE,SAAS;QAC5B,aAAa;QACb,kBAAkB;QAClB,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB,EAAE,UAAU;QAC9B,wBAAwB,EAAE,gBAAgB;QAC1C,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
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
+ declare function AltDateTimeWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({ time, ...props }: WidgetProps<T, S, F>): JSX.Element;
9
+ export default AltDateTimeWidget;
@@ -0,0 +1,14 @@
1
+ import { __rest } from "tslib";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
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
+ function AltDateTimeWidget(_a) {
9
+ var { time = true } = _a, props = __rest(_a, ["time"]);
10
+ const { AltDateWidget } = props.registry.widgets;
11
+ return _jsx(AltDateWidget, Object.assign({ time: time }, props));
12
+ }
13
+ export default AltDateTimeWidget;
14
+ //# sourceMappingURL=AltDateTimeWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AltDateTimeWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/AltDateTimeWidget.tsx"],"names":[],"mappings":";;AAEA;;;;GAIG;AACH,SAAS,iBAAiB,CAAoF,EAGvF;QAHuF,EAC5G,IAAI,GAAG,IAAI,OAEU,EADlB,KAAK,cAFoG,QAG7G,CADS;IAER,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjD,OAAO,KAAC,aAAa,kBAAC,IAAI,EAAE,IAAI,IAAM,KAAK,EAAI,CAAC;AAClD,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
3
+ /** The `AltDateWidget` is an alternative widget for rendering date properties.
4
+ * @param props - The `WidgetProps` for this component
5
+ */
6
+ declare function AltDateWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({ time, disabled, readonly, autofocus, options, id, name, registry, onBlur, onFocus, onChange, value, }: WidgetProps<T, S, F>): JSX.Element;
7
+ export default AltDateWidget;
@@ -0,0 +1,77 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useReducer, useState } from 'react';
3
+ import { ariaDescribedByIds, parseDateString, toDateString, pad, TranslatableString, } from '@rjsf/utils';
4
+ function rangeOptions(start, stop) {
5
+ const options = [];
6
+ for (let i = start; i <= stop; i++) {
7
+ options.push({ value: i, label: pad(i, 2) });
8
+ }
9
+ return options;
10
+ }
11
+ function readyForChange(state) {
12
+ return Object.values(state).every((value) => value !== -1);
13
+ }
14
+ function dateElementProps(state, time, yearsRange = [1900, new Date().getFullYear() + 2]) {
15
+ const { year, month, day, hour, minute, second } = state;
16
+ const data = [
17
+ {
18
+ type: 'year',
19
+ range: yearsRange,
20
+ value: year,
21
+ },
22
+ { type: 'month', range: [1, 12], value: month },
23
+ { type: 'day', range: [1, 31], value: day },
24
+ ];
25
+ if (time) {
26
+ data.push({ type: 'hour', range: [0, 23], value: hour }, { type: 'minute', range: [0, 59], value: minute }, { type: 'second', range: [0, 59], value: second });
27
+ }
28
+ return data;
29
+ }
30
+ function DateElement({ type, range, value, select, rootId, name, disabled, readonly, autofocus, registry, onBlur, onFocus, }) {
31
+ const id = rootId + '_' + type;
32
+ const { SelectWidget } = registry.widgets;
33
+ return (_jsx(SelectWidget, { schema: { type: 'integer' }, id: id, name: name, className: 'form-control', options: { enumOptions: rangeOptions(range[0], range[1]) }, placeholder: type, value: value, disabled: disabled, readonly: readonly, autofocus: autofocus, onChange: (value) => select(type, value), onBlur: onBlur, onFocus: onFocus, registry: registry, label: '', "aria-describedby": ariaDescribedByIds(rootId) }));
34
+ }
35
+ /** The `AltDateWidget` is an alternative widget for rendering date properties.
36
+ * @param props - The `WidgetProps` for this component
37
+ */
38
+ function AltDateWidget({ time = false, disabled = false, readonly = false, autofocus = false, options, id, name, registry, onBlur, onFocus, onChange, value, }) {
39
+ const { translateString } = registry;
40
+ const [lastValue, setLastValue] = useState(value);
41
+ const [state, setState] = useReducer((state, action) => {
42
+ return Object.assign(Object.assign({}, state), action);
43
+ }, parseDateString(value, time));
44
+ useEffect(() => {
45
+ const stateValue = toDateString(state, time);
46
+ if (readyForChange(state) && stateValue !== value) {
47
+ // The user changed the date to a new valid data via the comboboxes, so call onChange
48
+ onChange(stateValue);
49
+ }
50
+ else if (lastValue !== value) {
51
+ // We got a new value in the props
52
+ setLastValue(value);
53
+ setState(parseDateString(value, time));
54
+ }
55
+ }, [time, value, onChange, state, lastValue]);
56
+ const handleChange = useCallback((property, value) => {
57
+ setState({ [property]: value });
58
+ }, []);
59
+ const handleSetNow = useCallback((event) => {
60
+ event.preventDefault();
61
+ if (disabled || readonly) {
62
+ return;
63
+ }
64
+ const nextState = parseDateString(new Date().toJSON(), time);
65
+ onChange(toDateString(nextState, time));
66
+ }, [disabled, readonly, time]);
67
+ const handleClear = useCallback((event) => {
68
+ event.preventDefault();
69
+ if (disabled || readonly) {
70
+ return;
71
+ }
72
+ onChange(undefined);
73
+ }, [disabled, readonly, onChange]);
74
+ return (_jsxs("ul", Object.assign({ className: 'list-inline' }, { children: [dateElementProps(state, time, options.yearsRange).map((elemProps, i) => (_jsx("li", Object.assign({ className: 'list-inline-item' }, { children: _jsx(DateElement, Object.assign({ rootId: id, name: name, select: handleChange }, elemProps, { disabled: disabled, readonly: readonly, registry: registry, onBlur: onBlur, onFocus: onFocus, autofocus: autofocus && i === 0 })) }), i))), (options.hideNowButton !== 'undefined' ? !options.hideNowButton : true) && (_jsx("li", Object.assign({ className: 'list-inline-item' }, { children: _jsx("a", Object.assign({ href: '#', className: 'btn btn-info btn-now', onClick: handleSetNow }, { children: translateString(TranslatableString.NowLabel) })) }))), (options.hideClearButton !== 'undefined' ? !options.hideClearButton : true) && (_jsx("li", Object.assign({ className: 'list-inline-item' }, { children: _jsx("a", Object.assign({ href: '#', className: 'btn btn-warning btn-clear', onClick: handleClear }, { children: translateString(TranslatableString.ClearLabel) })) })))] })));
75
+ }
76
+ export default AltDateWidget;
77
+ //# sourceMappingURL=AltDateWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AltDateWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/AltDateWidget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, 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
+ declare function CheckboxWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({ schema, uiSchema, options, id, value, disabled, readonly, label, hideLabel, autofocus, onBlur, onFocus, onChange, registry, }: WidgetProps<T, S, F>): JSX.Element;
9
+ export default CheckboxWidget;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { ariaDescribedByIds, descriptionId, getTemplate, labelValue, schemaRequiresTrueValue, } from '@rjsf/utils';
4
+ /** The `CheckBoxWidget` is a widget for rendering boolean properties.
5
+ * It is typically used to represent a boolean.
6
+ *
7
+ * @param props - The `WidgetProps` for this component
8
+ */
9
+ function CheckboxWidget({ schema, uiSchema, options, id, value, disabled, readonly, label, hideLabel, autofocus = false, onBlur, onFocus, onChange, registry, }) {
10
+ var _a;
11
+ const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);
12
+ // Because an unchecked checkbox will cause html5 validation to fail, only add
13
+ // the "required" attribute if the field value must be "true", due to the
14
+ // "const" or "enum" keywords
15
+ const required = schemaRequiresTrueValue(schema);
16
+ const handleChange = useCallback((event) => onChange(event.target.checked), [onChange]);
17
+ const handleBlur = useCallback((event) => onBlur(id, event.target.checked), [onBlur, id]);
18
+ const handleFocus = useCallback((event) => onFocus(id, event.target.checked), [onFocus, id]);
19
+ const description = (_a = options.description) !== null && _a !== void 0 ? _a : schema.description;
20
+ return (_jsxs("div", Object.assign({ className: `checkbox ${disabled || readonly ? 'disabled' : ''}` }, { children: [!hideLabel && !!description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), _jsxs("label", { children: [_jsx("input", { type: 'checkbox', id: id, name: id, checked: typeof value === 'undefined' ? false : value, required: required, disabled: disabled || readonly, autoFocus: autofocus, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, "aria-describedby": ariaDescribedByIds(id) }), labelValue(_jsx("span", { children: label }), hideLabel)] })] })));
21
+ }
22
+ export default CheckboxWidget;
23
+ //# sourceMappingURL=CheckboxWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/CheckboxWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA2B,WAAW,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,UAAU,EACV,uBAAuB,GAKxB,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,SAAS,cAAc,CAAoF,EACzG,MAAM,EACN,QAAQ,EACR,OAAO,EACP,EAAE,EACF,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,GAAG,KAAK,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,GACa;;IACrB,MAAM,wBAAwB,GAAG,WAAW,CAC1C,0BAA0B,EAC1B,QAAQ,EACR,OAAO,CACR,CAAC;IACF,8EAA8E;IAC9E,yEAAyE;IACzE,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,uBAAuB,CAAI,MAAM,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAoC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EACxE,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,KAAmC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EACzE,CAAC,MAAM,EAAE,EAAE,CAAC,CACb,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAmC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAC1E,CAAC,OAAO,EAAE,EAAE,CAAC,CACd,CAAC;IACF,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,MAAM,CAAC,WAAW,CAAC;IAE9D,OAAO,CACL,6BAAK,SAAS,EAAE,YAAY,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,iBACjE,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,IAAI,CAC9B,KAAC,wBAAwB,IACvB,EAAE,EAAE,aAAa,CAAI,EAAE,CAAC,EACxB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,CACH,EACD,4BACE,gBACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,EAAE,EACR,OAAO,EAAE,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EACrD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,sBACF,kBAAkB,CAAI,EAAE,CAAC,GAC3C,EACD,UAAU,CAAC,yBAAO,KAAK,GAAQ,EAAE,SAAS,CAAC,IACtC,KACJ,CACP,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, WidgetProps, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';
3
+ /** The `CheckboxesWidget` is a widget for rendering checkbox groups.
4
+ * It is typically used to represent an array of enums.
5
+ *
6
+ * @param props - The `WidgetProps` for this component
7
+ */
8
+ declare function CheckboxesWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({ id, disabled, options: { inline, enumOptions, enumDisabled, emptyValue }, value, autofocus, readonly, onChange, onBlur, onFocus, }: WidgetProps<T, S, F>): JSX.Element;
9
+ export default CheckboxesWidget;
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { ariaDescribedByIds, enumOptionsDeselectValue, enumOptionsIsSelected, enumOptionsSelectValue, enumOptionsValueForIndex, optionId, } from '@rjsf/utils';
4
+ /** The `CheckboxesWidget` is a widget for rendering checkbox groups.
5
+ * It is typically used to represent an array of enums.
6
+ *
7
+ * @param props - The `WidgetProps` for this component
8
+ */
9
+ function CheckboxesWidget({ id, disabled, options: { inline = false, enumOptions, enumDisabled, emptyValue }, value, autofocus = false, readonly, onChange, onBlur, onFocus, }) {
10
+ const checkboxesValues = Array.isArray(value) ? value : [value];
11
+ const handleBlur = useCallback(({ target: { value } }) => onBlur(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)), [onBlur, id]);
12
+ const handleFocus = useCallback(({ target: { value } }) => onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)), [onFocus, id]);
13
+ return (_jsx("div", Object.assign({ className: 'checkboxes', id: id }, { children: Array.isArray(enumOptions) &&
14
+ enumOptions.map((option, index) => {
15
+ const checked = enumOptionsIsSelected(option.value, checkboxesValues);
16
+ const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
17
+ const disabledCls = disabled || itemDisabled || readonly ? 'disabled' : '';
18
+ const handleChange = (event) => {
19
+ if (event.target.checked) {
20
+ onChange(enumOptionsSelectValue(index, checkboxesValues, enumOptions));
21
+ }
22
+ else {
23
+ onChange(enumOptionsDeselectValue(index, checkboxesValues, enumOptions));
24
+ }
25
+ };
26
+ const checkbox = (_jsxs("span", { children: [_jsx("input", { type: 'checkbox', id: optionId(id, index), name: id, checked: checked, value: String(index), disabled: disabled || itemDisabled || readonly, autoFocus: autofocus && index === 0, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, "aria-describedby": ariaDescribedByIds(id) }), _jsx("span", { children: option.label })] }));
27
+ return inline ? (_jsx("label", Object.assign({ className: `checkbox-inline ${disabledCls}` }, { children: checkbox }), index)) : (_jsx("div", Object.assign({ className: `checkbox ${disabledCls}` }, { children: _jsx("label", { children: checkbox }) }), index));
28
+ }) })));
29
+ }
30
+ export default CheckboxesWidget;
31
+ //# sourceMappingURL=CheckboxesWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxesWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/CheckboxesWidget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
3
+ /** The `ColorWidget` component uses the `BaseInputTemplate` changing the type to `color` and disables it when it is
4
+ * either disabled or readonly.
5
+ *
6
+ * @param props - The `WidgetProps` for this component
7
+ */
8
+ export default function ColorWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getTemplate } from '@rjsf/utils';
3
+ /** The `ColorWidget` component uses the `BaseInputTemplate` changing the type to `color` and disables it when it is
4
+ * either disabled or readonly.
5
+ *
6
+ * @param props - The `WidgetProps` for this component
7
+ */
8
+ export default function ColorWidget(props) {
9
+ const { disabled, readonly, options, registry } = props;
10
+ const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);
11
+ return _jsx(BaseInputTemplate, Object.assign({ type: 'color' }, props, { disabled: disabled || readonly }));
12
+ }
13
+ //# sourceMappingURL=ColorWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/ColorWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAA8D,MAAM,aAAa,CAAC;AAEtG;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,KAA2B;IAE3B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACxD,MAAM,iBAAiB,GAAG,WAAW,CAA+B,mBAAmB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5G,OAAO,KAAC,iBAAiB,kBAAC,IAAI,EAAC,OAAO,IAAK,KAAK,IAAE,QAAQ,EAAE,QAAQ,IAAI,QAAQ,IAAI,CAAC;AACvF,CAAC"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
3
+ /** The `DateTimeWidget` component uses the `BaseInputTemplate` changing the type to `datetime-local` and transforms
4
+ * the value to/from utc using the appropriate utility functions.
5
+ *
6
+ * @param props - The `WidgetProps` for this component
7
+ */
8
+ export default function DateTimeWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getTemplate, localToUTC, utcToLocal, } from '@rjsf/utils';
3
+ /** The `DateTimeWidget` component uses the `BaseInputTemplate` changing the type to `datetime-local` and transforms
4
+ * the value to/from utc using the appropriate utility functions.
5
+ *
6
+ * @param props - The `WidgetProps` for this component
7
+ */
8
+ export default function DateTimeWidget(props) {
9
+ const { onChange, value, options, registry } = props;
10
+ const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);
11
+ return (_jsx(BaseInputTemplate, Object.assign({ type: 'datetime-local' }, props, { value: utcToLocal(value), onChange: (value) => onChange(localToUTC(value)) })));
12
+ }
13
+ //# sourceMappingURL=DateTimeWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/DateTimeWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,UAAU,EACV,UAAU,GAKX,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAIpC,KAA2B;IAC3B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACrD,MAAM,iBAAiB,GAAG,WAAW,CAA+B,mBAAmB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5G,OAAO,CACL,KAAC,iBAAiB,kBAChB,IAAI,EAAC,gBAAgB,IACjB,KAAK,IACT,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAChD,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
3
+ /** The `DateWidget` component uses the `BaseInputTemplate` changing the type to `date` and transforms
4
+ * the value to undefined when it is falsy during the `onChange` handling.
5
+ *
6
+ * @param props - The `WidgetProps` for this component
7
+ */
8
+ export default function DateWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { getTemplate } from '@rjsf/utils';
4
+ /** The `DateWidget` component uses the `BaseInputTemplate` changing the type to `date` and transforms
5
+ * the value to undefined when it is falsy during the `onChange` handling.
6
+ *
7
+ * @param props - The `WidgetProps` for this component
8
+ */
9
+ export default function DateWidget(props) {
10
+ const { onChange, options, registry } = props;
11
+ const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);
12
+ const handleChange = useCallback((value) => onChange(value || undefined), [onChange]);
13
+ return _jsx(BaseInputTemplate, Object.assign({ type: 'date' }, props, { onChange: handleChange }));
14
+ }
15
+ //# sourceMappingURL=DateWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/DateWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,WAAW,EAA8D,MAAM,aAAa,CAAC;AAEtG;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,KAA2B;IAE3B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC9C,MAAM,iBAAiB,GAAG,WAAW,CAA+B,mBAAmB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5G,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE3F,OAAO,KAAC,iBAAiB,kBAAC,IAAI,EAAC,MAAM,IAAK,KAAK,IAAE,QAAQ,EAAE,YAAY,IAAI,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
3
+ /** The `EmailWidget` component uses the `BaseInputTemplate` changing the type to `email`.
4
+ *
5
+ * @param props - The `WidgetProps` for this component
6
+ */
7
+ export default function EmailWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getTemplate } from '@rjsf/utils';
3
+ /** The `EmailWidget` component uses the `BaseInputTemplate` changing the type to `email`.
4
+ *
5
+ * @param props - The `WidgetProps` for this component
6
+ */
7
+ export default function EmailWidget(props) {
8
+ const { options, registry } = props;
9
+ const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);
10
+ return _jsx(BaseInputTemplate, Object.assign({ type: 'email' }, props));
11
+ }
12
+ //# sourceMappingURL=EmailWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/EmailWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAA8D,MAAM,aAAa,CAAC;AAEtG;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,KAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,iBAAiB,GAAG,WAAW,CAA+B,mBAAmB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5G,OAAO,KAAC,iBAAiB,kBAAC,IAAI,EAAC,OAAO,IAAK,KAAK,EAAI,CAAC;AACvD,CAAC"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
3
+ /**
4
+ * The `FileWidget` is a widget for rendering file upload fields.
5
+ * It is typically used with a string property with data-url format.
6
+ */
7
+ declare function FileWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): JSX.Element;
8
+ export default FileWidget;
@@ -0,0 +1,105 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useState } from 'react';
3
+ import { dataURItoBlob, getTemplate, TranslatableString, } from '@rjsf/utils';
4
+ import Markdown from 'markdown-to-jsx';
5
+ function addNameToDataURL(dataURL, name) {
6
+ if (dataURL === null) {
7
+ return null;
8
+ }
9
+ return dataURL.replace(';base64', `;name=${encodeURIComponent(name)};base64`);
10
+ }
11
+ function processFile(file) {
12
+ const { name, size, type } = file;
13
+ return new Promise((resolve, reject) => {
14
+ const reader = new window.FileReader();
15
+ reader.onerror = reject;
16
+ reader.onload = (event) => {
17
+ var _a;
18
+ if (typeof ((_a = event.target) === null || _a === void 0 ? void 0 : _a.result) === 'string') {
19
+ resolve({
20
+ dataURL: addNameToDataURL(event.target.result, name),
21
+ name,
22
+ size,
23
+ type,
24
+ });
25
+ }
26
+ else {
27
+ resolve({
28
+ dataURL: null,
29
+ name,
30
+ size,
31
+ type,
32
+ });
33
+ }
34
+ };
35
+ reader.readAsDataURL(file);
36
+ });
37
+ }
38
+ function processFiles(files) {
39
+ return Promise.all(Array.from(files).map(processFile));
40
+ }
41
+ function FileInfoPreview({ fileInfo, registry, }) {
42
+ const { translateString } = registry;
43
+ const { dataURL, type, name } = fileInfo;
44
+ if (!dataURL) {
45
+ return null;
46
+ }
47
+ if (type.indexOf('image') !== -1) {
48
+ return _jsx("img", { src: dataURL, style: { maxWidth: '100%' }, className: 'file-preview' });
49
+ }
50
+ return (_jsxs(_Fragment, { children: [' ', _jsx("a", Object.assign({ download: `preview-${name}`, href: dataURL, className: 'file-download' }, { children: translateString(TranslatableString.PreviewLabel) }))] }));
51
+ }
52
+ function FilesInfo({ filesInfo, registry, preview, }) {
53
+ if (filesInfo.length === 0) {
54
+ return null;
55
+ }
56
+ const { translateString } = registry;
57
+ return (_jsx("ul", Object.assign({ className: 'file-info' }, { children: filesInfo.map((fileInfo, key) => {
58
+ const { name, size, type } = fileInfo;
59
+ return (_jsxs("li", { children: [_jsx(Markdown, { children: translateString(TranslatableString.FilesInfo, [name, type, String(size)]) }), preview && _jsx(FileInfoPreview, { fileInfo: fileInfo, registry: registry })] }, key));
60
+ }) })));
61
+ }
62
+ function extractFileInfo(dataURLs) {
63
+ return dataURLs
64
+ .filter((dataURL) => dataURL)
65
+ .map((dataURL) => {
66
+ const { blob, name } = dataURItoBlob(dataURL);
67
+ return {
68
+ dataURL,
69
+ name: name,
70
+ size: blob.size,
71
+ type: blob.type,
72
+ };
73
+ });
74
+ }
75
+ /**
76
+ * The `FileWidget` is a widget for rendering file upload fields.
77
+ * It is typically used with a string property with data-url format.
78
+ */
79
+ function FileWidget(props) {
80
+ const { disabled, readonly, required, multiple, onChange, value, options, registry } = props;
81
+ const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);
82
+ const [filesInfo, setFilesInfo] = useState(Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value]));
83
+ const handleChange = useCallback((event) => {
84
+ if (!event.target.files) {
85
+ return;
86
+ }
87
+ // Due to variances in themes, dealing with multiple files for the array case now happens one file at a time.
88
+ // This is because we don't pass `multiple` into the `BaseInputTemplate` anymore. Instead, we deal with the single
89
+ // file in each event and concatenate them together ourselves
90
+ processFiles(event.target.files).then((filesInfoEvent) => {
91
+ const newValue = filesInfoEvent.map((fileInfo) => fileInfo.dataURL);
92
+ if (multiple) {
93
+ setFilesInfo(filesInfo.concat(filesInfoEvent[0]));
94
+ onChange(value.concat(newValue[0]));
95
+ }
96
+ else {
97
+ setFilesInfo(filesInfoEvent);
98
+ onChange(newValue[0]);
99
+ }
100
+ });
101
+ }, [multiple, value, filesInfo, onChange]);
102
+ return (_jsxs("div", { children: [_jsx(BaseInputTemplate, Object.assign({}, props, { disabled: disabled || readonly, type: 'file', required: value ? false : required, onChangeOverride: handleChange, value: '', accept: options.accept ? String(options.accept) : undefined })), _jsx(FilesInfo, { filesInfo: filesInfo, registry: registry, preview: options.filePreview })] }));
103
+ }
104
+ export default FileWidget;
105
+ //# sourceMappingURL=FileWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/FileWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,aAAa,EAEb,WAAW,EAIX,kBAAkB,GAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,SAAS,gBAAgB,CAAC,OAAe,EAAE,IAAY;IACrD,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChF,CAAC;AASD,SAAS,WAAW,CAAC,IAAU;IAC7B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE;;YACxB,IAAI,OAAO,CAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,CAAA,KAAK,QAAQ,EAAE;gBAC5C,OAAO,CAAC;oBACN,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;oBACpD,IAAI;oBACJ,IAAI;oBACJ,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,CAAC;oBACN,OAAO,EAAE,IAAI;oBACb,IAAI;oBACJ,IAAI;oBACJ,IAAI;iBACL,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,KAAe;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,eAAe,CAAoF,EAC1G,QAAQ,EACR,QAAQ,GAIT;IACC,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;IACrC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;QAChC,OAAO,cAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAC,cAAc,GAAG,CAAC;KACpF;IAED,OAAO,CACL,8BACG,GAAG,EACJ,0BAAG,QAAQ,EAAE,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAC,eAAe,gBACrE,eAAe,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAC/C,IACH,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAoF,EACpG,SAAS,EACT,QAAQ,EACR,OAAO,GAKR;IACC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IACD,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;IACrC,OAAO,CACL,2BAAI,SAAS,EAAC,WAAW,gBACtB,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;YAC/B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YACtC,OAAO,CACL,yBACE,KAAC,QAAQ,cAAE,eAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAY,EAC/F,OAAO,IAAI,KAAC,eAAe,IAAU,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,KAFzE,GAAG,CAGP,CACN,CAAC;QACJ,CAAC,CAAC,IACC,CACN,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB;IACzC,OAAO,QAAQ;SACZ,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;SAC5B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO;YACL,OAAO;YACP,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CACjB,KAA2B;IAE3B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7F,MAAM,iBAAiB,GAAG,WAAW,CAA+B,mBAAmB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5G,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CACxC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CACzE,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAoC,EAAE,EAAE;QACvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACvB,OAAO;SACR;QACD,6GAA6G;QAC7G,kHAAkH;QAClH,6DAA6D;QAC7D,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;YACvD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpE,IAAI,QAAQ,EAAE;gBACZ,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrC;iBAAM;gBACL,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC7B,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CACvC,CAAC;IAEF,OAAO,CACL,0BACE,KAAC,iBAAiB,oBACZ,KAAK,IACT,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAClC,gBAAgB,EAAE,YAAY,EAC9B,KAAK,EAAC,EAAE,EACR,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,IAC3D,EACF,KAAC,SAAS,IAAU,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,GAAI,IAC1F,CACP,CAAC;AACJ,CAAC;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
3
+ /** The `HiddenWidget` is a widget for rendering a hidden input field.
4
+ * It is typically used by setting type to "hidden".
5
+ *
6
+ * @param props - The `WidgetProps` for this component
7
+ */
8
+ declare function HiddenWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({ id, value, }: WidgetProps<T, S, F>): JSX.Element;
9
+ export default HiddenWidget;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /** The `HiddenWidget` is a widget for rendering a hidden input field.
3
+ * It is typically used by setting type to "hidden".
4
+ *
5
+ * @param props - The `WidgetProps` for this component
6
+ */
7
+ function HiddenWidget({ id, value, }) {
8
+ return _jsx("input", { type: 'hidden', id: id, name: id, value: typeof value === 'undefined' ? '' : value });
9
+ }
10
+ export default HiddenWidget;
11
+ //# sourceMappingURL=HiddenWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiddenWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/HiddenWidget.tsx"],"names":[],"mappings":";AAEA;;;;GAIG;AACH,SAAS,YAAY,CAAoF,EACvG,EAAE,EACF,KAAK,GACgB;IACrB,OAAO,gBAAO,IAAI,EAAC,QAAQ,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAI,CAAC;AACrG,CAAC;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
3
+ /** The `PasswordWidget` component uses the `BaseInputTemplate` changing the type to `password`.
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>): JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getTemplate } from '@rjsf/utils';
3
+ /** The `PasswordWidget` component uses the `BaseInputTemplate` changing the type to `password`.
4
+ *
5
+ * @param props - The `WidgetProps` for this component
6
+ */
7
+ export default function PasswordWidget(props) {
8
+ const { options, registry } = props;
9
+ const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);
10
+ return _jsx(BaseInputTemplate, Object.assign({ type: 'password' }, props));
11
+ }
12
+ //# sourceMappingURL=PasswordWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/PasswordWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAA8D,MAAM,aAAa,CAAC;AAEtG;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAIpC,KAA2B;IAC3B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,iBAAiB,GAAG,WAAW,CAA+B,mBAAmB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5G,OAAO,KAAC,iBAAiB,kBAAC,IAAI,EAAC,UAAU,IAAK,KAAK,EAAI,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
3
+ /** The `RadioWidget` is a widget for rendering a radio group.
4
+ * It is typically used with a string property constrained with enum options.
5
+ *
6
+ * @param props - The `WidgetProps` for this component
7
+ */
8
+ declare function RadioWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({ options, value, required, disabled, readonly, autofocus, onBlur, onFocus, onChange, id, }: WidgetProps<T, S, F>): JSX.Element;
9
+ export default RadioWidget;
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { ariaDescribedByIds, enumOptionsIsSelected, enumOptionsValueForIndex, optionId, } from '@rjsf/utils';
4
+ /** The `RadioWidget` is a widget for rendering a radio group.
5
+ * It is typically used with a string property constrained with enum options.
6
+ *
7
+ * @param props - The `WidgetProps` for this component
8
+ */
9
+ function RadioWidget({ options, value, required, disabled, readonly, autofocus = false, onBlur, onFocus, onChange, id, }) {
10
+ const { enumOptions, enumDisabled, inline, emptyValue } = options;
11
+ const handleBlur = useCallback(({ target: { value } }) => onBlur(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)), [onBlur, id]);
12
+ const handleFocus = useCallback(({ target: { value } }) => onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)), [onFocus, id]);
13
+ return (_jsx("div", Object.assign({ className: 'field-radio-group', id: id }, { children: Array.isArray(enumOptions) &&
14
+ enumOptions.map((option, i) => {
15
+ const checked = enumOptionsIsSelected(option.value, value);
16
+ const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
17
+ const disabledCls = disabled || itemDisabled || readonly ? 'disabled' : '';
18
+ const handleChange = () => onChange(option.value);
19
+ const radio = (_jsxs("span", { children: [_jsx("input", { type: 'radio', id: optionId(id, i), checked: checked, name: id, required: required, value: String(i), disabled: disabled || itemDisabled || readonly, autoFocus: autofocus && i === 0, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, "aria-describedby": ariaDescribedByIds(id) }), _jsx("span", { children: option.label })] }));
20
+ return inline ? (_jsx("label", Object.assign({ className: `radio-inline ${disabledCls}` }, { children: radio }), i)) : (_jsx("div", Object.assign({ className: `radio ${disabledCls}` }, { children: _jsx("label", { children: radio }) }), i));
21
+ }) })));
22
+ }
23
+ export default RadioWidget;
24
+ //# sourceMappingURL=RadioWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioWidget.js","sourceRoot":"","sources":["../../../src/components/widgets/RadioWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,QAAQ,GAKT,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,SAAS,WAAW,CAAoF,EACtG,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,EAAE,GACmB;IACrB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAElE,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAgC,EAAE,EAAE,CACtD,MAAM,CAAC,EAAE,EAAE,wBAAwB,CAAI,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,EACzE,CAAC,MAAM,EAAE,EAAE,CAAC,CACb,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAgC,EAAE,EAAE,CACtD,OAAO,CAAC,EAAE,EAAE,wBAAwB,CAAI,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,EAC1E,CAAC,OAAO,EAAE,EAAE,CAAC,CACd,CAAC;IAEF,OAAO,CACL,4BAAK,SAAS,EAAC,mBAAmB,EAAC,EAAE,EAAE,EAAE,gBACtC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YACzB,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5B,MAAM,OAAO,GAAG,qBAAqB,CAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9F,MAAM,WAAW,GAAG,QAAQ,IAAI,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAE3E,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAElD,MAAM,KAAK,GAAG,CACZ,2BACE,gBACE,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,EAAE,EACR,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAChB,QAAQ,EAAE,QAAQ,IAAI,YAAY,IAAI,QAAQ,EAC9C,SAAS,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,EAC/B,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,sBACF,kBAAkB,CAAI,EAAE,CAAC,GAC3C,EACF,yBAAO,MAAM,CAAC,KAAK,GAAQ,IACtB,CACR,CAAC;gBAEF,OAAO,MAAM,CAAC,CAAC,CAAC,CACd,8BAAe,SAAS,EAAE,gBAAgB,WAAW,EAAE,gBACpD,KAAK,KADI,CAAC,CAEL,CACT,CAAC,CAAC,CAAC,CACF,4BAAa,SAAS,EAAE,SAAS,WAAW,EAAE,gBAC5C,0BAAQ,KAAK,GAAS,KADd,CAAC,CAEL,CACP,CAAC;YACJ,CAAC,CAAC,IACA,CACP,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}