@rjsf/daisyui 6.0.0-beta.21 → 6.0.0-beta.23
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/dist/chakra-ui.esm.js +169 -355
- package/dist/chakra-ui.esm.js.map +4 -4
- package/dist/chakra-ui.umd.js +60 -237
- package/dist/index.cjs +186 -370
- package/dist/index.cjs.map +4 -4
- package/lib/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.d.ts +2 -2
- package/lib/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.js +2 -7
- package/lib/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.js.map +1 -1
- package/lib/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.d.ts +3 -3
- package/lib/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js +1 -1
- package/lib/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js.map +1 -1
- package/lib/templates/ArrayFieldTemplate/ArrayFieldTemplate.js +1 -2
- package/lib/templates/ArrayFieldTemplate/ArrayFieldTemplate.js.map +1 -1
- package/lib/templates/BaseInputTemplate/BaseInputTemplate.js +8 -2
- package/lib/templates/BaseInputTemplate/BaseInputTemplate.js.map +1 -1
- package/lib/templates/FieldTemplate/FieldTemplate.js +3 -3
- package/lib/templates/FieldTemplate/FieldTemplate.js.map +1 -1
- package/lib/templates/ObjectFieldTemplate/ObjectFieldTemplate.js +2 -2
- package/lib/templates/ObjectFieldTemplate/ObjectFieldTemplate.js.map +1 -1
- package/lib/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js +2 -9
- package/lib/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/widgets/AltDateWidget/AltDateWidget.d.ts +1 -1
- package/lib/widgets/AltDateWidget/AltDateWidget.js +5 -121
- package/lib/widgets/AltDateWidget/AltDateWidget.js.map +1 -1
- package/lib/widgets/CheckboxWidget/CheckboxWidget.js +2 -2
- package/lib/widgets/CheckboxWidget/CheckboxWidget.js.map +1 -1
- package/lib/widgets/CheckboxesWidget/CheckboxesWidget.d.ts +1 -1
- package/lib/widgets/CheckboxesWidget/CheckboxesWidget.js +2 -2
- package/lib/widgets/CheckboxesWidget/CheckboxesWidget.js.map +1 -1
- package/lib/widgets/RadioWidget/RadioWidget.d.ts +1 -1
- package/lib/widgets/RadioWidget/RadioWidget.js +2 -2
- package/lib/widgets/RadioWidget/RadioWidget.js.map +1 -1
- package/lib/widgets/TextareaWidget/TextareaWidget.js +2 -2
- package/lib/widgets/TextareaWidget/TextareaWidget.js.map +1 -1
- package/lib/widgets/Widgets.d.ts +1 -2
- package/lib/widgets/Widgets.js +1 -3
- package/lib/widgets/Widgets.js.map +1 -1
- package/package.json +7 -7
- package/src/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.tsx +10 -15
- package/src/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx +3 -3
- package/src/templates/ArrayFieldTemplate/ArrayFieldTemplate.tsx +1 -8
- package/src/templates/BaseInputTemplate/BaseInputTemplate.tsx +11 -3
- package/src/templates/FieldTemplate/FieldTemplate.tsx +9 -7
- package/src/templates/ObjectFieldTemplate/ObjectFieldTemplate.tsx +2 -2
- package/src/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx +5 -16
- package/src/widgets/AltDateWidget/AltDateWidget.tsx +18 -253
- package/src/widgets/CheckboxWidget/CheckboxWidget.tsx +2 -0
- package/src/widgets/CheckboxesWidget/CheckboxesWidget.tsx +2 -1
- package/src/widgets/RadioWidget/RadioWidget.tsx +2 -1
- package/src/widgets/TextareaWidget/TextareaWidget.tsx +2 -1
- package/src/widgets/Widgets.tsx +0 -3
- package/lib/widgets/FileWidget/FileWidget.d.ts +0 -12
- package/lib/widgets/FileWidget/FileWidget.js +0 -57
- package/lib/widgets/FileWidget/FileWidget.js.map +0 -1
- package/lib/widgets/FileWidget/index.d.ts +0 -2
- package/lib/widgets/FileWidget/index.js +0 -3
- package/lib/widgets/FileWidget/index.js.map +0 -1
- package/src/widgets/FileWidget/FileWidget.tsx +0 -86
- package/src/widgets/FileWidget/index.ts +0 -2
package/dist/chakra-ui.umd.js
CHANGED
|
@@ -13,19 +13,15 @@
|
|
|
13
13
|
hasMoveUp,
|
|
14
14
|
hasRemove,
|
|
15
15
|
fieldPathId,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
onCopyItem,
|
|
17
|
+
onRemoveItem,
|
|
18
|
+
onMoveDownItem,
|
|
19
|
+
onMoveUpItem,
|
|
20
20
|
readonly,
|
|
21
21
|
registry,
|
|
22
22
|
uiSchema
|
|
23
23
|
} = props;
|
|
24
24
|
const { CopyButton: CopyButton2, MoveDownButton: MoveDownButton2, MoveUpButton: MoveUpButton2, RemoveButton: RemoveButton2 } = registry.templates.ButtonTemplates;
|
|
25
|
-
const onCopyClick = react.useMemo(() => onCopyIndexClick(index), [index, onCopyIndexClick]);
|
|
26
|
-
const onRemoveClick = react.useMemo(() => onDropIndexClick(index), [index, onDropIndexClick]);
|
|
27
|
-
const onArrowUpClick = react.useMemo(() => onReorderClick(index, index - 1), [index, onReorderClick]);
|
|
28
|
-
const onArrowDownClick = react.useMemo(() => onReorderClick(index, index + 1), [index, onReorderClick]);
|
|
29
25
|
const renderMany = [hasMoveUp || hasMoveDown, hasCopy, hasRemove].filter(Boolean).length > 1;
|
|
30
26
|
const btnClass = renderMany ? "join-item btn btn-sm px-2" : "btn btn-sm px-2 rounded-sm";
|
|
31
27
|
const removeBtnClass = renderMany ? "join-item btn btn-sm btn-error px-2" : "btn btn-sm btn-error px-2 rounded-sm";
|
|
@@ -37,7 +33,7 @@
|
|
|
37
33
|
id: utils.buttonId(fieldPathId, "moveUp"),
|
|
38
34
|
className: `rjsf-array-item-move-up ${btnClass}`,
|
|
39
35
|
disabled: disabled || readonly || !hasMoveUp,
|
|
40
|
-
onClick:
|
|
36
|
+
onClick: onMoveUpItem,
|
|
41
37
|
uiSchema,
|
|
42
38
|
registry
|
|
43
39
|
}
|
|
@@ -48,7 +44,7 @@
|
|
|
48
44
|
id: utils.buttonId(fieldPathId, "moveDown"),
|
|
49
45
|
className: `rjsf-array-item-move-down ${btnClass}`,
|
|
50
46
|
disabled: disabled || readonly || !hasMoveDown,
|
|
51
|
-
onClick:
|
|
47
|
+
onClick: onMoveDownItem,
|
|
52
48
|
uiSchema,
|
|
53
49
|
registry
|
|
54
50
|
}
|
|
@@ -60,7 +56,7 @@
|
|
|
60
56
|
id: utils.buttonId(fieldPathId, "copy"),
|
|
61
57
|
className: `rjsf-array-item-copy ${btnClass}`,
|
|
62
58
|
disabled: disabled || readonly,
|
|
63
|
-
onClick:
|
|
59
|
+
onClick: onCopyItem,
|
|
64
60
|
uiSchema,
|
|
65
61
|
registry
|
|
66
62
|
}
|
|
@@ -71,7 +67,7 @@
|
|
|
71
67
|
id: utils.buttonId(fieldPathId, "remove"),
|
|
72
68
|
className: `rjsf-array-item-remove ${removeBtnClass}`,
|
|
73
69
|
disabled: disabled || readonly,
|
|
74
|
-
onClick:
|
|
70
|
+
onClick: onRemoveItem,
|
|
75
71
|
uiSchema,
|
|
76
72
|
registry
|
|
77
73
|
}
|
|
@@ -119,11 +115,6 @@
|
|
|
119
115
|
registry,
|
|
120
116
|
uiOptions
|
|
121
117
|
);
|
|
122
|
-
const ArrayFieldItemTemplate2 = utils.getTemplate(
|
|
123
|
-
"ArrayFieldItemTemplate",
|
|
124
|
-
registry,
|
|
125
|
-
uiOptions
|
|
126
|
-
);
|
|
127
118
|
const ArrayFieldTitleTemplate = utils.getTemplate(
|
|
128
119
|
"ArrayFieldTitleTemplate",
|
|
129
120
|
registry,
|
|
@@ -167,7 +158,7 @@
|
|
|
167
158
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
168
159
|
!showOptionalDataControlInTitle ? optionalDataControl : void 0,
|
|
169
160
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rjsf-array-item-list", children: [
|
|
170
|
-
items
|
|
161
|
+
items,
|
|
171
162
|
items && items.length === 0 && canAdd && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center italic text-base-content/70", children: utils.TranslatableString.EmptyArray })
|
|
172
163
|
] }),
|
|
173
164
|
canAdd && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -187,6 +178,8 @@
|
|
|
187
178
|
function BaseInputTemplate(props) {
|
|
188
179
|
const {
|
|
189
180
|
id,
|
|
181
|
+
htmlName,
|
|
182
|
+
multiple,
|
|
190
183
|
value,
|
|
191
184
|
required,
|
|
192
185
|
disabled,
|
|
@@ -203,6 +196,12 @@
|
|
|
203
196
|
placeholder
|
|
204
197
|
} = props;
|
|
205
198
|
const inputProps = utils.getInputProps(schema, type, options);
|
|
199
|
+
let className = "input input-bordered";
|
|
200
|
+
let isMulti = multiple;
|
|
201
|
+
if (type === "file") {
|
|
202
|
+
isMulti = schema.type === "array" || Boolean(options.multiple);
|
|
203
|
+
className = "file-input w-full";
|
|
204
|
+
}
|
|
206
205
|
const { step, min, max, accept, ...rest } = inputProps;
|
|
207
206
|
const htmlInputProps = { step, min, max, accept, ...schema.examples ? { list: utils.examplesId(id) } : void 0 };
|
|
208
207
|
const _onChange = react.useCallback(
|
|
@@ -224,13 +223,14 @@
|
|
|
224
223
|
"input",
|
|
225
224
|
{
|
|
226
225
|
id,
|
|
227
|
-
name: id,
|
|
226
|
+
name: htmlName || id,
|
|
228
227
|
value: value || value === 0 ? value : "",
|
|
229
228
|
placeholder,
|
|
230
229
|
required,
|
|
231
230
|
disabled: disabled || readonly,
|
|
232
231
|
autoFocus: autofocus,
|
|
233
|
-
className
|
|
232
|
+
className,
|
|
233
|
+
multiple: isMulti,
|
|
234
234
|
...rest,
|
|
235
235
|
...htmlInputProps,
|
|
236
236
|
onChange: onChangeOverride || _onChange,
|
|
@@ -364,21 +364,22 @@
|
|
|
364
364
|
help,
|
|
365
365
|
hideError,
|
|
366
366
|
displayLabel,
|
|
367
|
+
onKeyRename,
|
|
368
|
+
onKeyRenameBlur,
|
|
369
|
+
onRemoveProperty,
|
|
367
370
|
classNames,
|
|
368
|
-
// Destructure props we don't want to pass to div
|
|
369
|
-
description,
|
|
370
|
-
onKeyChange,
|
|
371
|
-
onDropPropertyClick,
|
|
372
371
|
uiSchema,
|
|
373
372
|
schema,
|
|
374
373
|
readonly,
|
|
375
374
|
required,
|
|
375
|
+
registry,
|
|
376
|
+
// Destructure props we don't want to pass to div
|
|
377
|
+
description,
|
|
376
378
|
rawErrors,
|
|
377
379
|
rawHelp,
|
|
378
380
|
rawDescription,
|
|
379
381
|
hidden,
|
|
380
382
|
onChange,
|
|
381
|
-
registry,
|
|
382
383
|
...divProps
|
|
383
384
|
} = props;
|
|
384
385
|
const isCheckbox = schema.type === "boolean";
|
|
@@ -395,8 +396,9 @@
|
|
|
395
396
|
disabled: divProps.disabled,
|
|
396
397
|
id,
|
|
397
398
|
label,
|
|
398
|
-
|
|
399
|
-
|
|
399
|
+
onKeyRename,
|
|
400
|
+
onKeyRenameBlur,
|
|
401
|
+
onRemoveProperty,
|
|
400
402
|
readonly,
|
|
401
403
|
required,
|
|
402
404
|
schema,
|
|
@@ -441,7 +443,7 @@
|
|
|
441
443
|
schema,
|
|
442
444
|
formData,
|
|
443
445
|
optionalDataControl,
|
|
444
|
-
|
|
446
|
+
onAddProperty,
|
|
445
447
|
registry
|
|
446
448
|
} = props;
|
|
447
449
|
const uiOptions = utils.getUiOptions(uiSchema);
|
|
@@ -496,7 +498,7 @@
|
|
|
496
498
|
{
|
|
497
499
|
id: utils.buttonId(fieldPathId, "add"),
|
|
498
500
|
className: "rjsf-object-property-expand btn btn-primary btn-sm",
|
|
499
|
-
onClick:
|
|
501
|
+
onClick: onAddProperty,
|
|
500
502
|
disabled: disabled || readonly,
|
|
501
503
|
uiSchema,
|
|
502
504
|
registry
|
|
@@ -560,8 +562,9 @@
|
|
|
560
562
|
required,
|
|
561
563
|
schema,
|
|
562
564
|
uiSchema,
|
|
563
|
-
|
|
564
|
-
|
|
565
|
+
onKeyRename,
|
|
566
|
+
onKeyRenameBlur,
|
|
567
|
+
onRemoveProperty,
|
|
565
568
|
registry,
|
|
566
569
|
...rest
|
|
567
570
|
} = props;
|
|
@@ -569,15 +572,6 @@
|
|
|
569
572
|
const { templates, translateString } = registry;
|
|
570
573
|
const { RemoveButton: RemoveButton2 } = templates.ButtonTemplates;
|
|
571
574
|
const keyLabel = translateString(utils.TranslatableString.KeyLabel, [label]);
|
|
572
|
-
const handleBlur = react.useCallback(
|
|
573
|
-
(event) => {
|
|
574
|
-
onKeyChange(event.target.value);
|
|
575
|
-
},
|
|
576
|
-
[onKeyChange]
|
|
577
|
-
);
|
|
578
|
-
const handleRemove = react.useCallback(() => {
|
|
579
|
-
onDropPropertyClick(label)();
|
|
580
|
-
}, [onDropPropertyClick, label]);
|
|
581
575
|
if (!additional) {
|
|
582
576
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: classNames, children });
|
|
583
577
|
}
|
|
@@ -590,7 +584,7 @@
|
|
|
590
584
|
type: "text",
|
|
591
585
|
className: "input input-bordered",
|
|
592
586
|
id: `${id}-key`,
|
|
593
|
-
onBlur:
|
|
587
|
+
onBlur: onKeyRenameBlur,
|
|
594
588
|
defaultValue: label,
|
|
595
589
|
disabled: disabled || readonly
|
|
596
590
|
}
|
|
@@ -603,7 +597,7 @@
|
|
|
603
597
|
id: utils.buttonId(id, "remove"),
|
|
604
598
|
className: "rjsf-object-property-remove",
|
|
605
599
|
disabled: disabled || readonly,
|
|
606
|
-
onClick:
|
|
600
|
+
onClick: onRemoveProperty,
|
|
607
601
|
uiSchema,
|
|
608
602
|
registry
|
|
609
603
|
}
|
|
@@ -648,154 +642,29 @@
|
|
|
648
642
|
return /* @__PURE__ */ jsxRuntime.jsx(AltDateWidget2, { time, ...props });
|
|
649
643
|
}
|
|
650
644
|
var AltDateTimeWidget_default = AltDateTimeWidget;
|
|
651
|
-
function
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
value: state[key],
|
|
664
|
-
range: key === "year" ? rangeOptions : key === "month" ? [1, 12] : key === "day" ? [1, 31] : [0, 59]
|
|
665
|
-
}));
|
|
666
|
-
if (time) {
|
|
667
|
-
dateElements.push(
|
|
668
|
-
{ type: "hour", value: state.hour, range: [0, 23] },
|
|
669
|
-
{ type: "minute", value: state.minute, range: [0, 59] },
|
|
670
|
-
{ type: "second", value: state.second, range: [0, 59] }
|
|
671
|
-
);
|
|
672
|
-
}
|
|
673
|
-
return dateElements;
|
|
674
|
-
}
|
|
675
|
-
function DateElement({
|
|
676
|
-
type,
|
|
677
|
-
range,
|
|
678
|
-
value,
|
|
679
|
-
select,
|
|
680
|
-
rootId,
|
|
681
|
-
name,
|
|
682
|
-
disabled,
|
|
683
|
-
readonly,
|
|
684
|
-
autofocus,
|
|
685
|
-
registry,
|
|
686
|
-
onBlur,
|
|
687
|
-
onFocus
|
|
688
|
-
}) {
|
|
689
|
-
const id = `${rootId}_${type}`;
|
|
690
|
-
const { SelectWidget: SelectWidget2 } = registry.widgets;
|
|
691
|
-
const handleChange = react.useCallback(
|
|
692
|
-
(value2) => {
|
|
693
|
-
select(type, value2);
|
|
694
|
-
},
|
|
695
|
-
[select, type]
|
|
696
|
-
);
|
|
697
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
698
|
-
SelectWidget2,
|
|
699
|
-
{
|
|
700
|
-
schema: { type: "integer" },
|
|
701
|
-
id,
|
|
702
|
-
name,
|
|
703
|
-
className: "select select-bordered select-sm w-full",
|
|
704
|
-
options: { enumOptions: utils.dateRangeOptions(range[0], range[1]) },
|
|
705
|
-
placeholder: type,
|
|
706
|
-
value,
|
|
707
|
-
disabled,
|
|
708
|
-
readonly,
|
|
709
|
-
autofocus,
|
|
710
|
-
onChange: handleChange,
|
|
711
|
-
onBlur,
|
|
712
|
-
onFocus,
|
|
713
|
-
registry,
|
|
714
|
-
label: "",
|
|
715
|
-
"aria-describedby": utils.ariaDescribedByIds(rootId),
|
|
716
|
-
required: false
|
|
717
|
-
}
|
|
718
|
-
);
|
|
719
|
-
}
|
|
720
|
-
function convertToRJSFDateObject(dateObj) {
|
|
721
|
-
return {
|
|
722
|
-
year: dateObj.year ? parseInt(dateObj.year) : 0,
|
|
723
|
-
month: dateObj.month ? parseInt(dateObj.month) : 0,
|
|
724
|
-
day: dateObj.day ? parseInt(dateObj.day) : 0,
|
|
725
|
-
hour: dateObj.hour ? parseInt(dateObj.hour) : 0,
|
|
726
|
-
minute: dateObj.minute ? parseInt(dateObj.minute) : 0,
|
|
727
|
-
second: dateObj.second ? parseInt(dateObj.second) : 0
|
|
728
|
-
};
|
|
729
|
-
}
|
|
730
|
-
function AltDateWidget({
|
|
731
|
-
time = false,
|
|
732
|
-
disabled = false,
|
|
733
|
-
readonly = false,
|
|
734
|
-
autofocus = false,
|
|
735
|
-
options = {},
|
|
736
|
-
id,
|
|
737
|
-
name,
|
|
738
|
-
registry,
|
|
739
|
-
onBlur,
|
|
740
|
-
onFocus,
|
|
741
|
-
onChange,
|
|
742
|
-
value
|
|
743
|
-
}) {
|
|
645
|
+
function AltDateWidget(props) {
|
|
646
|
+
const {
|
|
647
|
+
disabled = false,
|
|
648
|
+
readonly = false,
|
|
649
|
+
autofocus = false,
|
|
650
|
+
options = {},
|
|
651
|
+
id,
|
|
652
|
+
name,
|
|
653
|
+
registry,
|
|
654
|
+
onBlur,
|
|
655
|
+
onFocus
|
|
656
|
+
} = props;
|
|
744
657
|
const { translateString } = registry;
|
|
745
|
-
const
|
|
746
|
-
const initialState = utils.parseDateString(value, time);
|
|
747
|
-
const dateReducer = (state2, action) => {
|
|
748
|
-
return { ...state2, ...action };
|
|
749
|
-
};
|
|
750
|
-
const [state, setState] = react.useReducer(dateReducer, initialState);
|
|
751
|
-
react.useEffect(() => {
|
|
752
|
-
const rjsfDateObj = convertToRJSFDateObject(state);
|
|
753
|
-
const stateValue = utils.toDateString(rjsfDateObj, time);
|
|
754
|
-
if (readyForChange(state, time) && stateValue !== value) {
|
|
755
|
-
onChange(stateValue);
|
|
756
|
-
} else if (lastValue !== value) {
|
|
757
|
-
setLastValue(value);
|
|
758
|
-
setState(utils.parseDateString(value, time));
|
|
759
|
-
}
|
|
760
|
-
}, [time, value, onChange, state, lastValue]);
|
|
761
|
-
const handleChange = react.useCallback((property, value2) => {
|
|
762
|
-
setState({ [property]: value2 });
|
|
763
|
-
}, []);
|
|
764
|
-
const handleSetNow = react.useCallback(
|
|
765
|
-
(event) => {
|
|
766
|
-
event.preventDefault();
|
|
767
|
-
if (disabled || readonly) {
|
|
768
|
-
return;
|
|
769
|
-
}
|
|
770
|
-
const nextState = utils.parseDateString((/* @__PURE__ */ new Date()).toJSON(), time);
|
|
771
|
-
const rjsfDateObj = convertToRJSFDateObject(nextState);
|
|
772
|
-
onChange(utils.toDateString(rjsfDateObj, time));
|
|
773
|
-
},
|
|
774
|
-
[disabled, readonly, time, onChange]
|
|
775
|
-
);
|
|
776
|
-
const handleClear = react.useCallback(
|
|
777
|
-
(event) => {
|
|
778
|
-
event.preventDefault();
|
|
779
|
-
if (disabled || readonly) {
|
|
780
|
-
return;
|
|
781
|
-
}
|
|
782
|
-
onChange(void 0);
|
|
783
|
-
},
|
|
784
|
-
[disabled, readonly, onChange]
|
|
785
|
-
);
|
|
658
|
+
const { elements, handleChange, handleClear, handleSetNow } = utils.useAltDateWidgetProps(props);
|
|
786
659
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
787
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-3 gap-2", children:
|
|
788
|
-
state,
|
|
789
|
-
time,
|
|
790
|
-
options.yearsRange,
|
|
791
|
-
options.format
|
|
792
|
-
).map((elemProps, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "form-control", children: [
|
|
660
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-3 gap-2", children: elements.map((elemProps, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "form-control", children: [
|
|
793
661
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "label", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "label-text capitalize", children: elemProps.type }) }),
|
|
794
662
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
795
|
-
DateElement,
|
|
663
|
+
utils.DateElement,
|
|
796
664
|
{
|
|
797
665
|
rootId: id,
|
|
798
666
|
name,
|
|
667
|
+
className: "select select-bordered select-sm",
|
|
799
668
|
select: handleChange,
|
|
800
669
|
type: elemProps.type,
|
|
801
670
|
range: elemProps.range,
|
|
@@ -836,6 +705,7 @@
|
|
|
836
705
|
function CheckboxWidget(props) {
|
|
837
706
|
const {
|
|
838
707
|
id,
|
|
708
|
+
htmlName,
|
|
839
709
|
value,
|
|
840
710
|
required,
|
|
841
711
|
disabled,
|
|
@@ -877,6 +747,7 @@
|
|
|
877
747
|
{
|
|
878
748
|
type: "checkbox",
|
|
879
749
|
id,
|
|
750
|
+
name: htmlName || id,
|
|
880
751
|
checked: value,
|
|
881
752
|
required,
|
|
882
753
|
disabled: disabled || readonly,
|
|
@@ -908,6 +779,7 @@
|
|
|
908
779
|
}
|
|
909
780
|
function CheckboxesWidget({
|
|
910
781
|
id,
|
|
782
|
+
htmlName,
|
|
911
783
|
disabled,
|
|
912
784
|
options,
|
|
913
785
|
value,
|
|
@@ -979,7 +851,7 @@
|
|
|
979
851
|
type: "checkbox",
|
|
980
852
|
id: `${id}-${option.value}`,
|
|
981
853
|
className: "checkbox",
|
|
982
|
-
name: id,
|
|
854
|
+
name: htmlName || id,
|
|
983
855
|
checked: isChecked(option),
|
|
984
856
|
required,
|
|
985
857
|
disabled: disabled || readonly,
|
|
@@ -1490,58 +1362,9 @@
|
|
|
1490
1362
|
}
|
|
1491
1363
|
) });
|
|
1492
1364
|
}
|
|
1493
|
-
function FileWidget(props) {
|
|
1494
|
-
const { id, required, disabled, readonly, schema, onChange, onFocus, onBlur, options = {} } = props;
|
|
1495
|
-
const isMulti = schema.type === "array" || Boolean(options.multiple);
|
|
1496
|
-
const accept = typeof options.accept === "string" ? options.accept : void 0;
|
|
1497
|
-
const handleChange = react.useCallback(
|
|
1498
|
-
(event) => {
|
|
1499
|
-
if (!event.target.files) {
|
|
1500
|
-
return;
|
|
1501
|
-
}
|
|
1502
|
-
const fileList = Array.from(event.target.files);
|
|
1503
|
-
if (isMulti) {
|
|
1504
|
-
onChange(fileList);
|
|
1505
|
-
} else {
|
|
1506
|
-
onChange(fileList[0] || null);
|
|
1507
|
-
}
|
|
1508
|
-
},
|
|
1509
|
-
[onChange, isMulti]
|
|
1510
|
-
);
|
|
1511
|
-
const handleFocus = react.useCallback(
|
|
1512
|
-
(event) => {
|
|
1513
|
-
if (onFocus) {
|
|
1514
|
-
onFocus(id, event.target.files ? Array.from(event.target.files) : null);
|
|
1515
|
-
}
|
|
1516
|
-
},
|
|
1517
|
-
[onFocus, id]
|
|
1518
|
-
);
|
|
1519
|
-
const handleBlur = react.useCallback(
|
|
1520
|
-
(event) => {
|
|
1521
|
-
if (onBlur) {
|
|
1522
|
-
onBlur(id, event.target.files ? Array.from(event.target.files) : null);
|
|
1523
|
-
}
|
|
1524
|
-
},
|
|
1525
|
-
[onBlur, id]
|
|
1526
|
-
);
|
|
1527
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1528
|
-
"input",
|
|
1529
|
-
{
|
|
1530
|
-
id,
|
|
1531
|
-
type: "file",
|
|
1532
|
-
className: "file-input w-full",
|
|
1533
|
-
required,
|
|
1534
|
-
disabled: disabled || readonly,
|
|
1535
|
-
onChange: handleChange,
|
|
1536
|
-
onFocus: handleFocus,
|
|
1537
|
-
onBlur: handleBlur,
|
|
1538
|
-
multiple: isMulti,
|
|
1539
|
-
accept
|
|
1540
|
-
}
|
|
1541
|
-
);
|
|
1542
|
-
}
|
|
1543
1365
|
function RadioWidget({
|
|
1544
1366
|
id,
|
|
1367
|
+
htmlName,
|
|
1545
1368
|
options,
|
|
1546
1369
|
value,
|
|
1547
1370
|
required,
|
|
@@ -1600,7 +1423,7 @@
|
|
|
1600
1423
|
type: "radio",
|
|
1601
1424
|
id: `${id}-${option.value}`,
|
|
1602
1425
|
className: "radio",
|
|
1603
|
-
name: id,
|
|
1426
|
+
name: htmlName || id,
|
|
1604
1427
|
value: getValue(option),
|
|
1605
1428
|
checked: isChecked(option),
|
|
1606
1429
|
required,
|
|
@@ -1844,7 +1667,7 @@
|
|
|
1844
1667
|
] }) });
|
|
1845
1668
|
}
|
|
1846
1669
|
function TextareaWidget(props) {
|
|
1847
|
-
const { id, value, required, disabled, readonly, onChange, onFocus, onBlur, options } = props;
|
|
1670
|
+
const { id, htmlName, value, required, disabled, readonly, onChange, onFocus, onBlur, options } = props;
|
|
1848
1671
|
const handleFocus = react.useCallback(
|
|
1849
1672
|
(event) => {
|
|
1850
1673
|
if (onFocus) {
|
|
@@ -1872,6 +1695,7 @@
|
|
|
1872
1695
|
"textarea",
|
|
1873
1696
|
{
|
|
1874
1697
|
id,
|
|
1698
|
+
name: htmlName || id,
|
|
1875
1699
|
value: value || "",
|
|
1876
1700
|
required,
|
|
1877
1701
|
disabled: disabled || readonly,
|
|
@@ -1970,7 +1794,6 @@
|
|
|
1970
1794
|
CheckboxWidget,
|
|
1971
1795
|
DateTimeWidget,
|
|
1972
1796
|
DateWidget,
|
|
1973
|
-
FileWidget,
|
|
1974
1797
|
RadioWidget,
|
|
1975
1798
|
RangeWidget,
|
|
1976
1799
|
RatingWidget,
|