@panneau/fields 4.1.0 → 5.0.0-alpha.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.
- package/README.md +72 -0
- package/dist/boolean/BooleanField.d.ts +11 -0
- package/dist/boolean/BooleanField.d.ts.map +1 -0
- package/dist/boolean/BooleanField.js +67 -0
- package/dist/boolean/BooleanField.js.map +1 -0
- package/dist/boolean/index.d.ts +2 -0
- package/dist/boolean/index.d.ts.map +1 -0
- package/dist/boolean/index.js +1 -0
- package/dist/color/ColorField.css +33 -0
- package/dist/color/ColorField.d.ts +16 -0
- package/dist/color/ColorField.d.ts.map +1 -0
- package/dist/color/ColorField.js +187 -0
- package/dist/color/ColorField.js.map +1 -0
- package/dist/color/ColorField.module.js +14 -0
- package/dist/color/ColorField.module.js.map +1 -0
- package/dist/color/index.d.ts +2 -0
- package/dist/color/index.d.ts.map +1 -0
- package/dist/color/index.js +1 -0
- package/dist/date/DateField.d.ts +16 -0
- package/dist/date/DateField.d.ts.map +1 -0
- package/dist/date/DateField.js +132 -0
- package/dist/date/DateField.js.map +1 -0
- package/dist/date/index.d.ts +2 -0
- package/dist/date/index.d.ts.map +1 -0
- package/dist/date/index.js +1 -0
- package/dist/datetime/DateTimeField.d.ts +22 -0
- package/dist/datetime/DateTimeField.d.ts.map +1 -0
- package/dist/datetime/DateTimeField.js +78 -0
- package/dist/datetime/DateTimeField.js.map +1 -0
- package/dist/datetime/index.d.ts +2 -0
- package/dist/datetime/index.d.ts.map +1 -0
- package/dist/datetime/index.js +1 -0
- package/dist/email/EmailField.d.ts +8 -0
- package/dist/email/EmailField.d.ts.map +1 -0
- package/dist/email/EmailField.js +84 -0
- package/dist/email/EmailField.js.map +1 -0
- package/dist/email/index.d.ts +2 -0
- package/dist/email/index.d.ts.map +1 -0
- package/dist/email/index.js +1 -0
- package/dist/group/GroupField.css +14 -0
- package/dist/group/GroupField.d.ts +19 -0
- package/dist/group/GroupField.d.ts.map +1 -0
- package/dist/group/GroupField.js +140 -0
- package/dist/group/GroupField.js.map +1 -0
- package/dist/group/GroupField.module.js +8 -0
- package/dist/group/GroupField.module.js.map +1 -0
- package/dist/group/index.d.ts +2 -0
- package/dist/group/index.d.ts.map +1 -0
- package/dist/group/index.js +1 -0
- package/dist/index.d.ts +8 -12
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -134
- package/dist/locales/index.d.ts +15 -0
- package/dist/locales/index.d.ts.map +1 -0
- package/dist/locales/index.js +21 -0
- package/dist/locales/index.js.map +1 -0
- package/dist/localized/LocalizedField.css +9 -0
- package/dist/localized/LocalizedField.d.ts +36 -0
- package/dist/localized/LocalizedField.d.ts.map +1 -0
- package/dist/localized/LocalizedField.js +207 -0
- package/dist/localized/LocalizedField.js.map +1 -0
- package/dist/localized/LocalizedField.module.js +12 -0
- package/dist/localized/LocalizedField.module.js.map +1 -0
- package/dist/localized/index.d.ts +2 -0
- package/dist/localized/index.d.ts.map +1 -0
- package/dist/localized/index.js +1 -0
- package/dist/missing/MissingField.css +18 -0
- package/dist/missing/MissingField.d.ts +7 -0
- package/dist/missing/MissingField.d.ts.map +1 -0
- package/dist/missing/MissingField.js +68 -0
- package/dist/missing/MissingField.js.map +1 -0
- package/dist/missing/MissingField.module.js +14 -0
- package/dist/missing/MissingField.module.js.map +1 -0
- package/dist/number/NumberField.d.ts +23 -0
- package/dist/number/NumberField.d.ts.map +1 -0
- package/dist/number/NumberField.js +175 -0
- package/dist/number/NumberField.js.map +1 -0
- package/dist/number/index.d.ts +2 -0
- package/dist/number/index.d.ts.map +1 -0
- package/dist/number/index.js +1 -0
- package/dist/relation/RelationField.css +43 -0
- package/dist/relation/RelationField.d.ts +40 -0
- package/dist/relation/RelationField.d.ts.map +1 -0
- package/dist/relation/RelationField.js +293 -0
- package/dist/relation/RelationField.js.map +1 -0
- package/dist/relation/RelationField.module.js +20 -0
- package/dist/relation/RelationField.module.js.map +1 -0
- package/dist/relation/index.d.ts +3 -0
- package/dist/relation/index.d.ts.map +1 -0
- package/dist/relation/index.js +3 -0
- package/dist/repeater/RepeaterField.css +80 -0
- package/dist/repeater/RepeaterField.d.ts +29 -0
- package/dist/repeater/RepeaterField.d.ts.map +1 -0
- package/dist/repeater/RepeaterField.js +220 -0
- package/dist/repeater/RepeaterField.js.map +1 -0
- package/dist/repeater/RepeaterField.module.js +26 -0
- package/dist/repeater/RepeaterField.module.js.map +1 -0
- package/dist/repeater/index.d.ts +2 -0
- package/dist/repeater/index.d.ts.map +1 -0
- package/dist/repeater/index.js +1 -0
- package/dist/select/SelectField.css +5 -0
- package/dist/select/SelectField.d.ts +38 -0
- package/dist/select/SelectField.d.ts.map +1 -0
- package/dist/select/SelectField.js +434 -0
- package/dist/select/SelectField.js.map +1 -0
- package/dist/select/SelectField.module.js +8 -0
- package/dist/select/SelectField.module.js.map +1 -0
- package/dist/select/index.d.ts +2 -0
- package/dist/select/index.d.ts.map +1 -0
- package/dist/select/index.js +1 -0
- package/dist/shared/DefinitionField.d.ts +32 -0
- package/dist/shared/DefinitionField.d.ts.map +1 -0
- package/dist/shared/DefinitionField.js +153 -0
- package/dist/shared/DefinitionField.js.map +1 -0
- package/dist/shared/builtIn.d.ts +17 -0
- package/dist/shared/builtIn.d.ts.map +1 -0
- package/dist/shared/builtIn.js +52 -0
- package/dist/shared/builtIn.js.map +1 -0
- package/dist/shared/context.d.ts +55 -0
- package/dist/shared/context.d.ts.map +1 -0
- package/dist/shared/context.js +72 -0
- package/dist/shared/context.js.map +1 -0
- package/dist/shared/cx.d.ts +3 -0
- package/dist/shared/cx.d.ts.map +1 -0
- package/dist/shared/cx.js +9 -0
- package/dist/shared/cx.js.map +1 -0
- package/dist/shared/dates.d.ts +15 -0
- package/dist/shared/dates.d.ts.map +1 -0
- package/dist/shared/dates.js +49 -0
- package/dist/shared/dates.js.map +1 -0
- package/dist/shared/entry.d.ts +23 -0
- package/dist/shared/entry.d.ts.map +1 -0
- package/dist/shared/entry.js +45 -0
- package/dist/shared/entry.js.map +1 -0
- package/dist/shared/messages.d.ts +2 -0
- package/dist/shared/messages.d.ts.map +1 -0
- package/dist/shared/messages.js +1 -0
- package/dist/shared/relation.d.ts +37 -0
- package/dist/shared/relation.d.ts.map +1 -0
- package/dist/shared/relation.js +49 -0
- package/dist/shared/relation.js.map +1 -0
- package/dist/shared/types.d.ts +50 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/slug/SlugField.d.ts +24 -0
- package/dist/slug/SlugField.d.ts.map +1 -0
- package/dist/slug/SlugField.js +216 -0
- package/dist/slug/SlugField.js.map +1 -0
- package/dist/slug/index.d.ts +2 -0
- package/dist/slug/index.d.ts.map +1 -0
- package/dist/slug/index.js +1 -0
- package/dist/text/TextField.d.ts +24 -0
- package/dist/text/TextField.d.ts.map +1 -0
- package/dist/text/TextField.js +179 -0
- package/dist/text/TextField.js.map +1 -0
- package/dist/text/index.d.ts +2 -0
- package/dist/text/index.d.ts.map +1 -0
- package/dist/text/index.js +1 -0
- package/dist/textarea/TextAreaField.d.ts +14 -0
- package/dist/textarea/TextAreaField.d.ts.map +1 -0
- package/dist/textarea/TextAreaField.js +126 -0
- package/dist/textarea/TextAreaField.js.map +1 -0
- package/dist/textarea/index.d.ts +2 -0
- package/dist/textarea/index.d.ts.map +1 -0
- package/dist/textarea/index.js +1 -0
- package/dist/time/TimeField.d.ts +13 -0
- package/dist/time/TimeField.d.ts.map +1 -0
- package/dist/time/TimeField.js +49 -0
- package/dist/time/TimeField.js.map +1 -0
- package/dist/time/index.d.ts +2 -0
- package/dist/time/index.d.ts.map +1 -0
- package/dist/time/index.js +1 -0
- package/dist/url/UrlField.css +11 -0
- package/dist/url/UrlField.d.ts +16 -0
- package/dist/url/UrlField.d.ts.map +1 -0
- package/dist/url/UrlField.js +94 -0
- package/dist/url/UrlField.js.map +1 -0
- package/dist/url/UrlField.module.js +8 -0
- package/dist/url/UrlField.module.js.map +1 -0
- package/dist/url/index.d.ts +2 -0
- package/dist/url/index.d.ts.map +1 -0
- package/dist/url/index.js +1 -0
- package/package.json +108 -79
- package/assets/css/styles.css +0 -14
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
import { getFieldProps, getSetting, isString } from "../shared/entry.js";
|
|
2
|
+
import SelectField_module_default from "./SelectField.module.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import { Checkbox, Fieldset, RadioGroup, Select } from "@panneau/ui";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/select/SelectField.tsx
|
|
7
|
+
/**
|
|
8
|
+
* A choice among options, or several with `multiple`, as a dropdown or as radios and checkboxes.
|
|
9
|
+
* Values keep their type (strings, numbers, booleans).
|
|
10
|
+
*/
|
|
11
|
+
function SelectField(props) {
|
|
12
|
+
const $ = c(114);
|
|
13
|
+
const { options, label, description, errors, disabled, readOnly, required, placeholder, name, id, autoFocus, onBlur, className, labelClassName, descriptionClassName, errorsClassName, controlClassName } = props;
|
|
14
|
+
let t0;
|
|
15
|
+
if ($[0] !== props) {
|
|
16
|
+
t0 = props["aria-label"] !== void 0 ? { "aria-label": props["aria-label"] } : {};
|
|
17
|
+
$[0] = props;
|
|
18
|
+
$[1] = t0;
|
|
19
|
+
} else t0 = $[1];
|
|
20
|
+
let t1;
|
|
21
|
+
if ($[2] !== className || $[3] !== description || $[4] !== descriptionClassName || $[5] !== errors || $[6] !== errorsClassName || $[7] !== label || $[8] !== labelClassName || $[9] !== t0) {
|
|
22
|
+
t1 = {
|
|
23
|
+
label,
|
|
24
|
+
description,
|
|
25
|
+
errors,
|
|
26
|
+
className,
|
|
27
|
+
labelClassName,
|
|
28
|
+
descriptionClassName,
|
|
29
|
+
errorsClassName,
|
|
30
|
+
...t0
|
|
31
|
+
};
|
|
32
|
+
$[2] = className;
|
|
33
|
+
$[3] = description;
|
|
34
|
+
$[4] = descriptionClassName;
|
|
35
|
+
$[5] = errors;
|
|
36
|
+
$[6] = errorsClassName;
|
|
37
|
+
$[7] = label;
|
|
38
|
+
$[8] = labelClassName;
|
|
39
|
+
$[9] = t0;
|
|
40
|
+
$[10] = t1;
|
|
41
|
+
} else t1 = $[10];
|
|
42
|
+
const chrome = t1;
|
|
43
|
+
const locked = disabled === true || readOnly === true;
|
|
44
|
+
if (props.multiple === true) {
|
|
45
|
+
let t2;
|
|
46
|
+
if ($[11] !== props.value) {
|
|
47
|
+
t2 = props.value ?? [];
|
|
48
|
+
$[11] = props.value;
|
|
49
|
+
$[12] = t2;
|
|
50
|
+
} else t2 = $[12];
|
|
51
|
+
const selected = t2;
|
|
52
|
+
let t3;
|
|
53
|
+
if ($[13] !== options || $[14] !== props) {
|
|
54
|
+
t3 = (next) => {
|
|
55
|
+
const ordered = options.map(_temp).filter((value) => next.includes(value));
|
|
56
|
+
props.onChange?.(ordered.length > 0 ? ordered : null);
|
|
57
|
+
};
|
|
58
|
+
$[13] = options;
|
|
59
|
+
$[14] = props;
|
|
60
|
+
$[15] = t3;
|
|
61
|
+
} else t3 = $[15];
|
|
62
|
+
const change = t3;
|
|
63
|
+
if (props.widget === "checkboxes") {
|
|
64
|
+
let t4;
|
|
65
|
+
if ($[16] !== change || $[17] !== controlClassName || $[18] !== options || $[19] !== readOnly || $[20] !== selected) {
|
|
66
|
+
let t5;
|
|
67
|
+
if ($[22] !== change || $[23] !== controlClassName || $[24] !== readOnly || $[25] !== selected) {
|
|
68
|
+
t5 = (option_0, index) => /* @__PURE__ */ jsx(Checkbox, {
|
|
69
|
+
isSelected: selected.includes(option_0.value),
|
|
70
|
+
isDisabled: option_0.disabled,
|
|
71
|
+
isReadOnly: readOnly,
|
|
72
|
+
description: option_0.description,
|
|
73
|
+
onChange: (checked) => change(checked ? [...selected, option_0.value] : selected.filter((value_0) => value_0 !== option_0.value)),
|
|
74
|
+
checkboxClassName: controlClassName,
|
|
75
|
+
children: option_0.label
|
|
76
|
+
}, index);
|
|
77
|
+
$[22] = change;
|
|
78
|
+
$[23] = controlClassName;
|
|
79
|
+
$[24] = readOnly;
|
|
80
|
+
$[25] = selected;
|
|
81
|
+
$[26] = t5;
|
|
82
|
+
} else t5 = $[26];
|
|
83
|
+
t4 = options.map(t5);
|
|
84
|
+
$[16] = change;
|
|
85
|
+
$[17] = controlClassName;
|
|
86
|
+
$[18] = options;
|
|
87
|
+
$[19] = readOnly;
|
|
88
|
+
$[20] = selected;
|
|
89
|
+
$[21] = t4;
|
|
90
|
+
} else t4 = $[21];
|
|
91
|
+
let t5;
|
|
92
|
+
if ($[27] !== t4) {
|
|
93
|
+
t5 = /* @__PURE__ */ jsx("div", {
|
|
94
|
+
className: SelectField_module_default.checkboxes,
|
|
95
|
+
children: t4
|
|
96
|
+
});
|
|
97
|
+
$[27] = t4;
|
|
98
|
+
$[28] = t5;
|
|
99
|
+
} else t5 = $[28];
|
|
100
|
+
let t6;
|
|
101
|
+
if ($[29] !== className || $[30] !== description || $[31] !== descriptionClassName || $[32] !== disabled || $[33] !== errors || $[34] !== errorsClassName || $[35] !== label || $[36] !== labelClassName || $[37] !== required || $[38] !== t5) {
|
|
102
|
+
t6 = /* @__PURE__ */ jsx(Fieldset, {
|
|
103
|
+
legend: label,
|
|
104
|
+
description,
|
|
105
|
+
errors,
|
|
106
|
+
isRequired: required,
|
|
107
|
+
isDisabled: disabled,
|
|
108
|
+
className,
|
|
109
|
+
legendClassName: labelClassName,
|
|
110
|
+
descriptionClassName,
|
|
111
|
+
errorsClassName,
|
|
112
|
+
children: t5
|
|
113
|
+
});
|
|
114
|
+
$[29] = className;
|
|
115
|
+
$[30] = description;
|
|
116
|
+
$[31] = descriptionClassName;
|
|
117
|
+
$[32] = disabled;
|
|
118
|
+
$[33] = errors;
|
|
119
|
+
$[34] = errorsClassName;
|
|
120
|
+
$[35] = label;
|
|
121
|
+
$[36] = labelClassName;
|
|
122
|
+
$[37] = required;
|
|
123
|
+
$[38] = t5;
|
|
124
|
+
$[39] = t6;
|
|
125
|
+
} else t6 = $[39];
|
|
126
|
+
return t6;
|
|
127
|
+
}
|
|
128
|
+
let t4;
|
|
129
|
+
if ($[40] !== placeholder) {
|
|
130
|
+
t4 = placeholder !== void 0 ? { placeholder } : {};
|
|
131
|
+
$[40] = placeholder;
|
|
132
|
+
$[41] = t4;
|
|
133
|
+
} else t4 = $[41];
|
|
134
|
+
let t5;
|
|
135
|
+
if ($[42] !== name) {
|
|
136
|
+
t5 = name !== void 0 ? { name } : {};
|
|
137
|
+
$[42] = name;
|
|
138
|
+
$[43] = t5;
|
|
139
|
+
} else t5 = $[43];
|
|
140
|
+
let t6;
|
|
141
|
+
if ($[44] !== id) {
|
|
142
|
+
t6 = id !== void 0 ? { id } : {};
|
|
143
|
+
$[44] = id;
|
|
144
|
+
$[45] = t6;
|
|
145
|
+
} else t6 = $[45];
|
|
146
|
+
let t7;
|
|
147
|
+
if ($[46] !== autoFocus) {
|
|
148
|
+
t7 = autoFocus !== void 0 ? { autoFocus } : {};
|
|
149
|
+
$[46] = autoFocus;
|
|
150
|
+
$[47] = t7;
|
|
151
|
+
} else t7 = $[47];
|
|
152
|
+
let t8;
|
|
153
|
+
if ($[48] !== onBlur) {
|
|
154
|
+
t8 = onBlur !== void 0 ? { onBlur } : {};
|
|
155
|
+
$[48] = onBlur;
|
|
156
|
+
$[49] = t8;
|
|
157
|
+
} else t8 = $[49];
|
|
158
|
+
let t9;
|
|
159
|
+
if ($[50] !== controlClassName) {
|
|
160
|
+
t9 = controlClassName !== void 0 ? { triggerClassName: controlClassName } : {};
|
|
161
|
+
$[50] = controlClassName;
|
|
162
|
+
$[51] = t9;
|
|
163
|
+
} else t9 = $[51];
|
|
164
|
+
let t10;
|
|
165
|
+
if ($[52] !== change || $[53] !== chrome || $[54] !== locked || $[55] !== options || $[56] !== required || $[57] !== selected || $[58] !== t4 || $[59] !== t5 || $[60] !== t6 || $[61] !== t7 || $[62] !== t8 || $[63] !== t9) {
|
|
166
|
+
t10 = /* @__PURE__ */ jsx(Select, {
|
|
167
|
+
...chrome,
|
|
168
|
+
multiple: true,
|
|
169
|
+
options,
|
|
170
|
+
value: selected,
|
|
171
|
+
onChange: change,
|
|
172
|
+
isRequired: required,
|
|
173
|
+
isDisabled: locked,
|
|
174
|
+
...t4,
|
|
175
|
+
...t5,
|
|
176
|
+
...t6,
|
|
177
|
+
...t7,
|
|
178
|
+
...t8,
|
|
179
|
+
...t9
|
|
180
|
+
});
|
|
181
|
+
$[52] = change;
|
|
182
|
+
$[53] = chrome;
|
|
183
|
+
$[54] = locked;
|
|
184
|
+
$[55] = options;
|
|
185
|
+
$[56] = required;
|
|
186
|
+
$[57] = selected;
|
|
187
|
+
$[58] = t4;
|
|
188
|
+
$[59] = t5;
|
|
189
|
+
$[60] = t6;
|
|
190
|
+
$[61] = t7;
|
|
191
|
+
$[62] = t8;
|
|
192
|
+
$[63] = t9;
|
|
193
|
+
$[64] = t10;
|
|
194
|
+
} else t10 = $[64];
|
|
195
|
+
return t10;
|
|
196
|
+
}
|
|
197
|
+
if (props.widget === "radios") {
|
|
198
|
+
const t2 = props.value ?? null;
|
|
199
|
+
let t3;
|
|
200
|
+
if ($[65] !== props) {
|
|
201
|
+
t3 = (value_1) => props.onChange?.(value_1);
|
|
202
|
+
$[65] = props;
|
|
203
|
+
$[66] = t3;
|
|
204
|
+
} else t3 = $[66];
|
|
205
|
+
let t4;
|
|
206
|
+
if ($[67] !== name) {
|
|
207
|
+
t4 = name !== void 0 ? { name } : {};
|
|
208
|
+
$[67] = name;
|
|
209
|
+
$[68] = t4;
|
|
210
|
+
} else t4 = $[68];
|
|
211
|
+
let t5;
|
|
212
|
+
if ($[69] !== id) {
|
|
213
|
+
t5 = id !== void 0 ? { id } : {};
|
|
214
|
+
$[69] = id;
|
|
215
|
+
$[70] = t5;
|
|
216
|
+
} else t5 = $[70];
|
|
217
|
+
let t6;
|
|
218
|
+
if ($[71] !== onBlur) {
|
|
219
|
+
t6 = onBlur !== void 0 ? { onBlur } : {};
|
|
220
|
+
$[71] = onBlur;
|
|
221
|
+
$[72] = t6;
|
|
222
|
+
} else t6 = $[72];
|
|
223
|
+
let t7;
|
|
224
|
+
if ($[73] !== controlClassName) {
|
|
225
|
+
t7 = controlClassName !== void 0 ? { radioClassName: controlClassName } : {};
|
|
226
|
+
$[73] = controlClassName;
|
|
227
|
+
$[74] = t7;
|
|
228
|
+
} else t7 = $[74];
|
|
229
|
+
let t8;
|
|
230
|
+
if ($[75] !== chrome || $[76] !== disabled || $[77] !== options || $[78] !== readOnly || $[79] !== required || $[80] !== t2 || $[81] !== t3 || $[82] !== t4 || $[83] !== t5 || $[84] !== t6 || $[85] !== t7) {
|
|
231
|
+
t8 = /* @__PURE__ */ jsx(RadioGroup, {
|
|
232
|
+
...chrome,
|
|
233
|
+
options,
|
|
234
|
+
value: t2,
|
|
235
|
+
onChange: t3,
|
|
236
|
+
isRequired: required,
|
|
237
|
+
isDisabled: disabled,
|
|
238
|
+
isReadOnly: readOnly,
|
|
239
|
+
...t4,
|
|
240
|
+
...t5,
|
|
241
|
+
...t6,
|
|
242
|
+
...t7
|
|
243
|
+
});
|
|
244
|
+
$[75] = chrome;
|
|
245
|
+
$[76] = disabled;
|
|
246
|
+
$[77] = options;
|
|
247
|
+
$[78] = readOnly;
|
|
248
|
+
$[79] = required;
|
|
249
|
+
$[80] = t2;
|
|
250
|
+
$[81] = t3;
|
|
251
|
+
$[82] = t4;
|
|
252
|
+
$[83] = t5;
|
|
253
|
+
$[84] = t6;
|
|
254
|
+
$[85] = t7;
|
|
255
|
+
$[86] = t8;
|
|
256
|
+
} else t8 = $[86];
|
|
257
|
+
return t8;
|
|
258
|
+
}
|
|
259
|
+
const t2 = props.value ?? null;
|
|
260
|
+
let t3;
|
|
261
|
+
if ($[87] !== props) {
|
|
262
|
+
t3 = (value_2) => props.onChange?.(value_2);
|
|
263
|
+
$[87] = props;
|
|
264
|
+
$[88] = t3;
|
|
265
|
+
} else t3 = $[88];
|
|
266
|
+
let t4;
|
|
267
|
+
if ($[89] !== placeholder) {
|
|
268
|
+
t4 = placeholder !== void 0 ? { placeholder } : {};
|
|
269
|
+
$[89] = placeholder;
|
|
270
|
+
$[90] = t4;
|
|
271
|
+
} else t4 = $[90];
|
|
272
|
+
let t5;
|
|
273
|
+
if ($[91] !== name) {
|
|
274
|
+
t5 = name !== void 0 ? { name } : {};
|
|
275
|
+
$[91] = name;
|
|
276
|
+
$[92] = t5;
|
|
277
|
+
} else t5 = $[92];
|
|
278
|
+
let t6;
|
|
279
|
+
if ($[93] !== id) {
|
|
280
|
+
t6 = id !== void 0 ? { id } : {};
|
|
281
|
+
$[93] = id;
|
|
282
|
+
$[94] = t6;
|
|
283
|
+
} else t6 = $[94];
|
|
284
|
+
let t7;
|
|
285
|
+
if ($[95] !== autoFocus) {
|
|
286
|
+
t7 = autoFocus !== void 0 ? { autoFocus } : {};
|
|
287
|
+
$[95] = autoFocus;
|
|
288
|
+
$[96] = t7;
|
|
289
|
+
} else t7 = $[96];
|
|
290
|
+
let t8;
|
|
291
|
+
if ($[97] !== onBlur) {
|
|
292
|
+
t8 = onBlur !== void 0 ? { onBlur } : {};
|
|
293
|
+
$[97] = onBlur;
|
|
294
|
+
$[98] = t8;
|
|
295
|
+
} else t8 = $[98];
|
|
296
|
+
let t9;
|
|
297
|
+
if ($[99] !== controlClassName) {
|
|
298
|
+
t9 = controlClassName !== void 0 ? { triggerClassName: controlClassName } : {};
|
|
299
|
+
$[99] = controlClassName;
|
|
300
|
+
$[100] = t9;
|
|
301
|
+
} else t9 = $[100];
|
|
302
|
+
let t10;
|
|
303
|
+
if ($[101] !== chrome || $[102] !== locked || $[103] !== options || $[104] !== required || $[105] !== t2 || $[106] !== t3 || $[107] !== t4 || $[108] !== t5 || $[109] !== t6 || $[110] !== t7 || $[111] !== t8 || $[112] !== t9) {
|
|
304
|
+
t10 = /* @__PURE__ */ jsx(Select, {
|
|
305
|
+
...chrome,
|
|
306
|
+
options,
|
|
307
|
+
value: t2,
|
|
308
|
+
onChange: t3,
|
|
309
|
+
isRequired: required,
|
|
310
|
+
isDisabled: locked,
|
|
311
|
+
...t4,
|
|
312
|
+
...t5,
|
|
313
|
+
...t6,
|
|
314
|
+
...t7,
|
|
315
|
+
...t8,
|
|
316
|
+
...t9
|
|
317
|
+
});
|
|
318
|
+
$[101] = chrome;
|
|
319
|
+
$[102] = locked;
|
|
320
|
+
$[103] = options;
|
|
321
|
+
$[104] = required;
|
|
322
|
+
$[105] = t2;
|
|
323
|
+
$[106] = t3;
|
|
324
|
+
$[107] = t4;
|
|
325
|
+
$[108] = t5;
|
|
326
|
+
$[109] = t6;
|
|
327
|
+
$[110] = t7;
|
|
328
|
+
$[111] = t8;
|
|
329
|
+
$[112] = t9;
|
|
330
|
+
$[113] = t10;
|
|
331
|
+
} else t10 = $[113];
|
|
332
|
+
return t10;
|
|
333
|
+
}
|
|
334
|
+
function _temp(option) {
|
|
335
|
+
return option.value;
|
|
336
|
+
}
|
|
337
|
+
function isOptionValue(value) {
|
|
338
|
+
return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* The `select` type: `options`, `multiple`, and setting `widget` (`radios` for a single choice,
|
|
342
|
+
* `checkboxes` for several).
|
|
343
|
+
*/
|
|
344
|
+
function SelectFieldEntry(props) {
|
|
345
|
+
const $ = c(26);
|
|
346
|
+
const { field } = props;
|
|
347
|
+
let t0;
|
|
348
|
+
if ($[0] !== field) {
|
|
349
|
+
t0 = getSetting(field, "widget", isString);
|
|
350
|
+
$[0] = field;
|
|
351
|
+
$[1] = t0;
|
|
352
|
+
} else t0 = $[1];
|
|
353
|
+
const widget = t0;
|
|
354
|
+
let t1;
|
|
355
|
+
if ($[2] !== field.options) {
|
|
356
|
+
t1 = field.options ?? [];
|
|
357
|
+
$[2] = field.options;
|
|
358
|
+
$[3] = t1;
|
|
359
|
+
} else t1 = $[3];
|
|
360
|
+
const options = t1;
|
|
361
|
+
if (field.multiple === true) {
|
|
362
|
+
let t2;
|
|
363
|
+
if ($[4] !== props.value) {
|
|
364
|
+
t2 = Array.isArray(props.value) ? props.value.filter(isOptionValue) : null;
|
|
365
|
+
$[4] = props.value;
|
|
366
|
+
$[5] = t2;
|
|
367
|
+
} else t2 = $[5];
|
|
368
|
+
const value = t2;
|
|
369
|
+
let t3;
|
|
370
|
+
if ($[6] !== props) {
|
|
371
|
+
t3 = getFieldProps(props);
|
|
372
|
+
$[6] = props;
|
|
373
|
+
$[7] = t3;
|
|
374
|
+
} else t3 = $[7];
|
|
375
|
+
let t4;
|
|
376
|
+
if ($[8] !== widget) {
|
|
377
|
+
t4 = widget === "checkboxes" ? { widget } : {};
|
|
378
|
+
$[8] = widget;
|
|
379
|
+
$[9] = t4;
|
|
380
|
+
} else t4 = $[9];
|
|
381
|
+
let t5;
|
|
382
|
+
if ($[10] !== options || $[11] !== props.onChange || $[12] !== t3 || $[13] !== t4 || $[14] !== value) {
|
|
383
|
+
t5 = /* @__PURE__ */ jsx(SelectField, {
|
|
384
|
+
...t3,
|
|
385
|
+
multiple: true,
|
|
386
|
+
options,
|
|
387
|
+
value,
|
|
388
|
+
onChange: props.onChange,
|
|
389
|
+
...t4
|
|
390
|
+
});
|
|
391
|
+
$[10] = options;
|
|
392
|
+
$[11] = props.onChange;
|
|
393
|
+
$[12] = t3;
|
|
394
|
+
$[13] = t4;
|
|
395
|
+
$[14] = value;
|
|
396
|
+
$[15] = t5;
|
|
397
|
+
} else t5 = $[15];
|
|
398
|
+
return t5;
|
|
399
|
+
}
|
|
400
|
+
let t2;
|
|
401
|
+
if ($[16] !== props) {
|
|
402
|
+
t2 = getFieldProps(props);
|
|
403
|
+
$[16] = props;
|
|
404
|
+
$[17] = t2;
|
|
405
|
+
} else t2 = $[17];
|
|
406
|
+
const t3 = isOptionValue(props.value) ? props.value : null;
|
|
407
|
+
let t4;
|
|
408
|
+
if ($[18] !== widget) {
|
|
409
|
+
t4 = widget === "radios" ? { widget } : {};
|
|
410
|
+
$[18] = widget;
|
|
411
|
+
$[19] = t4;
|
|
412
|
+
} else t4 = $[19];
|
|
413
|
+
let t5;
|
|
414
|
+
if ($[20] !== options || $[21] !== props.onChange || $[22] !== t2 || $[23] !== t3 || $[24] !== t4) {
|
|
415
|
+
t5 = /* @__PURE__ */ jsx(SelectField, {
|
|
416
|
+
...t2,
|
|
417
|
+
options,
|
|
418
|
+
value: t3,
|
|
419
|
+
onChange: props.onChange,
|
|
420
|
+
...t4
|
|
421
|
+
});
|
|
422
|
+
$[20] = options;
|
|
423
|
+
$[21] = props.onChange;
|
|
424
|
+
$[22] = t2;
|
|
425
|
+
$[23] = t3;
|
|
426
|
+
$[24] = t4;
|
|
427
|
+
$[25] = t5;
|
|
428
|
+
} else t5 = $[25];
|
|
429
|
+
return t5;
|
|
430
|
+
}
|
|
431
|
+
//#endregion
|
|
432
|
+
export { SelectField, SelectFieldEntry };
|
|
433
|
+
|
|
434
|
+
//# sourceMappingURL=SelectField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectField.js","names":["index","option","readOnly","value","controlClassName","label","description","errors","required","disabled","className","labelClassName","descriptionClassName","errorsClassName","options","selected","change","locked","_c","styles"],"sources":["../../src/select/SelectField.tsx"],"sourcesContent":["import type { Option } from '@panneau/protocol';\nimport { Checkbox, Fieldset, type OptionValue, RadioGroup, Select } from '@panneau/ui';\n\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\nimport styles from './SelectField.module.css';\n\nexport type { OptionValue };\n\n/** Props of both single and multiple select fields. */\nexport interface SelectFieldBaseProps extends Omit<FieldProps<never>, 'value' | 'onChange'> {\n /** The choices. Same shape as the protocol's `Option`. */\n options: readonly Option[];\n placeholder?: string;\n controlClassName?: string;\n}\n\nexport interface SingleSelectFieldProps extends SelectFieldBaseProps {\n multiple?: false;\n value?: OptionValue | null;\n onChange?: (value: OptionValue | null) => void;\n /** `select` (default): a dropdown. `radios`: every choice visible. */\n widget?: 'select' | 'radios';\n}\n\nexport interface MultipleSelectFieldProps extends SelectFieldBaseProps {\n multiple: true;\n value?: readonly OptionValue[] | null;\n /** Called with the selected values, in the order of the options. An empty list is `null`. */\n onChange?: (value: OptionValue[] | null) => void;\n /** `select` (default): a dropdown. `checkboxes`: every choice visible. */\n widget?: 'select' | 'checkboxes';\n}\n\nexport type SelectFieldProps = SingleSelectFieldProps | MultipleSelectFieldProps;\n\n/**\n * A choice among options, or several with `multiple`, as a dropdown or as radios and checkboxes.\n * Values keep their type (strings, numbers, booleans).\n */\nexport function SelectField(props: SelectFieldProps) {\n const {\n options,\n label,\n description,\n errors,\n disabled,\n readOnly,\n required,\n placeholder,\n name,\n id,\n autoFocus,\n onBlur,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n controlClassName,\n } = props;\n const chrome = {\n label,\n description,\n errors,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n ...(props['aria-label'] !== undefined ? { 'aria-label': props['aria-label'] } : {}),\n };\n const locked = disabled === true || readOnly === true;\n\n if (props.multiple === true) {\n const selected = props.value ?? [];\n const change = (next: readonly OptionValue[]) => {\n // Keep the order of the options, whatever the order of the clicks.\n const ordered = options\n .map((option) => option.value)\n .filter((value) => next.includes(value));\n props.onChange?.(ordered.length > 0 ? ordered : null);\n };\n if (props.widget === 'checkboxes') {\n return (\n <Fieldset\n legend={label}\n description={description}\n errors={errors}\n isRequired={required}\n isDisabled={disabled}\n className={className}\n legendClassName={labelClassName}\n descriptionClassName={descriptionClassName}\n errorsClassName={errorsClassName}\n >\n <div className={styles.checkboxes}>\n {options.map((option, index) => (\n <Checkbox\n key={index}\n isSelected={selected.includes(option.value)}\n isDisabled={option.disabled}\n isReadOnly={readOnly}\n description={option.description}\n onChange={(checked) =>\n change(\n checked\n ? [...selected, option.value]\n : selected.filter((value) => value !== option.value),\n )\n }\n checkboxClassName={controlClassName}\n >\n {option.label}\n </Checkbox>\n ))}\n </div>\n </Fieldset>\n );\n }\n return (\n <Select\n {...chrome}\n multiple\n options={options}\n value={selected}\n onChange={change}\n isRequired={required}\n isDisabled={locked}\n {...(placeholder !== undefined ? { placeholder } : {})}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(autoFocus !== undefined ? { autoFocus } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { triggerClassName: controlClassName } : {})}\n />\n );\n }\n\n if (props.widget === 'radios') {\n return (\n <RadioGroup\n {...chrome}\n options={options}\n value={props.value ?? null}\n onChange={(value) => props.onChange?.(value)}\n isRequired={required}\n isDisabled={disabled}\n isReadOnly={readOnly}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { radioClassName: controlClassName } : {})}\n />\n );\n }\n return (\n <Select\n {...chrome}\n options={options}\n value={props.value ?? null}\n onChange={(value) => props.onChange?.(value)}\n isRequired={required}\n isDisabled={locked}\n {...(placeholder !== undefined ? { placeholder } : {})}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(autoFocus !== undefined ? { autoFocus } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { triggerClassName: controlClassName } : {})}\n />\n );\n}\n\nfunction isOptionValue(value: unknown): value is OptionValue {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\n/**\n * The `select` type: `options`, `multiple`, and setting `widget` (`radios` for a single choice,\n * `checkboxes` for several).\n */\nexport function SelectFieldEntry(props: FieldEntryProps) {\n const { field } = props;\n const widget = getSetting(field, 'widget', isString);\n const options = field.options ?? [];\n if (field.multiple === true) {\n const value = Array.isArray(props.value) ? props.value.filter(isOptionValue) : null;\n return (\n <SelectField\n {...getFieldProps(props)}\n multiple\n options={options}\n value={value}\n onChange={props.onChange}\n {...(widget === 'checkboxes' ? { widget } : {})}\n />\n );\n }\n return (\n <SelectField\n {...getFieldProps(props)}\n options={options}\n value={isOptionValue(props.value) ? props.value : null}\n onChange={props.onChange}\n {...(widget === 'radios' ? { widget } : {})}\n />\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "./SelectField.css";
|
|
2
|
+
//#region src/select/SelectField.module.css
|
|
3
|
+
var checkboxes = "panneau-checkboxes-To0J7N";
|
|
4
|
+
var SelectField_module_default = { checkboxes };
|
|
5
|
+
//#endregion
|
|
6
|
+
export { checkboxes, SelectField_module_default as default };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=SelectField.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectField.module.js","names":[],"sources":["../../src/select/SelectField.module.css"],"sourcesContent":[".checkboxes {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-space-1);\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,WAAW,EACX,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC9B,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SelectField, SelectFieldEntry } from "./SelectField.js";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type Field } from '@panneau/protocol';
|
|
2
|
+
import type { FieldEntryProps } from './types';
|
|
3
|
+
export interface NestedFieldProps {
|
|
4
|
+
field: Field;
|
|
5
|
+
/** Dot path of the field's value. */
|
|
6
|
+
path: string;
|
|
7
|
+
/** The value, without a binding. */
|
|
8
|
+
value?: unknown;
|
|
9
|
+
/** Sets the value, without a binding. */
|
|
10
|
+
onChange?: (value: unknown) => void;
|
|
11
|
+
onBlur?: () => void;
|
|
12
|
+
errors?: readonly string[];
|
|
13
|
+
/** The object the field belongs to, for conditions and generated values. */
|
|
14
|
+
parentValue?: unknown;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
readOnly?: boolean;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A field inside another one (a group, a block, a localized value), or at the top of a form.
|
|
21
|
+
* With a binding in context, the binding gives its value and decides whether it shows. Without
|
|
22
|
+
* one, it uses `value` and `onChange`, and hides itself when its `visibleWhen` condition on the
|
|
23
|
+
* parent value is false.
|
|
24
|
+
*/
|
|
25
|
+
export declare function NestedField({ field, path, value, onChange, onBlur, errors, parentValue, disabled, readOnly, className, }: NestedFieldProps): import("react").JSX.Element | null;
|
|
26
|
+
/**
|
|
27
|
+
* Renders a field of the definition with the entry of its type: from the fields context, or a
|
|
28
|
+
* built-in one. A localized field renders an input per locale. A type without an entry renders a
|
|
29
|
+
* placeholder that names the missing plugin.
|
|
30
|
+
*/
|
|
31
|
+
export declare function DefinitionField(props: FieldEntryProps): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=DefinitionField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefinitionField.d.ts","sourceRoot":"","sources":["../../src/shared/DefinitionField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,mBAAmB,CAAC;AASlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,GACZ,EAAE,gBAAgB,sCAgClB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,+BAQrD"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { getParentPath, useFieldsContext } from "./context.js";
|
|
2
|
+
import { LocalizedFieldEntry } from "../localized/LocalizedField.js";
|
|
3
|
+
import { MissingFieldEntry } from "../missing/MissingField.js";
|
|
4
|
+
import { builtInFields } from "./builtIn.js";
|
|
5
|
+
import { c } from "react/compiler-runtime";
|
|
6
|
+
import { evaluateCondition } from "@panneau/protocol";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
//#region src/shared/DefinitionField.tsx
|
|
9
|
+
/**
|
|
10
|
+
* A field inside another one (a group, a block, a localized value), or at the top of a form.
|
|
11
|
+
* With a binding in context, the binding gives its value and decides whether it shows. Without
|
|
12
|
+
* one, it uses `value` and `onChange`, and hides itself when its `visibleWhen` condition on the
|
|
13
|
+
* parent value is false.
|
|
14
|
+
*/
|
|
15
|
+
function NestedField(t0) {
|
|
16
|
+
const $ = c(33);
|
|
17
|
+
const { field, path, value, onChange, onBlur, errors, parentValue, disabled, readOnly, className } = t0;
|
|
18
|
+
const { binding: Binding } = useFieldsContext();
|
|
19
|
+
let t1;
|
|
20
|
+
if ($[0] !== disabled) {
|
|
21
|
+
t1 = disabled !== void 0 ? { disabled } : {};
|
|
22
|
+
$[0] = disabled;
|
|
23
|
+
$[1] = t1;
|
|
24
|
+
} else t1 = $[1];
|
|
25
|
+
let t2;
|
|
26
|
+
if ($[2] !== readOnly) {
|
|
27
|
+
t2 = readOnly !== void 0 ? { readOnly } : {};
|
|
28
|
+
$[2] = readOnly;
|
|
29
|
+
$[3] = t2;
|
|
30
|
+
} else t2 = $[3];
|
|
31
|
+
let t3;
|
|
32
|
+
if ($[4] !== className) {
|
|
33
|
+
t3 = className !== void 0 ? { className } : {};
|
|
34
|
+
$[4] = className;
|
|
35
|
+
$[5] = t3;
|
|
36
|
+
} else t3 = $[5];
|
|
37
|
+
let t4;
|
|
38
|
+
if ($[6] !== field || $[7] !== parentValue || $[8] !== path || $[9] !== t1 || $[10] !== t2 || $[11] !== t3) {
|
|
39
|
+
t4 = {
|
|
40
|
+
field,
|
|
41
|
+
path,
|
|
42
|
+
parentValue,
|
|
43
|
+
...t1,
|
|
44
|
+
...t2,
|
|
45
|
+
...t3
|
|
46
|
+
};
|
|
47
|
+
$[6] = field;
|
|
48
|
+
$[7] = parentValue;
|
|
49
|
+
$[8] = path;
|
|
50
|
+
$[9] = t1;
|
|
51
|
+
$[10] = t2;
|
|
52
|
+
$[11] = t3;
|
|
53
|
+
$[12] = t4;
|
|
54
|
+
} else t4 = $[12];
|
|
55
|
+
const shared = t4;
|
|
56
|
+
if (Binding !== null) {
|
|
57
|
+
let t5;
|
|
58
|
+
if ($[13] !== path) {
|
|
59
|
+
t5 = getParentPath(path);
|
|
60
|
+
$[13] = path;
|
|
61
|
+
$[14] = t5;
|
|
62
|
+
} else t5 = $[14];
|
|
63
|
+
let t6;
|
|
64
|
+
if ($[15] !== shared) {
|
|
65
|
+
t6 = (bound) => /* @__PURE__ */ jsx(DefinitionField, {
|
|
66
|
+
...shared,
|
|
67
|
+
...bound
|
|
68
|
+
});
|
|
69
|
+
$[15] = shared;
|
|
70
|
+
$[16] = t6;
|
|
71
|
+
} else t6 = $[16];
|
|
72
|
+
let t7;
|
|
73
|
+
if ($[17] !== Binding || $[18] !== field || $[19] !== path || $[20] !== t5 || $[21] !== t6) {
|
|
74
|
+
t7 = /* @__PURE__ */ jsx(Binding, {
|
|
75
|
+
field,
|
|
76
|
+
path,
|
|
77
|
+
parentPath: t5,
|
|
78
|
+
render: t6
|
|
79
|
+
});
|
|
80
|
+
$[17] = Binding;
|
|
81
|
+
$[18] = field;
|
|
82
|
+
$[19] = path;
|
|
83
|
+
$[20] = t5;
|
|
84
|
+
$[21] = t6;
|
|
85
|
+
$[22] = t7;
|
|
86
|
+
} else t7 = $[22];
|
|
87
|
+
return t7;
|
|
88
|
+
}
|
|
89
|
+
if (field.visibleWhen !== void 0 && !evaluateCondition(field.visibleWhen, parentValue)) return null;
|
|
90
|
+
const t5 = onChange ?? _temp;
|
|
91
|
+
let t6;
|
|
92
|
+
if ($[23] !== onBlur) {
|
|
93
|
+
t6 = onBlur !== void 0 ? { onBlur } : {};
|
|
94
|
+
$[23] = onBlur;
|
|
95
|
+
$[24] = t6;
|
|
96
|
+
} else t6 = $[24];
|
|
97
|
+
let t7;
|
|
98
|
+
if ($[25] !== errors) {
|
|
99
|
+
t7 = errors !== void 0 ? { errors } : {};
|
|
100
|
+
$[25] = errors;
|
|
101
|
+
$[26] = t7;
|
|
102
|
+
} else t7 = $[26];
|
|
103
|
+
let t8;
|
|
104
|
+
if ($[27] !== shared || $[28] !== t5 || $[29] !== t6 || $[30] !== t7 || $[31] !== value) {
|
|
105
|
+
t8 = /* @__PURE__ */ jsx(DefinitionField, {
|
|
106
|
+
...shared,
|
|
107
|
+
value,
|
|
108
|
+
onChange: t5,
|
|
109
|
+
...t6,
|
|
110
|
+
...t7
|
|
111
|
+
});
|
|
112
|
+
$[27] = shared;
|
|
113
|
+
$[28] = t5;
|
|
114
|
+
$[29] = t6;
|
|
115
|
+
$[30] = t7;
|
|
116
|
+
$[31] = value;
|
|
117
|
+
$[32] = t8;
|
|
118
|
+
} else t8 = $[32];
|
|
119
|
+
return t8;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Renders a field of the definition with the entry of its type: from the fields context, or a
|
|
123
|
+
* built-in one. A localized field renders an input per locale. A type without an entry renders a
|
|
124
|
+
* placeholder that names the missing plugin.
|
|
125
|
+
*/
|
|
126
|
+
function _temp() {}
|
|
127
|
+
function DefinitionField(props) {
|
|
128
|
+
const $ = c(5);
|
|
129
|
+
const { components } = useFieldsContext();
|
|
130
|
+
const { field } = props;
|
|
131
|
+
if (field.localized === true) {
|
|
132
|
+
let t0;
|
|
133
|
+
if ($[0] !== props) {
|
|
134
|
+
t0 = /* @__PURE__ */ jsx(LocalizedFieldEntry, { ...props });
|
|
135
|
+
$[0] = props;
|
|
136
|
+
$[1] = t0;
|
|
137
|
+
} else t0 = $[1];
|
|
138
|
+
return t0;
|
|
139
|
+
}
|
|
140
|
+
const Entry = components[field.type] ?? builtInFields[field.type] ?? MissingFieldEntry;
|
|
141
|
+
let t0;
|
|
142
|
+
if ($[2] !== Entry || $[3] !== props) {
|
|
143
|
+
t0 = /* @__PURE__ */ jsx(Entry, { ...props });
|
|
144
|
+
$[2] = Entry;
|
|
145
|
+
$[3] = props;
|
|
146
|
+
$[4] = t0;
|
|
147
|
+
} else t0 = $[4];
|
|
148
|
+
return t0;
|
|
149
|
+
}
|
|
150
|
+
//#endregion
|
|
151
|
+
export { DefinitionField, NestedField };
|
|
152
|
+
|
|
153
|
+
//# sourceMappingURL=DefinitionField.js.map
|