@react-typed-forms/schemas-html 3.0.0 → 3.1.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/lib/components/CheckRenderer.d.ts +2 -7
- package/lib/components/DefaultAccordion.d.ts +1 -1
- package/lib/components/DefaultArrayRenderer.d.ts +2 -1
- package/lib/components/DefaultLayout.d.ts +2 -3
- package/lib/createDefaultRenderers.d.ts +17 -4
- package/lib/index.cjs +430 -322
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +417 -286
- package/lib/index.js.map +1 -1
- package/lib/tailwind.d.ts +2 -2
- package/package.json +5 -5
package/lib/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React, { createElement, useState, useMemo, Fragment, useEffect, useRef } from 'react';
|
|
2
1
|
import clsx from 'clsx';
|
|
3
2
|
import { DisplayDataType, rendererClass, coerceToString, getOverrideClass, FieldType, createDataRenderer, fieldOptionAdornment, DataRenderType, createLayoutRenderer, renderLayoutParts, createGroupRenderer, GroupRenderType, isTabsRenderer, isSelectChildRenderer, isGridRenderer, isFlexRenderer, createVisibilityRenderer, getJsonPath, useJsonataExpression, getRootDataNode, getLastDefinedValue, getNullToggler, mergeObjects, isArrayRenderer, isCompoundField, ControlDefinitionType, makeHookDepString, createArrayActions, getLengthRestrictions, lookupDataNode, applyArrayLengthRestrictions, buildSchema, stringField, schemaDataForFieldRef, schemaForFieldRef, rootSchemaNode, addMissingControlsForSchema, useControlRendererComponent, groupedControl, makeSchemaDataNode, createAdornmentRenderer, getIsEditing, appendMarkupAt, AdornmentPlacement, wrapMarkup, getAllValues, ControlAdornmentType, getExternalEditData, visitFormDataInContext, validationVisitor, createActionRenderer, isDataGroupRenderer, isDisplayOnlyRenderer, hasOptions, isTextfieldRenderer, isOptionalAdornment, isSetFieldAdornment, useDynamicHooks, wrapLayout, isIconAdornment, isAccordionAdornment, LabelType } from '@react-typed-forms/schemas';
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useComponentTracking, formControlProps, useControl, useControlEffect, RenderArrayElements, useComputed, useTrackedComponent, RenderElements, controlValues, removeElement, setFields, newControl, Fcheckbox as Fcheckbox$1 } from '@react-typed-forms/core';
|
|
5
|
-
import {
|
|
5
|
+
import { useState, useMemo, useEffect, createElement, useRef } from 'react';
|
|
6
6
|
import { useAutocomplete } from '@mui/base';
|
|
7
7
|
import { Modal, Dialog } from '@astroapps/aria-base';
|
|
8
8
|
import { useOverlayTriggerState } from '@react-stately/overlays';
|
|
@@ -32,7 +32,7 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
|
32
32
|
const _excluded$4 = ["data", "display", "className", "style", "renderer"];
|
|
33
33
|
function createDefaultDisplayRenderer(options = {}) {
|
|
34
34
|
return {
|
|
35
|
-
render: (props, renderer) =>
|
|
35
|
+
render: (props, renderer) => /*#__PURE__*/jsx(DefaultDisplay, _extends({}, options, props, {
|
|
36
36
|
renderer: renderer
|
|
37
37
|
})),
|
|
38
38
|
type: "display"
|
|
@@ -49,20 +49,29 @@ function DefaultDisplay(_ref) {
|
|
|
49
49
|
renderer
|
|
50
50
|
} = _ref,
|
|
51
51
|
options = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
52
|
-
const
|
|
52
|
+
const {
|
|
53
|
+
I,
|
|
54
|
+
Div,
|
|
55
|
+
Span,
|
|
56
|
+
B,
|
|
57
|
+
H1
|
|
58
|
+
} = renderer.html;
|
|
53
59
|
switch (data.type) {
|
|
54
60
|
case DisplayDataType.Icon:
|
|
55
|
-
return
|
|
61
|
+
return /*#__PURE__*/jsx(I, {
|
|
56
62
|
style: style,
|
|
57
63
|
className: clsx(getOverrideClass(className), display ? display.value : data.iconClass)
|
|
58
64
|
});
|
|
59
65
|
case DisplayDataType.Text:
|
|
60
|
-
return
|
|
66
|
+
return /*#__PURE__*/jsx(Div, {
|
|
61
67
|
style: style,
|
|
62
|
-
className: rendererClass(className, options.textClassName)
|
|
63
|
-
|
|
68
|
+
className: rendererClass(className, options.textClassName),
|
|
69
|
+
children: /*#__PURE__*/jsx(Span, {
|
|
70
|
+
children: display ? coerceToString(display.value) : data.text
|
|
71
|
+
})
|
|
72
|
+
});
|
|
64
73
|
case DisplayDataType.Html:
|
|
65
|
-
return
|
|
74
|
+
return /*#__PURE__*/jsx(Div, {
|
|
66
75
|
style: style,
|
|
67
76
|
className: rendererClass(className, options.htmlClassName),
|
|
68
77
|
dangerouslySetInnerHTML: {
|
|
@@ -70,9 +79,15 @@ function DefaultDisplay(_ref) {
|
|
|
70
79
|
}
|
|
71
80
|
});
|
|
72
81
|
case DisplayDataType.Custom:
|
|
73
|
-
return
|
|
82
|
+
return /*#__PURE__*/jsx(Div, {
|
|
83
|
+
children: /*#__PURE__*/jsxs(B, {
|
|
84
|
+
children: ["(", data.customId, ")"]
|
|
85
|
+
})
|
|
86
|
+
});
|
|
74
87
|
default:
|
|
75
|
-
return
|
|
88
|
+
return /*#__PURE__*/jsxs(H1, {
|
|
89
|
+
children: ["Unknown display type: ", data.type]
|
|
90
|
+
});
|
|
76
91
|
}
|
|
77
92
|
} finally {
|
|
78
93
|
_effect();
|
|
@@ -97,9 +112,10 @@ function ControlInput(_ref) {
|
|
|
97
112
|
inputProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded2$1);
|
|
98
113
|
const textValue = useControl(() => toText(value));
|
|
99
114
|
useControlEffect(() => control.value, v => textValue.value = toText(v));
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
115
|
+
const {
|
|
116
|
+
Input
|
|
117
|
+
} = renderer.html;
|
|
118
|
+
return /*#__PURE__*/jsx(Input, _extends({}, inputProps, {
|
|
103
119
|
type: convert[0],
|
|
104
120
|
value: textValue.value,
|
|
105
121
|
onChange: e => {
|
|
@@ -148,7 +164,7 @@ const _excluded$2 = ["state", "options", "className", "convert", "required", "em
|
|
|
148
164
|
function createSelectRenderer(options = {}) {
|
|
149
165
|
return createDataRenderer((props, asArray) => {
|
|
150
166
|
var _props$options;
|
|
151
|
-
return
|
|
167
|
+
return /*#__PURE__*/jsx(SelectDataRenderer, {
|
|
152
168
|
className: rendererClass(props.className, options.className),
|
|
153
169
|
state: props.control,
|
|
154
170
|
id: props.id,
|
|
@@ -184,23 +200,25 @@ function SelectDataRenderer(_ref) {
|
|
|
184
200
|
const [showEmpty] = useState(!required || value == null);
|
|
185
201
|
const optionStringMap = useMemo(() => Object.fromEntries(options.map(x => [convert(x.value), x.value])), [options]);
|
|
186
202
|
const optionGroups = useMemo(() => new Set(options.filter(x => x.group).map(x => x.group)), [options]);
|
|
187
|
-
return
|
|
203
|
+
return /*#__PURE__*/jsxs("select", _extends({}, props, {
|
|
188
204
|
className: className,
|
|
189
205
|
onChange: v => state.value = optionStringMap[v.target.value],
|
|
190
206
|
value: convert(value),
|
|
191
|
-
disabled: disabled || readonly
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
207
|
+
disabled: disabled || readonly,
|
|
208
|
+
children: [showEmpty && /*#__PURE__*/jsx("option", {
|
|
209
|
+
value: "",
|
|
210
|
+
children: required ? requiredText : emptyText
|
|
211
|
+
}), [...optionGroups.keys()].map(x => /*#__PURE__*/jsx("optgroup", {
|
|
212
|
+
label: x,
|
|
213
|
+
children: options.filter(o => o.group === x).map(renderOption)
|
|
214
|
+
}, x)), options.filter(x => !x.group).map(renderOption)]
|
|
215
|
+
}));
|
|
198
216
|
function renderOption(x, i) {
|
|
199
|
-
return
|
|
200
|
-
key: i,
|
|
217
|
+
return /*#__PURE__*/jsx("option", {
|
|
201
218
|
value: convert(x.value),
|
|
202
|
-
disabled: !!x.disabled
|
|
203
|
-
|
|
219
|
+
disabled: !!x.disabled,
|
|
220
|
+
children: x.name
|
|
221
|
+
}, i);
|
|
204
222
|
}
|
|
205
223
|
} finally {
|
|
206
224
|
_effect();
|
|
@@ -223,7 +241,7 @@ function createSelectConversion(ft) {
|
|
|
223
241
|
const _excluded$1 = ["control", "type", "notValue", "renderer"],
|
|
224
242
|
_excluded2 = ["value", "onChange", "errorText"];
|
|
225
243
|
function createRadioRenderer(options = {}) {
|
|
226
|
-
return createDataRenderer((p, renderer) =>
|
|
244
|
+
return createDataRenderer((p, renderer) => /*#__PURE__*/jsx(CheckButtons, _extends({
|
|
227
245
|
classes: options,
|
|
228
246
|
controlClasses: p.renderOptions
|
|
229
247
|
}, p, {
|
|
@@ -239,7 +257,7 @@ function createRadioRenderer(options = {}) {
|
|
|
239
257
|
});
|
|
240
258
|
}
|
|
241
259
|
function createCheckListRenderer(options = {}) {
|
|
242
|
-
return createDataRenderer((p, renderer) =>
|
|
260
|
+
return createDataRenderer((p, renderer) => /*#__PURE__*/jsx(CheckButtons, _extends({
|
|
243
261
|
classes: options,
|
|
244
262
|
controlClasses: p.renderOptions
|
|
245
263
|
}, p, {
|
|
@@ -276,40 +294,50 @@ function CheckButtons({
|
|
|
276
294
|
}) {
|
|
277
295
|
var _effect = useComponentTracking();
|
|
278
296
|
try {
|
|
279
|
-
const
|
|
297
|
+
const {
|
|
298
|
+
Button,
|
|
299
|
+
Input,
|
|
300
|
+
Label,
|
|
301
|
+
Div
|
|
302
|
+
} = renderer.html;
|
|
280
303
|
const {
|
|
281
304
|
disabled
|
|
282
305
|
} = control;
|
|
283
306
|
const name = "r" + control.uniqueId;
|
|
284
|
-
return
|
|
307
|
+
return /*#__PURE__*/jsx(Div, {
|
|
285
308
|
className: className,
|
|
286
|
-
id: id
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
309
|
+
id: id,
|
|
310
|
+
children: /*#__PURE__*/jsx(RenderArrayElements, {
|
|
311
|
+
array: options == null ? void 0 : options.filter(x => x.value != null),
|
|
312
|
+
children: (o, i) => {
|
|
313
|
+
const checked = useComputed(() => isChecked(control, o)).value;
|
|
314
|
+
const selOrUnsel = checked ? rendererClass(controlClasses == null ? void 0 : controlClasses.selectedClass, classes.selectedClass) : rendererClass(controlClasses == null ? void 0 : controlClasses.notSelectedClass, classes.notSelectedClass);
|
|
315
|
+
return /*#__PURE__*/jsxs(Button, {
|
|
316
|
+
className: clsx(rendererClass(controlClasses == null ? void 0 : controlClasses.entryWrapperClass, classes.entryWrapperClass), selOrUnsel),
|
|
317
|
+
onClick: () => !readonly && setChecked(control, o, !checked),
|
|
318
|
+
children: [/*#__PURE__*/jsxs(Div, {
|
|
319
|
+
className: classes.entryClass,
|
|
320
|
+
children: [/*#__PURE__*/jsx(Input, {
|
|
321
|
+
id: name + "_" + i,
|
|
322
|
+
className: classes.checkClass,
|
|
323
|
+
type: type,
|
|
324
|
+
name: name,
|
|
325
|
+
readOnly: readonly,
|
|
326
|
+
disabled: disabled,
|
|
327
|
+
checked: checked,
|
|
328
|
+
onChange: x => {
|
|
329
|
+
!readonly && setChecked(control, o, x.target.checked);
|
|
330
|
+
}
|
|
331
|
+
}), /*#__PURE__*/jsx(Label, {
|
|
332
|
+
className: classes.labelClass,
|
|
333
|
+
htmlFor: name + "_" + i,
|
|
334
|
+
children: o.name
|
|
335
|
+
})]
|
|
336
|
+
}), entryAdornment == null ? void 0 : entryAdornment(o, i, checked)]
|
|
337
|
+
});
|
|
307
338
|
}
|
|
308
|
-
})
|
|
309
|
-
|
|
310
|
-
htmlFor: name + "_" + i
|
|
311
|
-
}, o.name)), entryAdornment == null ? void 0 : entryAdornment(o, i, checked));
|
|
312
|
-
}));
|
|
339
|
+
})
|
|
340
|
+
});
|
|
313
341
|
} finally {
|
|
314
342
|
_effect();
|
|
315
343
|
}
|
|
@@ -327,7 +355,7 @@ function setIncluded(array, elem, included) {
|
|
|
327
355
|
function createCheckboxRenderer(options = {}) {
|
|
328
356
|
return createDataRenderer((props, renderer) => p => _extends({}, p, {
|
|
329
357
|
label: undefined,
|
|
330
|
-
children:
|
|
358
|
+
children: /*#__PURE__*/jsx(CheckBox, {
|
|
331
359
|
p: p,
|
|
332
360
|
renderer: renderer,
|
|
333
361
|
options: options,
|
|
@@ -345,16 +373,19 @@ function CheckBox({
|
|
|
345
373
|
}) {
|
|
346
374
|
var _effect2 = useComponentTracking();
|
|
347
375
|
try {
|
|
348
|
-
const
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
376
|
+
const {
|
|
377
|
+
Div
|
|
378
|
+
} = renderer.html;
|
|
379
|
+
return /*#__PURE__*/jsxs(Div, {
|
|
380
|
+
className: rendererClass(props.className, options.entryClass),
|
|
381
|
+
children: [/*#__PURE__*/jsx(Fcheckbox, {
|
|
382
|
+
id: props.id,
|
|
383
|
+
control: props.control.as(),
|
|
384
|
+
style: props.style,
|
|
385
|
+
className: options.checkClass,
|
|
386
|
+
renderer: renderer
|
|
387
|
+
}), p.label && renderer.renderLabel(p.label, undefined, undefined)]
|
|
388
|
+
});
|
|
358
389
|
} finally {
|
|
359
390
|
_effect2();
|
|
360
391
|
}
|
|
@@ -369,24 +400,21 @@ function Fcheckbox(_ref) {
|
|
|
369
400
|
renderer
|
|
370
401
|
} = _ref,
|
|
371
402
|
others = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
372
|
-
const
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
// () => control.error,
|
|
376
|
-
// (s) => (control.element as HTMLInputElement)?.setCustomValidity(s ?? ""),
|
|
377
|
-
// );
|
|
403
|
+
const {
|
|
404
|
+
Input
|
|
405
|
+
} = renderer.html;
|
|
378
406
|
const _formControlProps = formControlProps(control),
|
|
379
407
|
{
|
|
380
408
|
value
|
|
381
409
|
} = _formControlProps,
|
|
382
410
|
theseProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded2);
|
|
383
|
-
return
|
|
411
|
+
return /*#__PURE__*/jsx(Input, _extends({}, theseProps, {
|
|
384
412
|
checked: !!value !== notValue,
|
|
385
|
-
ref: r =>
|
|
386
|
-
|
|
387
|
-
|
|
413
|
+
ref: r => control.element = r,
|
|
414
|
+
onChange: e => {
|
|
415
|
+
control.touched = true;
|
|
416
|
+
control.value = e.target.checked !== notValue;
|
|
388
417
|
},
|
|
389
|
-
onChange: e => control.value = e.target.checked !== notValue,
|
|
390
418
|
type: type
|
|
391
419
|
}, others));
|
|
392
420
|
} finally {
|
|
@@ -398,7 +426,7 @@ function createDefaultLayoutRenderer(options = {}) {
|
|
|
398
426
|
return createLayoutRenderer((props, renderers) => {
|
|
399
427
|
const layout = renderLayoutParts(props, renderers);
|
|
400
428
|
return {
|
|
401
|
-
children: layout.wrapLayout(
|
|
429
|
+
children: layout.wrapLayout(/*#__PURE__*/jsx(DefaultLayout, _extends({
|
|
402
430
|
layout: layout
|
|
403
431
|
}, options, {
|
|
404
432
|
renderer: renderers
|
|
@@ -412,12 +440,18 @@ function createDefaultLayoutRenderer(options = {}) {
|
|
|
412
440
|
function DefaultLayout({
|
|
413
441
|
errorClass,
|
|
414
442
|
renderer: {
|
|
415
|
-
|
|
443
|
+
html: {
|
|
444
|
+
Div,
|
|
445
|
+
Span
|
|
446
|
+
},
|
|
416
447
|
renderText
|
|
417
448
|
},
|
|
418
|
-
renderError = e => e &&
|
|
419
|
-
|
|
420
|
-
|
|
449
|
+
renderError = e => e && /*#__PURE__*/jsx(Div, {
|
|
450
|
+
children: /*#__PURE__*/jsx(Span, {
|
|
451
|
+
className: errorClass,
|
|
452
|
+
children: renderText(e)
|
|
453
|
+
})
|
|
454
|
+
}),
|
|
421
455
|
layout: {
|
|
422
456
|
controlEnd,
|
|
423
457
|
controlStart,
|
|
@@ -430,7 +464,9 @@ function DefaultLayout({
|
|
|
430
464
|
try {
|
|
431
465
|
const ec = errorControl;
|
|
432
466
|
const errorText = ec && ec.touched ? ec.error : undefined;
|
|
433
|
-
return
|
|
467
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
468
|
+
children: [label, controlStart, children, renderError(errorText), controlEnd]
|
|
469
|
+
});
|
|
434
470
|
} finally {
|
|
435
471
|
_effect();
|
|
436
472
|
}
|
|
@@ -450,12 +486,17 @@ function DefaultDisplayOnly({
|
|
|
450
486
|
var _ref;
|
|
451
487
|
const v = control.value;
|
|
452
488
|
const text = (_ref = schemaInterface.isEmptyValue(field, v) ? emptyText : schemaInterface.textValue(field, v)) != null ? _ref : "";
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
489
|
+
const {
|
|
490
|
+
Div,
|
|
491
|
+
Span
|
|
492
|
+
} = renderer.html;
|
|
493
|
+
return /*#__PURE__*/jsx(Div, {
|
|
456
494
|
style: style,
|
|
457
|
-
className: className
|
|
458
|
-
|
|
495
|
+
className: className,
|
|
496
|
+
children: /*#__PURE__*/jsx(Span, {
|
|
497
|
+
children: text
|
|
498
|
+
})
|
|
499
|
+
});
|
|
459
500
|
} finally {
|
|
460
501
|
_effect();
|
|
461
502
|
}
|
|
@@ -467,7 +508,9 @@ function DefaultAccordion({
|
|
|
467
508
|
contentStyle,
|
|
468
509
|
contentClassName,
|
|
469
510
|
designMode,
|
|
511
|
+
iconOpenName,
|
|
470
512
|
iconOpenClass,
|
|
513
|
+
iconClosedName,
|
|
471
514
|
iconClosedClass,
|
|
472
515
|
className,
|
|
473
516
|
renderTitle = t => t,
|
|
@@ -480,6 +523,12 @@ function DefaultAccordion({
|
|
|
480
523
|
var _effect = useComponentTracking();
|
|
481
524
|
try {
|
|
482
525
|
var _dataContext$dataNode;
|
|
526
|
+
const {
|
|
527
|
+
Button,
|
|
528
|
+
I,
|
|
529
|
+
Div,
|
|
530
|
+
Label
|
|
531
|
+
} = renderers.html;
|
|
483
532
|
const dataControl = ((_dataContext$dataNode = dataContext.dataNode) != null ? _dataContext$dataNode : dataContext.parentNode).control;
|
|
484
533
|
const open = useControl(!!accordion.defaultExpanded);
|
|
485
534
|
if (dataControl && !dataControl.meta.accordionState) {
|
|
@@ -490,18 +539,24 @@ function DefaultAccordion({
|
|
|
490
539
|
display: "none"
|
|
491
540
|
});
|
|
492
541
|
const title = renderers.renderLabelText(renderTitle(accordion.title, open));
|
|
493
|
-
const toggler = renderToggler ? renderToggler(open, title) :
|
|
542
|
+
const toggler = renderToggler ? renderToggler(open, title) : /*#__PURE__*/jsxs(Button, {
|
|
494
543
|
className: className,
|
|
495
|
-
onClick: () => open.setValue(x => !x)
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
544
|
+
onClick: () => open.setValue(x => !x),
|
|
545
|
+
children: [/*#__PURE__*/jsx(Label, {
|
|
546
|
+
className: titleClass,
|
|
547
|
+
children: title
|
|
548
|
+
}), /*#__PURE__*/jsx(I, {
|
|
549
|
+
title: isOpen ? iconOpenName : iconClosedName,
|
|
550
|
+
className: clsx(isOpen ? iconOpenClass : iconClosedClass)
|
|
551
|
+
})]
|
|
552
|
+
});
|
|
553
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
554
|
+
children: [toggler, (useCss || isOpen || designMode) && /*#__PURE__*/jsx(Div, {
|
|
555
|
+
style: fullContentStyle,
|
|
556
|
+
className: contentClassName,
|
|
557
|
+
children: children
|
|
558
|
+
})]
|
|
559
|
+
});
|
|
505
560
|
} finally {
|
|
506
561
|
_effect();
|
|
507
562
|
}
|
|
@@ -511,7 +566,7 @@ function getAccordionState(c) {
|
|
|
511
566
|
}
|
|
512
567
|
|
|
513
568
|
function createTabsRenderer(options = {}) {
|
|
514
|
-
return createGroupRenderer((p, renderer) =>
|
|
569
|
+
return createGroupRenderer((p, renderer) => /*#__PURE__*/jsx(TabsGroupRenderer, _extends({}, p, {
|
|
515
570
|
tabOptions: p.renderOptions,
|
|
516
571
|
options: options
|
|
517
572
|
})), {
|
|
@@ -538,22 +593,27 @@ function TabsGroupRenderer({
|
|
|
538
593
|
contentClass
|
|
539
594
|
} = options;
|
|
540
595
|
const currentTab = tabIndex.value;
|
|
541
|
-
return designMode ?
|
|
596
|
+
return designMode ? /*#__PURE__*/jsx(Fragment, {
|
|
597
|
+
children: formNode.getChildNodes().map((x, i) => renderTabs([x], i))
|
|
598
|
+
}) : renderTabs(formNode.getChildNodes(), 0);
|
|
542
599
|
function renderTabs(tabs, key) {
|
|
543
|
-
return
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
600
|
+
return /*#__PURE__*/jsxs("div", {
|
|
601
|
+
className: rendererClass(className, options.className),
|
|
602
|
+
children: [/*#__PURE__*/jsx("ul", {
|
|
603
|
+
className: rendererClass(null, tabListClass),
|
|
604
|
+
children: tabs.map((x, i) => /*#__PURE__*/jsx("li", {
|
|
605
|
+
className: rendererClass(null, tabClass),
|
|
606
|
+
onClick: () => tabIndex.value = i,
|
|
607
|
+
children: /*#__PURE__*/jsx("span", {
|
|
608
|
+
className: rendererClass(null, clsx(labelClass, i == currentTab ? activeClass : inactiveClass)),
|
|
609
|
+
children: x.definition.title ? x.definition.title : "<untitled>"
|
|
610
|
+
})
|
|
611
|
+
}, i))
|
|
612
|
+
}), /*#__PURE__*/jsx("div", {
|
|
613
|
+
className: rendererClass(tabOptions.contentClass, contentClass),
|
|
614
|
+
children: renderChild(currentTab, tabs[currentTab])
|
|
615
|
+
})]
|
|
616
|
+
}, key);
|
|
557
617
|
}
|
|
558
618
|
} finally {
|
|
559
619
|
_effect();
|
|
@@ -600,7 +660,7 @@ function createDefaultGroupRenderer(options) {
|
|
|
600
660
|
} = props;
|
|
601
661
|
if (isTabsRenderer(renderOptions)) return tabsRenderer.render(props, renderer);
|
|
602
662
|
if (isSelectChildRenderer(renderOptions) && !props.designMode) {
|
|
603
|
-
return
|
|
663
|
+
return /*#__PURE__*/jsx(SelectChildGroupRenderer, _extends({}, props, {
|
|
604
664
|
renderOptions: renderOptions
|
|
605
665
|
}));
|
|
606
666
|
}
|
|
@@ -610,12 +670,14 @@ function createDefaultGroupRenderer(options) {
|
|
|
610
670
|
} = isGridRenderer(renderOptions) ? gridStyles(renderOptions) : isFlexRenderer(renderOptions) ? flexStyles(renderOptions) : {
|
|
611
671
|
className: standardClassName
|
|
612
672
|
};
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
673
|
+
const {
|
|
674
|
+
Div
|
|
675
|
+
} = renderer.html;
|
|
676
|
+
return /*#__PURE__*/jsx(Div, {
|
|
616
677
|
className: rendererClass(props.className, clsx(className, gcn)),
|
|
617
|
-
style: style
|
|
618
|
-
|
|
678
|
+
style: style,
|
|
679
|
+
children: formNode.getChildNodes().map((c, i) => renderChild(i, c))
|
|
680
|
+
});
|
|
619
681
|
}
|
|
620
682
|
return {
|
|
621
683
|
type: "group",
|
|
@@ -634,17 +696,18 @@ function SelectChildGroupRenderer(props) {
|
|
|
634
696
|
const ctrl = dynHook.runHook(p.dataContext, dynHook.state);
|
|
635
697
|
const childIndex = ctrl == null ? void 0 : ctrl.value;
|
|
636
698
|
const childDefinitions = p.formNode.getChildNodes();
|
|
637
|
-
return
|
|
699
|
+
return /*#__PURE__*/jsx("div", {
|
|
700
|
+
children: typeof childIndex === "number" && childIndex < childDefinitions.length && childIndex >= 0 && p.renderChild(childIndex, childDefinitions[childIndex])
|
|
701
|
+
});
|
|
638
702
|
}, [dynHook.deps]);
|
|
639
|
-
return
|
|
703
|
+
return /*#__PURE__*/jsx(Render, _extends({}, props));
|
|
640
704
|
} finally {
|
|
641
705
|
_effect();
|
|
642
706
|
}
|
|
643
707
|
}
|
|
644
708
|
|
|
645
709
|
function createDefaultVisibilityRenderer() {
|
|
646
|
-
|
|
647
|
-
return createVisibilityRenderer((props, renderer) => h(DefaultVisibility, _extends({}, props, {
|
|
710
|
+
return createVisibilityRenderer((props, renderer) => /*#__PURE__*/jsx(DefaultVisibility, _extends({}, props, {
|
|
648
711
|
renderer: renderer
|
|
649
712
|
})));
|
|
650
713
|
}
|
|
@@ -667,20 +730,22 @@ function DefaultVisibility({
|
|
|
667
730
|
}));
|
|
668
731
|
}
|
|
669
732
|
}, [v == null ? void 0 : v.visible]);
|
|
670
|
-
const
|
|
671
|
-
|
|
733
|
+
const {
|
|
734
|
+
Div
|
|
735
|
+
} = renderer.html;
|
|
736
|
+
return v != null && v.visible ? /*#__PURE__*/jsx(Div, {
|
|
672
737
|
className: className,
|
|
673
738
|
style: style,
|
|
674
739
|
ref: divRef,
|
|
675
740
|
children: children
|
|
676
|
-
}) :
|
|
741
|
+
}) : /*#__PURE__*/jsx(Fragment, {});
|
|
677
742
|
} finally {
|
|
678
743
|
_effect();
|
|
679
744
|
}
|
|
680
745
|
}
|
|
681
746
|
|
|
682
747
|
function createJsonataRenderer(className) {
|
|
683
|
-
return createDataRenderer(p =>
|
|
748
|
+
return createDataRenderer(p => /*#__PURE__*/jsx(JsonataRenderer, {
|
|
684
749
|
renderOptions: p.renderOptions,
|
|
685
750
|
className: rendererClass(p.className, className),
|
|
686
751
|
dataNode: p.dataNode,
|
|
@@ -710,7 +775,7 @@ function JsonataRenderer({
|
|
|
710
775
|
dataPath: getJsonPath(dataNode)
|
|
711
776
|
}));
|
|
712
777
|
const rendered = useJsonataExpression(renderOptions.expression, getRootDataNode(sdn).control, getJsonPath(sdn), bindings, coerceToString);
|
|
713
|
-
return
|
|
778
|
+
return /*#__PURE__*/jsx("div", {
|
|
714
779
|
className: className,
|
|
715
780
|
dangerouslySetInnerHTML: {
|
|
716
781
|
__html: rendered.value
|
|
@@ -749,7 +814,7 @@ function createNullToggleRenderer() {
|
|
|
749
814
|
|
|
750
815
|
function createDefaultArrayDataRenderer(defaultActions) {
|
|
751
816
|
return createDataRenderer((props, renderers) => {
|
|
752
|
-
return
|
|
817
|
+
return /*#__PURE__*/jsx(DataArrayRenderer, {
|
|
753
818
|
dataProps: props,
|
|
754
819
|
renderers: renderers,
|
|
755
820
|
defaultActions: defaultActions
|
|
@@ -818,7 +883,7 @@ function DataArrayRenderer({
|
|
|
818
883
|
editExternal
|
|
819
884
|
}), {
|
|
820
885
|
required,
|
|
821
|
-
renderElement: (i, wrap) =>
|
|
886
|
+
renderElement: (i, wrap) => /*#__PURE__*/jsx(Entry, {
|
|
822
887
|
index: i,
|
|
823
888
|
renderChildElement: renderChildElement,
|
|
824
889
|
dataContext: dataContext,
|
|
@@ -857,9 +922,11 @@ function RenderEntry({
|
|
|
857
922
|
function createDefaultArrayRenderer(options) {
|
|
858
923
|
return {
|
|
859
924
|
render: (props, {
|
|
860
|
-
renderAction
|
|
861
|
-
|
|
862
|
-
|
|
925
|
+
renderAction,
|
|
926
|
+
html
|
|
927
|
+
}) => /*#__PURE__*/jsx(DefaultArrayRenderer, _extends({}, props, options, {
|
|
928
|
+
renderAction: renderAction,
|
|
929
|
+
html: html
|
|
863
930
|
})),
|
|
864
931
|
type: "array"
|
|
865
932
|
};
|
|
@@ -878,27 +945,39 @@ function DefaultArrayRenderer(props) {
|
|
|
878
945
|
arrayControl,
|
|
879
946
|
renderAction,
|
|
880
947
|
style,
|
|
881
|
-
editAction
|
|
948
|
+
editAction,
|
|
949
|
+
html: {
|
|
950
|
+
Div
|
|
951
|
+
}
|
|
882
952
|
} = props;
|
|
883
953
|
const {
|
|
884
954
|
addAction,
|
|
885
955
|
removeAction
|
|
886
956
|
} = applyArrayLengthRestrictions(props);
|
|
887
|
-
return
|
|
888
|
-
style: style
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
957
|
+
return /*#__PURE__*/jsxs(Div, {
|
|
958
|
+
style: style,
|
|
959
|
+
children: [/*#__PURE__*/jsx(Div, {
|
|
960
|
+
className: clsx(className, removeAction && removableClass),
|
|
961
|
+
children: /*#__PURE__*/jsx(RenderElements, {
|
|
962
|
+
control: arrayControl,
|
|
963
|
+
children: (_, x) => renderElement(x, children => removeAction || editAction ? /*#__PURE__*/jsxs(Fragment, {
|
|
964
|
+
children: [/*#__PURE__*/jsx(Div, {
|
|
965
|
+
className: clsx(childClass, removableChildClass),
|
|
966
|
+
children: children
|
|
967
|
+
}), /*#__PURE__*/jsxs(Div, {
|
|
968
|
+
className: removeActionClass,
|
|
969
|
+
children: [editAction && renderAction(editAction(x)), removeAction && renderAction(removeAction(x))]
|
|
970
|
+
})]
|
|
971
|
+
}) : /*#__PURE__*/jsx(Div, {
|
|
972
|
+
className: childClass,
|
|
973
|
+
children: children
|
|
974
|
+
}))
|
|
975
|
+
})
|
|
976
|
+
}), addAction && /*#__PURE__*/jsx(Div, {
|
|
977
|
+
className: addActionClass,
|
|
978
|
+
children: renderAction(addAction)
|
|
979
|
+
})]
|
|
980
|
+
});
|
|
902
981
|
} finally {
|
|
903
982
|
_effect();
|
|
904
983
|
}
|
|
@@ -908,7 +987,7 @@ const inputClass = "leading-[1.5] text-surface-900 bg-[inherit] border-0 rounded
|
|
|
908
987
|
function createAutocompleteRenderer(options = {}) {
|
|
909
988
|
return createDataRenderer(p => {
|
|
910
989
|
var _p$options, _p$options2;
|
|
911
|
-
return p.field.collection ?
|
|
990
|
+
return p.field.collection ? /*#__PURE__*/jsx(MultipleAutocomplete, {
|
|
912
991
|
options: (_p$options = p.options) != null ? _p$options : [],
|
|
913
992
|
control: p.control,
|
|
914
993
|
className: rendererClass(p.className, options.className),
|
|
@@ -916,7 +995,7 @@ function createAutocompleteRenderer(options = {}) {
|
|
|
916
995
|
controlClasses: p.renderOptions,
|
|
917
996
|
readOnly: p.readonly,
|
|
918
997
|
id: p.id
|
|
919
|
-
}) :
|
|
998
|
+
}) : /*#__PURE__*/jsx(SingleAutocomplete, {
|
|
920
999
|
options: (_p$options2 = p.options) != null ? _p$options2 : [],
|
|
921
1000
|
control: p.control,
|
|
922
1001
|
className: rendererClass(p.className, options.className),
|
|
@@ -981,33 +1060,38 @@ function SingleAutocomplete(_ref) {
|
|
|
981
1060
|
}
|
|
982
1061
|
}
|
|
983
1062
|
}, props));
|
|
984
|
-
return
|
|
1063
|
+
return /*#__PURE__*/jsxs("div", _extends({
|
|
985
1064
|
id: id,
|
|
986
1065
|
className: "relative"
|
|
987
|
-
}, getRootProps()
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
index
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1066
|
+
}, getRootProps(), {
|
|
1067
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
1068
|
+
className: clsx(className, focused ? "border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200" : "shadow-[0_2px_2px_transparent] shadow-surface-50"),
|
|
1069
|
+
children: [/*#__PURE__*/jsx("input", _extends({
|
|
1070
|
+
type: "text"
|
|
1071
|
+
}, getInputProps(), {
|
|
1072
|
+
placeholder: (_controlClasses$place = controlClasses == null ? void 0 : controlClasses.placeholder) != null ? _controlClasses$place : "",
|
|
1073
|
+
className: inputClass
|
|
1074
|
+
})), /*#__PURE__*/jsx("button", _extends({}, getPopupIndicatorProps(), {
|
|
1075
|
+
disabled: disabled || readOnly,
|
|
1076
|
+
className: "outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]",
|
|
1077
|
+
children: /*#__PURE__*/jsx("li", {
|
|
1078
|
+
className: clsx("fa-solid fa-angle-down", "text-primary-500", popupOpen && "rotate-180")
|
|
1079
|
+
})
|
|
1080
|
+
}))]
|
|
1081
|
+
}), groupedOptions.length > 0 && popupOpen && /*#__PURE__*/jsx("ul", _extends({}, getListboxProps(), {
|
|
1082
|
+
className: listContainerClass,
|
|
1083
|
+
children: groupedOptions.map((option, index) => {
|
|
1084
|
+
const optionProps = getOptionProps({
|
|
1085
|
+
option,
|
|
1086
|
+
index
|
|
1087
|
+
});
|
|
1088
|
+
return /*#__PURE__*/createElement("li", _extends({}, optionProps, {
|
|
1089
|
+
key: optionProps.key,
|
|
1090
|
+
className: listEntryClass
|
|
1091
|
+
}), option.name);
|
|
1092
|
+
})
|
|
1093
|
+
}))]
|
|
1094
|
+
}));
|
|
1011
1095
|
} finally {
|
|
1012
1096
|
_effect();
|
|
1013
1097
|
}
|
|
@@ -1069,44 +1153,49 @@ function MultipleAutocomplete(_ref2) {
|
|
|
1069
1153
|
}
|
|
1070
1154
|
}
|
|
1071
1155
|
}, props));
|
|
1072
|
-
return
|
|
1156
|
+
return /*#__PURE__*/jsxs("div", _extends({
|
|
1073
1157
|
id: id,
|
|
1074
1158
|
className: "relative"
|
|
1075
|
-
}, getRootProps()
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
index
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1159
|
+
}, getRootProps(), {
|
|
1160
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
1161
|
+
className: clsx(className, focused ? "border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200" : "shadow-[0_2px_2px_transparent] shadow-surface-50"),
|
|
1162
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
1163
|
+
className: "flex flex-1 flex-row flex-wrap",
|
|
1164
|
+
children: [(_selectedOptionsContr2 = selectedOptionsControl.value) == null ? void 0 : _selectedOptionsContr2.map(v => /*#__PURE__*/jsx(Chip, {
|
|
1165
|
+
text: typeof v === "string" ? v : v.name,
|
|
1166
|
+
chipContainerClass: chipContainerClass,
|
|
1167
|
+
chipCloseButtonClass: chipCloseButtonClass,
|
|
1168
|
+
onDeleteClick: () => {
|
|
1169
|
+
const c = selectedOptionsControl.elements.find(x => x.value == v);
|
|
1170
|
+
if (c) removeElement(selectedOptionsControl, c);
|
|
1171
|
+
}
|
|
1172
|
+
}, typeof v === "string" ? v : v.name)), /*#__PURE__*/jsx("input", _extends({
|
|
1173
|
+
type: "text"
|
|
1174
|
+
}, getInputProps(), {
|
|
1175
|
+
placeholder: (_controlClasses$place2 = controlClasses == null ? void 0 : controlClasses.placeholder) != null ? _controlClasses$place2 : "",
|
|
1176
|
+
className: clsx(inputClass)
|
|
1177
|
+
}))]
|
|
1178
|
+
}), /*#__PURE__*/jsx("button", _extends({}, getPopupIndicatorProps(), {
|
|
1179
|
+
disabled: disabled || readOnly,
|
|
1180
|
+
className: "outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]",
|
|
1181
|
+
children: /*#__PURE__*/jsx("i", {
|
|
1182
|
+
className: clsx("fa-solid fa-angle-down", "text-primary-500", popupOpen && "rotate-180")
|
|
1183
|
+
})
|
|
1184
|
+
}))]
|
|
1185
|
+
}), groupedOptions.length > 0 && popupOpen && /*#__PURE__*/jsx("ul", _extends({}, getListboxProps(), {
|
|
1186
|
+
className: listContainerClass,
|
|
1187
|
+
children: groupedOptions.map((option, index) => {
|
|
1188
|
+
const optionProps = getOptionProps({
|
|
1189
|
+
option,
|
|
1190
|
+
index
|
|
1191
|
+
});
|
|
1192
|
+
return /*#__PURE__*/createElement("li", _extends({}, optionProps, {
|
|
1193
|
+
key: optionProps.key,
|
|
1194
|
+
className: listEntryClass
|
|
1195
|
+
}), option.name);
|
|
1196
|
+
})
|
|
1197
|
+
}))]
|
|
1198
|
+
}));
|
|
1110
1199
|
} finally {
|
|
1111
1200
|
_effect2();
|
|
1112
1201
|
}
|
|
@@ -1119,14 +1208,15 @@ function Chip({
|
|
|
1119
1208
|
}) {
|
|
1120
1209
|
var _effect3 = useComponentTracking();
|
|
1121
1210
|
try {
|
|
1122
|
-
return
|
|
1123
|
-
className: chipContainerClass
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1211
|
+
return /*#__PURE__*/jsxs("div", {
|
|
1212
|
+
className: chipContainerClass,
|
|
1213
|
+
children: [text, /*#__PURE__*/jsx("i", {
|
|
1214
|
+
className: chipCloseButtonClass,
|
|
1215
|
+
onClick: () => {
|
|
1216
|
+
onDeleteClick == null || onDeleteClick();
|
|
1217
|
+
}
|
|
1218
|
+
})]
|
|
1219
|
+
});
|
|
1130
1220
|
} finally {
|
|
1131
1221
|
_effect3();
|
|
1132
1222
|
}
|
|
@@ -1150,11 +1240,13 @@ function createValueForFieldRenderer(options) {
|
|
|
1150
1240
|
} = o.renderOptions;
|
|
1151
1241
|
const actualFieldRef = fieldRef ? (_schemaDataForFieldRe = schemaDataForFieldRef(fieldRef, o.dataContext.parentNode)) == null || (_schemaDataForFieldRe = _schemaDataForFieldRe.control) == null ? void 0 : _schemaDataForFieldRe.value : undefined;
|
|
1152
1242
|
const node = actualFieldRef ? schemaForFieldRef(actualFieldRef, options.schema) : undefined;
|
|
1153
|
-
return node ?
|
|
1243
|
+
return node ? /*#__PURE__*/jsx(ValueForField, {
|
|
1154
1244
|
renderer: renderer,
|
|
1155
1245
|
schema: node,
|
|
1156
1246
|
control: o.control
|
|
1157
|
-
}) :
|
|
1247
|
+
}) : /*#__PURE__*/jsx(Fragment, {
|
|
1248
|
+
children: actualFieldRef ? "No schema node for " + actualFieldRef : ""
|
|
1249
|
+
});
|
|
1158
1250
|
}, {
|
|
1159
1251
|
renderType: RenderType
|
|
1160
1252
|
});
|
|
@@ -1184,7 +1276,7 @@ function ValueForField({
|
|
|
1184
1276
|
const Render = useControlRendererComponent(groupedControl(controls), renderer, {
|
|
1185
1277
|
disabled: control.disabled
|
|
1186
1278
|
}, makeSchemaDataNode(rootSchema, value));
|
|
1187
|
-
return
|
|
1279
|
+
return /*#__PURE__*/jsx(Render, {});
|
|
1188
1280
|
} finally {
|
|
1189
1281
|
_effect();
|
|
1190
1282
|
}
|
|
@@ -1207,7 +1299,7 @@ function createOptionalAdornment(options = {}) {
|
|
|
1207
1299
|
apply: rl => {
|
|
1208
1300
|
var _ref, _adornment$placement;
|
|
1209
1301
|
if (props.formOptions.readonly) return rl;
|
|
1210
|
-
if (!options.hideEdit && adornment.editSelectable) appendMarkupAt((_ref = (_adornment$placement = adornment.placement) != null ? _adornment$placement : options.defaultPlacement) != null ? _ref : AdornmentPlacement.LabelStart,
|
|
1302
|
+
if (!options.hideEdit && adornment.editSelectable) appendMarkupAt((_ref = (_adornment$placement = adornment.placement) != null ? _adornment$placement : options.defaultPlacement) != null ? _ref : AdornmentPlacement.LabelStart, /*#__PURE__*/jsx(Fcheckbox$1, {
|
|
1211
1303
|
control: editing,
|
|
1212
1304
|
className: options.checkClass
|
|
1213
1305
|
}))(rl);
|
|
@@ -1219,7 +1311,7 @@ function createOptionalAdornment(options = {}) {
|
|
|
1219
1311
|
nullToggler,
|
|
1220
1312
|
dataContext,
|
|
1221
1313
|
options
|
|
1222
|
-
}) :
|
|
1314
|
+
}) : /*#__PURE__*/jsx(OptionalEditRenderer, {
|
|
1223
1315
|
children: children,
|
|
1224
1316
|
options: options,
|
|
1225
1317
|
editing: editing.as(),
|
|
@@ -1247,27 +1339,33 @@ function OptionalEditRenderer({
|
|
|
1247
1339
|
const nullToggler = getNullToggler(dataControl);
|
|
1248
1340
|
const allValues = getAllValues(dataControl);
|
|
1249
1341
|
const multipleValues = allValues.value.length > 1;
|
|
1250
|
-
const nullEdit = adornment.allowNull ?
|
|
1251
|
-
className: options.nullWrapperClass
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
}
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1342
|
+
const nullEdit = adornment.allowNull ? /*#__PURE__*/jsxs("div", {
|
|
1343
|
+
className: options.nullWrapperClass,
|
|
1344
|
+
children: [/*#__PURE__*/jsx(Fcheckbox$1, {
|
|
1345
|
+
control: nullToggler,
|
|
1346
|
+
className: options.checkClass,
|
|
1347
|
+
notValue: true
|
|
1348
|
+
}), /*#__PURE__*/jsx("span", {
|
|
1349
|
+
children: (_options$setNullText = options.setNullText) != null ? _options$setNullText : "Null"
|
|
1350
|
+
})]
|
|
1351
|
+
}) : undefined;
|
|
1352
|
+
return /*#__PURE__*/jsx("div", {
|
|
1353
|
+
className: options.className,
|
|
1354
|
+
children: multipleValues && editing.value === false ? /*#__PURE__*/jsx("div", {
|
|
1355
|
+
className: options.multiValuesClass,
|
|
1356
|
+
children: (_options$multiValuesT = options.multiValuesText) != null ? _options$multiValuesT : "Differing values"
|
|
1357
|
+
}) : /*#__PURE__*/jsxs("div", {
|
|
1358
|
+
className: options.childWrapperClass,
|
|
1359
|
+
children: [nullEdit, children]
|
|
1360
|
+
})
|
|
1361
|
+
});
|
|
1264
1362
|
} finally {
|
|
1265
1363
|
_effect();
|
|
1266
1364
|
}
|
|
1267
1365
|
}
|
|
1268
1366
|
|
|
1269
1367
|
function createMultilineFieldRenderer(className) {
|
|
1270
|
-
return createDataRenderer(p =>
|
|
1368
|
+
return createDataRenderer(p => /*#__PURE__*/jsx(MultilineTextfield, _extends({}, p, {
|
|
1271
1369
|
className: rendererClass(p.className, className)
|
|
1272
1370
|
})));
|
|
1273
1371
|
}
|
|
@@ -1284,7 +1382,7 @@ function MultilineTextfield({
|
|
|
1284
1382
|
c.textContent = v;
|
|
1285
1383
|
}
|
|
1286
1384
|
}, true);
|
|
1287
|
-
return
|
|
1385
|
+
return /*#__PURE__*/jsx("code", {
|
|
1288
1386
|
contentEditable: !control.disabled,
|
|
1289
1387
|
className: className,
|
|
1290
1388
|
onInput: t => control.value = t.currentTarget.textContent,
|
|
@@ -1296,7 +1394,7 @@ function MultilineTextfield({
|
|
|
1296
1394
|
}
|
|
1297
1395
|
|
|
1298
1396
|
function createArrayElementRenderer(options = {}) {
|
|
1299
|
-
return createDataRenderer((props, formRenderer) =>
|
|
1397
|
+
return createDataRenderer((props, formRenderer) => /*#__PURE__*/jsx(ArrayElementRenderer, {
|
|
1300
1398
|
dataProps: props,
|
|
1301
1399
|
options: options,
|
|
1302
1400
|
formRenderer: formRenderer,
|
|
@@ -1335,22 +1433,26 @@ function ArrayElementRenderer({
|
|
|
1335
1433
|
hideTitle: true
|
|
1336
1434
|
}
|
|
1337
1435
|
}, formNode.getChildNodes());
|
|
1338
|
-
const editContent =
|
|
1339
|
-
className: rendererClass(dataProps.className, options.className)
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1436
|
+
const editContent = /*#__PURE__*/jsxs("div", {
|
|
1437
|
+
className: rendererClass(dataProps.className, options.className),
|
|
1438
|
+
children: [renderChild("", elementGroup, {
|
|
1439
|
+
parentDataNode,
|
|
1440
|
+
elementIndex: 0
|
|
1441
|
+
}), /*#__PURE__*/jsx("div", {
|
|
1442
|
+
className: options.actionsClass,
|
|
1443
|
+
children: /*#__PURE__*/jsx(RenderElements, {
|
|
1444
|
+
control: extData.fields.actions,
|
|
1445
|
+
children: c => formRenderer.renderAction(applyValidation(c.value))
|
|
1446
|
+
})
|
|
1447
|
+
})]
|
|
1448
|
+
});
|
|
1348
1449
|
if (renderOptions.showInline || designMode) return editContent;
|
|
1349
|
-
return
|
|
1350
|
-
state: overlayState
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1450
|
+
return /*#__PURE__*/jsx(Modal, {
|
|
1451
|
+
state: overlayState,
|
|
1452
|
+
children: /*#__PURE__*/jsx(Dialog, {
|
|
1453
|
+
children: editContent
|
|
1454
|
+
})
|
|
1455
|
+
});
|
|
1354
1456
|
function runValidation(onClick) {
|
|
1355
1457
|
let hasErrors = false;
|
|
1356
1458
|
visitFormDataInContext(parentDataNode, elementGroup, validationVisitor(() => {
|
|
@@ -1366,7 +1468,7 @@ function ArrayElementRenderer({
|
|
|
1366
1468
|
onClick: () => runValidation(action.onClick)
|
|
1367
1469
|
});
|
|
1368
1470
|
}
|
|
1369
|
-
} else return
|
|
1471
|
+
} else return /*#__PURE__*/jsx(Fragment, {});
|
|
1370
1472
|
} finally {
|
|
1371
1473
|
_effect();
|
|
1372
1474
|
}
|
|
@@ -1383,13 +1485,17 @@ function createButtonActionRenderer(actionId, options = {}) {
|
|
|
1383
1485
|
disabled
|
|
1384
1486
|
}, renderer) => {
|
|
1385
1487
|
var _options$renderConten;
|
|
1386
|
-
const
|
|
1387
|
-
|
|
1388
|
-
|
|
1488
|
+
const {
|
|
1489
|
+
Button
|
|
1490
|
+
} = renderer.html;
|
|
1491
|
+
const classNames = rendererClass(className, options.className);
|
|
1492
|
+
return /*#__PURE__*/jsx(Button, {
|
|
1493
|
+
className: classNames,
|
|
1389
1494
|
disabled: disabled,
|
|
1390
1495
|
style: style,
|
|
1391
|
-
onClick: onClick
|
|
1392
|
-
|
|
1496
|
+
onClick: onClick,
|
|
1497
|
+
children: (_options$renderConten = options.renderContent == null ? void 0 : options.renderContent(actionText, actionId, actionData)) != null ? _options$renderConten : renderer.renderText(actionText, classNames)
|
|
1498
|
+
});
|
|
1393
1499
|
});
|
|
1394
1500
|
}
|
|
1395
1501
|
const DefaultBoolOptions = [{
|
|
@@ -1401,7 +1507,6 @@ const DefaultBoolOptions = [{
|
|
|
1401
1507
|
}];
|
|
1402
1508
|
function createDefaultDataRenderer(options = {}) {
|
|
1403
1509
|
var _options$checkOptions, _options$radioOptions, _options$checkListOpt;
|
|
1404
|
-
const h = React.createElement;
|
|
1405
1510
|
const jsonataRenderer = createJsonataRenderer(options.jsonataClass);
|
|
1406
1511
|
const nullToggler = createNullToggleRenderer();
|
|
1407
1512
|
const multilineRenderer = createMultilineFieldRenderer(options.multilineClass);
|
|
@@ -1446,7 +1551,7 @@ function createDefaultDataRenderer(options = {}) {
|
|
|
1446
1551
|
if (props.displayOnly || isDisplayOnlyRenderer(renderOptions)) return p => {
|
|
1447
1552
|
return _extends({}, p, {
|
|
1448
1553
|
className: "@ " + rendererClass(p.className, displayOnlyClass),
|
|
1449
|
-
children:
|
|
1554
|
+
children: /*#__PURE__*/jsx(DefaultDisplayOnly, {
|
|
1450
1555
|
field: props.field,
|
|
1451
1556
|
schemaInterface: props.dataContext.schemaInterface,
|
|
1452
1557
|
control: props.control,
|
|
@@ -1484,11 +1589,13 @@ function createDefaultDataRenderer(options = {}) {
|
|
|
1484
1589
|
}
|
|
1485
1590
|
if (fieldType == FieldType.Any) {
|
|
1486
1591
|
var _field$displayName;
|
|
1487
|
-
return
|
|
1592
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
1593
|
+
children: ["Can't render field: ", (_field$displayName = field.displayName) != null ? _field$displayName : field.field, " (", renderType, ")"]
|
|
1594
|
+
});
|
|
1488
1595
|
}
|
|
1489
1596
|
if (isTextfieldRenderer(renderOptions) && renderOptions.multiline) return multilineRenderer.render(props, renderers);
|
|
1490
1597
|
const placeholder = isTextfieldRenderer(renderOptions) ? renderOptions.placeholder : undefined;
|
|
1491
|
-
return
|
|
1598
|
+
return /*#__PURE__*/jsx(ControlInput, {
|
|
1492
1599
|
className: rendererClass(props.className, inputClass),
|
|
1493
1600
|
style: props.style,
|
|
1494
1601
|
id: props.id,
|
|
@@ -1522,7 +1629,7 @@ function createDefaultAdornmentRenderer(options = {}) {
|
|
|
1522
1629
|
value: hook
|
|
1523
1630
|
});
|
|
1524
1631
|
const SetFieldWrapper = useTrackedComponent(setFieldWrapper, [dynamicHooks]);
|
|
1525
|
-
return wrapLayout(x =>
|
|
1632
|
+
return wrapLayout(x => /*#__PURE__*/jsx(SetFieldWrapper, {
|
|
1526
1633
|
children: x,
|
|
1527
1634
|
parentContext: dataContext,
|
|
1528
1635
|
adornment: adornment
|
|
@@ -1546,12 +1653,12 @@ function createDefaultAdornmentRenderer(options = {}) {
|
|
|
1546
1653
|
}
|
|
1547
1654
|
if (isIconAdornment(adornment)) {
|
|
1548
1655
|
var _adornment$placement;
|
|
1549
|
-
return appendMarkupAt((_adornment$placement = adornment.placement) != null ? _adornment$placement : AdornmentPlacement.ControlStart,
|
|
1656
|
+
return appendMarkupAt((_adornment$placement = adornment.placement) != null ? _adornment$placement : AdornmentPlacement.ControlStart, /*#__PURE__*/jsx("i", {
|
|
1550
1657
|
className: adornment.iconClass
|
|
1551
1658
|
}))(rl);
|
|
1552
1659
|
}
|
|
1553
1660
|
if (isAccordionAdornment(adornment)) {
|
|
1554
|
-
return wrapLayout(x =>
|
|
1661
|
+
return wrapLayout(x => /*#__PURE__*/jsx(DefaultAccordion, _extends({
|
|
1555
1662
|
renderers: renderers,
|
|
1556
1663
|
children: x,
|
|
1557
1664
|
accordion: adornment,
|
|
@@ -1580,19 +1687,38 @@ function createDefaultLabelRenderer(options) {
|
|
|
1580
1687
|
return {
|
|
1581
1688
|
render: (props, labelStart, labelEnd, renderers) => {
|
|
1582
1689
|
var _options$requiredElem;
|
|
1583
|
-
const
|
|
1584
|
-
|
|
1690
|
+
const {
|
|
1691
|
+
Label
|
|
1692
|
+
} = renderers.html;
|
|
1693
|
+
const requiredElement = (_options$requiredElem = options == null ? void 0 : options.requiredElement) != null ? _options$requiredElem : ({
|
|
1694
|
+
Span
|
|
1695
|
+
}) => /*#__PURE__*/jsx(Span, {
|
|
1696
|
+
children: " *"
|
|
1697
|
+
});
|
|
1585
1698
|
if (props.type == LabelType.Text) return renderers.renderText(props.label);
|
|
1586
|
-
return labelContainer(
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1699
|
+
return labelContainer(/*#__PURE__*/jsxs(Fragment, {
|
|
1700
|
+
children: [/*#__PURE__*/jsxs(Label, {
|
|
1701
|
+
htmlFor: props.forId,
|
|
1702
|
+
className: rendererClass(props.className, clsx(className, props.type === LabelType.Group && groupLabelClass, props.type === LabelType.Control && controlLabelClass)),
|
|
1703
|
+
children: [labelStart, renderers.renderLabelText(props.label), props.required && requiredElement(renderers.html)]
|
|
1704
|
+
}), labelEnd]
|
|
1705
|
+
}));
|
|
1590
1706
|
},
|
|
1591
1707
|
type: "label"
|
|
1592
1708
|
};
|
|
1593
1709
|
}
|
|
1710
|
+
const StandardHtmlComponents = {
|
|
1711
|
+
Button: "button",
|
|
1712
|
+
Label: "label",
|
|
1713
|
+
I: "i",
|
|
1714
|
+
Span: "span",
|
|
1715
|
+
Div: "div",
|
|
1716
|
+
H1: "h1",
|
|
1717
|
+
B: "b",
|
|
1718
|
+
Input: "input"
|
|
1719
|
+
};
|
|
1594
1720
|
function createDefaultRenderers(options = {}) {
|
|
1595
|
-
var _options$renderText, _options$
|
|
1721
|
+
var _options$extraRendere, _options$renderText, _options$html;
|
|
1596
1722
|
return {
|
|
1597
1723
|
data: createDefaultDataRenderer(options.data),
|
|
1598
1724
|
display: createDefaultDisplayRenderer(options.display),
|
|
@@ -1603,8 +1729,9 @@ function createDefaultRenderers(options = {}) {
|
|
|
1603
1729
|
adornment: createDefaultAdornmentRenderer(options.adornment),
|
|
1604
1730
|
renderLayout: createDefaultLayoutRenderer(options.layout),
|
|
1605
1731
|
visibility: createDefaultVisibilityRenderer(),
|
|
1732
|
+
extraRenderers: (_options$extraRendere = options.extraRenderers == null ? void 0 : options.extraRenderers(options)) != null ? _options$extraRendere : [],
|
|
1606
1733
|
renderText: (_options$renderText = options.renderText) != null ? _options$renderText : x => x,
|
|
1607
|
-
|
|
1734
|
+
html: (_options$html = options.html) != null ? _options$html : StandardHtmlComponents
|
|
1608
1735
|
};
|
|
1609
1736
|
}
|
|
1610
1737
|
function createClassStyledRenderers() {
|
|
@@ -1634,9 +1761,12 @@ function createClassStyledRenderers() {
|
|
|
1634
1761
|
const defaultTailwindTheme = {
|
|
1635
1762
|
label: {
|
|
1636
1763
|
groupLabelClass: "font-bold",
|
|
1637
|
-
requiredElement:
|
|
1638
|
-
|
|
1639
|
-
},
|
|
1764
|
+
requiredElement: ({
|
|
1765
|
+
Span
|
|
1766
|
+
}) => /*#__PURE__*/jsx(Span, {
|
|
1767
|
+
className: "text-red-500",
|
|
1768
|
+
children: " *"
|
|
1769
|
+
})
|
|
1640
1770
|
},
|
|
1641
1771
|
array: {
|
|
1642
1772
|
removableClass: "grid grid-cols-[1fr_auto] items-center gap-x-2",
|
|
@@ -1666,6 +1796,7 @@ const defaultTailwindTheme = {
|
|
|
1666
1796
|
errorClass: "text-sm text-red-500"
|
|
1667
1797
|
},
|
|
1668
1798
|
data: {
|
|
1799
|
+
inputClass: "form-control",
|
|
1669
1800
|
displayOnlyClass: "flex flex-row items-center gap-2",
|
|
1670
1801
|
checkOptions: {
|
|
1671
1802
|
className: "flex items-center gap-4",
|
|
@@ -1702,5 +1833,5 @@ const defaultTailwindTheme = {
|
|
|
1702
1833
|
}
|
|
1703
1834
|
};
|
|
1704
1835
|
|
|
1705
|
-
export { CheckButtons, ControlInput, DataArrayRenderer, DefaultAccordion, DefaultArrayRenderer, DefaultBoolOptions, DefaultDisplay, DefaultDisplayOnly, DefaultLayout, DefaultVisibility, Fcheckbox, JsonataRenderer, OptionalEditRenderer, SelectDataRenderer, ValueForFieldExtension, createAutocompleteRenderer, createButtonActionRenderer, createCheckListRenderer, createCheckboxRenderer, createClassStyledRenderers, createDefaultAdornmentRenderer, createDefaultArrayDataRenderer, createDefaultArrayRenderer, createDefaultDataRenderer, createDefaultDisplayRenderer, createDefaultGroupRenderer, createDefaultLabelRenderer, createDefaultLayoutRenderer, createDefaultRenderers, createDefaultVisibilityRenderer, createInputConversion, createJsonataRenderer, createNullToggleRenderer, createOptionalAdornment, createRadioRenderer, createSelectConversion, createSelectRenderer, createValueForFieldRenderer, defaultTailwindTheme, getAccordionState, setIncluded };
|
|
1836
|
+
export { CheckButtons, ControlInput, DataArrayRenderer, DefaultAccordion, DefaultArrayRenderer, DefaultBoolOptions, DefaultDisplay, DefaultDisplayOnly, DefaultLayout, DefaultVisibility, Fcheckbox, JsonataRenderer, OptionalEditRenderer, SelectDataRenderer, StandardHtmlComponents, ValueForFieldExtension, createAutocompleteRenderer, createButtonActionRenderer, createCheckListRenderer, createCheckboxRenderer, createClassStyledRenderers, createDefaultAdornmentRenderer, createDefaultArrayDataRenderer, createDefaultArrayRenderer, createDefaultDataRenderer, createDefaultDisplayRenderer, createDefaultGroupRenderer, createDefaultLabelRenderer, createDefaultLayoutRenderer, createDefaultRenderers, createDefaultVisibilityRenderer, createInputConversion, createJsonataRenderer, createNullToggleRenderer, createOptionalAdornment, createRadioRenderer, createSelectConversion, createSelectRenderer, createValueForFieldRenderer, defaultTailwindTheme, getAccordionState, setIncluded };
|
|
1706
1837
|
//# sourceMappingURL=index.js.map
|